/* ── css/admin/admin-base.css ── */
/* ── Admin Base: Variables, Body, Layout ──────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');

:root {
    /* Admin Specific Variables */
    --admin-sidebar-width: 260px;
    --admin-header-height: 70px;
    --admin-bg: #f8f9fa;
    --admin-sidebar-bg: #151515;
    --admin-accent: #FFC845;

    /* Common Variables (matching main site) */
    --font-primary: 'Poppins', sans-serif;
    --grey-1: #151515;
    --grey-2: #515151;
    --grey-3: #1A1A1A;
    --white-1: #FFFFFF;
    --white-2: hsl(0, 0%, 99%);
    --white-3: #e9ecef;
    --text-color: #333;
    --red-error: #b91c1c;
    --red-bg: #fee2e2;
    --red-border: #fecaca;
    --blue-info: #0369a1;
    --blue-bg: #e0f2fe;
    --blue-border: #bae6fd;
    --grey-bg: #f8f9fa;
    --grey-border: #e0e0e0;
    --green-success: #15803D;
    --neutral-bg: hsl(0, 0%, 94%);
    --neutral-color: hsl(0, 0%, 16%);

    /* ── Semantic Entity Tokens (Belle Vitesse Color System) ── */
    /* Check-in (Retours) : Bleu Océan */
    --entity-checkin: #3B82F6;
    --entity-checkin-bg: #DBEAFE;
    --entity-checkin-text: #1E40AF;
    --entity-checkin-border: rgba(59, 130, 246, 0.3);
    --entity-checkin-glow: rgba(59, 130, 246, 0.4);

    /* Check-out (Départs) : Vert Forêt / Racing Green */
    --entity-checkout: #15803D;
    --entity-checkout-bg: #DCFCE7;
    --entity-checkout-text: #14532D;
    --entity-checkout-border: rgba(21, 128, 61, 0.3);
    --entity-checkout-glow: rgba(21, 128, 61, 0.4);

    /* Tournage / Projets : Ambre / Orange chaud */
    --entity-project: #F59E0B;
    --entity-project-bg: #FEF3C7;
    --entity-project-text: #B45309;
    --entity-project-border: rgba(245, 158, 11, 0.35);
    --entity-project-glow: rgba(245, 158, 11, 0.4);

    /* Incident (Sinistres / Dommages / Réparations) : Rouge Carmin */
    --entity-incident: #EF4444;
    --entity-incident-bg: #FEE2E2;
    --entity-incident-text: #991B1B;
    --entity-incident-border: rgba(239, 68, 68, 0.3);
    --entity-incident-glow: rgba(239, 68, 68, 0.4);

    /* Décharges (Waivers) : Violet / Indigo */
    --entity-waiver: #8B5CF6;
    --entity-waiver-bg: #EDE9FE;
    --entity-waiver-text: #5B21B6;
    --entity-waiver-border: rgba(139, 92, 246, 0.3);
    --entity-waiver-glow: rgba(139, 92, 246, 0.4);

    /* Statuts Opérationnels Transversaux */
    --status-success: #15803D;
    --status-success-bg: #DCFCE7;
    --status-success-text: #14532D;
    --status-success-border: rgba(21, 128, 61, 0.3);
    --status-success-glow: rgba(21, 128, 61, 0.4);
    --status-warning: #F59E0B;
    --status-warning-bg: #FEF3C7;
    --status-warning-text: #B45309;
    --status-warning-border: rgba(245, 158, 11, 0.35);
    --status-warning-glow: rgba(245, 158, 11, 0.4);
    --status-danger: #EF4444;
    --status-danger-bg: #FEE2E2;
    --status-danger-text: #991B1B;
    --status-danger-border: rgba(239, 68, 68, 0.3);
    --status-danger-glow: rgba(239, 68, 68, 0.4);
    --status-info: #3B82F6;
    --status-info-bg: #DBEAFE;
    --status-info-text: #1E40AF;
    --status-info-border: rgba(59, 130, 246, 0.3);
    --status-info-glow: rgba(59, 130, 246, 0.4);
    --status-neutral: #6B7280;
    --status-neutral-bg: #F3F4F6;
    --status-neutral-text: #374151;
    --status-neutral-border: rgba(107, 114, 128, 0.25);
    --status-neutral-glow: rgba(107, 114, 128, 0.35);
}

body {
    margin: 0;
    padding: 0;
    font-family: var(--font-primary);
    background-color: var(--admin-bg);
    color: var(--text-color);
}

/* ── Layout ─────────────────────────────────────────────────── */

.admin-layout {
    display: flex;
    min-height: 100vh;
    min-height: -webkit-fill-available;
    position: relative;
}

/* Main Content */
.admin-main {
    flex-grow: 1;
    margin-left: var(--admin-sidebar-width);
    display: flex;
    flex-direction: column;
    min-width: 0;
    width: calc(100% - var(--admin-sidebar-width));
    transition: margin-left 0.3s ease, width 0.3s ease;
}

.admin-header {
    height: var(--admin-header-height);
    background-color: white;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 2rem;
    padding-top: env(safe-area-inset-top, 0);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    position: sticky;
    top: 0;
    z-index: 900;
}

.admin-header-left {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
}

.admin-header-actions {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
}

/* Tout conteneur ou wrapper dans header_actions hérite automatiquement du stretch et du gap */
.admin-header-actions > .u-flex,
.admin-header-actions > div {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
}

/* Les formulaires de recherche ou d'actions s'étirent également de manière fluide */
.admin-header-actions form,
.admin-header-actions > .u-flex form,
.admin-header-actions > div form {
    display: flex;
    align-items: stretch;
    margin: 0;
}

.admin-header-actions .form-input,
.admin-header-actions .admin-btn,
.admin-header-actions button,
.admin-header-actions a.admin-btn {
    box-sizing: border-box;
}

.admin-header-title h1 {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-section-title {
    margin: 0.8rem 0;
    font-size: 1.1rem;
    font-weight: 600;
}

.admin-section-title .lucide {
    height: 18px;
    width: 18px;
    vertical-align: -2px;
    stroke-width: 2.2;
    color: var(--grey-1);
    margin-right: 0.25rem
}

.admin-content {
    padding: 2rem;
    padding-bottom: calc(2rem + env(safe-area-inset-bottom, 0));
    flex-grow: 1;
}

/* ── Responsive Tablette & iPadOS (Portrait & Paysage compact dont iPad mini 1133px) ── */
@media (max-width: 1200px) {
    .admin-main {
        margin-left: 0;
        width: 100%;
    }

    .admin-header {
        padding: 0.5rem 1.25rem;
        padding-left: calc(1.25rem + env(safe-area-inset-left, 0));
        padding-right: calc(1.25rem + env(safe-area-inset-right, 0));
        padding-top: env(safe-area-inset-top, 0);
        height: auto;
        min-height: 56px;
    }

    .admin-content {
        padding: 1.25rem;
        padding-left: calc(1.25rem + env(safe-area-inset-left, 0));
        padding-right: calc(1.25rem + env(safe-area-inset-right, 0));
        padding-bottom: calc(1.5rem + env(safe-area-inset-bottom, 0));
    }

/* Éviter le zoom automatique intempestif de Safari iPadOS au focus des champs */
    .form-input,
    .form-select,
    select,
    textarea,
    input[type="text"],
    input[type="number"],
    input[type="email"],
    input[type="search"],
    input[type="tel"] {
        font-size: 16px !important;
    }
}

/* ── Smartphone & Écrans Compacts (≤ 768px) ── */
@media (max-width: 768px) {
    .admin-header {
        padding: 0.6rem 0.85rem;
        padding-left: max(0.85rem, env(safe-area-inset-left, 0));
        padding-right: max(0.85rem, env(safe-area-inset-right, 0));
        padding-top: max(0.6rem, env(safe-area-inset-top, 0));
        min-height: 52px;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .admin-header-left {
        gap: 0.65rem;
        flex: 1 1 auto;
        min-width: 0;
    }

    .admin-header-title h1 {
        font-size: 1.1rem;
    }

    .admin-header-actions {
        width: 100%;
        justify-content: flex-start;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .admin-header-actions form {
        flex: 1 1 auto;
        min-width: 140px;
    }

    .admin-header-actions .form-input {
        width: 100% !important;
    }

    .admin-content {
        padding: 0.85rem;
        padding-left: max(0.85rem, env(safe-area-inset-left, 0));
        padding-right: max(0.85rem, env(safe-area-inset-right, 0));
        padding-bottom: max(1.5rem, calc(1.5rem + env(safe-area-inset-bottom, 0)));
    }
}

@media (max-height: 800px) and (orientation: landscape) {
    .admin-header {
        min-height: 52px;
        padding-top: max(0.4rem, env(safe-area-inset-top, 0));
        padding-bottom: 0.4rem;
    }

    .admin-content {
        padding-top: 1rem;
    }
}

/* ── css/admin/admin-sidebar.css ── */
/* ── Admin Sidebar ────────────────────────────────────────────── */

.admin-sidebar {
    width: var(--admin-sidebar-width);
    background-color: var(--admin-sidebar-bg);
    color: white;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    z-index: 1000;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-sizing: border-box;
}

.admin-sidebar-header {
    padding: 1.5rem 1.75rem;
    text-align: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    position: relative;
}

.admin-sidebar-logo {
    max-width: 180px;
}

.admin-nav {
    overflow: scroll;
    scrollbar-width: none;
    flex-grow: 1;
    padding: 1.5rem 0;
}

.admin-nav-item {
    display: block;
    padding: 1rem 2rem;
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    font-weight: 500;
    transition: all 0.2s;
    border-left: 4px solid transparent;
}

.admin-nav-item:hover {
    background-color: rgba(255, 255, 255, 0.05);
    color: var(--admin-accent);
}

.admin-nav-item.active {
    background-color: rgba(255, 255, 255, 0.1);
    color: var(--admin-accent);
    border-left-color: var(--admin-accent);
}

/* Sidebar Nav Dropdowns */
.admin-nav-group {
    display: flex;
    flex-direction: column;
}

.admin-nav-group-trigger {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 2rem;
    color: rgba(255, 255, 255, 0.7);
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    border-left: 4px solid transparent;
}

.admin-nav-group-trigger:hover {
    background-color: rgba(255, 255, 255, 0.05);
    color: var(--admin-accent);
}

.admin-nav-group-trigger .arrow {
    font-size: 0.6rem;
    color: rgba(255, 255, 255, 0.5);
    transition: transform 0.2s;
}

.admin-nav-group.open .admin-nav-group-trigger .arrow {
    transform: rotate(180deg);
}

.admin-nav-group.open .admin-nav-group-trigger {
    color: var(--white-1);
}

.admin-nav-group-items {
    display: none;
    flex-direction: column;
    background-color: rgba(0, 0, 0, 0.2);
}

.admin-nav-group.open .admin-nav-group-items {
    display: flex;
}

/* Indentation for sub-items */
.admin-nav-group-items .admin-nav-item {
    padding-left: 3rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    font-size: 0.9em;
    display: flex;
    gap: 5px;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
}

.admin-sidebar-footer {
    padding: 1.5rem 2rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.logout-link {
    color: #ff4b2b;
    text-decoration: none;
    font-weight: 600;
    display: flex;
    align-items: center;
}

.admin-header-user {
    padding-top: 1rem;
    display: flex;
    text-align: center;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}

.admin-header-user-name {
    font-weight: 600;
}

.admin-header-user-role {
    font-size: 0.6rem !important;
    text-transform: capitalize;
}

.admin-dev-role-form {
    margin: 0;
    display: inline-flex;
    align-items: center;
}

.admin-dev-role-wrapper {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.admin-dev-role-select {
    cursor: pointer;
    border: 1px dashed rgba(0, 0, 0, 0.25) !important;
    outline: none;
    appearance: none;
    text-align: center;
    -webkit-appearance: none;
    padding-right: 1rem !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 24 24' fill='none' stroke='%23444' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.25rem center;
    transition: all 0.2s ease;
}

.admin-dev-role-select:hover,
.admin-dev-role-select:focus {
    border-color: rgba(0, 0, 0, 0.6) !important;
    box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.25);
}

/* ── Bouton Toggle Hamburger (Header) ────────────────────────── */
.admin-sidebar-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    background: transparent;
    border: 1px solid var(--grey-border);
    border-radius: 8px;
    cursor: pointer;
    flex-shrink: 0;
    transition: background-color 0.2s ease, border-color 0.2s ease;
    touch-action: manipulation;
}

.admin-sidebar-toggle:hover,
.admin-sidebar-toggle:focus {
    background-color: var(--white-3);
    border-color: var(--grey-2);
}

.admin-sidebar-toggle-bar {
    display: block;
    width: 20px;
    height: 2px;
    background-color: var(--grey-1);
    border-radius: 2px;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

/* ── Bouton Fermer Sidebar (Mobile / Tablette) ───────────────── */
.admin-sidebar-close {
    display: none;
}

/* ── Backdrop / Voile d'obscurcissement pour tablette ────────── */
.admin-sidebar-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 998;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.admin-sidebar-backdrop.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/* ── Mode Tiroir Écrans Tablettes (iPad Portrait & Paysage dont iPad mini 1133px) ──── */
@media (max-width: 1200px) {
    .admin-sidebar-toggle {
        display: inline-flex;
    }

    .admin-sidebar {
        width: 300px;
        max-width: 85vw;
        transform: translateX(-100%);
        box-shadow: none;
        padding-top: max(1rem, env(safe-area-inset-top, 0));
        padding-bottom: max(1rem, env(safe-area-inset-bottom, 0));
        padding-left: max(0.5rem, env(safe-area-inset-left, 0));
    }

    .admin-sidebar.is-open {
        transform: translateX(0);
        box-shadow: 10px 0 40px rgba(0, 0, 0, 0.5);
    }

    .admin-sidebar-close {
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        right: 1rem;
        top: 1.25rem;
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
        background: rgba(255, 255, 255, 0.15);
        color: white;
        border: none;
        border-radius: 50%;
        font-size: 1.5rem;
        line-height: 1;
        cursor: pointer;
        transition: background-color 0.2s ease;
        touch-action: manipulation;
    }

    .admin-sidebar-close:hover,
    .admin-sidebar-close:active {
        background: rgba(255, 255, 255, 0.3);
    }
}

/* ── css/admin/admin-components.css ── */
/* ── Admin Components: Cards, Buttons, Flash, Badges, Tables, Checkboxes, Forms ── */

/* Cards */
.admin-card {
    background: white;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    padding: 1.5rem;
    /* margin: 1rem 0; */
}

.admin-card-title {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* Buttons */
.admin-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.2rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s;
    border: 1px solid transparent;
    font-size: 0.9rem;
    white-space: nowrap;
}

.admin-btn-primary {
    background-color: var(--grey-1);
    color: white;
    border: 1px solid var(--grey-1);
}

.admin-btn-primary:hover {
    background-color: var(--admin-accent);
    color: var(--grey-1);
    border-color: var(--admin-accent);
}

.admin-btn-secondary {
    background-color: white;
    color: var(--grey-1);
    border-color: var(--white-3);
    border: 1px solid var(--white-3);
}

.admin-btn-secondary:hover {
    background-color: var(--yellow-1);
    color: var(--grey-1);
}

.admin-btn-tertiary {
    background-color: var(--yellow);
    color: var(--grey-1);
}

.admin-btn-tertiary:hover {
    background-color: white;
    color: var(--grey-1);
}

.admin-btn-quaternary {
    background-color: white;
    color: var(--grey-1);
    border-color: var(--white-3);
    border: 1px solid var(--white-3);
}

.admin-btn-quaternary:hover {
    background-color: var(--grey-1);
    color: var(--white-1);
}

.admin-btn:disabled,
.admin-btn.is-disabled {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    box-shadow: none !important;
}

/* ── Boutons de filtrage / Filter Pills & Icônes Boutons ── */
.admin-btn .lucide,
.filter-pill .lucide,
.badge-pill .lucide,
.badge-pill svg.lucide {
    width: 13px;
    height: 13px;
    vertical-align: -2px;
    margin-right: 4px;
}

.badge-pill--icon-only .lucide,
.badge-pill--icon-only svg.lucide,
.projects-badge-link .lucide,
.projects-badge-link svg.lucide {
    margin-right: 0 !important;
}

.filter-pill.active:hover,
.filter-pill.active:focus {
    background-color: var(--grey-1) !important;
    color: white !important;
    border-color: var(--white-3) !important;
}

.filter-pill .lucide-circle-check {
    color: var(--status-success, #15803D);
}

.filter-pill .lucide-package-check {
    color: var(--entity-checkin, #3B82F6);
}

.filter-pill .lucide-truck {
    color: var(--entity-checkout, #15803D);
}

.filter-pill .lucide-clapperboard {
    color: var(--entity-project, hsl(38, 92%, 50%));
}

.filter-pill .lucide-wrench {
    color: var(--entity-incident, #EF4444);
}

.filter-pill .lucide-boxes {
    color: var(--status-info, #3B82F6);
}

.filter-pill .lucide-shield-check {
    color: var(--status-danger, #EF4444);
}

.btn-disabled {
    filter: grayscale(1);
    cursor: not-allowed;
}

/* Flash Messages (Toasts) */
.admin-flash-container {
    position: fixed;
    bottom: 1rem;
    right: 1rem;
    z-index: 2000;
}

.admin-flash-item {
    background: white;
    padding: 1rem 1.5rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
    animation: slideIn 0.3s ease-out;
    min-width: 300px;
}

@keyframes slideIn {
    from {
        transform: translateX(100%);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

.flash-error,
.flash-danger {
    border-left: 4px solid var(--status-danger) !important;
}

.flash-success {
    border-left: 4px solid var(--status-success) !important;
}

.flash-warning {
    border-left: 4px solid var(--status-warning) !important;
}

.flash-info {
    border-left: 4px solid var(--status-info) !important;
}

/* Badge Select (custom dropdowns) */
.badge-select {
    position: relative;
}

.badge-select-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--grey-4, #e0e0e0);
    background: #fff;
    cursor: pointer;
    min-height: 38px;
    transition: border-color 0.15s;
}

.badge-select-trigger:hover {
    border-color: var(--grey-3, #999);
}

.badge-select-trigger .arrow {
    font-size: 0.7rem;
    color: var(--grey-2, #888);
    transition: transform 0.2s;
}

.badge-select.open .arrow {
    transform: rotate(180deg);
}

.badge-select-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid var(--grey-4, #e0e0e0);
    border-radius: 8px;
    padding: 0.35rem;
    z-index: 50;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.badge-select.open .badge-select-dropdown {
    display: block;
}

.badge-select-option {
    display: block;
    width: 100%;
    padding: 0.45rem 0.6rem;
    border: none;
    background: none;
    cursor: pointer;
    text-align: left;
    border-radius: 6px;
    transition: background 0.1s;
}

.badge-select-option:hover {
    background: var(--admin-bg, #f5f5f5);
}

/* ===========================
   Badge Pills
   =========================== */

/* --- Base Styles --- */
.badge-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.65rem;
    margin: 0.2rem 0;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 500;
    white-space: nowrap;
    border: none;
    text-decoration: none;
    transition: opacity 0.15s ease;
}

a.badge-pill:hover {
    text-decoration: none;
    opacity: 0.85;
}



.incident-signature-subline {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.7rem;
    color: var(--grey-text, #64748b);
    margin-top: 0.2rem;
}

.incident-signature-subline .lucide {
    width: 11px;
    height: 11px;
    vertical-align: -1px;
    stroke-width: 2.5px;
}

/* --- Global Statuses (Design System Tokens) --- */
.badge-pill[data-val="ok"],
.badge-pill[data-val="signed"],
.badge-pill[data-val="cloture"],
.badge-pill[data-val="resolu"] {
    background: var(--status-success-bg);
    color: var(--status-success-text);
    border: 1px solid var(--status-success-border, rgba(16, 185, 129, 0.3));
}

.badge-pill[data-val="critical"],
.badge-pill[data-val="critique"],
.badge-pill[data-val="danger"] {
    background: var(--status-danger-bg);
    color: var(--status-danger-text);
    border: 1px solid rgba(239, 68, 68, 0.3);
}



.badge-pill[data-val="neutral"] {
    background: var(--status-neutral-bg);
    color: var(--status-neutral-text);
    border: 1px solid var(--status-neutral-border, rgba(107, 114, 128, 0.25));
}

/* --- Shoot & Project Operational Statuses (Charte Belle Vitesse) --- */
.badge-pill[data-val="in_progress"] {
    background: var(--entity-project-bg);
    color: var(--entity-project-text);
    border: 1px solid var(--entity-project-border);
}

.badge-pill[data-val="upcoming"] {
    background: var(--status-info-bg);
    color: var(--status-info-text);
    border: 1px solid var(--status-info-border, rgba(59, 130, 246, 0.3));
}

.badge-pill[data-val="standby"],
.badge-pill[data-val="stand-by"],
.badge-pill[data-val="immobilise"],
.badge-pill[data-val="immobilisé"],
.badge-pill[data-val="Immobilisé"] {
    background: var(--status-warning-bg);
    color: var(--status-warning-text);
    border: 1px solid var(--status-warning-border, rgba(245, 158, 11, 0.35));
}

.badge-pill[data-val="completed"] {
    background: var(--status-neutral-bg);
    color: var(--status-neutral-text);
    border: 1px solid var(--status-neutral-border, rgba(107, 114, 128, 0.25));
}

/* --- Equipment Check Statuses --- */
.badge-pill[data-val="warning"],
.badge-pill[data-val="modere"],
.badge-pill[data-val="modéré"] {
    background: var(--status-warning-bg);
    color: var(--status-warning-text);
    border: 1px solid var(--status-warning-border, rgba(245, 158, 11, 0.35));
}

.badge-pill[data-val="to_check"],
.badge-pill[data-val="À contrôler"],
.badge-pill[data-val="à contrôler"],
.badge-pill[data-val="a controler"],
.badge-pill[data-val="A controler"] {
    background: var(--status-neutral-bg);
    color: var(--status-neutral-text);
    border: 1px solid var(--status-neutral-border, rgba(107, 114, 128, 0.25));
}

.badge-pill[data-val="waiting"],
.badge-pill[data-val="en attente"],
.badge-pill[data-val="En attente"] {
    background: var(--status-neutral-bg);
    color: var(--status-neutral-text);
    border: 1px solid var(--status-neutral-border, rgba(107, 114, 128, 0.25));
}



/* --- Document / Waiver / Inspection Statuses --- */
.badge-pill[data-val="to_generate"],
.badge-pill[data-val="À générer"],
.badge-pill[data-val="à générer"],
.badge-pill[data-val="a générer"],
.badge-pill[data-val="A générer"],
.badge-pill[data-val="Non générée"],
.badge-pill[data-val="non générée"],
.badge-pill[data-val="Non généré"],
.badge-pill[data-val="non généré"] {
    background: var(--status-neutral-bg);
    color: var(--status-neutral-text);
    border: 1px solid var(--status-neutral-border, rgba(107, 114, 128, 0.25));
}



.badge-pill[data-val="to_send"],
.badge-pill[data-val="À envoyer"],
.badge-pill[data-val="à envoyer"],
.badge-pill[data-val="a envoyer"],
.badge-pill[data-val="A envoyer"],
.badge-pill[data-val="envoyé"],
.badge-pill[data-val="Envoyé"] {
    background: var(--status-warning-bg);
    color: var(--status-warning-text);
    border: 1px solid var(--status-warning-border, rgba(245, 158, 11, 0.35));
}



.badge-pill[data-val="to_sign"],
.badge-pill[data-val="pending"],
.badge-pill[data-val="À signer"],
.badge-pill[data-val="à signer"],
.badge-pill[data-val="a signer"],
.badge-pill[data-val="A signer"] {
    background: var(--entity-waiver-bg);
    color: var(--entity-waiver-text);
    border: 1px solid var(--entity-waiver-border);
}

.badge-pill[data-val="assurance"] {
    background: var(--status-info-bg);
    color: var(--status-info-text);
    border: 1px solid var(--status-info-border, rgba(59, 130, 246, 0.3));
}



.badge-pill[data-val="signed"],
.badge-pill[data-val="Signé"],
.badge-pill[data-val="signé"],
.badge-pill[data-val="signe"],
.badge-pill[data-val="Signe"],
.badge-pill[data-val="approuvé"],
.badge-pill[data-val="Approuvé"],
.badge-pill[data-val="approved"],
.badge-pill[data-val="completed"] {
    background: var(--status-success-bg);
    color: var(--status-success-text);
    border: 1px solid var(--status-success-border, rgba(16, 185, 129, 0.3));
}



/* --- Timeline Event Types (Semantic Entity Badges) --- */
.badge-pill[data-val="checkout"] {
    background: var(--entity-checkout-bg);
    color: var(--entity-checkout-text);
    border: 1px solid var(--entity-checkout-border);
}

.badge-pill[data-val="checkin"] {
    background: var(--entity-checkin-bg);
    color: var(--entity-checkin-text);
    border: 1px solid var(--entity-checkin-border);
}

.badge-pill[data-val="project"],
.badge-pill[data-val="tournage"] {
    background: var(--entity-project-bg);
    color: var(--entity-project-text);
    border: 1px solid var(--entity-project-border);
}

.badge-pill[data-val="incident"] {
    background: var(--entity-incident-bg);
    color: var(--entity-incident-text);
    border: 1px solid var(--entity-incident-border);
}

.badge-pill[data-val="waiver"] {
    background: var(--entity-waiver-bg);
    color: var(--entity-waiver-text);
    border: 1px solid var(--entity-waiver-border);
}

/* --- Vehicle Status Badge (Options des sélecteurs riches de véhicules) --- */
.vehicle-status-badge,
.badge-pill.vehicle-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    font-weight: 500;
    line-height: 1.2;
    padding: 0.15rem 0.55rem;
    margin: 0;
    border-radius: 9999px;
    white-space: nowrap;
    background: var(--status-neutral-bg, #F1F5F9);
    color: var(--status-neutral-text, #475569);
    border: 1px solid rgba(100, 116, 139, 0.25);
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.vehicle-status-badge[data-val="neutral"],
.badge-pill.vehicle-status-badge[data-val="neutral"],
.vehicle-status-badge[data-val="to_check"],
.badge-pill.vehicle-status-badge[data-val="to_check"],
.vehicle-status-badge[data-val="À contrôler"],
.badge-pill.vehicle-status-badge[data-val="À contrôler"] {
    background: var(--status-neutral-bg, #F1F5F9);
    color: var(--status-neutral-text, #475569);
    border: 1px solid rgba(100, 116, 139, 0.25);
}

.vehicle-status-badge[data-val="checkin"],
.badge-pill.vehicle-status-badge[data-val="checkin"] {
    background: var(--entity-checkin-bg, #DBEAFE);
    color: var(--entity-checkin-text, #1E40AF);
    border: 1px solid var(--entity-checkin-border, rgba(59, 130, 246, 0.3));
}

.vehicle-status-badge[data-val="checkout"],
.badge-pill.vehicle-status-badge[data-val="checkout"] {
    background: var(--entity-checkout-bg, #DCFCE7);
    color: var(--entity-checkout-text, #14532D);
    border: 1px solid var(--entity-checkout-border, rgba(21, 128, 61, 0.3));
}

.vehicle-status-badge[data-val="ok"],
.badge-pill.vehicle-status-badge[data-val="ok"],
.vehicle-status-badge[data-val="signed"],
.badge-pill.vehicle-status-badge[data-val="signed"],
.vehicle-status-badge[data-val="validated"],
.badge-pill.vehicle-status-badge[data-val="validated"],
.vehicle-status-badge[data-val="success"],
.badge-pill.vehicle-status-badge[data-val="success"] {
    background: var(--status-success-bg, #DCFCE7);
    color: var(--status-success-text, #14532D);
    border: 1px solid var(--status-success-border, rgba(21, 128, 61, 0.3));
}

.vehicle-status-badge[data-val="warning"],
.badge-pill.vehicle-status-badge[data-val="warning"],
.vehicle-status-badge[data-val="in_progress"],
.badge-pill.vehicle-status-badge[data-val="in_progress"],
.vehicle-status-badge[data-val="pending"],
.badge-pill.vehicle-status-badge[data-val="pending"] {
    background: var(--status-warning-bg, #FEF3C7);
    color: var(--status-warning-text, #B45309);
    border: 1px solid var(--status-warning-border, rgba(245, 158, 11, 0.35));
}

.vehicle-status-badge[data-val="danger"],
.badge-pill.vehicle-status-badge[data-val="danger"],
.vehicle-status-badge[data-val="critical"],
.badge-pill.vehicle-status-badge[data-val="critical"] {
    background: var(--status-danger-bg, #FEE2E2);
    color: var(--status-danger-text, #991B1B);
    border: 1px solid rgba(239, 68, 68, 0.3);
}

/* --- Vehicle Context Alert (Formulaires Départs & Retours) --- */
.vehicle-context-container {
    position: relative;
    width: 100%;
}

.vehicle-context-alert {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    width: 100%;
    box-sizing: border-box;
    z-index: 50;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 0.95rem 1.15rem;

    background: var(--status-warning-bg, #FEF3C7);
    border: 1px solid var(--status-warning-border, rgba(245, 158, 11, 0.25));
    border-left: 4px solid var(--status-warning, #F59E0B);
    box-shadow: 0 10px 25px -5px rgba(245, 158, 11, 0.15), 0 8px 10px -6px rgba(0, 0, 0, 0.04);
}

.vehicle-context-alert.is-visible {
    display: flex;
    animation: vehicleAlertPop 0.22s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes vehicleAlertPop {
    from {
        opacity: 0;
        transform: translateY(-6px) scale(0.99);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.vehicle-context-alert-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: rgba(245, 158, 11, 0.16);
    color: var(--status-warning, #F59E0B);
    flex-shrink: 0;
}

.vehicle-context-alert-icon i,
.vehicle-context-alert-icon svg {
    width: 18px;
    height: 18px;
    stroke-width: 2.2px;
}

.vehicle-context-alert-content {
    flex: 1;
    min-width: 0;
}

.vehicle-context-alert-title {
    font-weight: 600;
    font-size: 0.875rem;
    letter-spacing: -0.01em;
    color: var(--status-warning-text, #B45309);
    margin-bottom: 0.25rem;
}

.vehicle-context-alert-desc {
    font-size: 0.6rem;
    color: var(--status-warning-text, #B45309);
    opacity: 0.95;
    line-height: 1.45;
}

.vehicle-context-alert-action {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(245, 158, 11, 0.2);
}

.vehicle-context-alert-checkbox {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.5rem 0.75rem;
    background: rgba(255, 255, 255, 0.65);
    border: 1px solid rgba(245, 158, 11, 0.25);
    cursor: pointer;
    font-weight: 500;
    font-size: 0.6rem;
    color: var(--status-warning-text, #B45309);
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.vehicle-context-alert-checkbox:hover {
    background: rgba(255, 255, 255, 0.9);
    border-color: rgba(245, 158, 11, 0.4);
}

.vehicle-context-alert-checkbox input[type="checkbox"] {
    accent-color: var(--status-warning, #F59E0B);
}


/* --- User Roles & Contacts --- */
.badge-pill[data-val="Super Administrateur"],
.badge-pill[data-val="super administrateur"],
.badge-pill[data-val="Super Administrator"],
.badge-pill[data-val="super administrator"] {
    background: var(--status-warning-bg);
    color: var(--status-warning-text);
    border: 1px solid rgba(217, 119, 6, 0.3);
}

.badge-pill[data-val="Administrateur"],
.badge-pill[data-val="administrateur"],
.badge-pill[data-val="Administrator"],
.badge-pill[data-val="administrator"] {
    background: var(--entity-waiver-bg);
    color: var(--entity-waiver-text);
    border: 1px solid var(--entity-waiver-border);
}

.badge-pill[data-val="Manager"],
.badge-pill[data-val="manager"] {
    background: var(--entity-checkin-bg);
    color: var(--entity-checkin-text);
    border: 1px solid var(--entity-checkin-border);
}

.badge-pill[data-val="Commercial"],
.badge-pill[data-val="commercial"] {
    background: var(--entity-checkout-bg);
    color: var(--entity-checkout-text);
    border: 1px solid var(--entity-checkout-border);
}

.badge-pill[data-val="Technicien"],
.badge-pill[data-val="technicien"],
.badge-pill[data-val="User"],
.badge-pill[data-val="user"] {
    background: var(--status-warning-bg);
    color: var(--status-warning-text);
    border: 1px solid var(--status-warning-border, rgba(245, 158, 11, 0.35));
}

.badge-pill[data-val="Freelance"] {
    background: var(--status-info-bg);
    color: var(--status-info-text);
    border: 1px solid var(--status-info-border, rgba(2, 132, 199, 0.3));
}

.badge-pill[data-val="Production"] {
    background: var(--entity-project-bg);
    color: var(--entity-project-text);
    border: 1px solid var(--entity-project-border);
}

/* --- Misc --- */
.badge-pill[data-val="incoming"] {
    background: var(--status-warning-bg);
    color: var(--status-warning-text);
    border: 1px solid var(--status-warning-border, rgba(245, 158, 11, 0.35));
    font-size: 0.65rem;
    padding: 0.1rem 0.35rem;
    margin: 0.1rem 0;
}



.badge-pill[data-val="download-available"] {
    background: var(--status-info-bg);
    color: var(--status-info-text);
    border: 1px solid var(--status-info-border, rgba(59, 130, 246, 0.3));
    stroke-width: 2.5;
    transition: background 0.15s ease, color 0.15s ease, opacity 0.15s ease;
}

a:hover>.badge-pill[data-val="download-available"] {
    background: var(--status-info-bg);
    color: var(--status-info-text);
    opacity: 0.85;
}

.badge-pill[data-val="download-unavailable"] {
    background: var(--neutral-bg);
    color: var(--neutral-color);
    stroke-width: 2.5;
}

.badge-pill[data-val="link"] {
    background: #dbeafe;
    color: #1e40af;
    stroke-width: 2.5;
    transition: background 0.15s ease, color 0.15s ease;
}

.badge-pill[data-val="link"]:hover {
    background: #bfdbfe;
    color: #1e3a8a;
}

/* --- Reminder Pill Badge (Indicateur purement informatif) --- */
.badge-reminder {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.15rem 0.5rem;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.3;
    border-radius: 9999px;
    background: #fef3c7;
    color: #92400e;
    border: none;
    box-shadow: none;
    white-space: nowrap;
    cursor: default;
    user-select: none;
}

.badge-reminder-icon {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
    color: #b45309;
}

/* Admin Badges (legacy) */
.admin-badge {
    display: inline-block;
    padding: 0.25rem 0.6rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
}

.badge-signed {
    background-color: var(--status-success-bg, #DCFCE7);
    color: var(--status-success-text, #14532D);
}

.badge-pending {
    background-color: #fef3c7;
    color: #92400e;
}

.badge-default {
    background-color: #f3f4f6;
    color: #374151;
}

/* Document ID (Unique IDs for vehicles/inspections) */
.checkout-doc-id,
.checkin-doc-id {
    white-space: nowrap;
    font-family: monospace;
    font-size: 6pt;
    background-color: var(--white-3);
    padding: 2pt 6pt;
    border-radius: 2pt;
    margin-top: 6pt;
    width: fit-content;
    vertical-align: middle;
}

/* Tables */
.admin-table-container {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.admin-table {
    width: 100%;
    border-collapse: collapse;
}

.admin-table th {
    text-align: left;
    padding: 1rem;
    background-color: var(--white-3);
    font-weight: 600;
    font-size: 0.65rem;
    text-transform: uppercase;
}

.admin-table th.sortable {
    cursor: pointer;
    user-select: none;
    transition: color 0.15s;
}

.admin-table th.sortable:hover {
    color: var(--admin-accent);
}

.admin-table th.sortable::after {
    content: "▼";
    font-size: 0.5rem;
    margin-left: 0.4rem;
    color: var(--grey-2, #888);
    opacity: 0.3;
    transition: transform 0.2s, opacity 0.2s;
    display: inline-block;
}

.admin-table th.sortable.asc::after {
    content: "▲";
    opacity: 1;
    color: var(--admin-accent);
}

.admin-table th.sortable.desc::after {
    content: "▼";
    opacity: 1;
    color: var(--admin-accent);
}

.admin-table th:last-child {
    text-align: center;
}

.admin-table td {
    padding: 1rem;
    border-bottom: 1px solid var(--white-3);
    vertical-align: middle;
}

.admin-table td:last-child {
    text-align: center;
}

#calendarTable.admin-table td:last-child {
    width: 20vw;
}

.admin-table tr:hover {
    background-color: rgba(0, 0, 0, 0.02);
}


/* ===========================
   Custom Checkbox 
   =========================== */

.admin-table input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 22px;
    height: 22px;
    min-width: 22px;
    border-radius: 5px;
    border: 2px solid #ffc845;
    background-color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    position: relative;
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Checkmark icon */
.admin-table input[type="checkbox"]::after {
    content: '';
    display: block;
    width: 4px;
    height: 8px;
    border: 2.5px solid transparent;
    border-top: none;
    border-left: none;
    transform: rotate(45deg) translateY(-1px) translateX(-1px);
    transition: border-color 0.15s ease;
}

/* Hover */
.admin-table input[type="checkbox"]:hover {
    border-color: #e6a800;
    box-shadow: 0 0 0 4px rgba(255, 200, 69, 0.15);
}

/* Checked */
.admin-table input[type="checkbox"]:checked {
    background-color: #ffc845;
    border-color: #ffc845;
}

.admin-table input[type="checkbox"]:checked::after {
    border-color: #fff;
}

/* Focus (accessibilité) */
.admin-table input[type="checkbox"]:focus-visible {
    outline: none;
    box-shadow: 0 0 0 4px rgba(255, 200, 69, 0.35);
}

/* Disabled */
.admin-table input[type="checkbox"]:disabled {
    border-color: #ddd;
    background-color: #f5f5f5;
    cursor: not-allowed;
}

.admin-table input[type="checkbox"]:disabled:checked {
    background-color: #ffd97a;
    border-color: #ffd97a;
}

/* Forms */
.form-group {
    position: relative;
    display: grid;
    align-content: space-between;
    margin-bottom: 1.5rem;
    text-align: left;
}

.form-label {
    display: block;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
    color: var(--grey-2);
}

.form-input {
    width: 100%;
    padding: 0.6rem 1.2rem;
    border: 1px solid var(--white-3);
    font-size: 0.9rem;
    box-sizing: border-box;
    caret-color: var(--admin-accent);
    transition: all 0.2s ease;
    line-height: 1.5 !important;
}

.form-input:focus {
    outline: none;
    box-shadow: none;
    border: 1px solid var(--admin-accent);
    background-color: #ffc84510;
}

.form-input:disabled,
input.form-input:disabled {
    background-color: var(--grey-5, #f8fafc) !important;
    border-color: var(--white-3) !important;
    color: var(--grey-4, #94a3b8) !important;
    cursor: not-allowed !important;
    opacity: 0.7;
}

/* ── Sélecteurs Déroulants Natifs (Alignés sur le style Select2) ── */
select.form-input,
.form-select,
.form-group select:not(.badge-select-pill select):not(.admin-dev-role-select):not(.select2-hidden-accessible):not(.u-disabled-select) {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    display: block;
    width: 100%;
    height: 42px;
    padding: 0.6rem 2.25rem 0.6rem 0.8rem;
    font-size: 0.9rem;
    font-family: inherit;
    font-weight: 400;
    line-height: 1.5;
    color: var(--grey-1, #1e293b);
    background-color: #ffffff;
    border: 1px solid var(--white-3);
    border-radius: 0;
    box-sizing: border-box;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpolygon points='1 1, 9 1, 5 6' fill='%23888888'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 10px 6px;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

select.form-input:hover:not(:disabled),
.form-select:hover:not(:disabled),
.form-group select:not(.badge-select-pill select):not(.admin-dev-role-select):not(.select2-hidden-accessible):not(.u-disabled-select):hover:not(:disabled) {
    border-color: var(--grey-4, #94a3b8);
}

select.form-input:focus,
select.form-input:focus-visible,
.form-select:focus,
.form-select:focus-visible,
.form-group select:not(.badge-select-pill select):not(.admin-dev-role-select):not(.select2-hidden-accessible):not(.u-disabled-select):focus,
.form-group select:not(.badge-select-pill select):not(.admin-dev-role-select):not(.select2-hidden-accessible):not(.u-disabled-select):focus-visible {
    outline: none;
    box-shadow: none;
    border: 1px solid var(--admin-accent);
    background-color: #ffc84510;
}

select.form-input:disabled,
.form-select:disabled,
.form-group select:not(.badge-select-pill select):not(.admin-dev-role-select):not(.select2-hidden-accessible):not(.u-disabled-select):disabled {
    background-color: var(--grey-5, #f8fafc);
    border-color: var(--white-3);
    color: var(--grey-4, #94a3b8);
    cursor: not-allowed;
    opacity: 0.7;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpolygon points='1 1, 9 1, 5 6' fill='%23cccccc'/%3E%3C/svg%3E");
}

select.form-input::-ms-expand,
.form-select::-ms-expand {
    display: none;
}

select.form-input option,
.form-select option {
    background-color: #ffffff;
    color: var(--grey-1, #1e293b);
    padding: 0.5rem;
}

select.form-input optgroup,
.form-select optgroup {
    font-weight: 600;
    color: var(--grey-2, #475569);
    background-color: #ffffff;
}

input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 22px;
    height: 22px;
    min-width: 22px;
    border: 2px solid #ffc845;
    background-color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    position: relative;
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

input[type="checkbox"]::after {
    content: '';
    display: block;
    width: 4px;
    height: 8px;
    border: 2.5px solid transparent;
    border-top: none;
    border-left: none;
    transform: rotate(45deg) translateY(-1px) translateX(-1px);
    transition: border-color 0.15s ease;
}

input[type="checkbox"]:checked::after {
    border-color: #fff;
}

input[type="checkbox"]:checked {
    background-color: #ffc845;
    border-color: #ffc845;
}

.flash-messages {
    margin-bottom: 1rem;
    padding: 0.8rem;
    font-size: 0.9rem;
}

.flash-messages.flash-error {
    background-color: var(--red-bg);
    color: var(--red-error);
    border: 1px solid var(--red-border);
}

.flash-messages.flash-info {
    background-color: var(--blue-bg);
    color: var(--blue-info);
    border: 1px solid var(--blue-border);
}

.select2-container .select2-selection--single {
    width: 100%;
    font-weight: 400;
    padding: 0.8rem;
    border: 1px solid var(--white-3);
    font-size: 0.9rem;
    box-sizing: border-box;
    caret-color: var(--admin-accent);
    height: 42px;
    display: flex;
    align-items: center;
    padding-left: 0.5rem;
    border-radius: 0;
}

.select2-container .select2-selection--single:focus,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--single {
    border: 1px solid var(--admin-accent);
    background-color: #ffc84510;
    outline: none;
    box-shadow: none;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 100%;
}

/* Address Autocomplete Styles */
.address-suggestions {
    position: absolute;
    top: 64px;
    background: #fff;
    border: 1px solid var(--grey-4);
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    width: 100%;
    max-height: 200px;
    overflow-y: auto;
    z-index: 1000;
    display: none;
}

.suggestion-item {
    padding: 10px 12px;
    cursor: pointer;
    font-size: 0.9rem;
    border-bottom: 1px solid var(--white-3);
}

.suggestion-item:last-child {
    border-bottom: none;
}

.suggestion-item:hover {
    background-color: var(--white-2);
}

/* Custom File Upload */
.custom-file-upload {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.custom-file-upload input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

.custom-file-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.8rem 1.2rem;
    background-color: var(--white-2);
    border: 1px dashed var(--white-4);
    color: var(--grey-1);
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    border-radius: 4px;
    text-align: center;
}

.custom-file-label:hover {
    background-color: var(--white-3);
    border-color: var(--admin-accent);
    color: var(--admin-accent);
}

.file-name {
    font-size: 0.8rem;
    color: var(--grey-2);
    font-style: italic;
    word-break: break-all;
}

/* Modal */
.admin-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 3000;
    backdrop-filter: blur(4px);
}

.admin-modal-overlay.is-active {
    display: flex;
}

.admin-modal-container {
    background: white;
    width: 95%;
    max-width: 1400px;
    height: 90vh;
    border-radius: 8px;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
}

.admin-modal-container--sm {
    max-width: 480px;
    height: auto;
    max-height: 85vh;
}

.admin-modal-container--md {
    max-width: 720px;
    height: auto;
    max-height: 85vh;
}

.admin-modal-container--lg {
    max-width: 1000px;
    height: auto;
    max-height: 90vh;
}

.admin-modal-container--xl {
    max-width: 1400px;
    height: 90vh;
}

.admin-modal-header {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--border-color, #e2e8f0);
}

.admin-modal-body {
    padding: 1.5rem;
    overflow-y: auto;
}

.admin-modal-close {
    position: absolute;
    top: 1rem;
    right: 1.5rem;
    background: white;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    z-index: 10;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    transition: transform 0.2s;
}

.admin-modal-close:hover {
    transform: scale(1.1);
}

@media (max-width: 640px) {
    .admin-modal-container {
        width: 100%;
        max-width: 100%;
        height: 100vh;
        height: 100dvh;
        max-height: 100dvh;
        border-radius: 0;
    }

    .admin-modal-container--sm,
    .admin-modal-container--md,
    .admin-modal-container--lg,
    .admin-modal-container--xl {
        max-width: 100%;
        height: 100vh;
        height: 100dvh;
        max-height: 100dvh;
        border-radius: 0;
    }

    .admin-modal-header {
        padding: 1rem;
        padding-top: max(1rem, env(safe-area-inset-top, 0));
        padding-right: 3.5rem;
    }

    .admin-modal-body {
        padding: 1rem;
        padding-bottom: max(1.5rem, calc(1.5rem + env(safe-area-inset-bottom, 0)));
    }

    .admin-modal-close {
        top: max(0.75rem, env(safe-area-inset-top, 0));
        right: 1rem;
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
        touch-action: manipulation;
    }
}

.admin-modal-content {
    flex: 1;
    overflow-y: auto;
}

.admin-modal-iframe {
    width: 100%;
    height: 100%;
    border: none;
}

/* Feedback Box */
.feedback-box {
    display: none;
    margin-top: 1.5rem;
    padding: 1rem 1.25rem;
    border-radius: 8px;
    font-weight: 500;
    text-align: center;
    font-size: 0.95rem;
    line-height: 1.5;
}

.feedback-box svg,
.feedback-box i[data-lucide] {
    display: inline-block;
    vertical-align: -0.3em;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.4rem;
    flex-shrink: 0;
}

.feedback-box.success {
    background: var(--status-success-bg, #DCFCE7);
    color: var(--status-success-text, #14532D);
    border: 1px solid var(--status-success-border, rgba(21, 128, 61, 0.3));
}

.feedback-box.success svg,
.feedback-box.success i[data-lucide] {
    color: var(--status-success, #15803D);
    stroke: var(--status-success, #15803D);
}

.feedback-box.error {
    background: var(--status-danger-bg, #FEE2E2);
    color: var(--status-danger-text, #991B1B);
    border: 1px solid var(--status-danger-border, rgba(239, 68, 68, 0.3));
}

.feedback-box.error svg,
.feedback-box.error i[data-lucide] {
    color: var(--status-danger, #EF4444);
    stroke: var(--status-danger, #EF4444);
}

.feedback-box.neutral {
    background: var(--white-2);
    color: var(--grey-1);
    border: 1px solid var(--white-4);
}

/* ── TOGGLE SWITCH ─────────────────────────────────────────── */
.toggle-track {
    width: 36px;
    height: 18px;
    background: #e5e7eb;
    border-radius: 10px;
    position: relative;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
}

.toggle-handle {
    width: 14px;
    height: 14px;
    background: white;
    border-radius: 50%;
    position: absolute;
    top: 2px;
    left: 2px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.toggle-track.active {
    background: var(--yellow-1);
}

.toggle-track.active .toggle-handle {
    transform: translateX(18px);
}

/* ── INCIDENTS : MODALES & COMPOSANTS ───────────────────────── */
.incident-header-status-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding-bottom: 1.25rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid var(--white-3, #e9ecef);
}

.badge-select-pill-lg {
    font-size: 0.85rem !important;
    padding: 0.35rem 1.75rem 0.35rem 0.75rem !important;
}

.incident-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    padding: 1rem;
}

.incident-modal-card {
    background: #ffffff;
    border-radius: 8px;
    width: 100%;
    max-width: 520px;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.2);
    padding: 1.5rem;
    position: relative;
    max-height: 90vh;
    overflow-y: auto;
}

.incident-modal-close-btn {
    background: none;
    border: none;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    color: var(--grey-2, #64748b);
    padding: 0;
}

.incident-modal-close-btn:hover {
    color: #000;
}

.incident-canvas-wrapper {
    border: 2px dashed #cbd5e1;
    background: #f8fafc;
    border-radius: 6px;
    position: relative;
    overflow: hidden;
    height: 160px;
}

.incident-canvas-wrapper canvas {
    display: block;
    width: 100%;
    height: 100%;
    cursor: crosshair;
    touch-action: none;
}

/* ── TIMELINE HIÉRARCHIQUE & MISSIONS ────────────────────────── */
.view-toggle-container {
    display: inline-flex;
    gap: 0.25rem;
    background: #f1f5f9;
    padding: 3px;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
}

.view-toggle-btn {
    border: none;
    background: transparent;
    padding: 0.4rem 0.85rem;
    font-size: 0.82rem;
    font-weight: 600;
    border-radius: 6px;
    cursor: pointer;
    color: #64748b;
    transition: all 0.15s ease;
}

.view-toggle-btn.active {
    background: #ffffff;
    color: #0f172a;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

/* ═══════════ VUE PAR TOURNAGE FINE & ÉLÉGANTE (ALIGNÉE SUR LA VUE CHRONOLOGIQUE) ═══════════ */
.mission-card {
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.mission-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

/* Ligne fine d'avancement du cycle de mission (style discret) */
.mission-cycle-bar {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    flex-wrap: wrap;
    font-size: 0.76rem;
    color: #64748b;
    margin-top: 0.75rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--white-3, rgba(0, 0, 0, 0.06));
}

.mission-cycle-step {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.mission-cycle-dot {
    color: #cbd5e1;
    font-size: 0.7rem;
}

/* Panneau sous-timeline indenté (Niveau 2) */
.mission-sub-timeline {
    position: relative;
    margin-left: 12px;
    padding-left: 28px;
    margin-top: 10px;
    border-left: 2px dashed rgba(0, 0, 0, 0.15);
}

.mission-sub-item {
    position: relative;
    margin-bottom: 10px;
}

.mission-sub-item:last-child {
    margin-bottom: 2px;
}

.mission-sub-node {
    position: absolute;
    left: -40px;
    top: 0;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    z-index: 2;
    border: 2px solid #ffffff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}

.mission-sub-node.node-checkout {
    background: var(--entity-checkout, #15803D);
    color: #ffffff;
    box-shadow: 0 1px 3px var(--entity-checkout-glow, rgba(21, 128, 61, 0.4));
}

.mission-sub-node.node-checkin {
    background: var(--entity-checkin, #3b82f6);
    color: #ffffff;
    box-shadow: 0 1px 3px var(--entity-checkin-glow, rgba(59, 130, 246, 0.4));
}

.mission-sub-node.node-incident {
    background: var(--entity-incident, #ef4444);
    color: #ffffff;
    box-shadow: 0 1px 3px var(--entity-incident-glow, rgba(239, 68, 68, 0.4));
}

.mission-sub-node.node-project {
    background: var(--entity-project, #f59e0b);
    color: #ffffff;
    box-shadow: 0 1px 3px var(--entity-project-glow, rgba(245, 158, 11, 0.4));
}

.timeline-item.is-hidden {
    display: none !important;
}

/* ═══════════ CONFLITS DE RÉSERVATION PROJET ═══════════ */
.project-checkbox-card.has-conflict {
    border-color: #f59e0b !important;
    background-color: #fffbeb !important;
    box-shadow: 0 0 0 1px #f59e0b !important;
}

.conflict-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.7rem;
    font-weight: 700;
    color: #b45309;
    background: #fef3c7;
    border: 1px solid #fde68a;
    padding: 2px 6px;
    border-radius: 4px;
    margin-top: 4px;
    line-height: 1.2;
}

.booking-conflicts-banner {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    background: #fffbeb;
    border: 1px solid #fcd34d;
    border-radius: 8px;
    margin-bottom: 1rem;
    color: #92400e;
    font-size: 0.84rem;
}

.booking-conflicts-icon {
    font-size: 1.25rem;
    line-height: 1;
}

.booking-conflicts-body {
    flex: 1;
}

.booking-conflicts-title {
    font-size: 0.9rem;
}

.booking-conflicts-list {
    font-size: 0.78rem;
    line-height: 1.4;
}

/* ── Boutons compacts & Boutons-liens ── */
.admin-btn-xs {
    font-size: 11px !important;
    padding: 2px 6px !important;
    line-height: 1.2 !important;
}

.admin-btn-link {
    background: none !important;
    border: none !important;
    color: var(--blue-info, #0369a1) !important;
    cursor: pointer !important;
    padding: 0 !important;
    font: inherit !important;
    text-decoration: none !important;
}

.admin-btn-link:hover {
    text-decoration: underline !important;
}

/* ── Badge Pill Extra-Small ── */
.badge-pill-xs {
    font-size: 10px !important;
    padding: 2px 6px !important;
}

/* ── Modales compactes ── */
.admin-modal-dialog-sm {
    max-width: 550px !important;
    height: auto !important;
    max-height: 90vh !important;
    border-radius: 12px !important;
    box-shadow: 0 15px 50px rgba(0, 0, 0, 0.35) !important;
}

/* ── Composant Générique : États Vides (Empty State) ── */
.empty-state,
.project-reports-empty {
    background: #fafbfc;
    border: 1px dashed #cbd5e1;
    border-radius: 8px;
    padding: 2.25rem 1.5rem;
    text-align: center;
    margin-top: 0.5rem;
}

.empty-state-icon,
.project-reports-empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: #f1f5f9;
    color: #64748b;
    margin-bottom: 0.75rem;
}

.empty-state-icon .lucide,
.empty-state-icon i,
.project-reports-empty-icon .lucide,
.project-reports-empty-icon i {
    width: 28px;
    height: 28px;
}

.empty-state-title,
.project-reports-empty-title {
    font-size: 0.88rem;
    font-weight: 600;
    color: #1e293b;
    margin-bottom: 0.25rem;
}

.empty-state-desc,
.project-reports-empty-desc {
    font-size: 0.78rem;
    color: #64748b;
    max-width: 420px;
    margin: 0 auto;
}

/* ── Cartes KPI Transversales Standardisées (Belle Vitesse Design System) ── */
.admin-kpi-card {
    background: #ffffff;
    border-radius: 6px;
    padding: 1.15rem 1.25rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    border-left: 4px solid var(--status-neutral, #64748b);
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.admin-kpi-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.admin-kpi-card--checkin {
    border-left-color: var(--entity-checkin) !important;
}

.admin-kpi-card--checkout {
    border-left-color: var(--entity-checkout) !important;
}

.admin-kpi-card--project {
    border-left-color: var(--entity-project) !important;
}

.admin-kpi-card--incident {
    border-left-color: var(--entity-incident) !important;
}

.admin-kpi-card--waiver {
    border-left-color: var(--entity-waiver) !important;
}

.admin-kpi-card--success {
    border-left-color: var(--status-success) !important;
}

.admin-kpi-card--warning {
    border-left-color: var(--status-warning) !important;
}

.admin-kpi-card--danger {
    border-left-color: var(--status-danger) !important;
}

.admin-kpi-card--info {
    border-left-color: var(--status-info) !important;
}

.admin-kpi-card--neutral {
    border-left-color: var(--status-neutral) !important;
}

.admin-kpi-label {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--grey-2);
    margin-bottom: 0.35rem;
    font-weight: 600;
}

.admin-kpi-value {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.1;
    color: var(--grey-1);
}

/* ── Optimisations Tablette & iPadOS (Paysage iPad mini 1133px & Portrait) ── */
@media (max-width: 1200px) {
    .admin-card {
        padding: 1.25rem;
    }

    .admin-table th,
    .admin-table td {
        padding: 0.75rem 0.65rem;
    }

    .admin-table th {
        font-size: 0.62rem;
    }

    /* Amélioration des zones tactiles sur boutons d'action (Apple HIG) */
    .admin-btn {
        touch-action: manipulation;
    }

    .admin-btn-action,
    .admin-table-action-btn {
        min-width: 40px;
        min-height: 40px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        touch-action: manipulation;
    }
}

/* ── Smartphone & Écrans Compacts (≤ 768px) ── */
@media (max-width: 768px) {
    .admin-card {
        padding: 1rem;
    }

    .admin-table th,
    .admin-table td {
        padding: 0.65rem 0.5rem;
    }

    .admin-btn {
        min-height: 44px;
        padding: 0.65rem 1rem;
    }

    .admin-btn-action,
    .admin-table-action-btn {
        min-width: 44px;
        min-height: 44px;
    }
}

/* ── Waiver Project Autocomplete Search Component ────────────── */
.waiver-search-box {
    position: relative;
    display: flex;
    align-items: center;
}

.waiver-search-icon {
    position: absolute;
    left: 12px;
    width: 18px;
    height: 18px;
    color: var(--grey-3, #94a3b8);
    pointer-events: none;
}

.waiver-search-input {
    padding-left: 38px;
    padding-right: 36px;
    height: 44px;
    font-size: 0.92rem;
    border-radius: 8px;
}

.waiver-search-clear {
    position: absolute;
    right: 10px;
    background: none;
    border: none;
    color: var(--grey-3, #94a3b8);
    cursor: pointer;
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    transition: color 0.15s ease;
}

.waiver-search-clear:hover {
    color: var(--grey-1, #1e293b);
}

.waiver-dropdown {
    margin-top: 6px;
    background: #ffffff;
    border: 1px solid var(--grey-4, #e2e8f0);
    border-radius: 8px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05);
    overflow: hidden;
    z-index: 50;
}

.waiver-results-header {
    padding: 8px 12px;
    background-color: var(--grey-5, #f8fafc);
    border-bottom: 1px solid var(--grey-4, #e2e8f0);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--grey-2, #64748b);
}

.waiver-results-list {
    max-height: 280px;
    overflow-y: auto;
    padding: 4px;
}

.waiver-search-item {
    display: flex;
    flex-direction: column;
    padding: 10px 12px;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.15s ease;
    border: 1px solid transparent;
}

.waiver-search-item:hover,
.waiver-search-item.is-highlighted {
    background-color: var(--entity-waiver-bg, #ede9fe);
    border-color: rgba(139, 92, 246, 0.2);
}

.waiver-item-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 4px;
}

.waiver-item-name {
    font-weight: 600;
    font-size: 0.92rem;
    color: var(--grey-1, #0f172a);
}

.waiver-item-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    font-size: 0.78rem;
    color: var(--grey-2, #64748b);
}

.waiver-item-meta-entry {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.waiver-item-meta-entry .lucide {
    width: 13px;
    height: 13px;
}

.waiver-results-empty {
    padding: 24px 16px;
    text-align: center;
    color: var(--grey-2, #64748b);
    font-size: 0.85rem;
}

/* Carte du projet sélectionné */
.waiver-selected-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    background-color: var(--entity-waiver-bg, #ede9fe);
    border: 1px solid rgba(139, 92, 246, 0.3);
    border-left: 4px solid var(--entity-waiver, #8b5cf6);
    gap: 12px;
}

.waiver-selected-title {
    font-weight: 600;
    font-size: 1rem;
    color: var(--entity-waiver-text, #5b21b6);
}

.waiver-selected-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    font-size: 0.8rem;
    color: var(--grey-2, #64748b);
    margin-top: 4px;
}

/* Bouton badge-pill */
button.badge-pill {
    cursor: pointer;
    font-family: inherit;
    line-height: inherit;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

button.badge-pill:hover {
    opacity: 0.85;
}

/* ── Pagination Composant (Phase 3.2) ── */
.admin-pagination-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    padding-top: 1.25rem;
    margin-top: 1rem;
    border-top: 1px solid var(--white-3, #E2E8F0);
}

.admin-pagination-info {
    font-size: 0.85rem;
    color: var(--grey-2, #64748B);
}

.admin-pagination-nav {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.admin-pagination-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.2rem;
    height: 2.2rem;
    padding: 0 0.5rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--grey-1, #1E293B);
    background-color: var(--white-1, #FFFFFF);
    border: 1px solid var(--white-3, #CBD5E1);
    border-radius: 4px;
    text-decoration: none;
    transition: all 0.15s ease;
    cursor: pointer;
}

.admin-pagination-btn:hover:not(.is-disabled):not(.is-active) {
    background-color: var(--yellow-1, #FEF3C7);
    border-color: var(--admin-accent, #F59E0B);
    color: var(--grey-1, #1E293B);
}

.admin-pagination-btn.is-active {
    background-color: var(--grey-1, #0F172A);
    color: #FFFFFF;
    border-color: var(--grey-1, #0F172A);
    font-weight: 600;
    cursor: default;
}

.admin-pagination-btn.is-disabled {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
    background-color: var(--white-2, #F8FAFC);
    border-color: var(--white-3, #E2E8F0);
    color: var(--grey-3, #94A3B8);
}

.admin-pagination-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.8rem;
    height: 2.2rem;
    font-size: 0.85rem;
    color: var(--grey-3, #94A3B8);
}

/* --- Compression Image & Optimisation Client --- */
.image-compress-status {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.75rem;
    padding: 0.35rem 0.65rem;
    border-radius: var(--radius-sm, 6px);
    margin-top: 0.4rem;
    line-height: 1.3;
}

.image-compress-status.is-compressing {
    background-color: var(--status-info-bg, #DBEAFE);
    color: var(--status-info-text, #1E40AF);
    border: 1px solid rgba(59, 130, 246, 0.25);
}

.image-compress-status.is-success {
    background-color: var(--status-success-bg, #DCFCE7);
    color: var(--status-success-text, #14532D);
    border: 1px solid rgba(21, 128, 61, 0.25);
}

.image-compress-spinner {
    display: inline-block;
    width: 0.75rem;
    height: 0.75rem;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: bv-spin 0.65s linear infinite;
}

@keyframes bv-spin {
    to {
        transform: rotate(360deg);
    }
}

/* --- Autosave & Résilience Hors-Ligne des Inspections --- */
.inspection-autosave-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1.15rem;
    background-color: var(--status-warning-bg, #FEF3C7);
    border: 1px solid rgba(245, 158, 11, 0.35);
    border-left: 4px solid var(--status-warning, #F59E0B);
    border-radius: var(--radius-md, 8px);
    color: var(--status-warning-text, #B45309);
    transition: all 0.25s ease;
}

.inspection-autosave-banner.is-restored {
    background-color: var(--status-success-bg, #DCFCE7);
    border-color: rgba(21, 128, 61, 0.35);
    border-left-color: var(--status-success, #15803D);
    color: var(--status-success-text, #14532D);
}

.inspection-autosave-content {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.inspection-autosave-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    flex-shrink: 0;
}

.inspection-autosave-text {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.inspection-autosave-title {
    font-size: 0.85rem;
    font-weight: 600;
}

.inspection-autosave-desc {
    font-size: 0.75rem;
    opacity: 0.9;
}

.inspection-autosave-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

@media (max-width: 640px) {
    .inspection-autosave-banner {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }

    .inspection-autosave-actions {
        width: 100%;
        justify-content: flex-end;
    }
}

/* ── css/admin/admin-login.css ── */
/* ── Admin Login Page ─────────────────────────────────────────── */

body.login-page {
    background-color: var(--grey-3);
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100vh;
}

.login-card {
    background: white;
    padding: 2.5rem;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
    width: 100%;
    max-width: 400px;
    text-align: center;
}

.login-logo {
    max-width: 150px;
    margin-bottom: 2rem;
}

.login-title {
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
    color: var(--grey-1);
    font-weight: 600;
}

.login-btn {
    width: 100%;
    padding: 1rem;
    background-color: var(--grey-1);
    color: white;
    border: none;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}

.login-btn:hover {
    background-color: var(--admin-accent);
    color: var(--grey-1);
}

/* ── css/admin/admin-dashboard.css ── */
/* ── Admin Dashboard ──────────────────────────────────────────── */

.dashboard-stats {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.stat-card {
    background: #fff;
    border-radius: 10px;
    padding: 1.2rem;
    border: 1px solid var(--grey-4, #eee);
}

.stat-value {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
}

.stat-label {
    font-size: 0.8rem;
    color: var(--grey-2, #888);
    margin-top: 0.3rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 2rem;
}

.dashboard-split-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    margin-top: 1rem;
}

.dashboard-column-title {
    font-size: 0.9rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--grey-2);
    margin-bottom: 1.5rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--admin-bg);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.dashboard-column--checkout .dashboard-column-title {
    border-bottom: 2px solid var(--entity-checkout-border, #15803D);
    color: var(--entity-checkout-text, #14532D);
}

.dashboard-column--checkin .dashboard-column-title {
    border-bottom: 2px solid var(--entity-checkin-border, #3B82F6);
    color: var(--entity-checkin-text, #1E40AF);
}

/* Status Borders */
.admin-card.status-yellow {
    border-left: 3px solid var(--status-warning, #F59E0B);
}

.admin-card.status-green {
    border-left: 3px solid var(--status-success, #15803D);
}

@media (max-width: 1000px) {

    .dashboard-grid,
    .dashboard-split-layout {
        grid-template-columns: 1fr;
    }
}

.project-agenda-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    margin-top: 1rem;
}

@media (max-width: 600px) {
    .project-agenda-grid {
        grid-template-columns: 1fr;
    }
}

.agenda-section-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.7rem;
    text-transform: uppercase;
    color: var(--grey-2);
    margin-bottom: 0.8rem;
    border-bottom: 1px solid #eee;
    padding-bottom: 0.5rem;
    font-weight: 600;
    letter-spacing: 0.05em;
}

.agenda-section-action {
    position: absolute;
    right: 3.5rem;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.55rem;
    text-transform: none;
    font-weight: 500;
    color: var(--grey-2);
    text-decoration: none;
    letter-spacing: normal;
    padding: 0.15rem 0.4rem;
    border-radius: 4px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    transition: all 0.2s;
}

.agenda-section-action:hover {
    color: var(--entity-incident);
    background: var(--entity-incident-bg);
    border-color: var(--entity-incident-border);
}

.agenda-section-action i[data-lucide],
.agenda-section-action svg {
    width: 11px;
    height: 11px;
}

.today-row {
    display: block;
    border-bottom: 1px solid #f0f0f0;
    font-size: 0.85rem;
    border-left: 3px solid var(--admin-sidebar-bg);
    background-color: var(--admin-bg);
    padding: 1rem;
    margin-bottom: 1rem;
}

.today-row ul {
    padding-left: 0;
}

.today-row li {
    list-style-type: none;
    padding: 0.5rem;
}

.today-row:last-child {
    border-bottom: none;
}

.today-row-vehicle-link,
.today-row-waiver-link,
.today-row-incident-link,
.today-row-report-link {
    text-decoration: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    gap: 0.75rem;
    padding: 0.45rem 0.65rem;
    border: 1px dashed #ccc;
    border-radius: 6px;
    background: #fff;
    font-size: 0.68rem;
    color: var(--grey-2);
    transition: all 0.2s;
}

.today-row-vehicle-link:hover,
.today-row-waiver-link:hover,
.today-row-incident-link:hover,
.today-row-report-link:hover {
    background: var(--admin-bg);
    color: var(--grey-2);
    border-color: #aaa;
}

form.today-row-waiver-link {
    padding: 0;
}

.today-row-waiver-btn {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 0.45rem 0.65rem;
    background: none;
    border: none;
    font: inherit;
    color: inherit;
    cursor: pointer;
    text-decoration: none;
    box-sizing: border-box;
}

.today-row-label {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 500;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.today-row-label i[data-lucide],
.today-row-label svg {
    width: 13px;
    height: 13px;
    flex-shrink: 0;
    vertical-align: middle;
}

.today-row-badges {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
}

.today-row-incident-link--active {
    border-color: var(--entity-incident-border);
    background: var(--entity-incident-bg);
    color: var(--entity-incident-text);
}

.today-row-incident-link--active:hover {
    border-color: var(--entity-incident);
    background: var(--entity-incident-bg);
    color: var(--entity-incident-text);
}

.today-row-vehicle-link i[data-lucide],
.today-row-vehicle-link svg,
.today-row-waiver-link i[data-lucide],
.today-row-waiver-link svg,
.today-row-incident-link i[data-lucide],
.today-row-incident-link svg,
.today-row-report-link i[data-lucide],
.today-row-report-link svg {
    width: 13px;
    height: 13px;
    vertical-align: middle;
}

.today-row-dates {
    font-size: 0.55rem;
    color: var(--grey-2);
    margin-top: 0.2rem;
    text-transform: uppercase;
}

/* FullCalendar overrides (centralisés dans calendar.css) */

/* Custom dashboard helpers to eliminate inline styling */
.dashboard-section-header {
    margin-top: 2rem;
    margin-bottom: 1rem;
    font-size: 1.1rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--grey-2);
    font-weight: 600;
}

.dashboard-card-empty {
    text-align: center;
    padding: 2rem;
    opacity: 0.5;
    font-size: 0.8rem;
    border: 1px dashed #ddd;
    border-radius: 12px;
    background: #fafafa;
}

.dashboard-no-events {
    text-align: center;
    padding: 2rem 2rem;
}

.dashboard-footer-links {
    margin-top: 3rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
    border-top: 1px solid #eee;
    padding-top: 2rem;
}

.admin-card-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 0.25rem;
}

.admin-card-header-sub {
    font-weight: 400;
    font-size: 0.8rem;
    color: var(--grey-2);
}

.agenda-admin-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--admin-bg);
    padding: 0.6rem 0.8rem;
    border-radius: 8px;
}

/* ── css/admin/admin-contacts.css ── */
/* ── Admin Contacts ───────────────────────────────────────────── */

.qr-cell {
    display: flex;
    justify-content: center;
    align-items: center;
}

.qr-cell img {
    width: 24px;
    height: 24px;
}

/* Contact QR Modal styling */
.contact-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(0,0,0,.6);
    backdrop-filter: blur(4px);
    justify-content: center;
    align-items: center;
}

.contact-modal-card {
    background: #fff;
    border-radius: 16px;
    padding: 2.5rem;
    text-align: center;
    max-width: 360px;
    width: 90%;
    box-shadow: 0 20px 60px rgba(0,0,0,.3);
}

.contact-modal-name {
    font-weight: 700;
    font-size: 1.15rem;
    margin: 0 0 1.25rem;
    color: #1a1a2e;
}

.contact-modal-qrcode-container {
    display: inline-block;
    padding: 12px;
    background: #fff;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

/* ── css/admin/calendar.css ── */
/* ── FullCalendar Design System Overrides (Belle Vitesse) ──────── */

.fc {
    font-family: var(--font-primary) !important;
    --fc-border-color: var(--white-3, #e9ecef);
    --fc-today-bg-color: rgba(255, 200, 69, 0.2);
    --fc-neutral-text-color: var(--grey-2);
}

/* Toolbar */
.fc .fc-toolbar {
    margin-bottom: 1.25rem !important;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.fc .fc-toolbar-title {
    font-size: 1.15rem !important;
    font-weight: 600 !important;
    color: var(--grey-1);
    text-transform: capitalize;
}

/* Toolbar Buttons */
.fc .fc-button-primary {
    background-color: #ffffff !important;
    color: var(--grey-1) !important;
    border: 1px solid var(--white-3) !important;
    font-family: var(--font-primary) !important;
    font-size: 0.8rem !important;
    font-weight: 500 !important;
    padding: 0.4rem 0.8rem !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease !important;
}

.fc .fc-button-primary:hover {
    background-color: var(--admin-bg) !important;
    border-color: #cbd5e1 !important;
    color: var(--grey-1) !important;
}

.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active {
    background-color: var(--admin-accent) !important;
    border-color: var(--admin-accent) !important;
    color: var(--grey-1) !important;
    font-weight: 600 !important;
}

.fc .fc-button-primary:disabled {
    background-color: var(--admin-bg) !important;
    border-color: var(--white-3) !important;
    color: var(--grey-2) !important;
    opacity: 0.55;
    cursor: not-allowed !important;
}

.fc .fc-button:focus,
.fc .fc-button-primary:focus,
.fc .fc-button-primary:not(:disabled).fc-button-active:focus,
.fc .fc-button-primary:not(:disabled):active:focus {
    box-shadow: 0 0 0 2px rgba(255, 200, 69, 0.4) !important;
}

/* En-têtes de colonnes (Jours de semaine) */
.fc .fc-col-header-cell {
    background-color: var(--admin-bg);
    padding: 0.6rem 0;
    border-color: var(--white-3) !important;
}

.fc .fc-col-header-cell-cushion {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--grey-2);
    text-decoration: none !important;
}

/* Cellules de grille et numéros de jours */
.fc .fc-daygrid-day-number {
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--grey-2);
    padding: 4px 8px;
    text-decoration: none !important;
}

.fc .fc-day-today .fc-daygrid-day-number {
    color: var(--grey-1);
    font-weight: 700;
}

.fc .fc-daygrid-body-natural .fc-daygrid-day-events {
    margin: 0.5em 0;
}


/* ── Refonte Visuelle des Événements (.fc-event) ──────────────── */

.fc-event,
.fc-daygrid-event,
.fc-direction-ltr .fc-daygrid-event.fc-event-end,
.fc-direction-rtl .fc-daygrid-event.fc-event-start {
    cursor: pointer !important;
    margin: 2px 3px !important;
    font-family: var(--font-primary) !important;
    line-height: 1.35 !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease !important;
    text-decoration: none !important;
}

.fc-event:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
    filter: brightness(0.97);
}

/* Check-out (Départs) — Vert Émeraude */
.fc-event--checkout,
.fc-event.fc-event--checkout {
    background-color: var(--entity-checkout-bg) !important;
    border: 1px solid var(--entity-checkout-border) !important;
    border-left: 3.5px solid var(--entity-checkout) !important;
    color: var(--entity-checkout-text) !important;
}

.fc-event--checkout:hover {
    border-color: var(--entity-checkout) !important;
    box-shadow: 0 2px 8px var(--entity-checkout-glow, rgba(16, 185, 129, 0.25)) !important;
}

/* Tournages / Projets — Ambre Chaud */
.fc-event--project,
.fc-event.fc-event--project {
    background-color: var(--entity-project-bg) !important;
    border: 1px solid var(--entity-project-border) !important;
    border-left: 3.5px solid var(--entity-project) !important;
    color: var(--entity-project-text) !important;
}

.fc-event--project:hover {
    border-color: var(--entity-project) !important;
    box-shadow: 0 2px 8px var(--entity-project-glow, rgba(245, 158, 11, 0.25)) !important;
}

/* Check-in (Retours) — Bleu Océan */
.fc-event--checkin,
.fc-event.fc-event--checkin {
    background-color: var(--entity-checkin-bg) !important;
    border: 1px solid var(--entity-checkin-border) !important;
    border-left: 3.5px solid var(--entity-checkin) !important;
    color: var(--entity-checkin-text) !important;
}

.fc-event--checkin:hover {
    border-color: var(--entity-checkin) !important;
    box-shadow: 0 2px 8px var(--entity-checkin-glow, rgba(59, 130, 246, 0.25)) !important;
}

/* Masquage des puces FullCalendar par défaut & neutralisation du texte blanc */
.fc-daygrid-event-dot {
    display: none !important;
}

.fc-event,
.fc-event-main,
.fc-daygrid-event .fc-event-main,
.fc-h-event .fc-event-main {
    color: inherit !important;
}

/* ── Événements Unifiés avec Trait de Continuité (Modèle Calendrier Matériel) ── */

.fc-event.fc-event--unified,
.fc-daygrid-event.fc-event--unified {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 2px 2px !important;
    overflow: visible !important;
    text-decoration: none !important;
    cursor: pointer !important;
}

.fc-event.fc-event--unified:hover {
    background: transparent !important;
    box-shadow: none !important;
}

.fc-event.fc-event--unified .fc-event-main {
    padding: 0 !important;
    overflow: visible !important;
    width: 100%;
}

.fc-unified-track {
    position: relative;
    width: 100%;
    min-height: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    box-sizing: border-box;
    user-select: none;
}

/* ── Ligne de continuité reliant départ à retour (idem .gantt-booking-connection) ── */
.fc-unified-track__line {
    position: absolute;
    left: 4px;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    height: 2px;
    background-color: var(--entity-project, #f59e0b);
    opacity: 0.35;
    z-index: 1;
    pointer-events: none;
    border-radius: 2px;
    transition: opacity 0.15s ease;
}

.fc-event.fc-event--unified:hover .fc-unified-track__line {
    opacity: 0.7;
}

.fc-event.fc-event--not-immobilized .fc-unified-track__line {
    background: repeating-linear-gradient(90deg, var(--entity-project, #f59e0b) 0, var(--entity-project, #f59e0b) 6px, transparent 6px, transparent 12px);
    opacity: 0.5;
}

.fc-unified-track__badges {
    position: relative;
    width: 100%;
    height: 100%;
    z-index: 2;
}

/* ── Badges / Jalons de Phases ── */
.fc-phase-badge {
    position: absolute;
    top: 1px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0 6px;
    border-radius: 4px;
    font-family: var(--font-primary);
    font-size: 0.78rem;
    line-height: 1.35;
    white-space: nowrap;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    box-sizing: border-box;
    z-index: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
    user-select: none;
}

.fc-phase-badge:hover {
    filter: brightness(0.97);
}

/* ── Départs (Check-out) : Vert Émeraude ── */
.fc-phase-badge--checkout {
    background-color: var(--entity-checkout-bg) !important;
    border: 1px solid var(--entity-checkout-border) !important;
    border-left: 3.5px solid var(--entity-checkout) !important;
    color: var(--entity-checkout-text) !important;
    flex: 0 0 auto;
}

.fc-phase-badge--checkout:hover {
    border-color: var(--entity-checkout) !important;
    box-shadow: 0 2px 8px var(--entity-checkout-glow, rgba(16, 185, 129, 0.25)) !important;
}

.fc-phase-icon--checkout {
    color: var(--entity-checkout);
    stroke: var(--entity-checkout);
    width: 12px;
    height: 12px;
    flex-shrink: 0;
}

.fc-phase-badge__label {
    font-weight: 600;
}

/* ── Tournages (Projets) : Ambre Chaud ── */
.fc-phase-badge--project {
    background-color: var(--entity-project-bg) !important;
    border: 1px solid var(--entity-project-border) !important;
    border-left: 3.5px solid var(--entity-project) !important;
    color: var(--entity-project-text) !important;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
}

.fc-phase-badge--project:hover {
    border-color: var(--entity-project) !important;
    box-shadow: 0 2px 8px var(--entity-project-glow, rgba(245, 158, 11, 0.25)) !important;
}

.fc-phase-icon--project {
    color: var(--entity-project);
    stroke: var(--entity-project);
    width: 12px;
    height: 12px;
    flex-shrink: 0;
}

.fc-phase-badge__icon {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

.fc-phase-badge__title {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 0 1 auto;
    min-width: 0;
}

.fc-phase-badge__suite {
    font-size: 0.7rem;
    font-weight: 400;
    opacity: 0.7;
    font-style: italic;
    flex-shrink: 0;
}

.fc-phase-badge__prod {
    font-size: 0.68rem;
    opacity: 0.8;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 0 1000 auto;
    min-width: 0;
    max-width: 130px;
}

.fc-phase-badge__prod::before {
    content: "•";
    margin-right: 4px;
    opacity: 0.6;
}

/* ── Retours (Check-in) : Bleu Océan ── */
.fc-phase-badge--checkin {
    background-color: var(--entity-checkin-bg) !important;
    border: 1px solid var(--entity-checkin-border) !important;
    border-left: 3.5px solid var(--entity-checkin) !important;
    color: var(--entity-checkin-text) !important;
    flex: 0 0 auto;
    margin-left: auto;
}

.fc-phase-badge--checkin:hover {
    border-color: var(--entity-checkin) !important;
    box-shadow: 0 2px 8px var(--entity-checkin-glow, rgba(59, 130, 246, 0.25)) !important;
}

.fc-phase-icon--checkin {
    color: var(--entity-checkin);
    stroke: var(--entity-checkin);
    width: 12px;
    height: 12px;
    flex-shrink: 0;
}

/* ── Icônes coïncidentes (Départ ou Retour sur la même journée que le Tournage) ── */
.fc-phase-coincide {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

.fc-phase-coincide--checkout {
    margin-right: 2px;
}

.fc-phase-coincide--checkin {
    margin-left: 4px;
}

/* ── Intervalles Inter-Dates (Immobilisé) ── */
.fc-phase-badge--interval {
    font-size: 0.72rem;
    font-weight: 600;
    cursor: pointer;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 0 4px;
    height: 24px;
    top: 2px;
}

.fc-phase-badge--interval-immob {
    background: repeating-linear-gradient(45deg,
            #fef3c7,
            #fef3c7 6px,
            #fde68a 6px,
            #fde68a 12px) !important;
    border: 1px solid #fcd34d !important;
    border-left: 3px solid var(--entity-project, #f59e0b) !important;
    color: #92400e !important;
}

.fc-phase-badge--interval-immob:hover {
    border-color: var(--entity-project, #f59e0b) !important;
    box-shadow: 0 2px 8px var(--entity-project-glow, rgba(245, 158, 11, 0.25)) !important;
}

.fc-phase-icon--immob {
    color: var(--entity-project, #f59e0b);
    stroke: var(--entity-project, #f59e0b);
    width: 11px;
    height: 11px;
    flex-shrink: 0;
}

/* ── Structure Interne de l'Événement Standard (eventContent Fallback) ── */

.fc-event-custom {
    display: flex;
    align-items: center;
    gap: 5px;
    width: 100%;
    overflow: hidden;
    white-space: nowrap;
}

/* Couleurs Check-out (Départs) — Vert Émeraude */
.fc-event-custom--checkout,
.fc-event--checkout .fc-event-custom,
.fc-event-custom--checkout .fc-event-custom__title,
.fc-event-custom--checkout .fc-event-custom__badge,
.fc-event--checkout .fc-event-custom__title,
.fc-event--checkout .fc-event-custom__badge {
    color: var(--entity-checkout-text) !important;
}

.fc-event-custom--checkout .fc-event-custom__icon,
.fc-event--checkout .fc-event-custom__icon {
    color: var(--entity-checkout) !important;
    stroke: var(--entity-checkout) !important;
}

.fc-event-custom--checkout .fc-event-custom__prod,
.fc-event--checkout .fc-event-custom__prod {
    color: var(--entity-checkout-text) !important;
    opacity: 0.75;
}

/* Couleurs Tournages / Projets — Ambre Chaud */
.fc-event-custom--project,
.fc-event--project .fc-event-custom,
.fc-event-custom--project .fc-event-custom__title,
.fc-event-custom--project .fc-event-custom__badge,
.fc-event--project .fc-event-custom__title,
.fc-event--project .fc-event-custom__badge {
    color: var(--entity-project-text) !important;
}

.fc-event-custom--project .fc-event-custom__icon,
.fc-event--project .fc-event-custom__icon {
    color: var(--entity-project) !important;
    stroke: var(--entity-project) !important;
}

.fc-event-custom--project .fc-event-custom__prod,
.fc-event--project .fc-event-custom__prod {
    color: var(--entity-project-text) !important;
    opacity: 0.75;
}

/* Couleurs Check-in (Retours) — Bleu Océan */
.fc-event-custom--checkin,
.fc-event--checkin .fc-event-custom,
.fc-event-custom--checkin .fc-event-custom__title,
.fc-event-custom--checkin .fc-event-custom__badge,
.fc-event--checkin .fc-event-custom__title,
.fc-event--checkin .fc-event-custom__badge {
    color: var(--entity-checkin-text) !important;
}

.fc-event-custom--checkin .fc-event-custom__icon,
.fc-event--checkin .fc-event-custom__icon {
    color: var(--entity-checkin) !important;
    stroke: var(--entity-checkin) !important;
}

.fc-event-custom--checkin .fc-event-custom__prod,
.fc-event--checkin .fc-event-custom__prod {
    color: var(--entity-checkin-text) !important;
    opacity: 0.75;
}

.fc-event-custom__badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    flex-shrink: 0;
}

.fc-event-custom__icon {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
    vertical-align: -1px;
}

.fc-event-custom__title {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 0 1 auto;
    min-width: 0;
}

.fc-event-custom__prod {
    font-size: 0.65rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 0 1000 auto;
    min-width: 0;
    max-width: 120px;
}

.fc-event-custom__prod::before {
    content: "•";
    margin-right: 4px;
    opacity: 0.6;
}

/* ── Filtrage Interactif du Calendrier ────────────────────────── */

#calendar[data-filter="checkout"] .fc-event:not(.has-checkout):not(.fc-event--checkout),
#calendar[data-filter="project"] .fc-event:not(.has-project):not(.fc-event--project),
#calendar[data-filter="checkin"] .fc-event:not(.has-checkin):not(.fc-event--checkin) {
    display: none !important;
}

#calendar[data-filter="checkout"] .fc-phase-badge:not(.fc-phase-badge--checkout),
#calendar[data-filter="checkout"] .fc-unified-track__line {
    opacity: 0.2 !important;
}

#calendar[data-filter="project"] .fc-phase-badge:not(.fc-phase-badge--project):not(.fc-phase-badge--interval) {
    opacity: 0.2 !important;
}

#calendar[data-filter="checkin"] .fc-phase-badge:not(.fc-phase-badge--checkin),
#calendar[data-filter="checkin"] .fc-unified-track__line {
    opacity: 0.2 !important;
}

/* ── Légende du Calendrier Dashboard ────────────────────────── */
.calendar-dashboard-legend {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 1rem;
    margin-top: 0.75rem;
    background: var(--admin-bg, #f8fafc);
    border: 1px solid var(--white-3, #e2e8f0);
    border-radius: 8px;
    font-size: 0.8rem;
    color: var(--grey-2, #64748b);
    flex-wrap: wrap;
}

.calendar-legend-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--grey-2, #64748b);
    flex-shrink: 0;
}

.calendar-legend-items {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.calendar-legend-items .badge-pill {
    font-size: 0.75rem;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.calendar-legend-badge--immob {
    background: repeating-linear-gradient(45deg,
            var(--status-warning-bg),
            var(--status-warning-bg) 4px,
            rgba(245, 158, 11, 0.2) 4px,
            rgba(245, 158, 11, 0.2) 8px) !important;
    border: 1px solid var(--status-warning-border, rgba(245, 158, 11, 0.35)) !important;
    color: var(--status-warning-text) !important;
}

.calendar-legend-badge--immob [data-lucide],
.calendar-legend-badge--immob svg {
    color: var(--status-warning-text);
    stroke: var(--status-warning-text);
}

.calendar-legend-track {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--grey-2, #64748b);
}

.calendar-legend-track-line {
    display: inline-block;
    width: 20px;
    height: 3px;
    border-radius: 2px;
    background-color: var(--entity-project, #f59e0b);
    opacity: 0.45;
}

/* ICS Subscription Page Styles */

.cal-info-card {
    margin-bottom: 1.5rem !important;
    padding: 1.25rem !important;
}

.cal-info-header {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.cal-info-icon {
    font-size: 1.75rem;
    line-height: 1;
}

.cal-info-title {
    font-weight: 600;
    margin-bottom: 0.35rem;
    font-size: 1rem;
}

.cal-info-desc {
    color: var(--grey-2);
    font-size: 0.85rem;
    line-height: 1.5;
}

.cal-info-details {
    margin-top: 0.75rem;
}

.cal-info-summary {
    cursor: pointer;
    font-size: 0.8rem;
    color: var(--grey-2);
    font-weight: 500;
}

.cal-info-details-content {
    margin-top: 0.5rem;
    font-size: 0.8rem;
    color: var(--grey-2);
    line-height: 1.6;
}

.cal-url-wrapper {
    position: relative;
    flex: 1;
    min-width: 0;
    max-width: 200px;
}

.cal-url-input-styled {
    font-size: 0.7rem !important;
    padding: 0.35rem 2.5rem 0.35rem 0.5rem !important;
    width: 100% !important;
    font-family: monospace !important;
}

.cal-copy-btn-styled {
    position: absolute;
    right: 0.25rem;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.25rem;
    font-size: 1rem;
}

.cal-qr-trigger {
    cursor: pointer;
    display: flex;
    align-items: center;
}

.cal-qr-img {
    width: 24px;
    height: 24px;
}

.qr-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(0, 0, 0, .6);
    backdrop-filter: blur(4px);
    justify-content: center;
    align-items: center;
}

.qr-modal-overlay.is-active {
    display: flex;
}

.qr-modal-content {
    background: #fff;
    border-radius: 16px;
    padding: 2.5rem;
    text-align: center;
    max-width: 360px;
    width: 90%;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .3);
}

.qr-modal-title {
    font-weight: 700;
    font-size: 1.15rem;
    margin: 0 0 1.25rem;
    color: #1a1a2e;
}

.qr-modal-code {
    display: inline-block;
    padding: 12px;
    background: #fff;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.cal-qr-code-img {
    display: block;
    max-width: 100%;
    height: auto;
    border-radius: 4px;
}

.qr-modal-desc {
    margin-top: 1.25rem;
    margin-bottom: 0.5rem;
    text-align: center;
    font-size: .85rem;
    color: #6b7280;
}

.qr-modal-close {
    width: 100%;
}

/* ── css/admin/admin-pricing.css ── */
/* ── Admin Pricing: Tabs, Editable Cells, Section Headers ───── */

/* ── Card Header (title + action button) ─────────────────────── */

.admin-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

/* ── Tabs ─────────────────────────────────────────────────────── */

.pricing-tabs {
    display: flex;
    gap: 0;
}

.pricing-tab {
    padding: 0.75rem 1.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--grey-2);
    cursor: pointer;
    border: none;
    background: none;
    position: relative;
    transition: color 0.2s ease;
}

.pricing-tab:hover {
    color: var(--grey-1);
}

.pricing-tab.active {
    color: var(--grey-1);
}

.pricing-tab.active::after {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--admin-accent);
}

/* ── Tab Content Panels ──────────────────────────────────────── */

.pricing-tab-content {
    display: none;
}

.pricing-tab-content.active {
    display: block;
}

/* ── Section Headers ─────────────────────────────────────────── */

.pricing-section-title {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--grey-2);
    margin: 0 0 0.25rem 0;
    padding: 0;
}

/* ── Editable Cells ──────────────────────────────────────────── */

.editable-cell {
    cursor: text;
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
    min-width: 60px;
    position: relative;
}

.editable-cell:hover {
    background-color: rgba(255, 200, 69, 0.08);
}

.editable-cell.editing {
    padding: 0;
    background-color: transparent;
}

.editable-cell .cell-value {
    display: block;
    width: 100%;
    min-height: 1.2em;
}

.editable-cell .cell-input {
    width: 100%;
    padding: 0.85rem 1rem;
    border: 2px solid var(--admin-accent);
    background: #fffdf5;
    font-family: var(--font-primary);
    font-size: inherit;
    outline: none;
    box-sizing: border-box;
}

.editable-cell .cell-input:focus {
    box-shadow: 0 0 0 3px rgba(255, 200, 69, 0.2);
}

/* ── Factor Badge (×1.65) ────────────────────────────────────── */

.factor-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.3rem 0.7rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--admin-accent);
    background: rgba(255, 200, 69, 0.1);
    border: 1px solid rgba(255, 200, 69, 0.3);
    border-radius: 20px;
    transition: all 0.2s ease;
    user-select: none;
}

.factor-badge:hover {
    background: rgba(255, 200, 69, 0.2);
    border-color: var(--admin-accent);
}

/* ── Computed Cells (read-only) ──────────────────────────────── */

.computed-cell .cell-value {
    display: block;
    width: 100%;
    min-height: 1.2em;
    font-style: italic;
}

/* ── Salary Groups ───────────────────────────────────────────── */

.salary-group {
    margin-bottom: 1.5rem;
    background: var(--white-1, #fff);
    border: 1px solid var(--white-3, #e5e7eb);
    border-radius: 8px;
    overflow: hidden;
}

.salary-group-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 1rem;
    background: var(--white-2, #f9fafb);
    border-bottom: 1px solid var(--white-3, #e5e7eb);
}

.salary-group-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--grey-1);
    letter-spacing: 0.02em;
}

.editable-group-title {
    cursor: pointer;
    padding: 0.15rem 0.4rem;
    border-radius: 4px;
    transition: background 0.15s ease;
}

.editable-group-title:hover {
    background: rgba(255, 200, 69, 0.12);
}

.group-title-input {
    font-size: 0.9rem;
    font-weight: 700;
    padding: 0.2rem 0.5rem;
    border: 2px solid var(--admin-accent);
    border-radius: 4px;
    background: #fffdf5;
    outline: none;
    min-width: 120px;
}

.group-title-input:focus {
    box-shadow: 0 0 0 3px rgba(255, 200, 69, 0.2);
}

.salary-group-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--grey-2);
    background: var(--white-3, #e5e7eb);
    border-radius: 10px;
}

/* ── Drag Handle ─────────────────────────────────────────────── */

.drag-handle {
    cursor: grab;
    text-align: center;
    color: var(--grey-2);
    font-size: 1rem;
    user-select: none;
    width: 30px;
    padding: 0.5rem 0.25rem !important;
    transition: color 0.15s ease;
}

.drag-handle:hover {
    color: var(--grey-1);
}

.drag-handle:active {
    cursor: grabbing;
}

/* ── Drag & Drop Feedback ────────────────────────────────────── */

tr.dragging {
    opacity: 0.4;
}

.salary-drop-zone.drag-over, 
.equipment-drop-zone.drag-over, 
.logistics-drop-zone.drag-over {
    background: rgba(255, 200, 69, 0.04);
}

.drag-indicator td {
    height: 3px !important;
    padding: 0 !important;
    background: var(--admin-accent) !important;
    border: none !important;
}

/* Remove table borders inside group cards */
.salary-group .admin-table-container {
    border: none;
}

.salary-group .admin-table {
    margin: 0;
}

/* ── Responsive ──────────────────────────────────────────────── */

@media (max-width: 768px) {
    .pricing-tabs {
        overflow-x: auto;
    }

    .pricing-tab {
        padding: 0.6rem 1rem;
        font-size: 0.8rem;
    }
}

/* ── Annexe Tabs (Nested inside Salaries) ────────────────────── */

.annexe-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--white-3, #e5e7eb);
}

.annexe-tab {
    padding: 0.5rem 1rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--grey-2);
    cursor: pointer;
    border: 1px solid var(--white-3, #e5e7eb);
    background: var(--white-2, #f9fafb);
    border-radius: 6px;
    transition: all 0.2s ease;
}

.annexe-tab:hover {
    color: var(--grey-1);
    background: var(--white-3, #e5e7eb);
}

.annexe-tab.active {
    color: #fff;
    background: var(--admin-accent);
    border-color: var(--admin-accent);
    box-shadow: 0 2px 4px rgba(255, 200, 69, 0.2);
}

#factorContainer {
    display: none;
}



/* ── css/admin/admin-utilities.css ── */
/* ── Admin CSS Utilities & Helper Classes ────────────────────── */

/* Flexbox Layouts */
.u-flex {
    display: flex !important;
}

.u-flex-inline {
    display: inline-flex !important;
}

.u-flex-column {
    flex-direction: column !important;
}

.u-flex-wrap {
    flex-wrap: wrap !important;
}

.u-align-center {
    align-items: center !important;
}

.u-align-start {
    align-items: flex-start !important;
}

.u-align-end {
    align-items: flex-end !important;
}

.u-align-baseline {
    align-items: baseline !important;
}

.u-justify-between {
    justify-content: space-between !important;
}

.u-justify-center {
    justify-content: center !important;
}

.u-justify-end {
    justify-content: flex-end !important;
}

.u-flex-1 {
    flex: 1 !important;
}

/* Grid Layouts */
.u-grid {
    display: grid !important;
}

.u-grid-2 {
    grid-template-columns: 1fr 1fr !important;
}

.u-grid-3 {
    grid-template-columns: repeat(3, 1fr) !important;
}

.u-grid-4 {
    grid-template-columns: repeat(4, 1fr) !important;
}

.u-grid-2-1 {
    grid-template-columns: 2fr 1fr !important;
}

.u-col-span-full,
.u-grid-col-span-all {
    grid-column: 1 / -1 !important;
}

.u-grid-align-start {
    align-items: start !important;
}

/* Tablette & iPad Portrait (≤ 1024px) */
@media (max-width: 1024px) {
    .u-grid-2-1 {
        grid-template-columns: 1fr !important;
    }

    .u-grid-3 {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .u-grid-4 {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .u-d-none-tablet {
        display: none !important;
    }
}

/* Smartphone & iPad Split-View compact (≤ 768px) */
@media (max-width: 768px) {
    .u-grid-2 {
        grid-template-columns: 1fr !important;
    }

    .u-grid-3 {
        grid-template-columns: 1fr !important;
    }

    .u-grid-4 {
        grid-template-columns: 1fr !important;
    }

    .u-grid-2-1 {
        grid-template-columns: 1fr !important;
    }

    .u-w-250 {
        width: 100% !important;
        max-width: 100% !important;
    }

    .u-gap-3 {
        gap: 1rem !important;
    }

    .u-gap-4 {
        gap: 1.25rem !important;
    }

    .u-d-none-mobile {
        display: none !important;
    }

    .u-d-block-mobile {
        display: block !important;
    }

    .u-d-flex-mobile {
        display: flex !important;
    }

    .u-flex-col-mobile {
        flex-direction: column !important;
    }

    .u-w-100-mobile {
        width: 100% !important;
    }
}

/* Zone tactile Apple HIG */
.u-touch-target {
    min-height: 44px;
    min-width: 44px;
    touch-action: manipulation;
}

/* Gap Spacings */
.u-gap-1 {
    gap: 0.5rem !important;
}

.u-gap-2 {
    gap: 1rem !important;
}

.u-gap-3 {
    gap: 1.5rem !important;
}

.u-gap-4 {
    gap: 2rem !important;
}

/* Display Utilities */
.u-d-none {
    display: none !important;
}

.u-d-block {
    display: block !important;
}

.u-d-inline {
    display: inline !important;
}

.u-d-inline-block {
    display: inline-block !important;
}

/* Spacing Utilities - Margins */
.u-m-0 {
    margin: 0 !important;
}

.u-mt-0 {
    margin-top: 0 !important;
}

.u-mt-1 {
    margin-top: 0.5rem !important;
}

.u-mt-2 {
    margin-top: 1rem !important;
}

.u-mt-3 {
    margin-top: 1.5rem !important;
}

.u-mt-4 {
    margin-top: 2rem !important;
}

.u-mt-5 {
    margin-top: 3rem !important;
}

.u-mb-0 {
    margin-bottom: 0 !important;
}

.u-mb-1 {
    margin-bottom: 0.5rem !important;
}

.u-mb-2 {
    margin-bottom: 1rem !important;
}

.u-mb-3 {
    margin-bottom: 1.5rem !important;
}

.u-mb-4 {
    margin-bottom: 2rem !important;
}

.u-ml-1 {
    margin-left: 0.5rem !important;
}

.u-ml-2 {
    margin-left: 1rem !important;
}

.u-mr-0 {
    margin-right: 0 !important;
}

.u-mr-1 {
    margin-right: 0.5rem !important;
}

.u-mr-2 {
    margin-right: 1rem !important;
}

/* Spacing Utilities - Paddings */
.u-p-0 {
    padding: 0 !important;
}

.u-p-1 {
    padding: 0.5rem !important;
}

.u-p-2 {
    padding: 1rem !important;
}

.u-p-3 {
    padding: 1.5rem !important;
}

.u-p-4 {
    padding: 2rem !important;
}

.u-p-5 {
    padding: 3rem !important;
}

.u-pt-1 {
    padding-top: 0.5rem !important;
}

.u-pt-2 {
    padding-top: 1rem !important;
}

.u-pt-3 {
    padding-top: 1.5rem !important;
}

.u-pt-4 {
    padding-top: 2rem !important;
}

.u-pb-1 {
    padding-bottom: 0.5rem !important;
}

.u-pb-2 {
    padding-bottom: 1rem !important;
}

.u-pb-3 {
    padding-bottom: 1.5rem !important;
}

/* Sizing Utilities */
.u-w-100 {
    width: 100% !important;
}

.u-w-auto {
    width: auto !important;
}

.u-w-250 {
    width: 250px !important;
}

.u-w-150 {
    width: 150px !important;
}

.u-w-100px {
    width: 100px !important;
}

.u-w-90 {
    width: 90px !important;
}

.u-max-w-800 {
    max-width: 800px !important;
}

.u-max-w-700 {
    max-width: 700px !important;
}

.u-max-w-600 {
    max-width: 600px !important;
}

.u-max-w-360 {
    max-width: 360px !important;
}

.u-max-w-200 {
    max-width: 200px !important;
}

.u-hidden-input {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 0 !important;
    height: 0 !important;
}

.u-h-auto {
    height: auto !important;
}

.u-h-100 {
    height: 100% !important;
}

.u-h-80vh {
    height: 80vh !important;
}

.u-overflow-hidden {
    overflow: hidden !important;
}

.u-overflow-x-auto {
    overflow-x: auto !important;
}

/* Text Utilities */
.u-text-base {
    color: var(--grey-1);
}

.u-text-left {
    text-align: left !important;
}

.u-text-center {
    text-align: center !important;
}

.u-text-right {
    text-align: right !important;
}

.u-text-bold,
.u-font-bold {
    font-weight: 700 !important;
}

.u-text-semibold,
.u-font-semibold {
    font-weight: 600 !important;
}

.u-text-thin {
    font-weight: 400 !important;
}

.u-text-superthin {
    font-weight: 300 !important;
}

.u-text-italic {
    font-style: italic !important;
}

.u-text-muted {
    color: var(--grey-2) !important;
}

.u-text-muted-light {
    color: #9ca3af !important;
}

.u-text-error {
    color: var(--red-error) !important;
}

.u-text-success {
    color: var(--status-success-text, #14532D) !important;
}

.u-text-warning {
    color: var(--admin-accent, #FFC845) !important;
}

.u-text-info {
    color: var(--blue-info, #0369a1) !important;
}


.u-text-uppercase {
    text-transform: uppercase !important;
}

.u-text-sm {
    font-size: 0.85rem !important;
}

.u-text-xs {
    font-size: 0.75rem !important;
}

.u-text-lg {
    font-size: 1.1rem !important;
}

.u-text-xl {
    font-size: 1.3rem !important;
}

.u-nowrap {
    white-space: nowrap !important;
}

/* Border & Border Radius Utilities */
.u-border-top {
    border-top: 1px solid #f3f4f6 !important;
}

.u-border-bottom {
    border-bottom: 1px solid var(--white-3) !important;
}

/* ── Semantic Text Utilities ── */
.u-text-checkin {
    color: var(--entity-checkin) !important;
}

.u-text-checkout {
    color: var(--entity-checkout) !important;
}

.u-text-project {
    color: var(--entity-project) !important;
}

.u-text-incident {
    color: var(--entity-incident) !important;
}

.u-text-waiver {
    color: var(--entity-waiver) !important;
}

.u-text-neutral {
    color: var(--status-neutral) !important;
}

/* ── Semantic Solid Background Utilities ── */
.u-bg-checkin {
    background-color: var(--entity-checkin) !important;
    color: #ffffff !important;
}

.u-bg-checkout {
    background-color: var(--entity-checkout) !important;
    color: #ffffff !important;
}

.u-bg-project {
    background-color: var(--entity-project) !important;
    color: #ffffff !important;
}

.u-bg-incident {
    background-color: var(--entity-incident) !important;
    color: #ffffff !important;
}

.u-bg-waiver {
    background-color: var(--entity-waiver) !important;
    color: #ffffff !important;
}

.u-bg-success {
    background-color: var(--status-success) !important;
    color: #ffffff !important;
}

.u-bg-warning {
    background-color: var(--status-warning) !important;
    color: #ffffff !important;
}

.u-bg-danger {
    background-color: var(--status-danger) !important;
    color: #ffffff !important;
}

.u-bg-info {
    background-color: var(--status-info) !important;
    color: #ffffff !important;
}

.u-bg-neutral {
    background-color: var(--status-neutral) !important;
    color: #ffffff !important;
}

/* ── Semantic Soft / Light Background Utilities ── */
.u-bg-checkin-light {
    background-color: var(--entity-checkin-bg) !important;
    color: var(--entity-checkin-text) !important;
}

.u-bg-checkout-light {
    background-color: var(--entity-checkout-bg) !important;
    color: var(--entity-checkout-text) !important;
}

.u-bg-project-light {
    background-color: var(--entity-project-bg) !important;
    color: var(--entity-project-text) !important;
}

.u-bg-incident-light {
    background-color: var(--entity-incident-bg) !important;
    color: var(--entity-incident-text) !important;
}

.u-bg-waiver-light {
    background-color: var(--entity-waiver-bg) !important;
    color: var(--entity-waiver-text) !important;
}

.u-bg-success-light {
    background-color: var(--status-success-bg) !important;
    color: var(--status-success-text) !important;
}

.u-bg-warning-light {
    background-color: var(--status-warning-bg) !important;
    color: var(--status-warning-text) !important;
}

.u-bg-danger-light {
    background-color: var(--status-danger-bg) !important;
    color: var(--status-danger-text) !important;
}

.u-bg-info-light {
    background-color: var(--status-info-bg) !important;
    color: var(--status-info-text) !important;
}

.u-bg-neutral-light {
    background-color: var(--status-neutral-bg) !important;
    color: var(--status-neutral-text) !important;
}

/* ── Semantic Full Border Utilities ── */
.u-border-checkin {
    border: 1px solid var(--entity-checkin-border, var(--entity-checkin)) !important;
}

.u-border-checkout {
    border: 1px solid var(--entity-checkout-border, var(--entity-checkout)) !important;
}

.u-border-project {
    border: 1px solid var(--entity-project-border, var(--entity-project)) !important;
}

.u-border-incident {
    border: 1px solid var(--entity-incident-border, var(--entity-incident)) !important;
}

.u-border-waiver {
    border: 1px solid var(--entity-waiver-border, var(--entity-waiver)) !important;
}

.u-border-success {
    border: 1px solid var(--status-success) !important;
}

.u-border-warning {
    border: 1px solid var(--status-warning) !important;
}

.u-border-danger {
    border: 1px solid var(--status-danger) !important;
}

.u-border-info {
    border: 1px solid var(--status-info) !important;
}

.u-border-neutral {
    border: 1px solid var(--status-neutral) !important;
}

/* Border Utilities: Semantic Entities */
.u-border-left-checkin {
    border-left: 4px solid var(--entity-checkin) !important;
}

.u-border-left-checkout {
    border-left: 4px solid var(--entity-checkout) !important;
}

.u-border-left-project {
    border-left: 4px solid var(--entity-project) !important;
}

.u-border-left-incident {
    border-left: 4px solid var(--entity-incident) !important;
}

.u-border-left-waiver {
    border-left: 4px solid var(--entity-waiver) !important;
}

/* Border Utilities: Semantic Statuses */
.u-border-left-success {
    border-left: 4px solid var(--status-success) !important;
}

.u-border-left-warning {
    border-left: 4px solid var(--status-warning, var(--yellow-1)) !important;
}

.u-border-left-danger {
    border-left: 4px solid var(--status-danger) !important;
}

.u-border-left-info {
    border-left: 4px solid var(--status-info) !important;
}

.u-border-left-neutral {
    border-left: 4px solid var(--status-neutral) !important;
}

.u-border-radius-4 {
    border-radius: 4px !important;
}

.u-border-radius-6 {
    border-radius: 6px !important;
}

.u-border-dashed {
    border: 1px dashed #d1d5db !important;
}

/* Interactive & Miscellaneous Helpers */
.u-cursor-pointer {
    cursor: pointer !important;
}

.u-cursor-not-allowed {
    cursor: not-allowed !important;
}

.u-accent-red {
    accent-color: #b91c1c !important;
}

.u-vertical-middle {
    vertical-align: middle !important;
}

.u-valign-top {
    vertical-align: top !important;
}

/* Form Field Helpers */
.form-input-sm {
    font-size: 0.75rem !important;
    padding: 0.2rem 0.4rem !important;
    height: auto !important;
}

select.form-input-sm,
select.form-input.form-input-sm {
    height: 32px !important;
    padding: 0.2rem 1.75rem 0.2rem 0.6rem !important;
    background-position: right 0.5rem center !important;
    background-size: 8px 5px !important;
    line-height: normal !important;
}

.form-input-inline {
    display: inline-block !important;
    width: auto !important;
}

.form-input-muted {
    border-color: #d1d5db !important;
    background-color: #f9fafb !important;
}

.form-input-readonly {
    background-color: #f3f4f6 !important;
    cursor: not-allowed !important;
}

/* Reusable Custom Buttons */
.admin-btn-sm {
    padding: 0.25rem 0.5rem !important;
    font-size: 0.8rem !important;
}

.admin-btn-lg {
    padding: 1rem !important;
}

.admin-btn-danger {
    background: #fee2e2 !important;
    color: #dc2626 !important;
    border: 1px solid #fca5a5 !important;
}

.admin-btn-danger:hover {
    background: #fecaca !important;
    color: #b91c1c !important;
    border-color: #fecaca !important;
}

.admin-btn-info {
    background: #eff6ff !important;
    color: #1e40af !important;
    border: 1px solid #bfdbfe !important;
}

.admin-btn-info:hover {
    background: #dbeafe !important;
    color: #1d4ed8 !important;
    border-color: #bfdbfe !important;
}

.admin-btn-purple {
    background: #faf5ff !important;
    color: #6b21a8 !important;
    border: 1px solid #e9d5ff !important;
}

.admin-btn-purple:hover {
    background: #f3e8ff !important;
    color: #581c87 !important;
    border-color: #e9d5ff !important;
}

/* Timeline Components */
.timeline-container {
    position: relative;
    padding-left: 2rem;
    margin-top: 1.5rem;
}

.timeline-line {
    position: absolute;
    left: 7px;
    top: 5px;
    bottom: 5px;
    width: 2px;
    background: #e5e7eb;
}

.timeline-item {
    position: relative;
    margin-bottom: 1.5rem;
}

.timeline-badge {
    position: absolute;
    left: -32px;
    top: 4px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #6b21a8;
    border: 2px solid white;
    box-shadow: 0 0 0 2px #e9d5ff;
}

.timeline-content-card {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    background: #fcfcfc;
    border: 1px solid var(--white-3);
    padding: 1rem;
    border-radius: 6px;
}

.u-badge-agenda {
    margin: 0 !important;
    font-size: 0.65rem !important;
}

/* Badge select dropdown pills for list tables */
.badge-select-pill {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    cursor: pointer !important;
    padding-right: 1.5rem !important;
}

.badge-select-pill select {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    opacity: 0 !important;
    cursor: pointer !important;
    border: none !important;
}

.badge-select-pill-arrow {
    position: absolute !important;
    right: 0.4rem !important;
    font-size: 0.6rem !important;
    opacity: 0.6 !important;
}

.admin-btn-quick-add {
    padding: 0.2rem 0.5rem !important;
    font-size: 0.75rem !important;
    line-height: 1 !important;
    border-radius: 4px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    background: transparent !important;
    color: var(--grey-1) !important;
    border-color: var(--white-3) !important;
}

.u-resize-y {
    resize: vertical !important;
}

.u-min-h-100 {
    min-height: 100px !important;
}

.project-checkbox-card {
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    padding: 0.5rem 1rem !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    transition: background 0.15s, border-color 0.15s !important;
}

.project-checkbox-card.selected {
    background: #f8f9fa !important;
    border-color: #858585 !important;
}

.project-checkbox-card-img {
    width: 32px !important;
    height: 32px !important;
    border-radius: 4px !important;
    object-fit: cover !important;
}

/* Sizing extra helpers */
.u-w-1rem {
    width: 1rem !important;
}

.u-h-1rem {
    height: 1rem !important;
}

.u-min-w-150 {
    min-width: 150px !important;
}

/* Vehicle config vertical header */
.th-vertical-header {
    cursor: default !important;
    text-align: center !important;
    font-size: 0.7rem !important;
    writing-mode: vertical-lr !important;
    transform: rotate(180deg) !important;
    padding: 1rem 0.5rem !important;
}

/* Dynamic JS State classes */
.admin-btn-success-state {
    background: #059669 !important;
    border-color: #059669 !important;
    color: #ffffff !important;
}

/* Sizing and Spacing helpers for Pricing & lists */
.u-w-30px {
    width: 30px !important;
}

.u-w-80px {
    width: 80px !important;
}

.u-w-140px {
    width: 140px !important;
}

.u-gap-0.75rem {
    gap: 0.75rem !important;
}

.u-pb-0.75rem {
    padding-bottom: 0.75rem !important;
}

.u-lh-1 {
    line-height: 1 !important;
}

.u-lh-1.5 {
    line-height: 1.5 !important;
}

.u-lh-1.6 {
    line-height: 1.6 !important;
}

/* Reusable JS-toggle search placeholder */
#no-results {
    display: none;
}

/* Inspection details pages styling */

.alert-banner-success {
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    padding: 1rem 1.25rem !important;
    border-radius: 8px !important;
    background: var(--status-success-bg, #DCFCE7) !important;
    border: 1px solid var(--status-success-border, rgba(21, 128, 61, 0.3)) !important;
    margin: 1rem 0 !important;
}

.alert-banner-title-success {
    font-weight: 600 !important;
    color: var(--status-success-text, #14532D) !important;
}

.alert-banner-success .lucide {
    height: 24px;
    width: 24px;
    vertical-align: -4px;
    color: var(--status-success-text);
}

.alert-banner-desc-success {
    font-size: 0.85rem !important;
    color: var(--status-success-text, #14532D) !important;
}

.alert-banner-danger {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.75rem !important;
    padding: 1rem 1.25rem !important;
    border-radius: 8px !important;
    background: var(--status-danger-bg, #fef2f2) !important;
    border: 1px solid rgba(239, 68, 68, 0.3) !important;
}

.alert-banner-danger-content {
    position: relative;
    top: 0.5ch;
    padding-bottom: 0.5ch;
}

.alert-banner-title-danger {
    font-weight: 600 !important;
    color: var(--status-danger-text, #991b1b) !important;
}

.alert-banner-danger .lucide {
    height: 24px;
    width: 24px;
    color: var(--status-danger-text);
}

.alert-banner-desc-danger {
    font-size: 0.85rem !important;
    color: var(--status-danger-text, #b91c1c) !important;
}

.alert-banner-warning {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.75rem !important;
    padding: 1rem 1.25rem !important;
    border-radius: 8px !important;
    background: var(--status-warning-bg, #FEF3C7) !important;
    border: 1px solid var(--status-warning-border, rgba(245, 158, 11, 0.35)) !important;
}

.alert-banner-title-warning {
    font-weight: 600 !important;
    color: var(--status-warning-text, #B45309) !important;
}

.alert-banner-desc-warning {
    font-size: 0.85rem !important;
    color: var(--status-warning-text, #B45309) !important;
}

.alert-banner-info {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.75rem !important;
    padding: 1rem 1.25rem !important;
    border-radius: 8px !important;
    background: var(--status-info-bg, #DBEAFE) !important;
    border: 1px solid var(--status-info-border, rgba(59, 130, 246, 0.3)) !important;
}

.alert-banner-title-info {
    font-weight: 600 !important;
    color: var(--status-info-text, #1E40AF) !important;
}

.alert-banner-desc-info {
    font-size: 0.85rem !important;
    color: var(--status-info-text, #1E40AF) !important;
}

.alert-banner-list {
    margin: 0.75rem 0 0 1rem !important;
    padding: 0 !important;
}

.checkpoint-category-title {
    font-size: 0.9rem !important;
    margin-top: 1rem;
    border-bottom: 1px solid var(--admin-border) !important;
}

.checkpoint-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)) !important;
    gap: 1rem !important;
    margin-bottom: 1.5rem !important;
}

.checkpoint-card {
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    background: var(--admin-bg) !important;
    padding: 0.8rem !important;
    border-radius: 6px !important;
}

.notes-preview-content {
    white-space: pre-wrap !important;
    font-size: 0.95rem !important;
    line-height: 1.6 !important;
}

.photos-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)) !important;
    gap: 1rem !important;
}

.photo-thumbnail-link {
    display: block !important;
    aspect-ratio: 1 !important;
    overflow: hidden !important;
    border-radius: 4px !important;
}

.photo-thumbnail-img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.seal-hash-container {
    word-break: break-all !important;
    font-family: monospace !important;
    font-size: 0.8rem !important;
    background: var(--admin-bg) !important;
    padding: 0.8rem !important;
    border-left: 3px solid #000 !important;
}

.btn-download-pdf-sidebar {
    width: 90% !important;
    text-align: center !important;
    padding: 5% !important;
}

.btn-download-pdf-sidebar .lucide {
    height: 16px !important;
    width: 16px !important;
    vertical-align: -2px;
    margin-right: 0.5rem;
}

.admin-btn-seal-yellow {
    width: 100% !important;
    background: #ffc84526 !important;
    color: #ffc845 !important;
    border-color: #ffc8453d !important;
    transition: all 0.2s !important;
}

.admin-btn-sign-blue {
    width: 100% !important;
    background: #0e629226 !important;
    color: #0e6292 !important;
    border-color: #0e62923d !important;
    transition: all 0.2s !important;
}

.danger-card-top {
    border-top: 4px solid #ff4b2b !important;
}

.danger-card-title {
    color: #ff4b2b !important;
}

/* Form Specific helper classes */
.u-disabled-select {
    opacity: 0.5 !important;
    pointer-events: none !important;
}

.vehicle-small-thumbnail {
    width: 28px !important;
    height: 28px !important;
    border-radius: 4px !important;
    object-fit: cover !important;
}

.vehicle-med-thumbnail {
    width: 40px !important;
    height: 40px !important;
    border-radius: 6px !important;
    object-fit: cover !important;
    flex-shrink: 0 !important;
}

.checkpoint-group-security {
    background: hsl(45, 100%, 96%) !important;
    border: 1px solid hsl(45, 100%, 85%) !important;
}

.checkpoint-group-equipment {
    background: hsl(210, 100%, 96%) !important;
    border: 1px solid hsl(210, 100%, 85%) !important;
}

.checkpoint-group-title {
    margin-top: 0 !important;
    margin-bottom: 1.5rem !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05) !important;
    padding-bottom: 0.5rem !important;
}

.checkpoint-form-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
    gap: 1.5rem !important;
}

.checkpoint-form-card {
    background: white !important;
    padding: 1.25rem !important;
    border-radius: 10px !important;
    border: 1px solid rgba(0, 0, 0, 0.05) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02) !important;
}

.checkpoint-form-detail {
    font-size: 0.75rem !important;
    color: var(--grey-2) !important;
    margin-bottom: 0.75rem !important;
    line-height: 1.3 !important;
    font-style: italic !important;
}

.checkpoint-value-container {
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    background: #f9f9f9 !important;
    padding: 0.5rem !important;
    border-radius: 8px !important;
}

.checkpoint-value-input {
    background: white !important;
    border: 1px solid #ddd !important;
    height: 38px !important;
}

.badge-trigger-white {
    background: white !important;
    border-color: #ddd !important;
}

.form-photo-thumbnail-link {
    display: block !important;
    width: 80px !important;
    height: 80px !important;
    border-radius: 6px !important;
    overflow: hidden !important;
    border: 1px solid #e0e0e0 !important;
}

.form-photo-thumbnail-img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.photo-upload-label {
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    padding: 1rem !important;
    border: 2px dashed #d0d0d0 !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    transition: border-color 0.2s !important;
    background: var(--admin-bg, #f8f9fa) !important;
    position: relative !important;
}

.photo-upload-label:hover {
    border-color: #999 !important;
}

.u-file-input-hidden {
    width: 0.1px !important;
    height: 0.1px !important;
    opacity: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    z-index: 1 !important;
}

.u-m-auto {
    margin-left: auto !important;
    margin-right: auto !important;
}

.u-ml-auto {
    margin-left: auto !important;
}

.u-mr-auto {
    margin-right: auto !important;
}

.u-bg-transparent {
    background: transparent !important;
}

/* Affichage conditionnel compatible JS sans !important */
.is-hidden {
    display: none;
}

/* Tailles de texte fines & micro-typographie */
.u-text-2xs {
    font-size: 11px !important;
}

.u-font-10 {
    font-size: 10px !important;
}

.u-font-normal {
    font-weight: 400 !important;
}

.u-min-w-50 {
    min-width: 50px !important;
}

.u-pre-wrap {
    white-space: pre-wrap !important;
}

.u-leading-normal {
    line-height: 1.5 !important;
}

.u-tracking-wide {
    letter-spacing: 0.5px !important;
}

.u-underline {
    text-decoration: underline !important;
}

.u-pos-absolute {
    position: absolute !important;
}

.u-overflow-y-auto {
    overflow-y: auto !important;
}

/* ── css/admin/admin-projects.css ── */
/* ── Admin Projects Stylesheet ────────────────────────────── */

/* Tooltip Popup */
.admin-tooltip-container {
    position: relative;
    display: inline-block;
}

.admin-tooltip-popup {
    display: none;
    position: absolute;
    bottom: 0;
    left: 0;
    min-width: 250px;
    max-width: 400px;
    overflow-y: auto;
    max-height: 250px;
    background: white;
    color: #333;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    z-index: 1000;
    font-size: 0.85rem;
    font-style: normal;
    line-height: 1.4;
    border: 1px solid #e5e7eb;
    white-space: pre-line;
    text-align: left;
}

.admin-tooltip-popup strong {
    display: block;
    line-height: 0;
}

.admin-tooltip-popup::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 20px;
    border-width: 8px;
    border-style: solid;
    border-color: white transparent transparent transparent;
}

.admin-tooltip-container.open .admin-tooltip-popup {
    display: block;
    animation: tooltipFadeIn 0.2s ease-out;
}

@keyframes tooltipFadeIn {
    from {
        opacity: 0;
        transform: translateY(5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Projects specific page elements */
.projects-badge-link {
    text-decoration: none;
    width: fit-content;
    display: inline-block;
}

.projects-prequote-badge {
    font-size: 0.65rem;
    padding: 0.15rem 0.4rem;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    white-space: nowrap;
}

.projects-prequote-badge.draft {
    background: #fef3c7;
    color: #d97706;
    border: 1px solid #fde68a;
}

.projects-prequote-badge.sent {
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #bfdbfe;
}

.projects-prequote-badge.accepted {
    background: #ecfdf5;
    color: #047857;
    border: 1px solid #a7f3d0;
}

.projects-prequote-badge.rejected {
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fecaca;
}

.projects-prequote-badge-version {
    opacity: 0.85;
    font-weight: 600;
    margin-left: 2px;
}

.projects-prequote-badge-status-label {
    font-size: 0.6rem;
    opacity: 0.85;
    margin-left: 4px;
    font-weight: bold;
}


.projects-head-badge {
    background: #f1f5f9;
    color: #475569;
    border: 1px solid #cbd5e1;
    font-size: 0.65rem;
    padding: 0.15rem 0.4rem;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    white-space: nowrap;
}

.projects-note-trigger {
    font-size: 0.7rem;
    color: #777;
    font-style: italic;
    border-left: 2px solid #e5e7eb;
    padding-left: 0.5rem;
    max-width: 250px;
    line-height: 1.3;
}

.projects-cell-item {
    display: flex;
    gap: 0.6rem;
}

.projects-cell-item .lucide {
    width: 16px;
    height: 16px;
    stroke-width: 2.5;
}

.projects-cell-item a {
    display: inline-flex;
    text-decoration: none;
}

.projects-cell-item span.disabled {
    display: inline-flex;
    text-decoration: none;
    opacity: 0.6;
    cursor: not-allowed;
}

.projects-contacts-cell-item {
    white-space: nowrap;
}

.projects-contacts-cell-item span {
    color: var(--grey-2);
}

.projects-contacts-cell-item a {
    text-decoration: none;
    color: inherit;
    font-weight: 500;
}

/* ═══════════ STYLES DU HUB PROJET & RAPPORTS COLLECTIFS ═══════════ */

.project-title-link {
    color: var(--admin-text-dark, #0f172a);
    text-decoration: none;
    font-weight: 600;
    transition: color 0.15s;
}

.project-title-link:hover {
    color: var(--admin-accent, #ffc845);
}

/* En-tête & Statistiques */
.project-hub-header {
    background: #ffffff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    padding: 1.25rem 1.5rem;
}

.project-hub-left-side {
    display: flex;
    flex-direction: column;
    gap: 1.5rem !important;
    padding-top: 3px;
}


.project-hub-header-main-row {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 20px;
}

.project-hub-meta {
    display: flex;
    align-items: flex-end;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.project-hub-meta .lucide {
    width: 18px;
    height: 18px;
}

.project-hub-prod-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: #f8fafc;
    color: #475569;
    border: 1px solid #e2e8f0;
    padding: 0.2rem 0.6rem;
    border-radius: 6px;
    font-size: 0.78rem;
    font-weight: 500;
}

.project-hub-prod-badge strong {
    color: #0f172a;
    font-weight: 600;
}

.project-hub-title {
    font-size: 1.65rem;
    font-weight: 600;
    color: #0f172a;
}

/* Barre de jalons temporels / Dates du tournage */
.project-hub-dates-strip {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 0.4rem 0.6rem;
}

.project-date-step {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.25rem 0.5rem;
    border-radius: 6px;
    transition: background 0.15s ease;
}

.project-date-step.is-active {
    background: rgba(245, 158, 11, 0.12);
    border: 1px solid rgba(245, 158, 11, 0.4);
}

.project-date-step.is-active .project-date-step-lbl {
    color: #b45309;
}

.project-date-step.is-active .project-date-step-val {
    color: #92400e;
}

.project-date-step-icon .lucide {
    height: 20px;
    width: 20px;
    margin-right: 0.3rem;
}

.project-date-step-icon-departure {
    color: var(--entity-checkout);
}

.project-date-step-icon-shoot {
    color: var(--entity-project);
}

.project-date-step-icon-return {
    color: var(--entity-checkin);
}



.project-date-step-body {
    display: flex;
    flex-direction: column;
}

.project-date-step-lbl {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    font-weight: 600;
    line-height: 1.1;
}

.project-date-step-val {
    font-size: 0.82rem;
    color: #0f172a;
    font-weight: 600;
    line-height: 1.3;
    margin-top: 2px;
}

.project-date-sep {
    color: #94a3b8;
    font-size: 0.75rem;
    font-weight: 700;
    user-select: none;
}

@media (max-width: 768px) {
    .project-hub-header-main-row {
        flex-wrap: wrap;
        gap: 10px;
    }

    .project-hub-title {
        font-size: 1.3rem;
    }

    .project-hub-left-side {
        gap: 0.75rem !important;
        width: 100%;
    }

    .project-hub-quick-stats {
        width: 100%;
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 0.5rem !important;
    }

    .project-hub-dates-strip {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        gap: 0.35rem;
    }

    .project-date-sep {
        display: none;
    }

    .project-hub-dates-pills {
        display: flex;
        flex-wrap: wrap;
        width: 100%;
        gap: 0.35rem;
    }
}

.project-stat-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--admin-bg, #f8fafc);
    border: 1px solid var(--white-3, #e2e8f0);
    border-radius: 8px;
    padding: 0.7rem 0.5rem;
    min-width: 80px;
    text-align: center;
}

.project-stat-box.warning {
    background: #fff1f2;
    border-color: #fecdd3;
}

.project-stat-box.warning .project-stat-num {
    color: #e11d48;
}

.project-stat-num {
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--admin-text-dark, #0f172a);
    line-height: 1.2;
}

.project-stat-lbl {
    font-size: 0.68rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 0.15rem;
}

/* ── Section Journal de Bord & Rapports ── */
.project-reports-container {
    position: relative;
}

.project-reports-header-title {
    display: flex;
    flex-direction: column;
}

.project-reports-title-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: var(--grey-1, #151515);
    color: var(--admin-accent, #FFC845);
    border-radius: 6px;
    flex-shrink: 0;
}

/* Boîte de rédaction de rapport */
.project-report-form {
    background: #ffffff;
    border: 1px solid var(--white-3, #e2e8f0);
    border-radius: 8px;
    padding: 1.15rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
}

.project-report-field-group {
    display: flex;
    flex-direction: column;
}

.project-report-field-label {
    font-size: 0.80rem;
    font-weight: 600;
    color: #1e293b;
    margin-bottom: 0.35rem;
    display: block;
}

.project-report-format-hint {
    font-size: 0.70rem;
    color: #94a3b8;
    font-weight: 400;
}

.project-report-title-input {
    width: 100%;
    font-size: 0.86rem;
    font-weight: 500;
    padding: 0.55rem 0.75rem;
    border-radius: 6px;
    border: 1px solid var(--white-3, #cbd5e1);
    background: #ffffff;
    color: #0f172a;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    box-sizing: border-box;
}

.project-report-title-input::placeholder {
    font-weight: 400;
    color: #94a3b8;
}

.project-report-title-input:focus {
    border-color: var(--admin-accent, #FFC845);
    box-shadow: 0 0 0 3px rgba(255, 200, 69, 0.2);
    outline: none;
}



.project-hub-divider {
    border: none;
    border-top: 1px solid var(--white-3, #e2e8f0);
    margin: 1.25rem 0;
}

/* Fil chronologique des rapports (Timeline technique BV) */
.project-reports-stream {
    display: flex;
    flex-direction: column;
    margin-top: 0.5rem;
}

.project-reports-timeline {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.project-report-item {
    display: flex;
    gap: 1rem;
    position: relative;
}

.project-report-timeline-axis {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 32px;
    flex-shrink: 0;
}

.project-report-avatar {
    width: 32px;
    aspect-ratio: 1;
    position: relative;
    top: 6px;
    border-radius: 50%;
    color: var(--grey-1, #151515);
    background: var(--admin-accent, #FFC845);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.65rem;
    letter-spacing: 0.04em;
    flex-shrink: 0;
    border: 2px solid #ffffff;
    box-shadow: 0 0 0 1.5px var(--neutral-bg);
    transition: box-shadow 0.2s ease, transform 0.2s ease;
    z-index: 2;
}

.project-reports-timeline:before {
    content: "";
    width: 2px;
    flex: 1;
    background: var(--neutral-bg);
    border-radius: 1px;
    height: calc(100% - 34px);
    top: 34px;
    left: 15px;
    position: absolute;
}

.project-report-item:last-child .project-report-timeline-line {
    display: none;
}

.project-report-card {
    flex: 1;
    min-width: 0;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-left: 3.5px solid #cbd5e1;
    padding: 0.95rem 1.15rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}

.project-report-item:hover .project-report-card {
    border-color: #cbd5e1;
    border-left-color: var(--admin-accent, #FFC845);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
}

.project-report-author {
    font-size: 0.66rem;
    font-weight: 600;
    color: var(--admin-text);
}

.project-report-role-badge {
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.12rem 0.45rem;
    border-radius: 4px;
    background: #f8fafc;
    color: #475569;
    border: 1px solid #e2e8f0;
    font-weight: 600;
}

.project-report-date {
    font-size: 0.72rem;
    color: #64748b;
    font-weight: 400;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.project-report-date svg {
    color: #94a3b8;
    flex-shrink: 0;
}

.project-report-title {
    font-size: 1.04rem;
    font-weight: 600;
    color: #0f172a;
    letter-spacing: -0.01em;
    margin: 0 0 1rem 0;
    line-height: 1.35;
}

.project-report-body {
    margin-top: 0.35rem;
    font-size: 0.83rem;
    color: #334155;
    line-height: 1.62;
    word-break: break-word;
}

.project-report-body p {
    margin: 0 0 0.5rem 0;
}

.project-report-body p:last-child {
    margin-bottom: 0;
}

.project-report-body h1 {
    font-size: 1.02rem;
    font-weight: 600;
    color: #0f172a;
    letter-spacing: -0.015em;
    margin: 0.8rem 0 0.35rem 0;
}

.project-report-body h2 {
    font-size: 0.92rem;
    font-weight: 600;
    color: #0f172a;
    letter-spacing: -0.01em;
    margin: 0.7rem 0 0.3rem 0;
}

.project-report-body h3 {
    font-size: 0.86rem;
    font-weight: 600;
    color: #1e293b;
    margin: 0.6rem 0 0.25rem 0;
}

.project-report-body h4 {
    font-size: 0.80rem;
    font-weight: 600;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin: 0.5rem 0 0.2rem 0;
}

.project-report-body p,
.project-report-body ul,
.project-report-body li,
.project-report-body ol {
    font-size: 0.8rem;
    line-height: 2rem;
}

.project-report-body ul,
.project-report-body ol {
    margin: 0.35rem 0 0.6rem 1.25rem;
    padding: 0;
}

.project-report-body li {
    margin-bottom: 0.2rem;
    line-height: 1.55;
}

.project-report-body blockquote {
    margin: 0.5rem 0;
    padding: 0.45rem 0.8rem;
    background: #f8fafc;
    border-left: 3px solid var(--admin-accent, #ffc845);
    border-radius: 0 5px 5px 0;
    color: #475569;
    font-size: 0.80rem;
    font-style: italic;
    line-height: 1.55;
}

.project-report-body blockquote p {
    margin: 0;
}


.project-report-body code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.75rem;
    background: #f1f5f9;
    padding: 0.12rem 0.35rem;
    border-radius: 4px;
    color: #0f172a;
}

.project-report-body pre {
    background: #0f172a;
    color: #f8fafc;
    padding: 0.65rem 0.85rem;
    border-radius: 6px;
    overflow-x: auto;
    font-size: 0.75rem;
    line-height: 1.5;
    margin: 0.5rem 0;
}

.project-report-body pre code {
    background: transparent;
    color: inherit;
    padding: 0;
}

.project-report-body a {
    color: #0284c7;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.project-report-body a:hover {
    color: #0369a1;
}

.project-report-body hr {
    border: none;
    border-top: 1px solid #e2e8f0;
    margin: 0.8rem 0;
}

/* ── Rapports Pliables / Dépliables (Limite 200 caractères) ─────── */
.project-report-collapsible {
    position: relative;
    margin-top: 0.45rem;
}

.project-report-collapsible .project-report-body {
    margin-top: 0;
}

.project-report-collapsible.is-collapsed .project-report-body-full {
    display: none !important;
}

.project-report-collapsible.is-collapsed .project-report-body-preview {
    display: block !important;
}

.project-report-collapsible.is-expanded .project-report-body-preview {
    display: none !important;
}

.project-report-collapsible.is-expanded .project-report-body-full {
    display: block !important;
    animation: reportBodyFadeIn 0.22s ease-out;
}

@keyframes reportBodyFadeIn {
    from {
        opacity: 0;
        transform: translateY(-3px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.project-report-toggle-wrapper {
    margin-top: 0.25rem;
    display: flex;
    align-items: center;
}

.project-report-toggle-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    background: transparent;
    border: none;
    padding: 0;
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 500;
    cursor: pointer;
    transition: color 0.15s ease;
    user-select: none;
    box-shadow: none;
}

.project-report-toggle-btn:hover {
    color: #0f172a;
    background: transparent;
    box-shadow: none;
}

.project-report-toggle-btn:hover .project-report-toggle-label {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.project-report-toggle-btn .project-report-toggle-icon {
    font-size: 0.58rem;
    line-height: 1;
    opacity: 0.6;
    transition: transform 0.15s ease, opacity 0.15s ease;
}

.project-report-toggle-btn:hover .project-report-toggle-icon {
    opacity: 1;
}

/* Notion Slash Command Dropdown */
.notion-slash-container {
    position: relative;
}

.notion-slash-menu {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 0;
    z-index: 1050;
    width: 290px;
    height: 150px;
    max-height: 300px;
    overflow-y: auto;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.12), 0 8px 10px -6px rgba(0, 0, 0, 0.08);
    padding: 0.35rem;
    display: none;
}

.notion-slash-menu.is-open {
    display: block;
    animation: notion-menu-fade-in 0.12s ease-out;
}

@keyframes notion-menu-fade-in {
    from {
        opacity: 0;
        transform: translateY(4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.notion-slash-header {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #94a3b8;
    padding: 0.35rem 0.5rem 0.2rem;
}

.notion-slash-item {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.4rem 0.55rem;
    border-radius: 5px;
    cursor: pointer;
    user-select: none;
    transition: background-color 0.1s ease;
}

.notion-slash-item:hover,
.notion-slash-item.is-active {
    background-color: #f1f5f9;
}

.notion-slash-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 4px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    font-size: 0.8rem;
    flex-shrink: 0;
}

.notion-slash-info {
    flex: 1;
    min-width: 0;
}

.notion-slash-title {
    font-size: 0.8rem;
    font-weight: 600;
    color: #0f172a;
    display: block;
    line-height: 1.2;
}

.notion-slash-desc {
    font-size: 0.68rem;
    color: #64748b;
    display: block;
    line-height: 1.2;
    margin-top: 1px;
}

.notion-slash-hint {
    font-size: 0.68rem;
    font-family: ui-monospace, monospace;
    color: #94a3b8;
    background: #f8fafc;
    padding: 0.1rem 0.25rem;
    border-radius: 3px;
    border: 1px solid #e2e8f0;
}

/* Menu contextuel Clic Droit */
.notion-context-menu {
    position: fixed;
    z-index: 2000;
    min-width: 225px;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    box-shadow: 0 12px 30px -4px rgba(0, 0, 0, 0.18), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    padding: 0.35rem;
    display: none;
    animation: notion-context-fade-in 0.12s ease-out;
}

.notion-context-menu.is-open {
    display: block;
}

@keyframes notion-context-fade-in {
    from {
        opacity: 0;
        transform: scale(0.96);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

.notion-context-header {
    font-size: 0.63rem;
    font-weight: 700;
    color: #94a3b8;
    letter-spacing: 0.05em;
    padding: 0.35rem 0.55rem 0.2rem 0.55rem;
    text-transform: uppercase;
}

.notion-context-divider {
    height: 1px;
    background: #e2e8f0;
    margin: 0.3rem 0;
}

.notion-context-item {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.38rem 0.55rem;
    border-radius: 5px;
    cursor: pointer;
    font-size: 0.8rem;
    color: #0f172a;
    user-select: none;
    transition: background-color 0.1s ease, color 0.1s ease;
}

.notion-context-item:hover {
    background-color: #f1f5f9;
}

.notion-context-item.is-danger-hover:hover {
    background-color: #fef2f2;
    color: #b91c1c;
}

.notion-context-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    font-size: 0.82rem;
    flex-shrink: 0;
}

.notion-context-label {
    flex: 1;
    font-weight: 500;
}

.notion-context-hint {
    font-size: 0.68rem;
    color: #94a3b8;
    font-family: ui-monospace, monospace;
}

/* Éditeur WYSIWYG Notion-style directement éditable */
.notion-wysiwyg-wrapper {
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    position: relative;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.notion-wysiwyg-wrapper:focus-within {
    border-color: var(--admin-accent, #ffc845);
    box-shadow: 0 0 0 3px rgba(255, 200, 69, 0.18);
}

.notion-live-editor {
    width: calc(100% - 2rem);
    min-height: 115px;
    max-height: 480px;
    overflow-y: auto;
    padding: 0.85rem 1rem;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #1e293b;
    outline: none;
    cursor: text;
    background: #ffffff;
    border-radius: 8px;
}

/* Placeholder élégant façon Notion : masqué dès sélection / focus */
.notion-live-editor:not(:focus):not(:focus-within):empty:before,
.notion-live-editor:not(:focus):not(:focus-within)[data-empty="true"]:not(.is-focused):before {
    content: attr(data-placeholder);
    color: #94a3b8;
    pointer-events: none;
    font-weight: 400;
    display: block;
}

.notion-live-editor:focus:before,
.notion-live-editor:focus-within:before,
.notion-live-editor.is-focused:before {
    display: none !important;
    content: none !important;
}


.notion-live-editor h2 {
    font-size: 1.15rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0.75rem 0 0.35rem 0;
}

.notion-live-editor h3 {
    font-size: 1rem;
    font-weight: 600;
    color: #1e293b;
    margin: 0.6rem 0 0.25rem 0;
}

.notion-live-editor blockquote {
    margin: 0.5rem 0;
    padding: 0.5rem 0.85rem;
    background: #f8fafc;
    border-left: 3px solid var(--admin-accent, #ffc845);
    border-radius: 0 6px 6px 0;
    color: #475569;
}

.notion-live-editor ul,
.notion-live-editor ol {
    margin: 0.35rem 0 0.5rem 1.4rem;
    padding: 0;
}

.notion-live-editor li {
    margin-bottom: 0.25rem;
}

.notion-live-editor pre {
    background: #0f172a;
    color: #f8fafc;
    padding: 0.75rem 1rem;
    border-radius: 6px;
    font-size: 0.82rem;
    margin: 0.5rem 0;
}

.notion-live-editor code {
    background: #f1f5f9;
    color: #0f172a;
    padding: 0.15rem 0.35rem;
    border-radius: 4px;
    font-family: ui-monospace, monospace;
    font-size: 0.82rem;
}

.notion-live-editor pre code {
    background: transparent;
    color: inherit;
    padding: 0;
}

.notion-live-editor hr {
    border: none;
    border-top: 1px solid #e2e8f0;
    margin: 0.75rem 0;
}

.notion-kbd {
    font-family: inherit;
    font-size: 0.72rem;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 3px;
    padding: 1px 4px;
    color: #0f172a;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}

.project-report-actions {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.project-report-action-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    color: #94a3b8;
    padding: 0.25rem;
    border-radius: 4px;
    transition: color 0.15s ease, background-color 0.15s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.project-report-action-btn:hover {
    color: #0f172a;
    background-color: #f1f5f9;
}

.project-report-edit-btn:hover {
    color: #0284c7;
    background-color: #e0f2fe;
}

.project-report-delete-btn:hover {
    color: #ef4444;
    background-color: #fee2e2;
}

.project-report-edited-badge {
    font-size: 0.68rem;
    color: #94a3b8;
    font-style: italic;
    margin-left: 0.25rem;
    font-weight: 400;
}

.project-report-edit-form {
    margin-top: 0.5rem;
    padding-top: 0.65rem;
    border-top: 1px dashed #cbd5e1;
}

.project-report-edit-title-input {
    width: 100%;
    font-size: 0.88rem;
    font-weight: 600;
    padding: 0.45rem 0.65rem;
    border: 1px solid var(--white-3, #cbd5e1);
    border-radius: 6px;
    background: #ffffff;
    color: #0f172a;
    box-sizing: border-box;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.project-report-edit-title-input:focus {
    border-color: var(--admin-accent, #FFC845);
    box-shadow: 0 0 0 3px rgba(255, 200, 69, 0.2);
    outline: none;
}

.project-report-edit-textarea {
    width: 100%;
    min-height: 90px;
    border: 1px solid var(--white-3, #cbd5e1);
    border-radius: 6px;
    padding: 0.65rem 0.85rem;
    font-size: 0.83rem;
    line-height: 1.6;
    font-family: inherit;
    resize: vertical;
    box-sizing: border-box;
    background: #ffffff;
    color: #0f172a;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.project-report-edit-textarea:focus {
    border-color: var(--admin-accent, #FFC845);
    box-shadow: 0 0 0 3px rgba(255, 200, 69, 0.2);
    outline: none;
}

@media (max-width: 640px) {
    .project-report-item {
        gap: 0.65rem;
    }

    .project-report-timeline-axis {
        width: 28px;
    }

    .project-report-avatar {
        width: 28px;
        height: 28px;
        font-size: 0.58rem;
    }

    .project-report-card {
        padding: 0.75rem 0.85rem;
    }
}

/* Matériel engagé */
.project-equipment-card {
    background: var(--admin-bg, #f8fafc);
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 0.85rem;
}

.project-equipment-img {
    height: 48px;
    border-radius: 6px;
    object-fit: cover;
    border: 1px solid #cbd5e1;
}

.project-equipment-placeholder {
    width: 48px;
    height: 48px;
    border-radius: 6px;
    background: #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

/* Contacts du tournage */
.project-contacts-list {
    display: flex;
    flex-direction: column;
    max-height: 220px;
    overflow-y: auto;
    padding-right: 2px;
}

.project-contact-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.45rem 0;
    border-bottom: 1px solid #f1f5f9;
    gap: 0.5rem;
}

.project-contact-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.project-contact-main {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.project-contact-name {
    font-size: 0.82rem;
    font-weight: 600;
    color: #1e293b;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.project-contact-role {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #64748b;
    margin-top: 2px;
}

.project-contact-actions {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    flex-shrink: 0;
}

.project-contact-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 5px;
    background: #f8fafc;
    color: #0284c7;
    border: 1px solid #e2e8f0;
    transition: all 0.15s ease;
    text-decoration: none;
}

.project-contact-icon-btn:hover {
    background: #e0f2fe;
    border-color: #bae6fd;
    color: #0369a1;
}

.project-contact-icon-btn .lucide {
    width: 13px;
    height: 13px;
}

/* Documents & Décharges */
.project-docs-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
}

@media (max-width: 768px) {
    .project-docs-grid {
        grid-template-columns: 1fr;
    }
}

.project-doc-info {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;
}

.project-doc-item {
    background: var(--admin-bg, #f8fafc);
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    gap: 0.8rem;
}

.project-doc-item .lucide {
    width: 16px;
    height: 16px;
}

.project-doc-title {
    display: flex;
    align-items: center;
    gap: 6px;
}

.project-doc-beneficiary {
    font-size: 0.75rem;
    color: var(--grey-2, #515151);
    font-weight: 600;
    display: flex;
    flex-direction: column;
}

.project-doc-beneficiary-name {
    font-weight: 500;
    font-size: 0.65rem;
}

/* Badge dans la liste des projets */
.project-reports-list-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.2rem 0.45rem;
    border-radius: 4px;
    font-size: 0.72rem;
    font-weight: 600;
    text-decoration: none;
    transition: transform 0.15s, background 0.15s;
}

.project-reports-list-badge.has-reports {
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #bfdbfe;
}

.project-reports-list-badge.has-reports:hover {
    background: #dbeafe;
    transform: translateY(-1px);
}

.project-reports-list-badge.empty {
    background: #f8fafc;
    color: #64748b;
    border: 1px dashed #cbd5e1;
}

.project-reports-list-badge.empty:hover {
    background: #f1f5f9;
    color: #334155;
}

/* ── Hub Projet & États de tournage ── */
.project-hub-header {
    border-left: 5px solid var(--status-info, #5299D3);
}

.project-hub-header[data-status="in_progress"] {
    border-left-color: var(--entity-project, #F59E0B) !important;
}

.project-hub-header[data-status="standby"],
.project-hub-header[data-status="stand-by"],
.project-hub-header[data-status="immobilise"],
.project-hub-header[data-status="immobilisé"] {
    border-left-color: var(--status-warning, #F59E0B) !important;
}

.project-hub-header[data-status="completed"] {
    border-left-color: var(--status-neutral, #515151) !important;
}

.project-hub-header[data-status="upcoming"] {
    border-left-color: var(--status-info, #5299D3) !important;
}

.project-hub-id {}

.project-report-body-full {
    display: none;
}

.project-doc-item--error {
    border-left: 3px solid var(--red-error, #b91c1c) !important;
    border-radius: 0 !important;
}

.project-doc-item--error .project-doc-item {
    background: var(--white-2);
    border-radius: 4px;
}

/* ── Notes Spécifiques du Projet ── */

.project-notes-title {
    color: var(--grey-1);
    letter-spacing: 0.2px;
}

.project-notes-btn-icon {
    width: 12px;
    height: 12px;
    vertical-align: -1px;
    margin-right: 3px;
}

.project-notes-content {
    white-space: pre-wrap;
    line-height: 1.6;
    font-size: 0.88rem;
    word-break: break-word;
    color: var(--grey-2);
    font-style: italic;
}

.project-hub-calendar-card {
    background: #ffffff;
}

.project-hub-dates-pills {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.project-hub-date-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.73rem;
    font-weight: 600;
    padding: 0.2rem 0.55rem;
    border-radius: 5px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #475569;
}

.project-hub-date-pill.pill-departure {
    color: var(--entity-checkout, #15803D);
    background: var(--entity-checkout-bg, #DCFCE7);
    border-color: #bbf7d0;
}

.project-hub-date-pill.pill-shoot {
    color: var(--entity-project, #F59E0B);
    background: var(--entity-project-bg, #FEF3C7);
    border-color: #fde68a;
}

.project-hub-date-pill.pill-return {
    color: var(--entity-checkin, #3B82F6);
    background: var(--entity-checkin-bg, #DBEAFE);
    border-color: #bfdbfe;
}

.project-hub-date-pill .lucide {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
}

.project-table-dates-pills {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.3rem;
    flex-direction: column;
    align-items: flex-start;
}

.project-table-dates-pills .project-hub-date-pill {
    font-size: 0.7rem;
    padding: 0.15rem 0.45rem;
    line-height: 1.3;
    white-space: nowrap;
}

.project-hub-calendar-viewport {
    width: 100%;
}

.project-notes-content {
    white-space: pre-wrap;
    line-height: 1.5;
    font-size: 0.8rem;
    word-break: break-word;
    color: #334155;
    background: #f8fafc;
    border-radius: 6px;
    padding: 0.5rem 0.65rem;
    border: 1px solid #f1f5f9;
}

.project-notes-textarea {
    width: 100%;
    resize: vertical;
    min-height: 80px;
    line-height: 1.5;
    font-family: inherit;
    font-size: 0.88rem;
    box-sizing: border-box;
}

.empty-state.empty-state-sm {
    padding: 1.1rem 0.9rem;
    margin-top: 0.25rem;
}

.empty-state.empty-state-sm .empty-state-icon {
    width: 36px;
    height: 36px;
    margin-bottom: 0.4rem;
}

.empty-state.empty-state-sm .empty-state-icon .lucide,
.empty-state.empty-state-sm .empty-state-icon i {
    width: 18px;
    height: 18px;
}

.empty-state.empty-state-sm .empty-state-title {
    font-size: 0.82rem;
    margin-bottom: 0.2rem;
}

.empty-state.empty-state-sm .empty-state-desc {
    font-size: 0.74rem;
    max-width: 280px;
}

.projects-waiver-label {
    min-width: 50px;
}

/* Vue Impression / Print */

@media print {
    body {
        background: #ffffff !important;
        color: #000000 !important;
        font-size: 11pt;
    }

    .admin-sidebar,
    .admin-header,
    .header_actions,
    .project-report-form,
    .project-report-delete-btn,
    .admin-btn {
        display: none !important;
    }

    .admin-card {
        box-shadow: none !important;
        border: 1px solid #cccccc !important;
        page-break-inside: avoid;
        margin-bottom: 1.5rem !important;
    }

    .u-grid-2-1 {
        display: block !important;
    }
}

/* ── css/admin/project_datepicker.css ── */
/* ── Project Timeline Date Picker CSS ───────────────────────────── */

.project-datepicker-container {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 1.25rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
    margin-bottom: 1.5rem;
    position: relative;
}

/* ── Mode Selector (Plage Continue vs Dates Ponctuelles) ───────── */
.pdp-mode-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid #f1f5f9;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.pdp-mode-tabs {
    display: inline-flex;
    background: #f1f5f9;
    border-radius: 8px;
    padding: 3px;
    gap: 2px;
}

.pdp-mode-tab {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    border: none;
    background: transparent;
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 600;
    padding: 0.45rem 0.9rem;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}

.pdp-mode-tab:hover {
    color: #0f172a;
}

.pdp-mode-tab.active {
    background: #ffffff;
    color: #0f172a;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.pdp-mode-tab .lucide {
    width: 16px;
    height: 16px;
    vertical-align: -20%;
    margin-right: 5%;
}

.pdp-mode-hint {
    font-size: 0.8rem;
    color: #64748b;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

/* ── Top Bar: Milestone Cards & Step Selector ───────────────── */
.pdp-milestones-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

@media (max-width: 900px) {
    .pdp-milestones-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 550px) {
    .pdp-milestones-grid {
        grid-template-columns: 1fr;
    }
}

.pdp-milestone-card {
    border: 2px solid #e5e7eb;
    border-radius: 10px;
    padding: 0.75rem 0.85rem;
    cursor: pointer;
    background: #fdfdfd;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    user-select: none;
}

.pdp-milestone-card:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
}

.pdp-milestone-card.active {
    background: #ffffff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* Specific Milestone Colors when Active */
.pdp-milestone-card.type-departure.active {
    border-color: #3b82f6;
}

.pdp-milestone-card.type-shoot_start.active,
.pdp-milestone-card.type-shoot_dates.active {
    border-color: #f97316;
}

.pdp-milestone-card.type-shoot_end.active {
    border-color: #f97316;
}

.pdp-milestone-card.type-return.active {
    border-color: var(--entity-checkout, #15803D);
}

.pdp-milestone-card.type-shoot_dates {
    grid-column: span 2 !important;
}

/* Immobilization Card */
.pdp-milestone-card.type-immobilization {
    border-style: solid;
}

.pdp-milestone-card.type-immobilization.is-immobilized {
    border-color: #fde68a;
    background: #fffbeb;
}

.pdp-milestone-card.type-immobilization.is-immobilized.active {
    border-color: #f59e0b;
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.15);
}

.pdp-milestone-card.type-immobilization.is-released {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.pdp-milestone-card.type-immobilization.is-released.active {
    border-color: #10b981;
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.15);
}

.type-immobilization .pdp-milestone-label {
    color: #b45309;
}

.type-immobilization.is-released .pdp-milestone-label {
    color: #047857;
}

.pdp-immob-badge {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15rem 0.4rem;
    border-radius: 4px;
    letter-spacing: 0.02em;
    display: inline-block;
    margin-top: 0.2rem;
}

.type-immobilization.is-immobilized .pdp-immob-badge {
    background: #fef3c7;
    color: #92400e;
    border: 1px solid #fde68a;
}

.type-immobilization.is-released .pdp-immob-badge {
    background: #dcfce7;
    color: #166534;
    border: 1px solid #bbf7d0;
}

.pdp-immob-action-btn {
    border: 1px solid #cbd5e1;
    background: #ffffff;
    color: #334155;
    font-size: 0.68rem;
    font-weight: 600;
    padding: 0.2rem 0.45rem;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.15s ease;
}

.pdp-immob-action-btn:hover {
    background: #f1f5f9;
    color: #0f172a;
}

/* Header inside Card */
.pdp-milestone-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.35rem;
}

.pdp-milestone-label {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.type-departure .pdp-milestone-label {
    color: #2563eb;
}

.type-shoot_start .pdp-milestone-label {
    color: #ea580c;
}

.type-shoot_end .pdp-milestone-label {
    color: #ea580c;
}

.type-return .pdp-milestone-label {
    color: #059669;
}

.type-shoot_dates .pdp-milestone-label {
    color: #ea580c;
}

.pdp-step-badge {
    font-size: 0.7rem;
    background: #f1f5f9;
    color: #64748b;
    padding: 0.15rem 0.45rem;
    border-radius: 9999px;
    font-weight: 600;
}

.pdp-milestone-card.active .pdp-step-badge {
    background: #0f172a;
    color: #ffffff;
}

/* Value & Date text */
.pdp-milestone-date {
    font-size: 0.95rem;
    font-weight: 600;
    color: #1e293b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 0.25rem;
}

.pdp-milestone-date.empty {
    color: #94a3b8;
    font-weight: 400;
    font-style: italic;
}

/* Sub-actions (+/- days, clear) */
.pdp-milestone-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.25rem;
    margin-top: 0.25rem;
}

.pdp-mini-btn {
    border: 1px solid #e2e8f0;
    background: #ffffff;
    color: #475569;
    font-size: 0.7rem;
    padding: 0.25rem 0.4rem;
    border-radius: 4px;
    cursor: pointer;
    line-height: 1;
    transition: all 0.15s ease;
}

.pdp-mini-btn:hover {
    background: #f1f5f9;
    color: #0f172a;
    border-color: #cbd5e1;
}

.pdp-mini-btn.btn-clear {
    color: #ef4444;
}

.pdp-mini-btn.btn-clear:hover {
    background: #fee2e2;
    border-color: #fca5a5;
}

.pdp-mini-btn .lucide {
    width: 12px;
    height: 12px;
    vertical-align: -2px;
    margin-right: 0.1rem;
}

/* ── Toolbar: Presets, Modes & Clear All ───────────────────────── */
.pdp-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 0.6rem 0.8rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    margin-bottom: 1.25rem;
}

.pdp-presets-group {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.pdp-preset-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
    margin-right: 0.2rem;
}

.pdp-preset-label .lucide {
    width: 13px;
    height: 13px;
    vertical-align: -2px;
    margin-right: 0.35rem;
}

.pdp-preset-btn {
    font-size: 0.78rem;
    padding: 0.35rem 0.65rem;
    border: 1px solid #cbd5e1;
    background: #ffffff;
    color: #334155;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 500;
    transition: all 0.15s ease;
}

.pdp-preset-btn:hover {
    background: #f1f5f9;
    border-color: #94a3b8;
    color: #0f172a;
}

.pdp-preset-btn.btn-highlight {
    background: #fffbeb;
    border-color: #fde68a;
    color: #b45309;
}

.pdp-preset-btn.btn-highlight:hover {
    background: #fef3c7;
    border-color: #fcd34d;
}

.pdp-actions-group {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* ── Calendar Viewport (Double Months Responsive) ─────────────── */
.pdp-calendar-container {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
}

@media (max-width: 768px) {
    .pdp-calendar-container {
        flex-direction: column;
        gap: 1rem;
    }
}

.pdp-month-card {
    flex: 1;
    min-width: 280px;
    max-width: 420px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 1rem;
}

.pdp-month-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

.pdp-month-title {
    font-size: 1rem;
    font-weight: 700;
    color: #0f172a;
    text-transform: capitalize;
}

.pdp-nav-btn {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #334155;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.15s ease;
    font-size: 1rem;
}

.pdp-nav-btn:hover {
    background: #e2e8f0;
    color: #0f172a;
}

.pdp-nav-spacer {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
}

/* ── Weekdays Grid ────────────────────────────────────────────── */
.pdp-weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    font-size: 0.75rem;
    font-weight: 600;
    color: #94a3b8;
    margin-bottom: 0.4rem;
}

/* ── Days Grid ────────────────────────────────────────────────── */
.pdp-days-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    row-gap: 4px;
}

.pdp-day-cell {
    aspect-ratio: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    font-size: 0.85rem;
    font-weight: 500;
    color: #334155;
    cursor: pointer;
    position: relative;
    user-select: none;
    transition: all 0.1s ease;
}

.pdp-day-cell:hover:not(.empty):not(.disabled) {
    background: #f1f5f9;
    color: #0f172a;
    font-weight: 700;
}

.pdp-day-cell.empty {
    cursor: default;
    background: transparent;
}

.pdp-day-cell.is-today {
    font-weight: 800;
    border: 1px solid #cbd5e1;
}

/* Range & Milestone Day Styling */
.pdp-day-cell.in-shoot-range,
.pdp-day-cell.shoot-start-day,
.pdp-day-cell.shoot-end-day {
    background: #f97316 !important;
    color: #ffffff !important;
    font-weight: 700;
    border-radius: 0;
}

.pdp-day-cell.shoot-start-day {
    border-top-left-radius: 6px;
    border-bottom-left-radius: 6px;
}

.pdp-day-cell.shoot-end-day {
    border-top-right-radius: 6px;
    border-bottom-right-radius: 6px;
}

.pdp-day-cell.shoot-start-day.shoot-end-day {
    border-radius: 6px !important;
}

.pdp-day-cell.departure-day {
    background: #3b82f6 !important;
    color: #ffffff !important;
    font-weight: 700;
    border-radius: 6px;
    box-shadow: 0 2px 6px rgba(59, 130, 246, 0.4);
}

.pdp-day-cell.return-day {
    background: var(--entity-checkout, #15803D) !important;
    color: #ffffff !important;
    font-weight: 700;
    border-radius: 6px;
    box-shadow: 0 2px 6px var(--entity-checkout-glow, rgba(21, 128, 61, 0.4));
}

/* Dots / Indicators below day number if overlap occurs */
.pdp-day-badges {
    display: flex;
    gap: 2px;
    position: absolute;
    bottom: 2px;
}

.pdp-dot {
    width: 4px;
    height: 4px;
    border-radius: 50%;
}

.pdp-dot.dot-dep {
    background: #3b82f6;
}

.pdp-dot.dot-shoot {
    background: #f97316;
}

.pdp-dot.dot-ret {
    background: var(--entity-checkout, #15803D);
}

/* Punctual shoot day styling */
.pdp-day-cell.shoot-punctual-day {
    background: #f97316 !important;
    color: #ffffff !important;
    font-weight: 700;
    border-radius: 6px;
    box-shadow: 0 2px 6px rgba(249, 115, 22, 0.4);
}

/* Intermediate Immobilisé / immobilized day (Ambre doux hachuré) */
.pdp-day-cell.intermediate-standby-day {
    background: repeating-linear-gradient(45deg,
            #fef3c7,
            #fef3c7 6px,
            #fde68a 6px,
            #fde68a 12px) !important;
    color: #92400e !important;
    font-weight: 700;
    border-radius: 4px;
    border: 1px solid #fcd34d;
}

.pdp-day-cell.intermediate-standby-day:hover {
    filter: brightness(0.96);
}



/* ── Help / Legend Footer ─────────────────────────────────────── */
.pdp-footer-legend {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid #f1f5f9;
    font-size: 0.78rem;
    color: #64748b;
}

.pdp-legend-items {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.pdp-legend-item {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.pdp-legend-swatch {
    width: 12px;
    height: 12px;
    border-radius: 3px;
}

.pdp-legend-swatch.swatch-dep {
    background: #3b82f6;
}

.pdp-legend-swatch.swatch-shoot {
    background: #f97316;
}

.pdp-legend-swatch.swatch-standby {
    background: repeating-linear-gradient(45deg,
            #fef3c7,
            #fef3c7 3px,
            #fde68a 3px,
            #fde68a 6px);
    border: 1px solid #fcd34d;
}



.pdp-legend-swatch.swatch-ret {
    background: var(--entity-checkout, #15803D);
}

.pdp-legend-hint {
    font-style: italic;
    color: #64748b;
    font-size: 0.78rem;
}

/* ── Section de Gestion des Intervalles Ponctuels ──────────────── */
.pdp-intervals-container {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 0.9rem 1rem;
    margin-bottom: 1.25rem;
}

.pdp-intervals-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.pdp-intervals-title {
    font-size: 0.85rem;
    font-weight: 700;
    color: #0f172a;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.pdp-intervals-subtitle {
    font-size: 0.75rem;
    color: #64748b;
}

.pdp-intervals-list {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.pdp-interval-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    padding: 0.65rem 0.85rem;
    transition: all 0.15s ease;
    flex-wrap: wrap;
    border-left: 4px solid var(--entity-checkout, #15803D);
    gap: 0.6rem;
}

.pdp-interval-card.is-immob {
    border-left: 4px solid var(--entity-project, #f59e0b);
    background: #fffdfa;
}

.pdp-interval-left {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.pdp-interval-badge {
    background: #f1f5f9;
    color: #475569;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.2rem 0.5rem;
    border-radius: 6px;
    min-width: 28px;
    text-align: center;
}

.pdp-interval-card.is-immob .pdp-interval-badge {
    background: #fef3c7;
    color: #b45309;
}

.pdp-interval-text {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.pdp-interval-text strong {
    font-size: 0.82rem;
    color: #1e293b;
}

.pdp-interval-detail {
    font-size: 0.74rem;
    color: #64748b;
}

.pdp-interval-actions {
    display: inline-flex;
    align-items: center;
}

.pdp-interval-btn.btn-immob {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid #cbd5e1;
    background: #ffffff;
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.35rem 0.75rem;
    border-radius: 6px;
    cursor: pointer;
    color: #64748b;
    transition: all 0.15s ease;
}

.pdp-interval-btn.btn-immob:hover {
    border-color: #94a3b8;
    color: #334155;
    background: #f8fafc;
}

.pdp-interval-btn.btn-immob.active {
    background: #fef3c7;
    border-color: #fcd34d;
    color: #b45309;
    font-weight: 700;
    box-shadow: 0 1px 2px rgba(245, 158, 11, 0.15);
}

.pdp-interval-btn.btn-immob.active:hover {
    background: #fde68a;
    border-color: #f59e0b;
}

.pdp-interval-btn .lucide {
    height: 13px;
    width: 13px;
    vertical-align: -1px;
}

.pdp-milestone-label .lucide {
    width: 15px;
    height: 15px;
    vertical-align: -2px;
    margin-right: 0.4rem;
}

.pdp-nav-btn .lucide {
    width: 16px;
    height: 16px;
}

.pdp-preset-btn .lucide {
    width: 13px;
    height: 13px;
    vertical-align: -2px;
    margin-right: 0.35rem;
}

.pdp-intervals-title .lucide {
    width: 16px;
    height: 16px;
    vertical-align: -3px;
    margin-right: 0.4rem;
}

/* ── css/admin/admin-js.css ── */
.rich-select {
    position: relative;
}

.rich-select-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid var(--grey-4, #e0e0e0);
    border-radius: 8px;
    z-index: 60;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    max-height: 320px;
    overflow: hidden;
    display: none;
    flex-direction: column;
}

.rich-select.open .rich-select-dropdown {
    display: flex;
}

.rich-select-options {
    overflow-y: auto;
    max-height: 260px;
    padding: 0.25rem;
}

.rich-select-option {
    display: block;
    width: 100%;
    padding: 0.6rem 0.75rem;
    border: none;
    background: none;
    cursor: pointer;
    text-align: left;
    border-radius: 6px;
    transition: background 0.1s;
    border-bottom: 1px solid var(--grey-4, #f0f0f0);
}

.rich-select-option:last-child {
    border-bottom: none;
}

.rich-select-option:hover {
    background: var(--admin-bg, #f5f5f5);
}

.rich-select-option[data-disabled="true"],
.rich-select-option.is-disabled {
    opacity: 0.55;
    cursor: not-allowed;
    background: var(--grey-5, #f9fafb);
}

.rich-select-option[data-disabled="true"]:hover,
.rich-select-option.is-disabled:hover {
    background: var(--grey-5, #f9fafb);
}

.rich-select-option[data-disabled="true"] .vehicle-med-thumbnail,
.rich-select-option.is-disabled .vehicle-med-thumbnail {
    filter: grayscale(0.6);
}

.vehicle-option-status-slot {
    margin-left: auto;
    padding-left: 0.5rem;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
}

.rich-option-name {
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 0.2rem;
}

.u-flex .rich-option-name {
    margin-bottom: 0;
}

.rich-option-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.rich-meta-item {
    font-size: 0.72rem;
    color: var(--grey-2, #888);
}

/* ── css/admin/admin-booking.css ── */
/* ── Admin Booking Gantt Chart Styles (Belle Vitesse Design System) ── */

/* ── Carte principale du Gantt ── */
.gantt-card {
    padding: 0;
    overflow: hidden;
    border-radius: 8px;
    margin-bottom: 2.5rem;
}

.gantt-card .admin-card-header {
    padding: 1.25rem 1.5rem 0.85rem 1.5rem;
    border-bottom: 1px solid var(--white-3);
    margin-bottom: 0;
}

/* ── Toolbar de Navigation (Alignée sur FullCalendar .fc-toolbar) ── */
.gantt-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 0.85rem 1.5rem;
    background-color: #ffffff;
    border-bottom: 1px solid var(--white-3);
}

.gantt-toolbar-nav {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.gantt-toolbar-nav .admin-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.4rem 0.75rem;
    font-size: 0.8rem;
    font-weight: 500;
    border-radius: 6px;
}

.gantt-toolbar-nav .admin-btn .lucide {
    width: 14px;
    height: 14px;
    margin: 0;
}

.gantt-toolbar-title {
    font-family: var(--font-primary);
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--grey-1);
    text-transform: capitalize;
    margin: 0;
    letter-spacing: -0.01em;
}

.gantt-toolbar-filters {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.gantt-select-wrapper {
    min-width: 220px;
    max-width: 280px;
}

/* ── Select2 Customization ── */
.gantt-select-wrapper .select2-container--default .select2-selection--single {
    height: 32px;
    border: 1px solid var(--white-3);
    border-radius: 6px;
    background-color: #ffffff;
    display: flex;
    align-items: center;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.gantt-select-wrapper .select2-container--default .select2-selection--single:focus,
.gantt-select-wrapper .select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--admin-accent);
    box-shadow: 0 0 0 2px rgba(255, 200, 69, 0.3);
}

.gantt-select-wrapper .select2-container--default .select2-selection--single .select2-selection__rendered {
    font-size: 0.8rem;
    color: var(--grey-1);
    line-height: 30px;
    padding-left: 0.6rem;
    padding-right: 1.5rem;
}

.gantt-select-wrapper .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 30px;
    right: 4px;
}

/* ── Conteneur Gantt Global ── */
.gantt-outer-container {
    display: flex;
    position: relative;
    background: #ffffff;
    min-height: 220px;
}

/* ── Sidebar Gauche (Équipements Sticky) ── */
.gantt-sidebar {
    width: 230px;
    min-width: 230px;
    border-right: 1px solid var(--white-3);
    z-index: 10;
    background: #ffffff;
    box-shadow: 2px 0 6px rgba(0, 0, 0, 0.02);
}

.gantt-sidebar-header {
    height: 48px;
    display: flex;
    align-items: center;
    padding: 0 1.25rem;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--grey-2);
    border-bottom: 1px solid var(--white-3);
    background-color: var(--admin-bg);
}

.gantt-sidebar-row {
    height: 52px;
    display: flex;
    align-items: center;
    padding: 0 1.25rem;
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--grey-1);
    border-bottom: 1px solid var(--white-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    background: #ffffff;
    transition: background-color 0.15s ease;
}

.gantt-sidebar-row.is-hovered {
    background-color: var(--admin-bg);
}

.gantt-sidebar-empty {
    height: 52px;
    display: flex;
    align-items: center;
    padding: 0 1.25rem;
    color: var(--grey-2);
    font-style: italic;
    font-size: 0.85rem;
    border-bottom: 1px solid var(--white-3);
}

/* ── Grille de la Timeline (Scrollable) ── */
.gantt-timeline-container {
    flex-grow: 1;
    overflow-x: auto;
    position: relative;
    background: #ffffff;
}

.gantt-timeline-header {
    height: 48px;
    display: grid;
    border-bottom: 1px solid var(--white-3);
    background-color: var(--admin-bg);
}

.gantt-header-day {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-right: 1px solid var(--white-3);
    font-size: 0.75rem;
    color: var(--grey-2);
    font-weight: 500;
    user-select: none;
    transition: background-color 0.15s ease;
}

.gantt-header-day .day-name {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--grey-2);
}

.gantt-header-day .day-num {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--grey-1);
    margin-top: 1px;
}

.gantt-header-day.weekend {
    background-color: rgba(0, 0, 0, 0.02);
}

.gantt-header-day.today {
    background-color: rgba(255, 200, 69, 0.25);
}

.gantt-header-day.today .day-name,
.gantt-header-day.today .day-num {
    color: var(--grey-1);
    font-weight: 700;
}

/* ── Timeline Grid & Rows ── */
.gantt-timeline-grid {
    position: relative;
    display: flex;
    flex-direction: column;
}

.gantt-grid-row {
    height: 52px;
    border-bottom: 1px solid var(--white-3);
    position: relative;
    display: flex;
    transition: background-color 0.15s ease;
}

.gantt-grid-row.is-hovered {
    background-color: rgba(0, 0, 0, 0.015);
}

.gantt-grid-cell {
    flex: 1;
    height: 100%;
    border-right: 1px solid var(--white-3);
}

.gantt-grid-cell.weekend {
    background-color: rgba(0, 0, 0, 0.015);
}

.gantt-grid-cell.today {
    background-color: rgba(255, 200, 69, 0.08);
    border-left: 1.5px solid rgba(255, 200, 69, 0.4);
    border-right: 1.5px solid rgba(255, 200, 69, 0.4);
}

/* ── Barres d'Événements (Modèle FullCalendar Dashboard) ── */
.gantt-booking-bar {
    position: absolute;
    box-sizing: border-box;
    height: 28px;
    top: 12px;
    border-radius: 4px;
    font-family: var(--font-primary);
    font-size: 0.78rem;
    line-height: 1.35;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 8px;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease, filter 0.15s ease;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    user-select: none;
    z-index: 2;
    text-decoration: none;
}

.gantt-booking-bar:hover {
    transform: translateY(-1px);
    filter: brightness(0.97);
}

/* ── Départs (Check-out) : Vert Émeraude ── */
.gantt-dep-bar {
    background-color: var(--entity-checkout-bg) !important;
    border: 1px solid var(--entity-checkout-border) !important;
    border-left: 3.5px solid var(--entity-checkout) !important;
    color: var(--entity-checkout-text) !important;
    justify-content: center;
    padding: 0 6px;
}

.gantt-dep-bar:hover {
    border-color: var(--entity-checkout) !important;
    box-shadow: 0 2px 8px var(--entity-checkout-glow, rgba(16, 185, 129, 0.25)) !important;
}

.gantt-dep-bar .gantt-bar__icon {
    color: var(--entity-checkout);
    stroke: var(--entity-checkout);
}

/* ── Tournages (Projets) : Ambre Chaud ── */
.gantt-shoot-bar {
    background-color: var(--entity-project-bg) !important;
    border: 1px solid var(--entity-project-border) !important;
    border-left: 3.5px solid var(--entity-project) !important;
    color: var(--entity-project-text) !important;
}

.gantt-shoot-bar:hover {
    border-color: var(--entity-project) !important;
    box-shadow: 0 2px 8px var(--entity-project-glow, rgba(245, 158, 11, 0.25)) !important;
}

.gantt-shoot-bar .gantt-bar__icon {
    color: var(--entity-project);
    stroke: var(--entity-project);
}

/* ── Retours (Check-in) : Bleu Océan ── */
.gantt-ret-bar {
    background-color: var(--entity-checkin-bg) !important;
    border: 1px solid var(--entity-checkin-border) !important;
    border-left: 3.5px solid var(--entity-checkin) !important;
    color: var(--entity-checkin-text) !important;
    justify-content: center;
    padding: 0 6px;
}

.gantt-ret-bar:hover {
    border-color: var(--entity-checkin) !important;
    box-shadow: 0 2px 8px var(--entity-checkin-glow, rgba(59, 130, 246, 0.25)) !important;
}

.gantt-ret-bar .gantt-bar__icon {
    color: var(--entity-checkin);
    stroke: var(--entity-checkin);
}

/* ── Éléments internes des barres ── */
.gantt-bar-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    flex-shrink: 0;
}

.gantt-bar__icon {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
    vertical-align: -1px;
}

.gantt-bar-title {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 0 1 auto;
    min-width: 0;
}

.gantt-bar-prod {
    font-size: 0.68rem;
    opacity: 0.75;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 0 1000 auto;
    min-width: 0;
    max-width: 130px;
}

.gantt-bar-prod::before {
    content: "•";
    margin-right: 4px;
    opacity: 0.6;
}

/* ── Ligne de connexion entre les phases ── */
.gantt-booking-connection {
    position: absolute;
    height: 2px;
    top: 25px;
    border-radius: 2px;
    z-index: 1;
    pointer-events: none;
    background-color: var(--entity-project);
    opacity: 0.35;
}

/* ── Conflit de réservation ── */
.gantt-booking-bar.has-conflict {
    border: 2px dashed var(--entity-incident) !important;
    animation: pulse-conflict 2s infinite;
}

@keyframes pulse-conflict {
    0% {
        border-color: var(--entity-incident);
    }
    50% {
        border-color: rgba(239, 68, 68, 0.4);
    }
    100% {
        border-color: var(--entity-incident);
    }
}

/* ── Légende conforme au Design System ── */
.gantt-legend {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 0.85rem 1.5rem;
    background: var(--admin-bg);
    border-top: 1px solid var(--white-3);
    font-size: 0.8rem;
    color: var(--grey-2);
    flex-wrap: wrap;
}

.gantt-legend-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--grey-2);
}

.gantt-legend .badge-pill {
    font-size: 0.75rem;
}

.gantt-legend-period {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--grey-2);
}

.gantt-legend-period-line {
    display: inline-block;
    width: 20px;
    height: 3px;
    border-radius: 2px;
    background-color: var(--entity-project);
    opacity: 0.45;
}

/* ── Infobulle Personnalisée (Tooltip Card) ── */
.gantt-tooltip {
    display: none;
    position: absolute;
    background: #ffffff;
    color: var(--grey-1);
    padding: 0.85rem 1.1rem;
    border-radius: 8px;
    font-family: var(--font-primary);
    font-size: 0.82rem;
    line-height: 1.45;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.15), 0 8px 10px -6px rgba(0, 0, 0, 0.08);
    z-index: 1000;
    pointer-events: none;
    border: 1px solid var(--white-3);
    max-width: 320px;
    min-width: 230px;
}

.gantt-tooltip__title {
    font-weight: 700;
    font-size: 0.88rem;
    color: var(--grey-1);
    margin-bottom: 2px;
}

.gantt-tooltip__prod {
    font-size: 0.75rem;
    color: var(--grey-2);
    margin-bottom: 8px;
}

.gantt-tooltip__phases {
    display: flex;
    flex-direction: column;
    gap: 5px;
    font-size: 0.75rem;
    border-top: 1px solid var(--white-3);
    padding-top: 8px;
}

.gantt-tooltip__phase {
    display: flex;
    align-items: center;
    gap: 7px;
}

.gantt-tooltip__phase-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 4px;
    flex-shrink: 0;
}

.gantt-tooltip__phase-badge--checkout {
    background-color: var(--entity-checkout-bg);
    color: var(--entity-checkout);
}

.gantt-tooltip__phase-badge--project {
    background-color: var(--entity-project-bg);
    color: var(--entity-project);
}

.gantt-tooltip__phase-badge--checkin {
    background-color: var(--entity-checkin-bg);
    color: var(--entity-checkin);
}

.gantt-tooltip__footer {
    margin-top: 8px;
    padding-top: 6px;
    border-top: 1px dashed var(--white-3);
    font-size: 0.7rem;
    color: var(--grey-2);
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .gantt-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .gantt-toolbar-nav {
        justify-content: center;
    }

    .gantt-toolbar-title {
        text-align: center;
    }

    .gantt-toolbar-filters {
        width: 100%;
        justify-content: space-between;
    }

    .gantt-select-wrapper {
        flex-grow: 1;
    }
}

/* ── css/admin/admin-cmdk.css ── */
/* ── Command Palette (Cmd+K) Modal & Trigger ───────────────────────────── */

/* Trigger Button dans le Header */
.admin-cmdk-trigger {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #f4f4f6;
    border: 1px solid #e4e4e7;
    color: #71717a;
    font-size: 0.85rem;
    padding: 6px 12px;
    cursor: pointer;
    transition: all 0.2s ease;
    user-select: none;
}

.admin-cmdk-trigger:hover {
    background: #e4e4e7;
    border-color: #a1a1aa;
    color: #18181b;
}

.admin-cmdk-trigger .cmdk-icon {
    width: 14px;
    height: 14px;
    stroke: currentColor;
    transition: stroke 0.2s ease, color 0.2s ease;
}

.admin-cmdk-trigger:hover .cmdk-icon {
    stroke: #18181b;
    color: #18181b;
}

.admin-cmdk-trigger span {
    transition: color 0.2s ease;
}

.admin-cmdk-trigger:hover span {
    color: #18181b;
}

.admin-cmdk-kbd {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    border: 1px solid #d4d4d8;
    border-radius: 4px;
    padding: 1px 6px;
    font-size: 0.72rem;
    font-family: inherit;
    color: #71717a;
    margin-left: 4px;
    transition: all 0.2s ease;
}

.admin-cmdk-trigger:hover .admin-cmdk-kbd {
    background: #18181b;
    border-color: #18181b;
    color: #ffffff;
}

/* Modal Overlay */
.admin-cmdk-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.75);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 99999;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding-top: 12vh;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}

.admin-cmdk-overlay.active {
    opacity: 1;
    visibility: visible;
}

/* Modal Container */
.admin-cmdk-dialog {
    width: 100%;
    max-width: 620px;
    background: #18181b;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 14px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transform: scale(0.96) translateY(-10px);
    transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.admin-cmdk-overlay.active .admin-cmdk-dialog {
    transform: scale(1) translateY(0);
}

/* Input Bar */
.admin-cmdk-header {
    display: flex;
    align-items: center;
    padding: 14px 18px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    gap: 12px;
}

.admin-cmdk-search-icon {
    width: 18px;
    height: 18px;
    color: #71717a;
    flex-shrink: 0;
}

.admin-cmdk-input {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    font-size: 1.05rem;
    color: #fafafa;
    font-family: inherit;
}

.admin-cmdk-input::placeholder {
    color: #71717a;
}

.admin-cmdk-close-hint {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 4px;
    padding: 2px 6px;
    font-size: 0.72rem;
    color: #a1a1aa;
    cursor: pointer;
}

/* Results List */
.admin-cmdk-results {
    max-height: 380px;
    overflow-y: auto;
    padding: 8px;
}

.admin-cmdk-results:empty {
    display: none;
}

.admin-cmdk-empty {
    padding: 32px 16px;
    text-align: center;
    color: #71717a;
    font-size: 0.9rem;
}

/* Result Item */
.admin-cmdk-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    border-radius: 8px;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
    transition: background 0.15s ease;
    gap: 12px;
}

.admin-cmdk-item:hover,
.admin-cmdk-item.selected {
    background: rgba(255, 255, 255, 0.08);
}

.admin-cmdk-item-left {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.admin-cmdk-item-icon {
    width: 32px;
    height: 32px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.05);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #d4d4d8;
}

.admin-cmdk-item.selected .admin-cmdk-item-icon {
    background: rgba(229, 120, 39, 0.2);
    color: #f59e0b;
}

.admin-cmdk-item-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.admin-cmdk-item-title {
    font-size: 0.92rem;
    font-weight: 500;
    color: #fafafa;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-cmdk-item-sub {
    font-size: 0.78rem;
    color: #71717a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-cmdk-badge {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 3px 7px;
    border-radius: 4px;
    flex-shrink: 0;
}

.admin-cmdk-badge-projet {
    background: rgba(59, 130, 246, 0.18);
    color: #60a5fa;
    border: 1px solid rgba(59, 130, 246, 0.3);
}

.admin-cmdk-badge-véhicule {
    background: rgba(245, 158, 11, 0.18);
    color: #fbbf24;
    border: 1px solid rgba(245, 158, 11, 0.3);
}

.admin-cmdk-badge-action {
    background: rgba(16, 185, 129, 0.18);
    color: #34d399;
    border: 1px solid rgba(16, 185, 129, 0.3);
}

.admin-cmdk-badge-page {
    background: rgba(168, 85, 247, 0.18);
    color: #c084fc;
    border: 1px solid rgba(168, 85, 247, 0.3);
}

.admin-cmdk-badge-outil {
    background: rgba(236, 72, 153, 0.18);
    color: #f472b6;
    border: 1px solid rgba(236, 72, 153, 0.3);
}

.admin-cmdk-badge-contact {
    background: rgba(20, 184, 166, 0.18);
    color: #2dd4bf;
    border: 1px solid rgba(20, 184, 166, 0.3);
}

.admin-cmdk-badge-production {
    background: rgba(249, 115, 22, 0.18);
    color: #fb923c;
    border: 1px solid rgba(249, 115, 22, 0.3);
}

/* Bannière d'indication de filtre actif sur les tableaux */
.admin-active-filter-bar {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    padding: 6px 12px;
    margin-bottom: 14px;
    font-size: 0.82rem;
    color: #d4d4d8;
}

.admin-active-filter-bar strong {
    color: #f59e0b;
}

.admin-btn-clear-filter {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #a1a1aa;
    cursor: pointer;
    border-radius: 4px;
    padding: 2px 7px;
    font-size: 0.74rem;
    transition: all 0.15s ease;
}

.admin-btn-clear-filter:hover {
    background: rgba(239, 68, 68, 0.2);
    border-color: rgba(239, 68, 68, 0.4);
    color: #fca5a5;
}

/* Footer Instructions */
.admin-cmdk-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    background: #141417;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    font-size: 0.75rem;
    color: #71717a;
}

.admin-cmdk-shortcuts {
    display: flex;
    align-items: center;
    gap: 12px;
}

.admin-cmdk-shortcut-item {
    display: flex;
    align-items: center;
    gap: 4px;
}

/* ── css/admin/admin-fleet.css ── */
/* ── Admin Fleet & Vehicle Timeline Styles ───────────────────────── */
.admin-header__icon {
    width: 0.9rem;
    height: 0.9rem;
    margin-right: 0.5rem;
    vertical-align: -2px;

}

/* ── Flotte : Cartes KPI & Grilles ── */
.fleet-stats-grid {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.fleet-kpi-card--grey {
    border-left: 3px solid var(--status-neutral, #64748b) !important;
}

.fleet-kpi-card--green {
    border-left: 3px solid var(--status-success, #15803D) !important;
}

.fleet-kpi-card--orange {
    border-left: 3px solid var(--entity-project, #f59e0b) !important;
}

.fleet-kpi-card--red {
    border-left: 3px solid var(--entity-incident, #ef4444) !important;
}

.fleet-kpi-value--orange {
    color: var(--entity-project, #f59e0b) !important;
}

#fleet-filter-pills .lucide {
    width: 13px;
    height: 13px;
    vertical-align: -2px;
    margin-right: 4px;
}

#fleet-filter-pills .lucide-circle-check {
    color: var(--status-success, #15803D);
}

#fleet-filter-pills .lucide-clapperboard {
    color: var(--entity-project, #F59E0B);
}

#fleet-filter-pills .lucide-wrench {
    color: var(--entity-incident, #EF4444);
}

#fleet-filter-pills .filter-pill.active:hover,
#fleet-filter-pills .filter-pill.active:focus {
    background-color: var(--grey-1);
    color: white;
    border-color: var(--white-3);
}

#fleet-empty-filter {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    height: 30vh;
    width: 100%;

}

.fleet-vehicle-grid:has(#fleet-empty-filter:not(.is-hidden):not(.u-d-none)) {
    grid-template-columns: auto;
}

/* ── Flotte : Grille de cartes véhicules ── */
.fleet-vehicle-grid {
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
}

.fleet-vehicle-card {
    text-decoration: none !important;
    color: inherit !important;
    display: flex;
    transition: box-shadow 0.2s ease;
}

.fleet-vehicle-card:hover {
    text-decoration: none !important;
    color: inherit !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.fleet-media-wrapper {
    position: relative;
    height: 180px;
    background: rgba(0, 0, 0, 0.3);
}

.vehicle-avatar-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.vehicle-avatar-fallback {
    object-fit: cover !important;
}

.fleet-badge-container {
    padding-bottom: 1.5vh;
    position: relative;
    right: 2ch;
}

.fleet-frosted-badge {
    background: rgba(240, 240, 240, 0.75) !important;
    backdrop-filter: blur(4px) !important;
    -webkit-backdrop-filter: blur(4px) !important;
}

.fleet-project-alert {
    background: rgba(59, 130, 246, 0.08) !important;
    border-left: 3px solid #3b82f6 !important;
}

.fleet-metrics-grid {
    grid-template-columns: repeat(2, 1fr);
    text-align: center;
    gap: 0.25rem;
}

.fleet-card-footer {
    background: rgba(0, 0, 0, 0.15) !important;
}

/* ── Timeline Véhicule ── */
.timeline-event-card {
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    border-left: 4px solid var(--status-neutral, #cbd5e1);
}

.timeline-event-card[data-type="checkout"],
.timeline-event-card--checkout {
    border-left: 4px solid var(--entity-checkout, #15803D) !important;
}

.timeline-event-card[data-type="checkin"],
.timeline-event-card--checkin {
    border-left: 4px solid var(--entity-checkin, #3b82f6) !important;
}

.timeline-event-card[data-type="project"],
.timeline-event-card[data-type="project_mission"],
.timeline-event-card--project {
    border-left: 4px solid var(--entity-project, #f59e0b) !important;
}

.timeline-event-card[data-type="incident"],
.timeline-event-card--incident {
    border-left: 4px solid var(--entity-incident, #ef4444) !important;
}

.mission-sub-item .timeline-event-card {
    border-left-width: 3.5px !important;
}

.vehicle-timeline-header {
    border-left: 5px solid var(--status-success, #15803D);
}

.vehicle-timeline-header[data-status="incident"] {
    border-left-color: var(--entity-incident, #EF4444) !important;
}

.vehicle-timeline-header[data-status="tournage"],
.vehicle-timeline-header[data-status="in_progress"] {
    border-left-color: var(--entity-project, #F59E0B) !important;
}

.vehicle-timeline-header[data-status="available"],
.vehicle-timeline-header[data-status="disponible"] {
    border-left-color: var(--status-success, #15803D) !important;
}

.timeline-vehicle-meta {
    max-width: 600px;
}

.timeline-avatar-wrapper {
    width: 130px;
    height: 100px;
    border-radius: 8px;
    overflow: hidden;
    background: rgba(0, 0, 0, 0.4);
    flex-shrink: 0;
}

.timeline-avatar-wrapper img {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

.timeline-badge-subtle {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 4px;
}

.timeline-stats-grid {
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    min-width: 300px;
}

.timeline-stat-card {
    background: rgba(255, 255, 255, 0.02) !important;
}

.timeline-chronological-container {
    position: relative;
    padding-left: 2rem;
    margin-top: 1.5rem;
}

.timeline-linear-container {
    position: relative;
    padding-left: 2rem;
    margin-top: 1.5rem;
}

.timeline-spine {
    position: absolute;
    left: 10px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: rgba(0, 0, 0, 0.1);
}

.timeline-spine--linear {
    top: 12px;
}

.timeline-item {
    position: relative;
}

.timeline-dot {
    position: absolute;
    left: -2rem;
    top: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    z-index: 2;
    color: #ffffff;
    background: #5299D3;
    box-shadow: 0 0 10px rgba(82, 153, 211, 0.45);
}

.timeline-dot .lucide {
    width: 12px;
    height: 12px;
    stroke-width: 2.2;
}

.mission-sub-node .lucide {
    width: 10px;
    height: 10px;
    stroke-width: 2.2;
}

.timeline-dot--linear {
    top: 12px;
    width: 20px;
    height: 20px;
    font-size: 10px;
}

.timeline-dot--sub-event {
    top: 14px;
}

.timeline-dot--in_progress {
    background: #F59E0B !important;
    box-shadow: 0 0 10px rgba(245, 158, 11, 0.45) !important;
}

.timeline-dot--completed {
    background: #515151 !important;
    box-shadow: 0 0 6px rgba(81, 81, 81, 0.3) !important;
}

.timeline-dot--upcoming {
    background: var(--blue-1);
    box-shadow: 0 0 10px rgba(82, 153, 211, 0.45) !important;
}

.timeline-dot--incident {
    background: var(--entity-incident, #ef4444) !important;
    box-shadow: 0 0 10px var(--entity-incident-glow, rgba(239, 68, 68, 0.4)) !important;
}

.timeline-dot--checkout {
    background: var(--entity-checkout, #15803D) !important;
    box-shadow: 0 0 10px var(--entity-checkout-glow, rgba(21, 128, 61, 0.4)) !important;
}

.timeline-dot--checkin {
    background: var(--entity-checkin, #3b82f6) !important;
    box-shadow: 0 0 10px var(--entity-checkin-glow, rgba(59, 130, 246, 0.4)) !important;
}

.timeline-dot--default,
.timeline-dot--project {
    background: var(--entity-project, #f59e0b) !important;
    box-shadow: 0 0 10px var(--entity-project-glow, rgba(245, 158, 11, 0.4)) !important;
}

/* ── Navigation par Onglets (Points de Contrôle / Matrice) ── */
.checkpoint-nav-tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--white-3, #e9ecef);
    margin-bottom: 1.5rem;
}

.checkpoint-nav-tab {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.6rem 1.25rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--grey-2, #515151);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color 0.2s ease, border-color 0.2s ease;
}

.checkpoint-nav-tab:hover {
    color: var(--grey-1, #151515);
    border-bottom-color: var(--grey-2, #515151);
}

.checkpoint-nav-tab.active {
    color: var(--grey-1, #151515);
    border-bottom-color: var(--admin-accent, #FFC845);
    font-weight: 600;
}

/* ── Badges Catégorie Checkpoints (Homogénéisation avec le système standard .badge-pill) ── */
.badge-pill[data-val="Sécurité"],
.badge-pill[data-val="securite"] {
    background: var(--status-danger-bg);
    color: var(--status-danger-text);
    border: 1px solid rgba(239, 68, 68, 0.3);
}

.badge-pill[data-val="Équipements"],
.badge-pill[data-val="equipements"] {
    background: var(--status-info-bg);
    color: var(--status-info-text);
    border: 1px solid var(--status-info-border, rgba(59, 130, 246, 0.3));
}

/* ── Ligne d'en-tête de catégorie dans la liste ── */
.checkpoint-category-header td {
    background-color: #f8f9fa;
    border-top: 2px solid var(--white-3, #e9ecef);
    border-bottom: 1px solid var(--white-3, #e9ecef);
    padding: 0.75rem 1rem;
}

.checkpoint-category-header:hover td {
    background-color: #f8f9fa;
}

.checkpoint-category-header-inner {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.checkpoint-category-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}

.checkpoint-category-dot--security {
    background-color: var(--red-1);
}

.checkpoint-category-dot--equipment {
    background-color: var(--blue-1);
}

.checkpoint-row>td:first-child {
    white-space: nowrap;
}

.checkpoint-category-title {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--grey-1, #151515);
}

/* ── Badge d'indication de type d'évaluation (Mesure / Valeur) discret ── */
.checkpoint-unit-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.08rem 0.42rem;
    font-size: 0.68rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--grey-2, #495057);
    background-color: var(--grey-bg, #f8f9fa);
    border: 1px solid var(--grey-border, #e0e0e0);
    border-radius: 4px;
    vertical-align: middle;
    letter-spacing: 0.01em;
}

/* Rétrocompatibilité classes historiques */
.checkpoint-cat {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.65rem;
    border-radius: 9999px;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.checkpoint-cat--securite {
    background: #fee2e2;
    color: #991b1b;
}

.checkpoint-cat--equipements {
    background: #e0f2fe;
    color: #0369a1;
}

/* ── Code Tag (clé système formulaire) ── */
.checkpoint-code-tag {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.7rem;
    background: var(--neutral-bg, #f0f0f0);
    padding: 0.1rem 0.35rem;
    border-radius: 3px;
    color: var(--grey-2, #515151);
}

/* ── Tags et Pilules Véhicules (Liste compacte) ── */
.checkpoint-vehicle-pills {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    align-items: center;
}

.checkpoint-v-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.72rem;
    font-weight: 500;
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    background: #f1f3f5;
    border: 1px solid var(--white-3, #e9ecef);
    color: var(--grey-1, #151515);
    line-height: 1.35;
    white-space: nowrap;
    cursor: default;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.checkpoint-v-tag:hover {
    background: #e9ecef;
    border-color: #ced4da;
}

.checkpoint-v-tag--spec {
    background: #fffbeb;
    border-color: #fde68a;
    color: #92400e;
    cursor: pointer;
    user-select: none;
}

.checkpoint-v-tag--spec:hover,
.checkpoint-tooltip-container.open .checkpoint-v-tag--spec {
    background: #fef3c7;
    border-color: var(--admin-accent, #FFC845);
    box-shadow: 0 1px 4px rgba(255, 200, 69, 0.3);
}

.checkpoint-v-spec-icon {
    font-size: 0.65rem;
    line-height: 1;
}

/* ── Modale / Popup Consigne Spécifique Véhicule ── */
.checkpoint-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.65);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 3000;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    padding: 1rem;
    box-sizing: border-box;
}

.checkpoint-modal-overlay.open {
    display: flex !important;
}

.checkpoint-modal-card {
    background: #ffffff;
    width: 100%;
    max-width: 480px;
    border-radius: 8px;
    box-shadow: 0 15px 45px rgba(0, 0, 0, 0.25);
    padding: 1.5rem;
    position: relative;
    animation: tooltipFadeIn 0.2s ease-out;
    box-sizing: border-box;
}

.checkpoint-modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--white-3, #e9ecef);
}

.checkpoint-modal-close {
    background: none;
    border: none;
    font-size: 1.5rem;
    line-height: 1;
    color: var(--grey-2, #888);
    cursor: pointer;
    padding: 0.2rem 0.4rem;
    border-radius: 4px;
    transition: color 0.15s ease, background-color 0.15s ease;
}

.checkpoint-modal-close:hover {
    color: var(--grey-1, #151515);
    background-color: var(--white-3, #f0f0f0);
}

.checkpoint-modal-box {
    background: #f8f9fa;
    border: 1px solid var(--white-3, #e9ecef);
    border-left: 4px solid var(--admin-accent, #FFC845);
    padding: 0.85rem 1rem;
    border-radius: 4px;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--grey-1, #151515);
    line-height: 1.5;
    word-break: break-word;
    margin-bottom: 1.25rem;
}

.checkpoint-spec-trigger {
    cursor: pointer;
}

/* ── Popup / Infobulle Consigne Spécifique Véhicule ── */
.checkpoint-tooltip-container {
    display: inline-flex;
    position: relative;
    vertical-align: middle;
}

.checkpoint-tooltip-popup {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    bottom: auto;
    left: 0;
    min-width: 250px;
    max-width: 320px;
    padding: 0.85rem 1rem;
    border-radius: 8px;
    background: #ffffff;
    border: 1px solid var(--white-3, #e9ecef);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12);
    z-index: 1050;
    white-space: normal;
    text-align: left;
    box-sizing: border-box;
}

.checkpoint-tooltip-container.open .checkpoint-tooltip-popup {
    display: block;
    animation: tooltipFadeIn 0.18s ease-out;
}

.checkpoint-tooltip-popup::before {
    content: "";
    position: absolute;
    bottom: 100%;
    left: 17px;
    border-width: 7px;
    border-style: solid;
    border-color: transparent transparent var(--white-3, #e9ecef) transparent;
}

.checkpoint-tooltip-popup::after {
    content: "";
    position: absolute;
    bottom: 100%;
    left: 18px;
    border-width: 6px;
    border-style: solid;
    border-color: transparent transparent #ffffff transparent;
}

.checkpoint-tooltip-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid #f0f0f0;
}

.checkpoint-tooltip-vname {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--grey-1, #151515);
}

.checkpoint-tooltip-badge {
    font-size: 0.65rem;
    font-weight: 600;
    padding: 0.12rem 0.45rem;
    border-radius: 9999px;
    background: #fffbeb;
    color: #92400e;
    border: 1px solid #fde68a;
    white-space: nowrap;
}

.checkpoint-tooltip-close {
    background: none;
    border: none;
    padding: 0 0.2rem;
    font-size: 1.1rem;
    line-height: 1;
    color: var(--grey-2, #888);
    cursor: pointer;
    transition: color 0.15s ease;
}

.checkpoint-tooltip-close:hover {
    color: var(--grey-1, #151515);
}

.checkpoint-tooltip-label {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--grey-2, #515151);
    margin-bottom: 0.3rem;
}

.checkpoint-tooltip-body {
    font-size: 0.8rem;
    color: var(--grey-1, #151515);
    line-height: 1.45;
    word-break: break-word;
    background: #f8f9fa;
    padding: 0.45rem 0.6rem;
    border-radius: 5px;
    border: 1px solid #f0f0f0;
}

@media (max-width: 992px) {
    .checkpoint-tooltip-popup {
        left: auto;
        right: 0;
    }

    .checkpoint-tooltip-popup::before {
        left: auto;
        right: 17px;
    }

    .checkpoint-tooltip-popup::after {
        left: auto;
        right: 18px;
    }
}

.checkpoint-spec-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.15rem 0.45rem;
    border-radius: 9999px;
    background: #fffbeb;
    color: #92400e;
    border: 1px solid #fde68a;
    white-space: nowrap;
    cursor: help;
}

.checkpoint-no-data {
    color: var(--grey-2, #515151);
    font-style: italic;
    font-size: 0.8rem;
    opacity: 0.7;
}

/* ── Counter badge compact ── */
.checkpoint-count-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4rem;
    height: 1.4rem;
    padding: 0 0.35rem;
    border-radius: 9999px;
    font-size: 0.7rem;
    font-weight: 700;
    background: var(--admin-accent, #FFC845);
    color: var(--grey-1, #151515);
}



/* ── Formulaire d'Édition / Création ── */
.checkpoint-form-container {
    max-width: 820px;
}

.checkpoint-form-section {
    margin-bottom: 1.5rem;
}

.checkpoint-form-section-title {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--grey-1, #151515);
    margin-bottom: 0.75rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--white-3, #e9ecef);
}

/* ── Rangées véhicule dans le formulaire ── */
.checkpoint-vehicle-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid #f0f0f0;
    transition: background 0.15s ease;
}

.checkpoint-vehicle-row:last-child {
    border-bottom: none;
}

.checkpoint-vehicle-row:hover {
    background: #fafafa;
}

.checkpoint-vehicle-row--active {
    background: #fffbeb;
}

.checkpoint-vehicle-row--active:hover {
    background: #fef9e7;
}

.checkpoint-vehicle-row label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    user-select: none;
    min-width: 180px;
    flex-shrink: 0;
}

.checkpoint-vehicle-row .checkpoint-v-name {
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--grey-1, #151515);
}

.checkpoint-vehicle-row .checkpoint-v-input {
    flex: 1;
    padding: 0.45rem 0.65rem;
    font-size: 0.82rem;
    border: 1px solid var(--white-3, #e9ecef);
    box-sizing: border-box;
    caret-color: var(--admin-accent, #FFC845);
    transition: border-color 0.2s ease;
    background: #fff;
}

.checkpoint-vehicle-row .checkpoint-v-input:focus {
    outline: none;
    border-color: var(--admin-accent, #FFC845);
    background-color: #ffc84510;
}

.checkpoint-vehicle-row .checkpoint-v-input::placeholder {
    color: #adb5bd;
    font-style: italic;
}

/* ── Actions formulaire ── */
.checkpoint-form-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--white-3, #e9ecef);
}

@media (max-width: 768px) {
    .checkpoint-vehicle-row {
        flex-wrap: wrap;
    }

    .checkpoint-vehicle-row label {
        min-width: 100%;
    }
}

/* ── css/admin/admin-incidents.css ── */
/* ── Admin Incidents Styles ─────────────────────────────────────── */

/* ── Liste : Cartes KPI d'incidents ── */
.incident-kpi-card--info {
    border-left: 4px solid var(--status-info, #0369a1) !important;
}

.incident-kpi-card--danger {
    border-left: 4px solid var(--status-danger, #ef4444) !important;
}

.incident-kpi-card--warning {
    border-left: 4px solid var(--status-warning, #f59e0b) !important;
}

.incident-kpi-card--success {
    border-left: 4px solid var(--status-success, #15803D) !important;
}

/* ── Détail : Visas & Signatures contradictoires ── */
.incident-visas-card {
    border-top: 4px solid var(--white-3, #cbd5e1);
}

.incident-visas-card[data-signature-state="fully_signed"] {
    border-top-color: var(--status-success, #15803D) !important;
}

.incident-visas-card[data-signature-state="partially_signed"] {
    border-top-color: var(--admin-accent, #FFC845) !important;
}

.incident-signer-box {
    background: var(--admin-bg, #f8f9fa);
    border: 1px solid var(--white-3, #e9ecef);
    border-radius: 6px;
}

.incident-signer-box .lucide {
    stroke-width: 2.2;
    height: 12px;
    width: 12px;
    vertical-align: -2px;
    margin-right: 0.5rem;
}

.incident-signer-title {
    letter-spacing: 0.5px;
    color: var(--admin-text-dark, #1e293b);
}

.incident-signature-preview {
    max-height: 70px;
    max-width: 100%;
    background: #ffffff;
    border: 1px solid var(--white-3, #e2e8f0);
    border-radius: 4px;
    padding: 4px;
    display: block;
}

/* ── Détail : Sceau d'intégrité cryptographique ── */
.incident-seal-box {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 6px;
}

.incident-seal-title {
    color: #166534;
}

.incident-seal-hash {
    word-break: break-all;
    font-family: monospace;
    color: #14532d;
}

.admin-btn-seal {
    background: #166534 !important;
    color: #ffffff !important;
}

.admin-btn-seal:hover {
    background: #14532d !important;
}

/* ── Détail : Blocs de contenu & descriptions ── */
.incident-description-box {
    background-color: var(--admin-bg, #f8f9fa);
    border: 1px solid var(--white-3, #e9ecef);
    font-size: 14px;
    line-height: 1.6;
}

.incident-impact-banner {
    background-color: #fffbeb;
    border-left: 4px solid var(--admin-accent, #FFC845);
    font-size: 13px;
    color: #92400e;
}


/* ── Détail : Photos & Galerie ── */
.incident-photo-container {
    border: 1px solid var(--white-3, #e9ecef);
    overflow: hidden;
    background-color: #000000;
}

.incident-photo-img {
    width: 100%;
    height: 160px;
    object-fit: cover;
    display: block;
    transition: transform 0.2s ease;
}

.incident-photo-img:hover {
    transform: scale(1.03);
}

.incident-photo-meta {
    background-color: #ffffff;
}

.incident-empty-photos {
    background-color: var(--admin-bg, #f8f9fa);
    border: 1px solid var(--white-3, #e9ecef);
}

/* ── Détail : Clôture, Notes et Modal ── */
.incident-resolution-box {
    background-color: #f0fdf4;
    border: 1px solid #bbf7d0;
    font-size: 13px;
    color: #166534;
}

.incident-internal-notes {
    background-color: var(--admin-bg, #f8f9fa);
}

.incident-sidebar-divider {
    border-top: 1px solid var(--white-3, #e9ecef);
}

.incident-modal-hint {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    font-size: 12px;
    color: #475569;
}

/* ── Formulaire d'incident : Cartes photo ── */
.incident-photo-card {
    border: 1px solid var(--white-3);
    padding: 6px;
    background-color: var(--white-1);
}

.incident-photo-card-img {
    width: 100%;
    height: 110px;
    object-fit: cover;
    display: block;
}

/* ── En-tête Récapitulatif Incident (inspiré Project Hub) ── */
.incident-header-card {
    background: #ffffff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    padding: 1.25rem 1.5rem;
    border-left: 5px solid var(--entity-incident, #EF4444);
    transition: border-color 0.2s ease;
}

.incident-header-card[data-severity="critique"],
.incident-header-card[data-severity="bloquant"] {
    border-left-color: var(--status-danger, #EF4444);
}

.incident-header-card[data-severity="elevee"] {
    border-left-color: var(--status-warning, #F59E0B);
}

.incident-header-card[data-severity="moyenne"] {
    border-left-color: var(--admin-accent, #FFC845);
}

.incident-header-card[data-severity="faible"] {
    border-left-color: var(--status-neutral, #94a3b8);
}

/* ── Bannière Constat Scellé ── */
.incident-sealed-notice {
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    border-left: 4px solid var(--blue-info, #0369a1);
    color: var(--admin-text-dark, #1e293b);
}

/* ── Workflow & Progression des Statuts ── */

.incident-workflow-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 8px;
}

.incident-workflow-step {
    flex: 1;
    min-width: 100px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
    padding: 8px 4px;
    border-radius: 6px;
    background: var(--admin-bg, #f8f9fa);
    border: 1px solid var(--white-3, #e2e8f0);
    transition: all 0.2s ease;
}

.incident-workflow-step.is-active {
    background: var(--entity-checkin-bg);
    border-color: var(--entity-checkin);
    box-shadow: 0 1px 3px rgba(59, 130, 246, 0.15);
}

.incident-workflow-step.is-completed {
    background: var(--entity-checkout-bg);
    border-color: var(--entity-checkout);
}

.incident-workflow-step.is-upcoming {
    opacity: 0.65;
}

.incident-step-icon {
    font-size: 16px;
    margin-bottom: 4px;
}

.incident-step-icon .lucide {
    stroke-width: 2.2;
    height: 16px;
    width: 16px;
}

.incident-step-title {
    font-size: 11px;
    font-weight: 600;
    color: var(--admin-text-dark, #1e293b);
    line-height: 1.2;
}

.incident-step-badge {
    font-size: 9px;
    padding: 2px 6px;
    border-radius: 10px;
    margin-top: 4px;
    background: #e2e8f0;
    color: #475569;
    font-weight: 500;
}

.incident-workflow-step.is-active .incident-step-badge {
    background: #3b82f6;
    color: #ffffff;
}

.incident-workflow-step.is-completed .incident-step-badge {
    background: #22c55e;
    color: #ffffff;
    font-weight: 700;
}

.incident-workflow-arrow {
    color: var(--white-3, #cbd5e1);
    font-size: 14px;
    flex-shrink: 0;
}

/* ── Actions Rapides de Statut ── */
.incident-quick-actions-bar {
    background: var(--admin-bg, #f8f9fa);
    border: 1px dashed var(--white-3, #cbd5e1);
    border-radius: 6px;
    padding: 10px 14px;
}

.incident-status-pill-action {
    position: relative;
    cursor: pointer;
}

.incident-status-pill-action select {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

/* ── Section Contexte du Tournage & Matériel Scellée ── */
.incident-context-sealed-box {
    background: #f8fafc;
    border: 1px solid #cbd5e1;
}

.incident-context-sealed-box .form-input:disabled,
.incident-context-sealed-box select:disabled {
    background-color: #f1f5f9;
    color: #475569;
    cursor: not-allowed;
    border-color: #cbd5e1;
    opacity: 0.95;
}

/* ── Prévisualisation Photos & Documents ── */
.photo-preview-item {
    position: relative;
    display: inline-block;
    margin: 4px;
}

.photo-preview-img {
    width: 76px;
    height: 76px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid var(--white-3, #cbd5e1);
    display: block;
}

.doc-preview-tag {
    background: var(--white-2, #f1f5f9);
    color: var(--grey-1, #334155);
    padding: 4px 8px;
    margin-right: 4px;
    border-radius: 4px;
}

/* ── Ligne de rappel matériel en en-tête ── */
.incident-header-material-row {
    color: var(--grey-1, #334155);
    margin-top: 0.15rem;
}

/* ── Sous-sections de la carte Contexte ── */
.incident-context-section {
    padding-bottom: 0.75rem;
    margin-bottom: 0.75rem;
    border-bottom: 1px solid #e2e8f0;
}

.incident-context-section:last-child {
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: none;
}

.incident-context-section-title {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--grey-2, #64748b);
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

/* ── Synthèse d'impact matériel dans Circonstances ── */
.incident-damage-summary-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    padding: 0.5rem 0.75rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    margin-bottom: 0.75rem;
}

/* ── Liste d'équipements détaillée (Détail Incident Sidebar) ── */
.incident-detail-equipment-list {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.incident-detail-equipment-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.55rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    font-size: 0.8125rem;
    color: var(--grey-1, #1e293b);
}

.incident-detail-equipment-icon {
    font-size: 0.95rem;
    line-height: 1;
    flex-shrink: 0;
}

.incident-detail-equipment-content {
    min-width: 0;
    flex: 1;
}

.incident-detail-equipment-item .admin-btn {
    margin-left: auto;
    flex-shrink: 0;
}

.incident-modal-overlay.is-open {
    display: flex;
}


/* ── Sélecteur Multi-Équipements avec Cases à cocher (Formulaire Incident) ── */
.admin-multiselect {
    position: relative;
    width: 100%;
}

.admin-multiselect.is-disabled {
    opacity: 0.65;
    pointer-events: none;
    cursor: not-allowed;
}

.admin-multiselect-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    min-height: 42px;
    width: 100%;
    padding: 0.4rem 0.75rem;
    background-color: #ffffff;
    border: 1px solid var(--white-3, #cbd5e1);
    border-radius: 6px;
    cursor: pointer;
    text-align: left;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.admin-multiselect-trigger:hover {
    border-color: #94a3b8;
}

.admin-multiselect.is-open .admin-multiselect-trigger,
.admin-multiselect-trigger:focus-visible {
    border-color: var(--admin-accent, #FFC845);
    box-shadow: 0 0 0 3px rgba(255, 200, 69, 0.2);
    outline: none;
}

.admin-multiselect-selection {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    flex: 1;
}

.admin-multiselect-placeholder {
    color: var(--grey-2, #64748b);
    font-size: 0.875rem;
    user-select: none;
}

.admin-multiselect-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--grey-2, #64748b);
    font-size: 0.75rem;
    transition: transform 0.2s ease;
    flex-shrink: 0;
}

.admin-multiselect.is-open .admin-multiselect-arrow {
    transform: rotate(180deg);
    color: var(--admin-accent-dark, #b45309);
}

/* Badges / Tags d'équipements sélectionnés */
.admin-multiselect-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.5rem;
    border-radius: 4px;
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.2;
    user-select: none;
    background: #f1f5f9;
    border: 1px solid #cbd5e1;
    color: #1e293b;
    transition: background-color 0.15s ease;
}

.admin-multiselect-tag--vehicle {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: #1d4ed8;
}

.admin-multiselect-tag--head {
    background: #fefce8;
    border-color: #fef08a;
    color: #854d0e;
}

.admin-multiselect-tag--custom {
    background: #f8fafc;
    border-color: #cbd5e1;
    color: #334155;
}

.admin-multiselect-tag--sealed {
    background: #f8fafc;
    border-color: #cbd5e1;
    color: #334155;
    padding: 0.3rem 0.6rem;
    font-size: 0.85rem;
}

.admin-multiselect-tag-icon {
    font-size: 0.875rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
}

.admin-multiselect-tag-icon svg,
.admin-multiselect-tag-icon i {
    width: 14px;
    height: 14px;
}

.admin-multiselect-tag-label {
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-multiselect-tag-remove {
    background: transparent;
    border: none;
    padding: 0;
    margin-left: 2px;
    color: inherit;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    opacity: 0.55;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 2px;
    transition: opacity 0.12s ease, color 0.12s ease;
}

.admin-multiselect-tag-remove:hover {
    opacity: 1;
    color: #b91c1c;
}

/* Panneau déroulant */
.admin-multiselect-panel {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 120;
    background: #ffffff;
    border: 1px solid var(--white-3, #cbd5e1);
    border-radius: 8px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    max-height: 380px;
    overflow-y: auto;
    display: none;
}

.admin-multiselect.is-open .admin-multiselect-panel {
    display: block;
    animation: multiselectFadeDown 0.15s ease-out;
}

@keyframes multiselectFadeDown {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Groupes dans le panneau */
.admin-multiselect-group {
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid #f1f5f9;
}

.admin-multiselect-group:last-child {
    border-bottom: none;
}

.admin-multiselect-group-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.45rem;
}

.admin-multiselect-group-title {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--grey-2, #64748b);
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.admin-multiselect-group-title .lucide {
    height: 12px;
    width: 12px;
}

.admin-multiselect-group-count {
    font-size: 0.7rem;
    font-weight: 600;
    background: #f1f5f9;
    color: #475569;
    padding: 1px 6px;
    border-radius: 9999px;
}

.admin-multiselect-items {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.admin-multiselect-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.55rem;
    border-radius: 5px;
    cursor: pointer;
    user-select: none;
    font-size: 0.875rem;
    color: #1e293b;
    transition: background-color 0.12s ease;
}

.admin-multiselect-item:hover {
    background-color: #f8fafc;
}

.admin-multiselect-item.is-selected {
    background-color: #eff6ff;
    font-weight: 500;
}

.admin-multiselect-checkbox {
    width: 16px;
    height: 16px;
    accent-color: var(--admin-accent, #FFC845);
    cursor: pointer;
    flex-shrink: 0;
}

.admin-multiselect-item-icon {
    font-size: 0.95rem;
    flex-shrink: 0;
    line-height: 1;
}

.admin-multiselect-item-text {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-multiselect-item-tag {
    font-size: 0.7rem;
    padding: 1px 6px;
    border-radius: 4px;
    background: #e2e8f0;
    color: #475569;
    flex-shrink: 0;
}

.admin-multiselect-empty {
    font-size: 0.8125rem;
    color: var(--grey-2, #64748b);
    font-style: italic;
    padding: 0.35rem 0.5rem;
}

/* Section accessoire libre */
.admin-multiselect-group--custom {
    background-color: #fafbfc;
}

.admin-multiselect-custom-add-bar {
    display: flex;
    gap: 0.4rem;
    align-items: center;
    margin-top: 0.25rem;
}

.admin-multiselect-custom-input {
    flex: 1;
    font-size: 0.8125rem;
    padding: 0.4rem 0.65rem;
    background: #ffffff;
    border: 1px solid var(--white-3, #cbd5e1);
    border-radius: 6px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.admin-multiselect-custom-input:focus {
    border-color: var(--admin-accent, #FFC845);
    box-shadow: 0 0 0 2px rgba(255, 200, 69, 0.2);
    outline: none;
}

.admin-multiselect-custom-btn {
    white-space: nowrap;
    padding: 0.4rem 0.75rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.admin-multiselect-custom-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.45rem;
}

.admin-multiselect-custom-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.5rem;
    border-radius: 4px;
    background: #f1f5f9;
    border: 1px solid #cbd5e1;
    color: #1e293b;
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.2;
    user-select: none;
    transition: background-color 0.15s ease;
}

.admin-multiselect-custom-pill:hover {
    background-color: #e2e8f0;
}

.admin-multiselect-custom-text {
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-multiselect-custom-remove {
    background: transparent;
    border: none;
    padding: 0;
    margin-left: 2px;
    color: inherit;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    opacity: 0.55;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 2px;
    transition: opacity 0.12s ease, color 0.12s ease;
}

.admin-multiselect-custom-remove:hover {
    opacity: 1;
    color: #b91c1c;
}

/* Zone d'affichage scellée */
.admin-multiselect-sealed-display {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 0.75rem;
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    min-height: 42px;
}

/* ── css/admin/admin-mcp.css ── */
/* ── Admin MCP Connector Styles ─────────────────────────────────── */

/* ── Bannière Hero MCP ── */
.mcp-hero-card {
    background: var(--grey-3) !important;
    color: #ffffff !important;
    border-radius: 12px;
    padding: 1.5rem;
}

.mcp-status-pill-active {
    background: var(--status-success, #15803D) !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    font-size: 11px !important;
}

.mcp-hero-protocol {
    color: #94a3b8 !important;
}

.mcp-hero-title {
    color: #f8fafc !important;
}

.mcp-hero-desc {
    color: #cbd5e1 !important;
    max-width: 650px;
}

.mcp-endpoint-box {
    background: var(--grey-1) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    min-width: 320px;
}

.mcp-endpoint-label {
    color: #94a3b8 !important;
}

.mcp-endpoint-url {
    font-family: monospace;
    font-size: 13px;
    color: #38bdf8 !important;
    word-break: break-all;
}

.mcp-btn-xs-nowrap {
    white-space: nowrap !important;
    padding: 4px 8px !important;
    font-size: 11px !important;
}

/* ── Jetons & Portées ── */
.mcp-token-code {
    font-family: monospace;
    font-size: 12px;
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
}

.mcp-scope-admin {
    background: #f3e8ff !important;
    color: #7e22ce !important;
    font-weight: 600 !important;
}

.mcp-scope-write {
    background: #dbeafe !important;
    color: #1e40af !important;
    font-weight: 600 !important;
}

.mcp-scope-readonly {
    background: #f1f5f9 !important;
    color: #475569 !important;
    font-weight: 600 !important;
}

.mcp-token-expired {
    background: #fee2e2 !important;
    color: #b91c1c !important;
    font-weight: 600 !important;
}

.mcp-token-active {
    background: #dcfce7 !important;
    color: #15803d !important;
}

.mcp-token-revoked {
    background: #fee2e2 !important;
    color: #b91c1c !important;
}

/* ── Journal d'audit ── */
.mcp-audit-summary {
    cursor: pointer;
    user-select: none;
}

.mcp-audit-title {
    display: inline-block;
}

.mcp-audit-title .lucide {
    width: 16px;
    height: 16px;
    vertical-align: -2px;
    margin-right: 0.5rem;
}

.mcp-audit-toggle-hint {
    background: #f1f5f9;
    padding: 2px 8px;
    border-radius: 12px;
    font-weight: 500;
}

.mcp-audit-tool-name {
    font-family: monospace;
    font-size: 12px;
    font-weight: bold;
    color: #0284c7 !important;
}

.mcp-audit-payload {
    max-width: 320px;
    max-height: 50px;
    overflow-y: auto;
    font-family: monospace;
    background: #f8fafc;
    padding: 4px;
    border-radius: 4px;
    color: #344155;
}

.mcp-audit-status-success {
    background: #dcfce7 !important;
    color: #15803d !important;
    font-weight: 600 !important;
}

.mcp-audit-status-warning {
    background: #fef3c7 !important;
    color: #d97706 !important;
    font-weight: 600 !important;
}

.mcp-audit-status-error {
    background: #fee2e2 !important;
    color: #b91c1c !important;
    font-weight: 600 !important;
}

.mcp-pre-block {
    overflow-x: auto;
}

/* ── Modale de génération de jeton ── */
.mcp-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    z-index: 9999;
    align-items: center;
    justify-content: center;
}

.mcp-modal-dialog {
    background: #ffffff;
    border-radius: 16px;
    padding: 2rem;
    max-width: 560px;
    width: 90%;
    text-align: left;
    position: relative;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.35);
}

.mcp-modal-dialog .lucide {
    width: 12px;
    height: 12px;
    vertical-align: -2px;
}

.mcp-modal-close-btn {
    position: absolute;
    top: 16px;
    right: 20px;
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    color: #888888;
}

.mcp-select-white {
    background-color: #ffffff !important;
}

.mcp-modal-result-box {
    border-left: 4px solid var(--status-success, #15803D) !important;
}

.mcp-input-mono {
    font-family: monospace;
    font-size: 13px;
    background: #f8fafc !important;
}

.mcp-input-mono-sm {
    font-family: monospace;
    font-size: 12px;
    background: #f8fafc !important;
}

img.tab-btn-ai-logo {
    height: 12px;
    width: 12px;
    vertical-align: -1px;
    margin-right: 0.5rem;
}

/* ── css/admin/photo-annotator.css ── */
/* ── ANNOTATEUR PHOTO LIGHT MODE — DIRECTION ARTISTIQUE BELLE VITESSE ── */

.bv-annotator-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    font-family: var(--font-primary, 'Poppins', sans-serif);
}

.bv-annotator-overlay.is-active {
    display: flex;
}

.bv-annotator-container {
    background: #FFFFFF;
    color: var(--grey-1, #151515);
    border-radius: 8px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.16);
    width: 100%;
    max-width: 1060px;
    height: 92vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--white-3, #e9ecef);
}

.bv-annotator-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.85rem 1.4rem;
    background: #FFFFFF;
    border-bottom: 1px solid var(--white-3, #e9ecef);
    flex-shrink: 0;
}

.bv-annotator-title {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.bv-annotator-badge-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: var(--neutral-bg, #f4f4f4);
    border-radius: 6px;
    color: var(--grey-1, #151515);
}

.bv-annotator-badge-icon i,
.bv-annotator-badge-icon svg {
    width: 16px;
    height: 16px;
    stroke-width: 2;
}

.bv-annotator-title-text {
    font-size: 1rem;
    font-weight: 600;
    color: var(--grey-1, #151515);
}

.bv-annotator-close {
    background: none;
    border: none;
    color: var(--grey-2, #515151);
    font-size: 1.2rem;
    cursor: pointer;
    line-height: 1;
    padding: 0.35rem;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease, color 0.15s ease;
}

.bv-annotator-close i,
.bv-annotator-close svg {
    width: 18px;
    height: 18px;
    stroke-width: 2;
}

.bv-annotator-close:hover {
    background: var(--white-3, #e9ecef);
    color: var(--grey-1, #151515);
}

/* ── Barre d'outils ── */
.bv-annotator-toolbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.6rem 1.2rem;
    background: #f8f9fa;
    border-bottom: 1px solid var(--white-3, #e9ecef);
    flex-shrink: 0;
}

.bv-tool-group {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.bv-tool-label {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--grey-2, #6b7280);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-right: 0.15rem;
}

.bv-tool-label i,
.bv-tool-label svg {
    width: 13px;
    height: 13px;
    stroke-width: 2;
}

.bv-tool-divider {
    width: 1px;
    height: 22px;
    background: var(--white-3, #e9ecef);
    margin: 0 0.25rem;
}

.bv-btn-tool,
.bv-btn-size {
    background: #FFFFFF;
    color: var(--grey-1, #151515);
    border: 1px solid var(--white-3, #e9ecef);
    border-radius: 5px;
    padding: 0.4rem 0.65rem;
    font-size: 0.8rem;
    font-family: var(--font-primary, 'Poppins', sans-serif);
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.bv-btn-tool i,
.bv-btn-tool svg,
.bv-btn-size i,
.bv-btn-size svg {
    width: 14px;
    height: 14px;
    stroke-width: 2;
}

.bv-btn-tool:hover,
.bv-btn-size:hover {
    background: var(--white-2, #fafafa);
    border-color: #d1d5db;
    color: var(--grey-1, #151515);
}

.bv-btn-tool.active,
.bv-btn-size.active {
    background: var(--grey-1, #151515) !important;
    border-color: var(--grey-1, #151515) !important;
    color: var(--white-2, #fafafa) !important;
    font-weight: 600 !important;
}

.bv-btn-danger {
    background: #fdf2f2 !important;
    border-color: #fbd5d5 !important;
    color: #C32F27 !important;
    font-weight: 600;
}

.bv-btn-danger:hover {
    background: #f8b4b4 !important;
    color: #991b1b !important;
}

/* Nuancier */
.bv-swatch {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid #FFFFFF;
    box-shadow: 0 0 0 1px #d1d5db;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    padding: 0;
}

.bv-swatch:hover {
    transform: scale(1.15);
}

.bv-swatch.active {
    box-shadow: 0 0 0 2px var(--admin-accent, #FFC845);
    transform: scale(1.1);
}

.bv-swatch[data-color="#C32F27"] {
    background-color: #C32F27;
}

.bv-swatch[data-color="#F59E0B"] {
    background-color: #F59E0B;
}

.bv-swatch[data-color="#FFC845"] {
    background-color: #FFC845;
}

.bv-swatch[data-color="#5299D3"] {
    background-color: #5299D3;
}

.bv-swatch[data-color="#618B4A"] {
    background-color: #618B4A;
}

.bv-swatch[data-color="#151515"] {
    background-color: #151515;
}

.bv-swatch[data-color="#FFFFFF"] {
    background-color: #FFFFFF;
    border-color: #d1d5db;
}

/* ── Canvas Wrap ── */
.bv-annotator-canvas-wrap {
    position: relative;
    flex: 1;
    background: #f1f3f5;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    overflow-y: auto;
    overflow-x: auto;
    padding: 1.5rem 1rem;
    -webkit-overflow-scrolling: touch;
}

.bv-annotator-canvas-wrap::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.bv-annotator-canvas-wrap::-webkit-scrollbar-track {
    background: #f1f3f5;
}

.bv-annotator-canvas-wrap::-webkit-scrollbar-thumb {
    background: #ced4da;
    border-radius: 4px;
}

.bv-annotator-canvas-wrap::-webkit-scrollbar-thumb:hover {
    background: #adb5bd;
}

/* Mode Défilement */
.bv-annotator-canvas-wrap.mode-scroll #photoAnnotatorCanvas {
    width: 100%;
    max-width: 900px;
    height: auto;
    display: block;
    margin: 0 auto;
    background: #FFFFFF;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
    border: 1px solid #dcdfe3;
    border-radius: 4px;
    touch-action: none;
    -webkit-touch-callout: none;
    user-select: none;
}

/* Mode Vue Globale */
.bv-annotator-canvas-wrap.mode-fit {
    align-items: center;
}

.bv-annotator-canvas-wrap.mode-fit #photoAnnotatorCanvas {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    display: block;
    margin: auto;
    object-fit: contain;
    background: #FFFFFF;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
    border: 1px solid #dcdfe3;
    touch-action: none;
    -webkit-touch-callout: none;
    user-select: none;
    border-radius: 4px;
}

/* ── Popover Texte ── */
.bv-text-popover {
    position: absolute;
    z-index: 1000;
    background: #FFFFFF;
    border: 1.5px solid var(--admin-accent, #FFC845);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    display: none;
    flex-direction: column;
    width: 280px;
    overflow: hidden;
}

.bv-text-popover.is-active {
    display: flex;
}

.bv-popover-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
    background: #f8f9fa;
    border-bottom: 1px solid var(--white-3, #e9ecef);
}

.bv-popover-title {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--grey-1, #151515);
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.bv-popover-title i,
.bv-popover-title svg {
    width: 13px;
    height: 13px;
}

.bv-popover-btn-close {
    background: none;
    border: none;
    color: var(--grey-2, #6b7280);
    cursor: pointer;
    padding: 0.2rem;
    border-radius: 3px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.bv-popover-btn-close i,
.bv-popover-btn-close svg {
    width: 14px;
    height: 14px;
}

.bv-popover-btn-close:hover {
    background: #e5e7eb;
    color: #111827;
}

.bv-popover-body {
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.bv-popover-input {
    background: #f8f9fa;
    border: 1px solid var(--white-3, #e9ecef);
    border-radius: 5px;
    color: var(--grey-1, #151515);
    padding: 0.45rem 0.6rem;
    font-size: 0.82rem;
    font-family: var(--font-primary, 'Poppins', sans-serif);
    width: 100%;
    outline: none;
    box-sizing: border-box;
}

.bv-popover-input:focus {
    border-color: var(--admin-accent, #FFC845);
    background: #FFFFFF;
}

.bv-popover-size-bar {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.bv-popover-size-label {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--grey-2, #6b7280);
    margin-right: 0.2rem;
}

.bv-popover-size-btn {
    flex: 1;
    background: #f3f4f6;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    padding: 0.25rem 0.4rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--grey-1, #151515);
    cursor: pointer;
    transition: all 0.15s ease;
    text-align: center;
}

.bv-popover-size-btn:hover {
    background: #e5e7eb;
}

.bv-popover-size-btn.active {
    background: var(--admin-accent, #FFC845);
    border-color: var(--admin-accent, #FFC845);
    color: #151515;
}

.bv-popover-footer {
    padding: 0.5rem 0.75rem;
    background: #f8f9fa;
    border-top: 1px solid var(--white-3, #e9ecef);
    display: flex;
    justify-content: flex-end;
}

.bv-popover-btn-ok {
    background: var(--grey-1, #151515);
    color: #FFFFFF;
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.4rem 0.75rem;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    transition: all 0.15s ease;
}

.bv-popover-btn-ok i,
.bv-popover-btn-ok svg {
    width: 13px;
    height: 13px;
}

.bv-popover-btn-ok:hover {
    background: var(--admin-accent, #FFC845);
    color: var(--grey-1, #151515);
}

/* ── Footer Modal ── */
.bv-annotator-footer {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 0.85rem 1.4rem;
    background: #FFFFFF;
    border-top: 1px solid var(--white-3, #e9ecef);
    flex-wrap: wrap;
    gap: 0.5rem;
    flex-shrink: 0;
    flex-direction: column;
}

.bv-annotator-tip {
    font-size: 0.8rem;
    color: var(--grey-2, #515151);
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.bv-annotator-tip i,
.bv-annotator-tip svg {
    width: 14px;
    height: 14px;
    color: var(--admin-accent, #FFC845);
    flex-shrink: 0;
}

/* ── Vignettes de prévisualisation dans les formulaires (Checks / Incidents) ── */
.photo-preview-item {
    position: relative;
    display: inline-block;
    margin: 4px;
    border-radius: 6px;
    overflow: hidden;
    cursor: pointer;
    border: 1px solid var(--grey-border, #e0e0e0);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.photo-preview-item:hover {
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.photo-preview-img {
    width: 82px;
    height: 82px;
    object-fit: cover;
    display: block;
}

.annotator-edit-badge {
    position: absolute;
    bottom: 4px;
    right: 4px;
    background: rgba(255, 255, 255, 0.95);
    color: var(--grey-1, #151515);
    border: 1px solid var(--white-3, #e9ecef);
    border-radius: 4px;
    padding: 2px 6px;
    font-size: 11px;
    font-family: var(--font-primary, 'Poppins', sans-serif);
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    transition: all 0.15s ease;
}

.annotator-edit-badge .lucide {
    width: 10px;
    height: 10px;
    vertical-align: -0.5px;
    margin-right: 0.1rem;
}

.annotator-edit-badge:hover {
    background: var(--admin-accent, #FFC845);
    border-color: var(--admin-accent, #FFC845);
    color: var(--grey-1, #151515);
}

.annotator-edit-badge.is-annotated {
    background: #DCFCE7;
    border-color: #86EFAC;
    color: #14532D;
}

.annotator-edit-badge.is-annotated:hover {
    background: var(--admin-accent, #FFC845);
    border-color: var(--admin-accent, #FFC845);
    color: var(--grey-1, #151515);
}

/* ── Responsive Tablette, iPad & Smartphone ─────────────────── */
@media (max-width: 1024px) {
    .bv-annotator-overlay {
        padding: 0;
    }

    .bv-annotator-container {
        width: 100vw;
        max-width: 100vw;
        height: 100vh;
        height: 100dvh;
        border-radius: 0;
        border: none;
    }

    .bv-annotator-header {
        padding: 0.65rem 1rem;
        padding-top: max(0.65rem, env(safe-area-inset-top, 0));
        padding-left: max(1rem, env(safe-area-inset-left, 0));
        padding-right: max(1rem, env(safe-area-inset-right, 0));
    }

    .bv-annotator-toolbar {
        padding: 0.5rem 0.85rem;
        gap: 0.4rem;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        flex-wrap: nowrap;
    }

    .bv-tool-group {
        flex-shrink: 0;
    }

    .bv-btn-tool,
    .bv-btn-size {
        min-height: 40px;
        padding: 0.45rem 0.65rem;
        touch-action: manipulation;
    }

    .bv-swatch {
        width: 26px;
        height: 26px;
        min-width: 26px;
        min-height: 26px;
    }

    .bv-annotator-close {
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
    }

    .bv-annotator-footer {
        padding: 0.65rem 1rem;
        padding-bottom: max(0.65rem, env(safe-area-inset-bottom, 0));
        padding-left: max(1rem, env(safe-area-inset-left, 0));
        padding-right: max(1rem, env(safe-area-inset-right, 0));
    }
}

@media (max-width: 640px) {
    .bv-annotator-title-text {
        font-size: 0.95rem;
    }

    .bv-tool-label {
        display: none;
    }

    .bv-annotator-tip {
        display: none;
    }
}
