/* Onglets PASSI : pastilles + filet orange. */
.passi-tabs-section {
    position: relative;
    max-width: 1320px;
    margin: 0 auto var(--espacement-lg);
    padding: 0 0 0.15rem;
}

.passi-tabs-section::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: var(--couleur-primaire);
}

.passi-tabs-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.5rem;
    position: relative;
    z-index: 1;
}

.passi-tab-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.55rem 1.2rem;
    border-radius: 8px;
    background: #f4e6d8;
    color: #c47a3a;
    font-size: 0.92rem;
    font-weight: var(--poids-medium);
    text-decoration: none;
    line-height: 1.2;
    margin-bottom: 2px;
    transition: background 0.15s ease, color 0.15s ease;
}

.passi-tab-btn:hover {
    background: #efd4bc;
    color: #a65f24;
}

.passi-tab-btn.active {
    background: var(--couleur-primaire);
    color: #fff;
    font-weight: var(--poids-bold);
}

.passi-agrees-page .accompagnements-content-outer,
.accompagnement-category-page:has(.passi-tabs-section) .accompagnements-content-outer {
    padding-top: 1.25rem;
}

.passi-agrees-page .accompagnements-content-inner {
    max-width: 1320px;
    border-radius: 16px;
}

.passi-view-hidden {
    display: none !important;
}

/* Filtres */
.passi-filters-card {
    margin-bottom: var(--espacement-xl);
    padding: 1.15rem 1.25rem;
    background: #fff;
    border: 1px solid #eceff3;
    border-radius: 16px;
    box-shadow: 0 1px 8px rgba(15, 23, 42, 0.04);
}

.passi-filters-form {
    display: grid;
    grid-template-columns: minmax(12rem, 1.4fr) repeat(3, minmax(10rem, 1fr)) auto;
    gap: 1rem 1.25rem;
    align-items: end;
}

.passi-filter-group {
    min-width: 0;
}

.passi-filter-label {
    display: block;
    margin-bottom: 0.4rem;
    font-size: var(--taille-petit);
    font-weight: var(--poids-medium);
    color: var(--texte-secondaire);
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.passi-input-wrapper {
    position: relative;
}

.passi-input,
.passi-ms-trigger {
    width: 100%;
    min-height: 42px;
    padding: 0.6rem 2.5rem 0.6rem 0.85rem;
    border: 1px solid #e2e6eb;
    border-radius: 10px;
    background: #fff;
    color: var(--texte-principal);
    font-size: 0.92rem;
    font-family: inherit;
}

.passi-ms-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    text-align: left;
    cursor: pointer;
}

.passi-ms-trigger-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.passi-ms-trigger .ui-icon {
    color: var(--texte-secondaire);
}

.passi-btn-search {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 44px;
    border: 0;
    background: transparent;
    color: var(--couleur-primaire);
    cursor: pointer;
}

.passi-btn-search:hover,
.passi-ms-trigger:hover,
.passi-input:focus,
.passi-ms-trigger:focus {
    border-color: var(--couleur-primaire);
    outline: none;
}

.passi-multiselect {
    position: relative;
}

.passi-multiselect.is-open .passi-ms-trigger {
    border-color: var(--couleur-primaire);
}

.passi-ms-panel {
    position: absolute;
    z-index: 20;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    padding: 0.4rem 0;
    background: #fff;
    border: 1px solid #d5d8de;
    border-radius: var(--rayon-normal);
    box-shadow: var(--ombre-moyenne);
}

.passi-ms-option {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.45rem 0.85rem;
    cursor: pointer;
    font-size: var(--taille-normal);
}

.passi-ms-option:hover {
    background: var(--couleur-primaire-clair);
}

.passi-ms-actions {
    padding: 0.5rem 0.85rem 0.2rem;
    border-top: 1px solid #e8eaed;
}

.passi-ms-apply,
.passi-btn-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0.35rem 0.9rem;
    border-radius: var(--rayon-normal);
    font-size: var(--taille-petit);
    font-weight: var(--poids-medium);
    text-decoration: none;
}

.passi-ms-apply {
    width: 100%;
    border: 0;
    background: var(--couleur-primaire);
    color: #fff;
    cursor: pointer;
}

.passi-btn-reset {
    border: 1px solid #d5d8de;
    background: #fff;
    color: var(--texte-principal);
}

.passi-btn-reset:hover {
    border-color: var(--couleur-primaire);
    color: var(--couleur-primaire);
}

/* Barre titre + bascule fiches/tableau */
.passi-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--espacement-md);
    margin-bottom: var(--espacement-lg);
}

.passi-count-wrapper {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.75rem;
}

.passi-section-title {
    margin: 0;
    font-size: 1.45rem;
    font-weight: var(--poids-bold);
    color: var(--couleur-primaire);
}

.passi-count-badge {
    padding: 0.2rem 0.7rem;
    border-radius: 999px;
    border: 1px solid var(--couleur-primaire);
    background: #fff;
    color: var(--couleur-primaire);
    font-size: 0.78rem;
    font-weight: var(--poids-medium);
}

.passi-view-switcher {
    display: inline-flex;
    gap: 0.5rem;
    border: 0;
}

.passi-btn-view {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 38px;
    padding: 0.4rem 0.9rem;
    border: 1px solid var(--couleur-primaire);
    border-radius: 8px;
    background: #fff;
    color: var(--couleur-primaire);
    cursor: pointer;
    font-size: 0.85rem;
    font-weight: var(--poids-medium);
}

.passi-btn-view.active {
    background: var(--couleur-primaire);
    color: #fff;
}

/* Fiches */
.passi-cards-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--espacement-lg);
}

.passi-directory-card {
    display: flex;
    gap: 1rem;
    height: 100%;
    padding: 1.15rem 1.2rem;
    background: #fff;
    border: 1.5px solid #c5ccd6;
    border-radius: 14px;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.passi-card-col {
    min-width: 0;
    cursor: pointer;
}

.passi-card-col:hover .passi-directory-card {
    background: #f7f8fa;
}

.passi-card-col.is-selected .passi-directory-card {
    background: #fff8f1;
    border-color: #fdba74;
    box-shadow: inset 0 3px 0 var(--couleur-primaire, #f97316);
}

.passi-company-logo {
    flex: 0 0 72px;
    width: 72px;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: #f1f3f5;
    color: #475569;
    overflow: hidden;
}

/* Plus de bandeau latéral sur les fiches. */
.passi-directory-card.sidebar-sage .passi-company-logo,
.passi-directory-card.sidebar-terracotta .passi-company-logo,
.passi-directory-card.sidebar-slate .passi-company-logo,
.passi-directory-card.sidebar-crimson .passi-company-logo,
.passi-directory-card.sidebar-yellow .passi-company-logo {
    background: #f1f3f5;
    color: #475569;
}

.passi-company-logo--photo {
    background: #f1f3f5;
}

.passi-company-logo-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.passi-company-initials {
    font-size: 1.05rem;
    font-weight: var(--poids-bold);
    letter-spacing: 0.04em;
}

.passi-directory-body {
    min-width: 0;
    flex: 1;
}

.passi-directory-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--espacement-sm);
    margin-bottom: 0.65rem;
}

.passi-directory-identity {
    flex: 1 1 auto;
    min-width: 0;
}

.passi-directory-header .passi-status-tag {
    flex: 0 0 auto;
    margin-left: auto;
}

/* Catégorie carte : même forme que le statut (rectangle 4px).
   Couleurs pilotées par CouleurThemeVolet (admin « Couleur du volet »).
   Vert sauge = même vert plein que le badge statut validé (#16a34a). */
.passi-directory-category {
    display: inline-block;
    margin: 0 0 0.25rem;
    padding: 0.28rem 0.65rem;
    border-radius: 4px;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    line-height: 1.2;
    color: #fff;
    background: #16a34a;
}

.passi-directory-category--sage {
    color: #fff;
    background: #16a34a;
    animation: passi-status-valid-glow 2.8s ease-in-out infinite;
}

.passi-directory-category--terracotta {
    color: #9a3412;
    background: #fff7ed;
}

.passi-directory-category--slate {
    color: #334155;
    background: #e2e8f0;
}

.passi-directory-category--crimson {
    color: #fff;
    background: #dc2626;
}

.passi-directory-category--yellow {
    color: #854d0e;
    background: #fef9c3;
}

.passi-company-name {
    margin: 0;
    font-size: 1.05rem;
    font-weight: var(--poids-bold);
    color: #1e293b;
    line-height: 1.3;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.passi-status-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.28rem 0.65rem;
    border-radius: 4px;
    font-size: 0.72rem;
    font-weight: var(--poids-bold);
    letter-spacing: 0.03em;
    text-transform: uppercase;
    white-space: nowrap;
    background: #16a34a;
    color: #fff;
}

.passi-status-tag.status-valid {
    background: #16a34a;
    color: #fff;
    animation: passi-status-valid-glow 2.8s ease-in-out infinite;
}

.passi-status-tag.status-valid .ui-icon {
    animation: passi-status-check-soft 2.8s ease-in-out infinite;
}

@keyframes passi-status-valid-glow {
    0%,
    100% {
        box-shadow: 0 0 0 0 rgba(22, 163, 74, 0);
    }

    50% {
        box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.22);
    }
}

@keyframes passi-status-check-soft {
    0%,
    100% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.12);
        opacity: 0.92;
    }
}

@media (prefers-reduced-motion: reduce) {
    .passi-status-tag.status-valid,
    .passi-status-tag.status-valid .ui-icon,
    .passi-directory-category--sage,
    .passi-table-cat--sage {
        animation: none;
    }
}

.passi-status-tag .ui-icon {
    width: 12px;
    height: 12px;
}

.passi-status-tag.status-suspended {
    background: #dc2626;
    color: #fff;
}

.passi-status-tag.status-danger {
    background: #ef4444;
    color: #fff;
}

.passi-status-tag.status-revoked {
    background: #111827;
    color: #fff;
}

.passi-audits-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.85rem;
}

.passi-audit-tag {
    padding: 0.28rem 0.65rem;
    border-radius: 8px;
    background: #f3f4f6;
    color: #475569;
    font-size: 0.78rem;
}

.passi-audit-tag.audit-success {
    background: #dcfce7;
    color: #166534;
}

.passi-audit-tag.audit-info {
    background: #e0f2fe;
    color: #0369a1;
}

.passi-audit-tag.audit-primary {
    background: #fff1e6;
    color: var(--couleur-primaire);
}

.passi-audit-tag.audit-warning {
    background: #fef3c7;
    color: #b45309;
}

.passi-audit-tag.audit-secondary {
    background: #f3f4f6;
    color: #475569;
}

.passi-meta-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    margin: 0 0 0.85rem;
}

.passi-meta-item {
    min-width: 0;
}

.passi-meta-item dt {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-bottom: 0.2rem;
    font-size: var(--taille-petit);
    color: var(--texte-secondaire);
}

.passi-meta-item dd {
    margin: 0;
    font-size: 0.88rem;
    color: var(--texte-principal);
}

.passi-decision-link {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--couleur-primaire);
    text-decoration: none;
}

.passi-decision-link:hover {
    text-decoration: underline;
}

.passi-contacts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1.25rem;
    margin: 0;
    padding: 0.75rem 0 0;
    border-top: 1px solid #eef1f4;
    list-style: none;
}

.passi-contact-link,
.passi-contact-item {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.35rem;
    color: var(--texte-principal);
    text-decoration: none;
    font-size: 0.85rem;
    max-width: 100%;
}

.passi-contact-link {
    align-items: center;
}

.passi-contact-link span,
.passi-contact-item span {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.passi-contact-link:hover {
    color: var(--couleur-primaire);
}

.passi-muted-note {
    color: var(--texte-clair);
    font-size: 0.85rem;
    font-style: italic;
}

.passi-empty-box {
    grid-column: 1 / -1;
    padding: var(--espacement-xxl) var(--espacement-lg);
    text-align: center;
    background: #f8f9fb;
    border-radius: var(--rayon-moyen);
}

.passi-empty-text {
    margin: 0 0 var(--espacement-md);
    color: var(--texte-secondaire);
}

/* Tableau — mise en forme maquette */
.passi-table-wrapper {
    overflow: hidden;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    box-shadow: none;
}

.passi-table-scroll {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.passi-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.9rem;
    color: #1f2937;
}

@media (min-width: 769px) {
    .passi-table {
        min-width: 1080px;
    }

    .passi-table th:nth-last-child(2),
    .passi-table td:nth-last-child(2) {
        padding-right: 0.45rem;
        width: 14%;
    }

    .passi-table th:last-child,
    .passi-table td:last-child {
        padding-left: 0.45rem;
        width: 20%;
        max-width: none;
    }
}

.passi-table th,
.passi-table td {
    padding: 0.95rem 1rem;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid #e5e7eb;
    border-right: 1px solid #e5e7eb;
}

.passi-table th:last-child,
.passi-table td:last-child {
    border-right: none;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.passi-table tbody tr:last-child td {
    border-bottom: none;
}

.passi-table th {
    background: #f3f4f6;
    font-size: 0.82rem;
    font-weight: 700;
    color: #374151;
    text-transform: none;
    letter-spacing: 0;
    border-bottom: 1px solid #e5e7eb;
}

.passi-table-row {
    cursor: pointer;
}

.passi-table tbody tr td {
    background: #fff;
}

.passi-table-row:hover td {
    background: #fafafa;
}

/* Sélection : fond pêche + filet orange continu en haut */
.passi-table-row.is-selected td {
    background: #fff8f1 !important;
    box-shadow: inset 0 3px 0 var(--couleur-primaire, #f97316);
}

.passi-table-row.is-selected:hover td {
    background: #fff3e6 !important;
}

.passi-table-company-name {
    font-weight: 700;
    color: #111827;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    font-size: 0.9rem;
}

/* Catégorie tableau : même gabarit / vert plein que le statut validé. */
.passi-table-cat {
    display: inline-block;
    padding: 0.28rem 0.65rem;
    border-radius: 4px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-size: 0.72rem;
    line-height: 1.2;
    white-space: nowrap;
    color: #fff;
    background: #16a34a;
}

.passi-table-cat--sage {
    color: #fff;
    background: #16a34a;
    animation: passi-status-valid-glow 2.8s ease-in-out infinite;
}

.passi-table-cat--terracotta {
    color: #9a3412;
    background: #fff7ed;
}

.passi-table-cat--slate {
    color: #334155;
    background: #e2e8f0;
}

.passi-table-cat--crimson {
    color: #fff;
    background: #dc2626;
}

.passi-table-cat--yellow {
    color: #854d0e;
    background: #fef9c3;
}

.passi-table-audits,
.passi-table-coords {
    margin: 0;
    padding: 0;
    list-style: none;
}

.passi-table-audits li,
.passi-table-coords li {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 0.4rem;
    color: #1f2937;
    font-size: 0.88rem;
    line-height: 1.35;
}

.passi-table-coords li {
    gap: 0.45rem;
    min-width: 0;
}

.passi-table-audits li:last-child,
.passi-table-coords li:last-child {
    margin-bottom: 0;
}

.passi-table-coords-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 0.12rem;
    color: #4b5563;
}

.passi-table-coords-icon .ui-icon {
    width: 14px;
    height: 14px;
}

/* Coche verte circulaire (maquette) */
.passi-table-audit-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    margin-top: 0.1rem;
    border-radius: 50%;
    background: #16a34a;
    color: #fff;
}

.passi-table-audit-check .ui-icon {
    width: 10px;
    height: 10px;
}

.passi-table-validity-dates {
    margin: 0 0 0.4rem;
    color: #1f2937;
    font-size: 0.88rem;
}

.passi-table-decision {
    display: inline-block;
    margin-top: 0;
    color: #ea580c;
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 700;
}

.passi-table-decision:hover {
    color: #c2410c;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.passi-table-decision--static {
    text-decoration: none;
    font-weight: 700;
}

.passi-table-coords-label {
    color: #111827;
    white-space: nowrap;
}

.passi-table-coords-link,
.passi-table-coords-text,
.passi-table-coords-address {
    display: block;
    min-width: 0;
    flex: 1 1 auto;
    max-width: 100%;
    font-size: 0.88rem;
    color: #1f2937;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.passi-table-coords-link,
.passi-table-coords-text {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.passi-table-coords-address {
    text-decoration: none;
}

.passi-table-coords-link:hover,
.passi-table-coords-text:hover {
    color: #111827;
}

.passi-table-empty {
    text-align: center;
    color: var(--texte-secondaire);
}

/* Pagination */
.passi-pagination-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--espacement-md);
    margin-top: var(--espacement-xl);
}

.passi-pagination-info {
    color: var(--texte-secondaire);
    font-size: 0.9rem;
}

.passi-pagination-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.passi-page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    min-height: 40px;
    padding: 0 0.7rem;
    border: 1px solid #d5d8de;
    border-radius: var(--rayon-normal);
    color: var(--texte-principal);
    text-decoration: none;
    background: #fff;
}

.passi-page-item.active .passi-page-link {
    border-color: var(--couleur-primaire);
    background: var(--couleur-primaire);
    color: #fff;
}

.passi-page-item.disabled .passi-page-link {
    color: var(--texte-clair);
    pointer-events: none;
    background: #f8f9fb;
}

/* ===== Responsive — tablette / mobile / petit écran ===== */
@media (max-width: 1100px) {
    .passi-filters-form {
        grid-template-columns: minmax(0, 1.3fr) repeat(2, minmax(0, 1fr));
    }

    .passi-filter-reset {
        grid-column: 1 / -1;
    }

    .passi-cards-grid {
        gap: var(--espacement-md);
    }
}

@media (max-width: 960px) {
    .passi-tabs-section {
        max-width: 100%;
        padding-left: 0;
        padding-right: 0;
    }

    .passi-tabs-nav {
        gap: 0.4rem;
    }

    .passi-tab-btn {
        padding: 0.5rem 0.9rem;
        font-size: 0.85rem;
    }

    .passi-filters-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .passi-filter-search {
        grid-column: 1 / -1;
    }

    /* 2 colonnes conservées — évite les fiches trop larges vides */
    .passi-cards-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .passi-directory-card {
        padding: 1rem;
        gap: 0.85rem;
    }

    .passi-company-logo {
        flex-basis: 64px;
        width: 64px;
        height: 64px;
    }

    .passi-status-tag {
        white-space: normal;
        text-align: center;
        max-width: 11rem;
    }
}

@media (max-width: 720px) {
    .passi-cards-grid {
        grid-template-columns: 1fr;
    }

    .passi-filters-card {
        padding: 1rem;
    }

    .passi-toolbar {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.75rem;
    }

    .passi-count-wrapper {
        flex: 1 1 auto;
        min-width: 0;
        justify-content: flex-start;
    }

    .passi-section-title {
        font-size: 1.25rem;
    }

    .passi-view-switcher {
        width: auto;
        flex: 0 0 auto;
        margin-left: auto;
    }

    .passi-btn-view {
        flex: 0 1 auto;
        justify-content: center;
        padding: 0.4rem 0.75rem;
    }

    .passi-directory-card {
        flex-direction: row;
        align-items: flex-start;
    }

    .passi-meta-row {
        grid-template-columns: 1fr 1fr;
        gap: 0.75rem 1rem;
    }

    .passi-contacts {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.55rem 1.1rem;
    }

    .passi-pagination-nav {
        flex-direction: column;
        align-items: stretch;
    }

    .passi-pagination-list {
        justify-content: center;
    }

    /* Tableau → cartes empilées */
    .passi-table-wrapper {
        border: none;
        border-radius: 0;
        background: transparent;
        overflow: visible;
    }

    .passi-table-scroll {
        overflow: visible;
        padding: 0;
    }

    .passi-table,
    .passi-table thead,
    .passi-table tbody,
    .passi-table tr,
    .passi-table th,
    .passi-table td {
        display: block;
        width: 100%;
    }

    .passi-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .passi-table tbody {
        display: flex;
        flex-direction: column;
        gap: 0.85rem;
    }

    .passi-table-row,
    .passi-table tbody tr {
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        background: #fff;
        box-shadow: none;
        padding: 0.15rem 0;
        overflow: hidden;
        margin: 0;
    }

    .passi-table-row.is-selected,
    .passi-table tbody tr.is-selected {
        background: #fff8f1;
        border-color: #fdba74;
        box-shadow: inset 0 3px 0 var(--couleur-primaire, #f97316);
    }

    .passi-table-row.is-selected td {
        border-top: none !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .passi-table-row:hover,
    .passi-table tbody tr:hover {
        background: #fafafa;
    }

    .passi-table-row.is-selected:hover,
    .passi-table tbody tr.is-selected:hover {
        background: #fff3e6;
    }

    .passi-table-row:hover td {
        background: transparent;
    }

    .passi-table th,
    .passi-table td {
        border: none;
        border-bottom: 1px solid #e5e7eb;
        padding: 0.65rem 0.85rem;
    }

    .passi-table td:last-child {
        border-bottom: none;
    }

    .passi-table td[data-label] {
        display: grid;
        grid-template-columns: minmax(6.5rem, 36%) minmax(0, 1fr);
        gap: 0.4rem 0.65rem;
        align-items: start;
        background: transparent !important;
    }

    .passi-table td[data-label]::before {
        content: attr(data-label);
        font-weight: 700;
        color: #4b5563;
        font-size: 0.78rem;
        line-height: 1.35;
    }

    .passi-table-company-name {
        display: inline;
        font-size: 0.92rem;
        line-height: 1.35;
    }

    .passi-table-audits li {
        margin-bottom: 0.3rem;
        font-size: 0.85rem;
    }

    .passi-table-audit-check {
        width: 16px;
        height: 16px;
        margin-top: 0.1rem;
        border-radius: 50%;
        background: #16a34a;
        color: #fff;
    }

    .passi-table-audit-check .ui-icon {
        width: 10px;
        height: 10px;
    }

    .passi-table td.passi-table-empty,
    .passi-table td[colspan] {
        display: block;
        text-align: center;
        padding: 1.25rem 1rem;
    }

    .passi-table td[colspan]::before {
        content: none;
    }

    .passi-table-coords-link,
    .passi-table-coords-text,
    .passi-table-coords-address {
        display: block;
        min-width: 0;
        max-width: 100%;
        font-size: 0.85rem;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .passi-ms-panel {
        left: 0;
        right: 0;
        min-width: 0;
        width: 100%;
    }
}

@media (max-width: 520px) {
    .passi-filters-form {
        grid-template-columns: 1fr;
    }

    .passi-filter-search,
    .passi-filter-reset {
        grid-column: auto;
    }

    .passi-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .passi-view-switcher {
        width: 100%;
        margin-left: 0;
    }

    .passi-btn-view {
        flex: 1;
    }

    .passi-directory-card {
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
        padding: 0.9rem;
    }

    .passi-directory-header {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .passi-directory-header .passi-status-tag {
        margin-left: 0;
        max-width: 100%;
    }

    .passi-meta-row {
        grid-template-columns: 1fr;
        gap: 0.65rem;
    }

    .passi-contacts {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }

    .passi-company-logo {
        flex-basis: 56px;
        width: 56px;
        height: 56px;
    }

    .passi-tabs-nav {
        width: 100%;
    }

    .passi-tab-btn {
        flex: 1 1 auto;
        text-align: center;
        padding: 0.55rem 0.65rem;
        font-size: 0.8rem;
    }

    .passi-btn-view span {
        font-size: 0.8rem;
    }

    .passi-count-badge {
        font-size: 0.72rem;
    }

    .passi-table td[data-label] {
        grid-template-columns: 1fr;
        gap: 0.2rem;
    }

    .passi-table td[data-label]::before {
        font-size: 0.72rem;
        color: #6b7280;
        text-transform: uppercase;
        letter-spacing: 0.03em;
    }

    .passi-status-tag {
        font-size: 0.68rem;
        padding: 0.24rem 0.5rem;
        max-width: none;
    }

    .passi-page-link {
        min-width: 36px;
        min-height: 36px;
        font-size: 0.85rem;
    }

    .passi-company-name {
        font-size: 0.98rem;
    }

    .passi-table-company-name {
        font-size: 0.9rem;
    }
}

@media (max-width: 360px) {
    .passi-section-title {
        font-size: 1.1rem;
    }

    .passi-btn-view {
        padding: 0.4rem 0.55rem;
        gap: 0.25rem;
    }
}
