.lx-filter-row{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}

/* Base */
.lx-filter-btn{
    display:inline-flex;
    align-items:center;
    gap:8px;

    border:2px solid transparent;
    border-radius:999px;
    padding:7px 12px;

    font-weight:700;
    font-size:13px;
    line-height:1;

    background:#fff;
    text-decoration:none;

    /* neutralise Bootstrap */
    box-shadow:none !important;
    outline:0;
    color:inherit;
}

/* Evite que Bootstrap remplace les couleurs au hover */
.lx-filter-btn:hover,
.lx-filter-btn:focus,
.lx-filter-btn:focus-visible{
    box-shadow:none !important;
    outline:0;
}

/* Couleurs par statut */
.lx-filter-btn--won{
    border-color: var(--lx-status-won);
    color: var(--lx-status-won);
}
.lx-filter-btn--inprogress{
    border-color: var(--lx-status-in-progress);
    color: var(--lx-status-in-progress);
}
.lx-filter-btn--lost{
    border-color: var(--lx-status-lost);
    color: var(--lx-status-lost);
}

/* Hover OFF => bordure reste + petit fond très léger */
.lx-filter-btn--won:hover{ background: color-mix(in srgb, var(--lx-status-won) 12%, #fff); }
.lx-filter-btn--inprogress:hover{ background: color-mix(in srgb, var(--lx-status-in-progress) 12%, #fff); }
.lx-filter-btn--lost:hover{ background: color-mix(in srgb, var(--lx-status-lost) 12%, #fff); }

/* ON */
.lx-filter-btn.is-on{
    color:#fff !important;
}
.lx-filter-btn--won.is-on{ background: var(--lx-status-won); }
.lx-filter-btn--inprogress.is-on{ background: var(--lx-status-in-progress); }
.lx-filter-btn--lost.is-on{ background: var(--lx-status-lost); }

/* Hover ON => garde la couleur + léger assombrissement */
.lx-filter-btn.is-on:hover{
    filter: brightness(.95);
}

/* focus visible => accessible + cohérent */
.lx-filter-btn:focus-visible{
    outline: 2px solid rgba(0,0,0,.25);
    outline-offset: 2px;
}

.lx-filter-btn i{ font-size:14px; line-height:1; }


/* ============================
   LIENS DE PAIEMENT
   ============================ */

.lx-payment-links-table{
    height:220px;
    overflow-y:auto;
    overflow-x:auto;
}

.lx-payment-links-table table{
    margin-bottom:0;
}

.lx-payment-links-table thead{
    position:sticky;
    top:0;
    z-index:2;
}

.lx-payment-links-table thead th{
    background:#fff;
}
/* Fiche et ajout prospect : composants Bootstrap + identité Logibox. */
.lx-lead-page {
    --lx-lead-client: #426b81;
    --lx-lead-gold: #edc447;
    --lx-lead-mint: #92c2bf;
    --lx-lead-teal: #518486;
    color: var(--lx-text-body);
    max-width: 1600px;
    margin: 0 auto;
}

.lx-lead-banner,
.lx-lead-contact-strip { max-width: 830px; }
.lx-lead-banner .lx-linkRow__dot { width: 72px; height: 72px; flex-basis: 72px; }
.lx-lead-banner .lx-linkRow__text {
    min-height: 54px;
    padding-right: 24px;
    white-space: normal;
    overflow: visible;
    gap: 16px;
}
.lx-lead-banner h1 { font-size: clamp(1.25rem, 2vw, 2rem); overflow-wrap: anywhere; }
.lx-lead-contact-strip { background: #edf0f2; border: 1px solid #b4c6d0; }
.lx-lead-contact-strip a { text-decoration: none; }
.lx-lead-contact-strip a:hover { text-decoration: underline; }

.lx-lead-tabs { border: 0; gap: 0; padding-left: 4px; }
.lx-lead-tabs .nav-link {
    border: 0;
    border-radius: 0;
    padding: 9px 34px;
    color: var(--lx-text-dark);
    background: #e9ecef;
    font-size: 1.1rem;
}
.lx-lead-tabs .nav-link.active { background: var(--lx-brand-primary); color: #fff; }
.lx-lead-tabs .lx-lead-tab--reservations:not(.active) { background: #f9df4b; }
.lx-lead-tabs .nav-link:disabled { color: #89939a; background: transparent; }
.lx-lead-frame { border: 2px solid var(--lx-brand-primary); background: var(--lx-white); }
.lx-lead-panel { border: 2px solid var(--lx-panel-color); min-width: 0; }
.lx-lead-panel--client { --lx-panel-color: var(--lx-lead-client); }
.lx-lead-panel--request { --lx-panel-color: var(--lx-lead-gold); }
.lx-lead-panel--need { --lx-panel-color: var(--lx-lead-mint); }
.lx-lead-panel--activity { --lx-panel-color: var(--lx-lead-teal); }
.lx-lead-panel__heading {
    background: var(--lx-panel-color);
    color: #fff;
    min-height: 34px;
    padding: 5px 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.lx-lead-panel__heading h2 { font-size: .85rem; font-weight: 600; }
.lx-lead-panel__heading .btn { font-size: .7rem; padding: 2px 9px; border-radius: 2px; white-space: nowrap; }
/* Garder la palette de la maquette avec un texte lisible sur les fonds clairs. */
.lx-lead-panel--request > .lx-lead-panel__heading,
.lx-lead-panel--need > .lx-lead-panel__heading { color: var(--lx-brand-secondary); }
.lx-lead-panel--request > .lx-lead-panel__heading .btn,
.lx-lead-panel--need > .lx-lead-panel__heading .btn { --bs-btn-color: var(--lx-brand-secondary); --bs-btn-border-color: currentColor; }
.lx-lead-facts { font-size: .78rem; display: grid; gap: 10px; }
.lx-lead-facts > div { display: grid; grid-template-columns: 43% minmax(0, 1fr); gap: 10px; align-items: baseline; }
.lx-lead-facts dt { text-align: right; font-weight: 400; }
.lx-lead-facts dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.lx-lead-notes { background: #edf0f2; border: 1px solid #b4c6d0; border-radius: 0; min-height: 76px; }
.lx-lead-page--create .form-select,
.lx-lead-page--create .form-control:not(textarea) { background-color: #e5e7e4; border-radius: 0; border-color: #d9ddd9; font-size: .78rem; }
.lx-lead-page--create .col-form-label { font-size: .78rem; }
.lx-lead-page--create textarea { min-height: 235px; }
.lx-lead-table { font-size: .7rem; --bs-table-color: var(--lx-text-body); }
.lx-lead-table thead { --bs-table-bg: #2d6d79; --bs-table-color: #fff; }
.lx-lead-table--quotes thead { --bs-table-bg: var(--lx-lead-gold); --bs-table-color: var(--lx-brand-secondary); }
.lx-lead-table th { font-size: .78rem; padding: 7px 8px; }
.lx-lead-table td { padding: 7px 5px; border-bottom-color: #f0f2f3; }
.lx-lead-history { min-height: 250px; border: 1px solid #2d6d79; }
.lx-lead-history table { min-width: 650px; }
.lx-lead-chip { font-size: .66rem; font-weight: 500; }
.lx-lead-chip--primary { background: var(--lx-brand-primary); }
.lx-lead-chip--blue { background: #397ca5; }
.lx-lead-chip--gold { background: var(--lx-lead-gold); color: var(--lx-brand-secondary); }
.lx-lead-chip--green { background: var(--lx-brand-accent); color: #243a00; }
.lx-lead-chip--red { background: #d83832; }
.lx-lead-avatar { display: inline-grid; place-items: center; width: 23px; height: 23px; border: 1px solid #b4c6d0; border-radius: 50%; font-size: .58rem; color: var(--lx-brand-primary); background: #edf0f2; }
.lx-lead-icon { --bs-btn-padding-x: 3px; --bs-btn-padding-y: 1px; --bs-btn-font-size: .7rem; --bs-btn-border-radius: 2px; --bs-btn-color: #fff; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--lx-brand-secondary); }
.lx-lead-icon--view { --bs-btn-bg: #285e63; }
.lx-lead-icon--send { --bs-btn-bg: #397ca5; }
.lx-lead-icon--delete { --bs-btn-bg: #c84242; }
@media (max-width: 767.98px) {
    .lx-lead-banner .lx-linkRow__text { flex-wrap: wrap; padding-top: 10px; padding-bottom: 10px; padding-right: 16px; gap: 8px; }
    .lx-lead-tabs .nav-link { padding: 8px 12px; font-size: .9rem; }
    .lx-lead-contact-strip { justify-content: flex-start !important; }
}

/* Actions commerciales : styles limités à cet écran. */
.lx-actions-layout { display: grid; grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); gap: 20px; align-items: start; }
.lx-actions-layout > * { min-width: 0; }
.lx-actions-page .lx-action-card { display: block; width: 100%; text-align: left; border: 2px solid transparent; border-left: 5px solid var(--lx-action-color); border-radius: 16px; background: color-mix(in srgb, var(--lx-action-color) 10%, white); padding: 12px; margin-bottom: 10px; color: var(--lx-text-dark); }
.lx-actions-page .lx-action-card[aria-pressed="true"] { border-color: var(--lx-action-color); box-shadow: 0 0 0 2px color-mix(in srgb, var(--lx-action-color) 20%, transparent); }
.lx-actions-page .lx-action-card:focus-visible { outline: 3px solid var(--lx-brand-primary); outline-offset: 2px; }
.lx-actions-page .lx-action-card--call, .lx-actions-page .lx-action-card--followup { --lx-action-color: #007780; }
.lx-actions-page .lx-action-card--visit, .lx-actions-page .lx-action-card--reservation { --lx-action-color: #518486; }
.lx-actions-page .lx-action-card--sms, .lx-actions-page .lx-action-card--email { --lx-action-color: #bc6244; }
.lx-actions-page .lx-action-card.is-completed { --lx-action-color: #607060; }
.lx-actions-page .lx-action-description { overflow-wrap: anywhere; white-space: pre-wrap; }
.lx-actions-page .lx-lead-tabs .nav-link { padding: 9px 18px; }
@media (max-width: 991.98px) { .lx-actions-layout { grid-template-columns: minmax(0, 1fr); } }

/* Conserve le défilement du corps des modales contenant un formulaire. */
.modal-content > [data-quote-form] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

/* Préserve les retours à la ligne des messages sans interpréter de HTML. */
.lx-communication-preview {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

/* Habillage des seuls devis, partagé par la création et la consultation. */
.lx-quote-dialog { --bs-modal-width: 960px; }
.lx-quote-dialog:not(.lx-quote-dialog--wide) { margin-top: max(28px, 10vh); }
.lx-quote-dialog--wide { --bs-modal-width: 1530px; max-width: min(1530px, calc(100% - 40px)); margin: 18px auto; }
.lx-quote-content { border: 9px solid #355a78; border-radius: 30px; background: #fff; overflow: hidden; }
.lx-quote-modal { color: #37414b; }
.lx-quote-modal .modal-header { position: relative; flex-shrink: 0; justify-content: center; border: 0; border-radius: 0 0 20px 20px; background: #355a78; color: #fff; padding: 4px 55px 12px; min-height: 60px; }
.lx-quote-modal .modal-title { font-size: clamp(1.25rem, 2.2vw, 2.1rem); font-weight: 400; line-height: 1.2; text-align: center; }
.lx-quote-modal .btn-close { position: absolute; right: 20px; top: 12px; margin: 0; opacity: 1; border-radius: 50%; background: #d79678; width: 27px; height: 27px; padding: 0; }
.lx-quote-modal .btn-close::before, .lx-quote-modal .btn-close::after { content: ''; position: absolute; left: 5px; top: 12px; width: 18px; height: 4px; background: #fff; transform: rotate(45deg); }
.lx-quote-modal .btn-close::after { transform: rotate(-45deg); }
.lx-quote-modal .modal-body { padding: 22px clamp(16px, 7.5vw, 118px) 0; }
.lx-quote-validity { display: grid; grid-template-columns: 200px minmax(0, 460px); align-items: center; gap: 16px; margin: 0 0 28px; font-size: 21px; }
.lx-quote-validity > label { text-align: right; }
.lx-quote-modal .form-control, .lx-quote-modal .form-select { border: 0; border-radius: 0; color: #37414b; background-color: #d1d2cd; min-height: 34px; padding-top: 3px; padding-bottom: 3px; font-size: 18px; }
.lx-quote-modal .form-control[readonly] { background: #f8f8f8; }
.lx-quote-boxes { display: flex; gap: 32px; overflow-x: auto; padding-bottom: 8px; align-items: flex-start; scroll-padding-inline: 4px; }
.lx-quote-box, .lx-quote-add { flex: 0 0 400px; max-width: 100%; }
.lx-quote-box-card { position: relative; border: 5px solid #233f58; min-height: 640px; display: flex; flex-direction: column; }
.lx-quote-box-fields { padding: 23px 16px 12px; }
.lx-quote-field { display: grid; grid-template-columns: 126px minmax(0, 1fr); gap: 12px; align-items: center; margin-bottom: 24px; font-size: 19px; }
.lx-quote-field > span { text-align: right; white-space: nowrap; }
.lx-quote-field sup, .lx-quote-validity sup { font-size: 10px; }
.lx-quote-field:last-of-type { margin-bottom: 10px; }
.lx-quote-options { margin: 0 0 8px; font-size: 19px; }
.lx-quote-options legend { float: none; width: 100%; text-align: center; font-size: inherit; font-weight: 700; line-height: 1.25; margin-bottom: 8px; }
.lx-quote-options label { line-height: 1.35; }
.lx-quote-options > div { display: flex; flex-direction: column; gap: 5px; padding: 0 18px; }
.lx-quote-options--features > div { flex-direction: row; justify-content: space-between; padding: 0 18px; gap: 10px; }
.lx-quote-modal .form-check-input { width: 22px; height: 22px; border: 2px solid #46515a; border-radius: 3px; flex-shrink: 0; }
.lx-quote-modal .form-check-input:checked { background-color: #355a78; }
.lx-quote-modal .form-check-input:disabled { opacity: 1; }
.lx-quote-modal .form-check-input:disabled ~ * { opacity: 1; }
.lx-quote-prices { margin-top: auto; text-align: center; padding-bottom: 10px; font-size: 19px; }
.lx-quote-prices h4 { background: #233f58; color: #fff; font-size: 20px; font-weight: 700; padding: 9px; margin-bottom: 8px; }
.lx-quote-prices p { margin: 0 0 6px; }
.lx-quote-modal .btn { border: 0; border-radius: 0; font-weight: 700; color: #fff; }
.lx-quote-modal .lx-quote-add { background: #233f58; padding: 16px 10px; font-size: 21px; }
.lx-quote-modal .lx-quote-remove { position: absolute; top: 1px; right: 2px; padding: 0 3px; color: #a52c26; font-size: 14px; }
.lx-quote-modal .modal-footer { flex-shrink: 0; justify-content: center; border: 0; gap: 8px; padding: 10px 16px 25px; }
.lx-quote-modal .modal-footer .btn { width: 285px; max-width: 100%; margin: 0; padding: 10px; font-size: 18px; }
.lx-quote-modal .lx-quote-confirm { background: #a0bf3b; }
.lx-quote-modal .lx-quote-close { background: #d82520; }
.lx-quote-modal .lx-quote-cancel { background: #a2a3a1; }
.lx-quote-modal .btn:hover { filter: brightness(.92); }
.lx-quote-modal .lx-quote-remove:hover { color: #801e19; }
.lx-quote-note { margin: 8px 0 0; }
.lx-quote-modal--email .modal-body { padding: 24px 70px 20px; }
.lx-quote-recipient { display: flex; align-items: center; gap: 24px; }
.lx-quote-recipient > label { flex: 0 0 220px; text-align: right; font-size: 21px; margin-bottom: 0; }
.lx-quote-recipient .input-group { flex: 1; min-width: 0; }
.lx-quote-modal--email .input-group-text { border: 0; border-radius: 0; background: #f8f8f8; }
.lx-quote-modal--email .modal-footer { padding-bottom: 44px; }
@media (max-width: 767.98px) {
    .lx-quote-dialog, .lx-quote-dialog--wide { max-width: calc(100% - 16px); margin: 8px auto; }
    .lx-quote-content { border-width: 6px; border-radius: 22px; }
    .lx-quote-modal .modal-header { padding-inline: 40px; }
    .lx-quote-modal .btn-close { right: 6px; }
    .lx-quote-validity { grid-template-columns: 1fr; gap: 6px; font-size: 18px; }
    .lx-quote-validity > label { text-align: left; }
    .lx-quote-boxes { gap: 16px; }
    .lx-quote-box, .lx-quote-add { flex-basis: min(400px, 100%); }
    .lx-quote-box-fields { padding-inline: 8px; }
    .lx-quote-field { grid-template-columns: 110px minmax(0, 1fr); gap: 6px; font-size: 16px; }
    .lx-quote-options { font-size: 16px; }
    .lx-quote-options > div { padding-inline: 4px; }
    .lx-quote-modal .form-control, .lx-quote-modal .form-select { font-size: 16px; }
    .lx-quote-modal--email .modal-body { padding: 20px 16px; }
    .lx-quote-recipient { flex-direction: column; align-items: stretch; gap: 6px; }
    .lx-quote-recipient > label { flex-basis: auto; text-align: left; font-size: 18px; }
    .lx-quote-modal--email .modal-footer { flex-wrap: nowrap; padding-bottom: 24px; }
}
