:root {
  --navy-950: #0c1830;
  --navy-900: #13233f;
  --navy-800: #1b3155;
  --ink: #202b3e;
  --muted: #536176;
  --line: #e3e8ef;
  --line-dark: #ccd5e1;
  --paper: #e8eef5;
  --white: #f7f9fc;
  --coral: #e85d4a;
  --coral-dark: #c94838;
  --coral-soft: #fff0ed;
  --blue-soft: #edf4ff;
  --shadow-sm: 0 2px 7px rgba(22, 39, 67, .05);
  --shadow-lg: 0 18px 50px rgba(25, 42, 70, .09);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
}

* { box-sizing: border-box; }
body { margin: 0; background: radial-gradient(circle at 86% -8%, rgba(255, 255, 255, .84), transparent 28rem), linear-gradient(135deg, #e5ebf3 0%, #eef2f7 52%, #e4ebf4 100%); color: var(--ink); }
a { color: inherit; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.site-header { background: var(--navy-900); color: #fff; }
.header-inner { width: min(calc(100% - clamp(2rem, 5vw, 8rem)), 1680px); min-height: 76px; max-width: 1680px; margin: 0 auto; padding: 0; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .78rem; text-decoration: none; }
/* Logo officiel (bleu marine et rouge) : sur un cartouche blanc pour rester lisible sur l'en-tête sombre. */
.brand-logo { display: inline-flex; align-items: center; padding: .3rem .6rem; background: #fff; border-radius: 9px; }
.brand-logo img { display: block; width: auto; height: 26px; }
.brand-copy { display: flex; align-items: baseline; gap: .42rem; letter-spacing: -.02em; }
.brand-copy strong { font-size: 1.03rem; font-weight: 750; }
.brand-copy span { color: #b8c6db; font-size: .86rem; }
.header-actions { display: flex; align-items: center; gap: 1.8rem; font-size: .83rem; }
.theme-toggle { min-height: 34px; display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .7rem; border: 1px solid rgba(255,255,255,.24); border-radius: 7px; background: rgba(255,255,255,.08); color: #e7eef8; font-size: .74rem; font-weight: 700; cursor: pointer; transition: border-color .18s, background .18s, color .18s; }
.theme-toggle:hover { border-color: rgba(255,177,165,.8); background: rgba(255,255,255,.14); color: #fff; }
.theme-toggle-icon { width: 13px; height: 13px; display: inline-block; border: 1.5px solid currentColor; border-radius: 50%; position: relative; overflow: hidden; }
.theme-toggle-icon::after { position: absolute; top: -2px; right: -2px; width: 10px; height: 16px; border-radius: 50%; background: currentColor; content: ""; opacity: .82; }
.session-badge { display: inline-flex; align-items: center; gap: .45rem; color: #c4d0e1; }
.status-dot, .live-indicator { width: 7px; height: 7px; display: inline-block; background: #64cf9a; border-radius: 50%; box-shadow: 0 0 0 4px rgba(100, 207, 154, .12); }
.logout-link { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.28); padding-bottom: 2px; transition: color .2s, border-color .2s; }
.logout-link:hover { color: #ffb1a5; border-color: #ffb1a5; }
.site-main { width: min(calc(100% - clamp(2rem, 5vw, 8rem)), 1680px); max-width: 1680px; margin: 0 auto; padding: 0 0 4rem; }
.site-footer { width: min(calc(100% - clamp(2rem, 5vw, 8rem)), 1680px); max-width: 1680px; margin: 0 auto; padding: 0 0 2.25rem; display: flex; justify-content: space-between; color: #67758a; font-size: .78rem; letter-spacing: .01em; }

.flash-message { margin: 1.5rem 0 -1rem; display: flex; align-items: center; gap: .75rem; padding: .9rem 1rem; border: 1px solid #f5b7ae; background: var(--coral-soft); border-radius: 10px; color: #9a3027; font-size: .87rem; }
.flash-icon, .notice-icon { display: inline-grid; place-items: center; flex: 0 0 auto; width: 23px; height: 23px; border-radius: 50%; background: var(--coral); color: #fff; font-weight: 800; font-size: .78rem; }
.eyebrow { margin: 0 0 .9rem; color: var(--coral-dark); font-size: .76rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.light-eyebrow { color: #ff9b8d; }
.eyebrow-rule { display: inline-block; width: 28px; height: 1px; margin: 0 .55rem .2rem; background: currentColor; opacity: .55; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Connexion */
.auth-layout { min-height: calc(100vh - 130px); max-width: 1160px; margin: 0 auto; padding: 7.5vh 0 5rem; display: grid; grid-template-columns: minmax(0, 1.07fr) minmax(360px, .82fr); align-items: center; gap: clamp(4rem, 9vw, 10rem); }
.auth-intro { align-self: stretch; display: flex; flex-direction: column; justify-content: space-between; padding: 4rem 0 2rem; }
.auth-intro h1 { max-width: 640px; margin: 0; color: var(--navy-900); font-size: clamp(1.9rem, 2.8vw, 2.6rem); font-weight: 650; letter-spacing: -.04em; line-height: 1.1; }
.auth-intro h1 em { color: var(--coral); font-style: normal; }
.auth-lead { max-width: 420px; margin: 2rem 0 0; color: #526176; font-size: 1.08rem; line-height: 1.72; }
.auth-proof { max-width: 460px; margin-top: 5rem; display: grid; gap: 1rem; }
.proof-line { display: grid; grid-template-columns: 42px 1fr; gap: 1rem; padding: 1.1rem 0; border-top: 1px solid var(--line-dark); color: #526176; font-size: .88rem; line-height: 1.45; }
.proof-line:last-child { border-bottom: 1px solid var(--line-dark); }
.proof-number { color: var(--coral); font-size: .7rem; font-weight: 800; letter-spacing: .1em; }
.auth-note { margin: 3rem 0 0; color: #66758a; font-size: .8rem; }
.note-mark { margin-right: .45rem; color: var(--coral); }
.auth-card { width: 100%; padding: clamp(2rem, 4vw, 3.35rem); background: rgba(247, 249, 252, .94); border: 1px solid #d8e1eb; border-radius: 18px; box-shadow: 0 18px 50px rgba(25, 42, 70, .12); }
.auth-card-heading { margin-bottom: 2.35rem; }
.card-kicker { display: block; margin-bottom: 1rem; color: var(--coral-dark); font-size: .68rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.auth-card h2 { margin: 0; color: var(--navy-900); font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 700; letter-spacing: -.045em; }
.auth-card-heading p { margin: .75rem 0 0; color: var(--muted); font-size: .9rem; line-height: 1.55; }
.login-form, .carte { display: grid; gap: 1.25rem; }
label { display: grid; gap: .52rem; color: #35445b; font-size: .82rem; font-weight: 700; letter-spacing: .01em; }
input, select { width: 100%; color: var(--ink); background: #edf2f7; border: 1px solid #c8d3e0; border-radius: 7px; outline: none; transition: border-color .18s, box-shadow .18s, background .18s; }
input { min-height: 45px; padding: .72rem .85rem; }
input::placeholder { color: #7f8da0; }
input:focus, select:focus { background: #fff; border-color: #7e9bc4; box-shadow: 0 0 0 4px rgba(81, 126, 188, .12); }
.password-field { position: relative; }
.password-field input { padding-right: 3.3rem; }
.field-suffix { position: absolute; right: .9rem; top: 50%; color: #a1adbc; font-size: .72rem; letter-spacing: .12em; transform: translateY(-50%); }
button, .bouton { border: 0; border-radius: 7px; cursor: pointer; text-decoration: none; }
.login-form button, .filter-submit { min-height: 48px; margin-top: .45rem; padding: .75rem 1rem; display: flex; align-items: center; justify-content: space-between; background: var(--coral); color: #fff; font-weight: 750; box-shadow: 0 9px 18px rgba(232, 93, 74, .19); transition: background .18s, transform .18s, box-shadow .18s; }
.login-form button:hover, .filter-submit:hover { background: var(--coral-dark); transform: translateY(-1px); box-shadow: 0 12px 22px rgba(232, 93, 74, .24); }
.secure-note { margin: 2rem 0 0; color: #68778c; font-size: .78rem; text-align: center; }
.lock-icon { display: inline-block; margin-right: .3rem; color: #7c8da6; font-size: 1rem; transform: rotate(-25deg); }
.inline-error { display: flex; align-items: flex-start; gap: .65rem; margin: -1rem 0 .3rem; padding: .75rem .8rem; border-radius: 7px; background: var(--coral-soft); color: #a2362c; font-size: .75rem; line-height: 1.4; }
.inline-error > span { display: inline-grid; place-items: center; flex: 0 0 auto; width: 17px; height: 17px; border-radius: 50%; background: var(--coral); color: #fff; font-size: .65rem; font-weight: 800; }

/* Recherche */
.page-intro { padding: clamp(2.8rem, 4.5vw, 4.5rem) 0 clamp(2.2rem, 3.4vw, 3.2rem); display: flex; align-items: flex-end; justify-content: space-between; gap: clamp(2rem, 4vw, 4.5rem); }
.page-intro h1 { margin: 0; color: var(--navy-900); font-size: clamp(1.9rem, 2.7vw, 2.6rem); font-weight: 650; letter-spacing: -.05em; line-height: 1.1; }
.page-lead { max-width: 650px; margin: 1.2rem 0 0; color: #536176; font-size: 1.02rem; line-height: 1.62; }
.intro-meta { display: flex; align-items: center; gap: .65rem; padding: .8rem 0; color: #536176; font-size: .8rem; white-space: nowrap; }
.meta-separator { color: #bdc6d1; }
.workspace-layout { display: grid; grid-template-columns: minmax(285px, 330px) minmax(0, 1fr); align-items: start; gap: clamp(1.5rem, 3vw, 3.4rem); }
.filters-panel { background: rgba(247, 249, 252, .92); border: 1px solid #d5dfeb; border-radius: 14px; box-shadow: 0 8px 22px rgba(29, 49, 78, .07); }
.filtres { display: grid; gap: 0; padding: 1.6rem; }
.filters-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; padding-bottom: 1.1rem; border-bottom: 1px solid var(--line); }
.filters-heading > div { display: flex; align-items: center; gap: .65rem; }
.panel-index { display: inline-grid; place-items: center; width: 25px; height: 25px; border-radius: 7px; background: var(--navy-900); color: #fff; font-size: .66rem; font-weight: 800; }
.filters-heading h2 { margin: 0; color: var(--navy-900); font-size: 1.1rem; letter-spacing: -.03em; }
.reset-link { margin-top: .22rem; color: var(--coral-dark); font-size: .76rem; text-underline-offset: 3px; }
.filters-intro { margin: 1rem 0 1.4rem; color: #536176; font-size: .84rem; line-height: 1.5; }
.filter-group { display: grid; gap: 1rem; padding: 1.25rem 0 1.35rem; border-top: 1px solid var(--line); }
.group-heading { display: flex; align-items: center; gap: .58rem; color: var(--navy-900); font-size: .86rem; font-weight: 800; letter-spacing: .025em; }
.group-number { color: var(--coral); font-size: .67rem; letter-spacing: .08em; }
.filter-group label { font-size: .82rem; }
.label-hint { float: right; color: #617086; font-size: .78rem; font-weight: 650; }
.multi-select-field { display: grid; gap: .52rem; }
.field-label { display: block; color: #35445b; font-size: .92rem; font-weight: 750; line-height: 1.3; }
.multi-select { position: relative; }
.multi-select-toggle { width: 100%; min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .62rem .75rem; border: 1px solid #c8d3e0; border-radius: 7px; background: #edf2f7; color: #53657b; font-size: .84rem; text-align: left; cursor: pointer; transition: border-color .18s, box-shadow .18s, background .18s; }
.multi-select-toggle:hover, .multi-select.is-open .multi-select-toggle, .multi-select.has-selection .multi-select-toggle { background: #fff; border-color: #7e9bc4; }
.multi-select.is-open .multi-select-toggle { box-shadow: 0 0 0 4px rgba(81, 126, 188, .12); }
.multi-select.has-selection .multi-select-toggle { color: #365777; }
.multi-select-toggle { cursor: pointer; }
.select-chevron { width: 26px; height: 26px; display: inline-grid; place-items: center; flex: 0 0 auto; border: 1px solid #d7e0eb; border-radius: 50%; color: var(--coral); font-size: 0; line-height: 1; pointer-events: none; transition: border-color .18s, background .18s, transform .18s; }
.select-chevron::before { width: 6px; height: 6px; display: block; border-right: 1.7px solid currentColor; border-bottom: 1.7px solid currentColor; content: ""; transform: translateY(-1px) rotate(45deg); transition: transform .18s; }
.multi-select-toggle:hover .select-chevron, .multi-select.is-open .select-chevron { border-color: #f0a095; background: #fff5f3; }
.multi-select.is-open .select-chevron::before { transform: translateY(2px) rotate(225deg); }
.multi-select-menu { position: absolute; z-index: 20; top: calc(100% + .42rem); left: 0; right: 0; display: none; max-height: 220px; overflow-y: auto; padding: .42rem; border: 1px solid #c8d5e3; border-radius: 8px; background: #f8fafc; box-shadow: 0 13px 28px rgba(25, 42, 70, .18); }
.multi-select.is-open .multi-select-menu { display: grid; gap: .14rem; }
.multi-select-search { position: sticky; top: 0; z-index: 1; min-height: 38px !important; margin: 0 0 .25rem; padding: .5rem .65rem !important; border-color: #c9d5e3; background: #fff; font-size: .82rem !important; }
.multi-select-search:focus { border-color: #7e9bc4; }
.multi-option { position: relative; display: flex; align-items: center; gap: .55rem; min-height: 36px; padding: .34rem .42rem; border-radius: 5px; color: #3f4f65; font-size: .82rem; font-weight: 600; cursor: pointer; }
.multi-option[hidden] { display: none !important; }
.multi-option:hover { background: var(--blue-soft); color: #265486; }
.multi-option input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.multi-option .custom-check { width: 16px; height: 16px; }
.multi-option input:checked + .custom-check { border-color: var(--coral); background: var(--coral); }
.multi-option input:checked + .custom-check::after { width: 7px; height: 4px; border-bottom: 2px solid #fff; border-left: 2px solid #fff; content: ""; transform: rotate(-45deg) translate(1px, -1px); }
.multi-option:focus-within { background: var(--blue-soft); }
.multi-select-native { display: none; }
.filtres input { min-height: 42px; padding: .55rem .7rem; font-size: .84rem; }
.check-list { display: grid; gap: .65rem; padding: 0; margin: 0; border: 0; }
.check-list label { position: relative; display: flex; align-items: center; gap: .55rem; color: #3f4f65; font-size: .82rem; font-weight: 600; cursor: pointer; }
.check-list input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.custom-check { width: 17px; height: 17px; display: inline-grid; place-items: center; flex: 0 0 auto; border: 1px solid var(--line-dark); border-radius: 4px; background: #fff; }
.check-list input:checked + .custom-check { border-color: var(--coral); background: var(--coral); }
.check-list input:checked + .custom-check::after { width: 7px; height: 4px; border-bottom: 2px solid #fff; border-left: 2px solid #fff; content: ""; transform: rotate(-45deg) translate(1px, -1px); }
.check-list label:focus-within .custom-check { box-shadow: 0 0 0 4px rgba(81, 126, 188, .12); }
.date-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.date-grid label { font-size: .74rem; }
.date-grid input { font-size: .78rem; }
.filter-submit { width: 100%; margin-top: .35rem; padding: .78rem .85rem; font-size: .84rem; }

.results-panel { min-width: 0; }
.results-header { min-height: 90px; display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; padding-bottom: 1.4rem; border-bottom: 1px solid var(--line-dark); }
.results-header .eyebrow { margin-bottom: .5rem; color: #66758a; }
.compteur { margin: 0; color: #536176; font-size: 1rem; font-weight: 600; letter-spacing: -.01em; }
.compteur strong { margin-right: .35rem; color: var(--navy-900); font-size: 2.65rem; font-weight: 700; letter-spacing: -.07em; }
.export-button { min-width: 202px; display: flex; align-items: center; gap: .65rem; padding: .62rem .7rem; background: var(--navy-900); color: #fff; border-radius: 10px; box-shadow: 0 7px 18px rgba(19, 35, 63, .16); transition: background .18s, transform .18s, box-shadow .18s; }
.export-button:hover { background: var(--navy-800); transform: translateY(-1px); }
.export-button:hover { box-shadow: 0 12px 25px rgba(195, 41, 97, .22); }
.export-icon { display: inline-grid; place-items: center; width: 32px; height: 32px; flex: 0 0 auto; border: 1px solid rgba(255,255,255,.23); border-radius: 8px; color: #ffd3e0; }
.export-icon svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.export-copy { display: grid; min-width: 0; flex: 1; gap: .12rem; }
.export-copy strong { font-size: .79rem; font-weight: 750; white-space: nowrap; }
.export-button small { color: #ffc0d3; font-size: .59rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.export-arrow { color: #ffb3ca; font-size: 1.1rem; line-height: 1; transition: transform .18s; }
.export-button:hover .export-arrow { transform: translate(2px, -2px); }
.notice { display: flex; gap: .8rem; align-items: flex-start; margin-top: 1.6rem; padding: 1rem 1.1rem; border: 1px solid #f4b7ad; border-radius: 9px; background: var(--coral-soft); color: #9a3a30; font-size: .78rem; line-height: 1.5; }
.notice strong { font-size: .81rem; }
.empty-state { min-height: 350px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem; text-align: center; }
.empty-icon { display: grid; place-items: center; width: 66px; height: 66px; margin-bottom: 1.35rem; border: 1px solid #dce4ef; border-radius: 50%; background: #f2f6fb; color: #587395; font-size: 2.1rem; font-weight: 300; }
.empty-state h3 { margin: 0; color: var(--navy-900); font-size: 1.2rem; letter-spacing: -.04em; }
.empty-state p { max-width: 340px; margin: .65rem 0 1rem; color: #59687c; font-size: .88rem; line-height: 1.6; }
.empty-tip { color: var(--coral-dark); font-size: .74rem; font-weight: 700; }
.table-card { margin-top: 1.6rem; overflow: hidden; border: 1px solid #d3deea; border-radius: 11px; background: #f5f8fb; box-shadow: 0 9px 24px rgba(29, 49, 78, .08); }
.table-toolbar, .table-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .95rem 1.05rem; color: #33445b; font-size: .78rem; }
.table-toolbar { border-bottom: 1px solid var(--line); color: var(--navy-900); font-weight: 750; }
.table-sort { color: #4d5e74; font-size: .74rem; font-weight: 650; }
.table-sort span { margin-left: .25rem; color: var(--coral); }
.table-scroll { width: 100%; max-width: 100%; overflow-x: auto; }
table { width: 100%; min-width: 0; table-layout: fixed; border-collapse: collapse; background: #f5f8fb; font-size: .92rem; }
th:nth-child(1), td:nth-child(1) { width: 32%; }
th:nth-child(2), td:nth-child(2) { width: 14%; }
th:nth-child(3), td:nth-child(3) { width: 30%; }
th:nth-child(4), td:nth-child(4) { width: 24%; }
th, td { padding: .82rem .7rem; text-align: left; vertical-align: top; border-bottom: 1px solid #dce4ed; }
th { color: #3c4d64; font-size: .76rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }
th:first-child, td:first-child { padding-left: 1.05rem; }
th:last-child, td:last-child { padding-right: 1.05rem; }
tbody tr { transition: background .15s; }
tbody tr:hover { background: #edf2f7; }
tbody tr:last-child td { border-bottom: 0; }
td { color: #35475e; line-height: 1.5; overflow-wrap: anywhere; word-break: break-word; }
td strong { display: block; max-width: none; color: var(--navy-900); font-weight: 750; }
.company-name { overflow-wrap: break-word; word-break: normal; }
.company-meta { display: block; margin-top: .28rem; color: #5c6c80; font-size: .75rem; line-height: 1.35; }
.muted { color: #68788b; }
.postal-code, .activity-code { color: #5e7087; font-variant-numeric: tabular-nums; }
.country-code, .country-name { display: block; }
.country-code { color: #3e5068; font-size: .82rem; font-weight: 800; }
.country-name { color: #53657b; font-size: .78rem; }
.activity-code { display: block; margin-bottom: .1rem; color: var(--coral-dark); font-size: .82rem; font-weight: 800; }
.email-cell { color: #597b9f; overflow-wrap: anywhere; word-break: break-word; }
.contact-cell { color: #3f648a; font-size: .84rem; }
.contact-cell span { display: block; }
.contact-cell span + span { margin-top: .3rem; }
.contact-cell span:first-child { white-space: nowrap; overflow-wrap: normal; word-break: normal; }
.contact-cell span:last-child { overflow-wrap: anywhere; word-break: break-word; }
.detail-toggle { min-height: 36px; display: inline-flex; align-items: center; gap: .62rem; padding: .48rem .72rem; border: 1px solid #d7e0eb; border-radius: 8px; background: #fff; color: #51647d; font-size: .74rem; font-weight: 750; white-space: nowrap; cursor: pointer; transition: border-color .18s, color .18s, background .18s, transform .18s; }
.detail-toggle:hover, .detail-toggle.is-open { border-color: #eaa096; background: #fff5f3; color: var(--coral-dark); }
.detail-toggle:hover { transform: translateY(-1px); }
.detail-chevron { width: 6px; height: 6px; display: inline-block; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-1px) rotate(45deg); transition: transform .18s; }
.detail-toggle.is-open .detail-chevron { transform: translateY(2px) rotate(225deg); }
.company-details[hidden] { display: none; }
.company-details > td { padding: 0 !important; border-bottom: 1px solid #d3deea; }
.details-panel { padding: 1rem 1.05rem 1.15rem; background: #dfe7f0; }
.details-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .9rem; color: #1e304a; font-size: .76rem; font-weight: 800; }
.details-number { color: #5f7086; font-size: .72rem; font-weight: 650; font-variant-numeric: tabular-nums; }
.details-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: .8rem; }
.detail-item { min-width: 0; padding: .72rem .78rem; border: 1px solid #d2dce8; border-radius: 7px; background: #f7f9fc; }
.detail-item-wide { grid-column: span 2; }
.detail-caption { display: block; margin-bottom: .3rem; color: #586a80; font-size: .67rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.detail-item strong { max-width: none; color: #35475e; font-size: .82rem; font-weight: 650; overflow-wrap: anywhere; }
.detail-link { color: #3f648a !important; }
.table-footer { justify-content: flex-start; border-top: 1px solid var(--line); color: #52647b; }
.table-footer strong { margin: 0 .22rem; color: var(--navy-900); }
.results-pagination { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding: .25rem .2rem; }
.pagination-summary { color: #8e9caf; font-size: .76rem; font-variant-numeric: tabular-nums; }
.pagination-links { display: flex; align-items: center; gap: .35rem; }
.pagination-link { min-width: 32px; height: 32px; display: inline-grid; place-items: center; padding: 0 .55rem; border: 1px solid #cbd7e4; border-radius: 7px; background: #edf2f7; color: #52647b; font-size: .76rem; font-weight: 750; text-decoration: none; transition: border-color .18s, background .18s, color .18s, transform .18s; }
.pagination-link:hover { border-color: #d87893; background: #fff0f4; color: #aa2858; transform: translateY(-1px); }
.pagination-link.is-current { border-color: #c32961; background: #c32961; color: #fff; box-shadow: 0 6px 14px rgba(195, 41, 97, .2); }
.pagination-arrow { font-size: 1rem; line-height: 1; }
.results-panel.is-loading { position: relative; pointer-events: none; }
.results-panel.is-loading::after { position: absolute; z-index: 3; top: 1.2rem; right: 1.2rem; padding: .42rem .65rem; border: 1px solid var(--line-dark); border-radius: 999px; background: var(--white); color: var(--muted); content: "Mise à jour…"; font-size: .7rem; font-weight: 750; box-shadow: 0 8px 20px rgba(0, 0, 0, .12); }

/* Les filtres suivent la page, sans barre de défilement propre : le script de l'écran ajuste --filtres-haut selon
   le sens du défilement (en descendant, le bas du panneau reste visible ; en remontant, le haut revient aussitôt). */
@media (min-width: 981px) {
  .filters-panel { position: sticky; top: var(--filtres-haut, 1rem); }
}

@media (max-width: 980px) {
  .auth-layout { gap: 3rem; }
  .page-intro { align-items: flex-start; flex-direction: column; }
  .intro-meta { padding: 0; }
  .workspace-layout { grid-template-columns: 285px minmax(0, 1fr); gap: 1.5rem; }
  .filtres { padding: 1.2rem; }
  table { min-width: 940px; table-layout: auto; }
  .details-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
  .header-inner { width: calc(100% - 2.5rem); min-height: 68px; padding: 0; }
  .header-actions { gap: 0; }
  .session-badge { display: none; }
  .site-main { width: calc(100% - 2.5rem); padding: 0 0 3rem; }
  .site-footer { width: calc(100% - 2.5rem); padding: 0 0 1.5rem; gap: .5rem; flex-direction: column; }
  .auth-layout { min-height: 0; padding: 3.5rem 0 3rem; display: flex; flex-direction: column; align-items: stretch; gap: 2.5rem; }
  .auth-intro { padding: 0; }
  .auth-intro h1 { font-size: clamp(1.8rem, 7vw, 2.2rem); }
  .auth-lead { margin-top: 1.45rem; font-size: .93rem; }
  .auth-proof { margin-top: 2.5rem; }
  .auth-note { margin-top: 1.7rem; }
  .auth-card { padding: 1.6rem; }
  .page-intro { padding: 3rem 0 2.3rem; }
  .page-intro h1 { font-size: clamp(1.5rem, 6vw, 2.2rem); }
  .page-lead { font-size: .9rem; }
  .workspace-layout { display: flex; flex-direction: column; }
  .filters-panel, .results-panel { width: 100%; }
  .results-header { align-items: flex-start; flex-direction: column; }
  .export-button { width: 100%; justify-content: flex-start; }
  .empty-state { min-height: 290px; }
  .detail-toggle { font-size: .72rem; }
}

@media (max-width: 460px) {
  .brand-copy span { display: none; }
  .logout-link { font-size: .73rem; }
  .intro-meta { flex-wrap: wrap; line-height: 1.5; }
  .meta-separator { display: none; }
  .date-grid { grid-template-columns: 1fr; }
  .table-toolbar { align-items: flex-start; flex-direction: column; gap: .35rem; }
}

/* Thème sombre expérimental */
html[data-theme="dark"] {
  --paper: #0b1425;
  --white: #14233a;
  --ink: #e8eef8;
  --muted: #afbdd0;
  --line: #263750;
  --line-dark: #3a4d68;
  --blue-soft: #1b304c;
  background: #080e1c;
}

html[data-theme="dark"] body {
  background: radial-gradient(circle at 84% -10%, rgba(47, 76, 116, .42), transparent 30rem), linear-gradient(135deg, #081121 0%, #0e1b30 54%, #0a1527 100%);
  color: #e8eef8;
}

html[data-theme="dark"] .site-header { background: #071020; border-bottom: 1px solid #1c2d46; }
html[data-theme="dark"] .brand-copy span,
html[data-theme="dark"] .session-badge { color: #aebdd2; }
html[data-theme="dark"] .site-footer { color: #91a2bb; }
html[data-theme="dark"] .theme-toggle { border-color: #344a68; background: #14243b; color: #dbe6f5; }
html[data-theme="dark"] .theme-toggle:hover { border-color: #eaa096; background: #1b304c; color: #fff; }

html[data-theme="dark"] .page-intro h1,
html[data-theme="dark"] .auth-intro h1,
html[data-theme="dark"] .auth-card h2,
html[data-theme="dark"] .filters-heading h2,
html[data-theme="dark"] .group-heading,
html[data-theme="dark"] .empty-state h3,
html[data-theme="dark"] .details-heading,
html[data-theme="dark"] td strong,
html[data-theme="dark"] .table-footer strong,
html[data-theme="dark"] .compteur strong { color: #edf3fb; }
html[data-theme="dark"] .page-lead,
html[data-theme="dark"] .auth-lead,
html[data-theme="dark"] .proof-line,
html[data-theme="dark"] .filters-intro,
html[data-theme="dark"] .compteur,
html[data-theme="dark"] .empty-state p { color: #aebdd0; }
html[data-theme="dark"] .intro-meta { color: #aebdd0; }
html[data-theme="dark"] .meta-separator { color: #607692; }

html[data-theme="dark"] .auth-card,
html[data-theme="dark"] .filters-panel,
html[data-theme="dark"] .table-card {
  background: rgba(20, 35, 58, .94);
  border-color: #2b3d59;
  box-shadow: 0 16px 40px rgba(0, 0, 0, .2);
}
html[data-theme="dark"] .auth-card-heading p,
html[data-theme="dark"] .auth-note,
html[data-theme="dark"] .secure-note { color: #9fafc4; }
html[data-theme="dark"] .filters-heading,
html[data-theme="dark"] .filter-group { border-color: #2b3d59; }
html[data-theme="dark"] label,
html[data-theme="dark"] .field-label,
html[data-theme="dark"] .label-hint { color: #c0ccdc; }
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] .multi-select-toggle {
  border-color: #3b4e6b;
  background: #0f1c30;
  color: #e8eef8;
}
html[data-theme="dark"] input::placeholder { color: #8fa1ba; }
html[data-theme="dark"] input:focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] .multi-select.is-open .multi-select-toggle { background: #13243d; border-color: #7194c1; }
html[data-theme="dark"] .multi-select.has-selection .multi-select-toggle,
html[data-theme="dark"] .multi-select.has-selection .multi-select-toggle:hover { background: #13243d; border-color: #7194c1; color: #d5e5fa; }
html[data-theme="dark"] .multi-select.has-selection .select-chevron { border-color: #52729b; background: #1a304d; color: #f05b8a; }
html[data-theme="dark"] .multi-select-menu { border-color: #3b4e6b; background: #101e33; box-shadow: 0 16px 34px rgba(0, 0, 0, .35); }
html[data-theme="dark"] .multi-select-search { border-color: #3b4e6b; background: #0c182a; color: #e8eef8; }
html[data-theme="dark"] .multi-option,
html[data-theme="dark"] .check-list label { color: #c5d1e0; }
html[data-theme="dark"] .multi-option:hover,
html[data-theme="dark"] .multi-option:focus-within { background: #1a304d; color: #fff; }
html[data-theme="dark"] .custom-check { border-color: #536987; background: #0e1b2e; }

html[data-theme="dark"] .results-header { border-color: #334760; }
html[data-theme="dark"] .results-header .eyebrow,
html[data-theme="dark"] .table-sort,
html[data-theme="dark"] .table-footer { color: #9eafc5; }
html[data-theme="dark"] .table-toolbar { background: #14233a; border-color: #2b3d59; color: #edf3fb; }
html[data-theme="dark"] table { background: #101d31; }
html[data-theme="dark"] th { color: #aebdd0; }
html[data-theme="dark"] th,
html[data-theme="dark"] td { border-color: #293b56; }
html[data-theme="dark"] tbody tr:hover { background: #172942; }
html[data-theme="dark"] td { color: #c1cede; }
html[data-theme="dark"] .company-meta,
html[data-theme="dark"] .country-name { color: #9eafc5; }
html[data-theme="dark"] .country-code { color: #dbe6f5; }
html[data-theme="dark"] .contact-cell { color: #a9c7ec; }
html[data-theme="dark"] .detail-toggle { border-color: #405571; background: #14243b; color: #cedbeb; }
html[data-theme="dark"] .detail-toggle:hover,
html[data-theme="dark"] .detail-toggle.is-open { border-color: #eaa096; background: #3a2025; color: #ffb3a7; }
html[data-theme="dark"] .company-details > td { border-color: #2b3d59; }
html[data-theme="dark"] .details-panel { background: #0c182a; }
html[data-theme="dark"] .details-number,
html[data-theme="dark"] .detail-caption { color: #9eafc5; }
html[data-theme="dark"] .detail-item { border-color: #2c405d; background: #14243b; }
html[data-theme="dark"] .detail-item strong { color: #d3deec; }
html[data-theme="dark"] .detail-link { color: #a9c7ec !important; }
html[data-theme="dark"] .empty-icon { border-color: #30445f; background: #13243b; color: #a8c0de; }

@media (max-width: 720px) {
  .theme-toggle { min-width: 34px; padding: .45rem; }
  .theme-toggle span:last-child { display: none; }
}

/* Direction inspirée d'un dashboard SaaS sombre : rail latéral, cartes flottantes et accent magenta. */
html[data-theme="dark"] {
  --coral: #c32961;
  --coral-dark: #ec477f;
  --coral-soft: #3a172b;
}

html[data-theme="dark"] body {
  background: radial-gradient(circle at 90% -12%, rgba(80, 48, 94, .34), transparent 27rem), linear-gradient(135deg, #080e1c 0%, #101a2d 58%, #0b1425 100%);
}

html[data-theme="dark"] .workspace-layout { gap: clamp(1.15rem, 1.65vw, 2rem); }
html[data-theme="dark"] .results-panel { min-width: 0; }
html[data-theme="dark"] .filters-panel {
  background: linear-gradient(155deg, #17243a 0%, #111c30 100%);
  border-color: #2c3b56;
  border-radius: 20px;
  box-shadow: 0 20px 46px rgba(0, 0, 0, .24);
}
html[data-theme="dark"] .filters-heading { border-color: #2d3d58; }
html[data-theme="dark"] .panel-index { background: #c32961; box-shadow: 0 8px 18px rgba(195, 41, 97, .26); }
html[data-theme="dark"] .group-number,
html[data-theme="dark"] .reset-link,
html[data-theme="dark"] .eyebrow { color: #f05b8a; }
html[data-theme="dark"] .filter-submit,
html[data-theme="dark"] .login-form button { background: linear-gradient(135deg, #b92058, #d63870); box-shadow: 0 12px 24px rgba(195, 41, 97, .25); }
html[data-theme="dark"] .filter-submit:hover,
html[data-theme="dark"] .login-form button:hover { background: linear-gradient(135deg, #cc2b66, #eb4a82); }

html[data-theme="dark"] .table-card {
  background: linear-gradient(145deg, #17243a 0%, #111c30 100%);
  border-color: #2c3b56;
  border-radius: 20px;
  box-shadow: 0 20px 48px rgba(0, 0, 0, .23);
}
html[data-theme="dark"] .table-toolbar { padding: 1.05rem 1.2rem; background: rgba(24, 37, 59, .78); border-color: #2d3d58; }
html[data-theme="dark"] .table-scroll { padding: 0 clamp(.75rem, 1.25vw, 1.25rem) .75rem; }
html[data-theme="dark"] table { border-collapse: separate; border-spacing: 0 .72rem; background: transparent; }
html[data-theme="dark"] thead th { padding-top: .55rem; padding-bottom: .3rem; border-bottom: 0; color: #98aac2; }
html[data-theme="dark"] tbody tr:not(.company-details) td {
  background: linear-gradient(145deg, #1b2941, #17243a);
  border-top: 1px solid #30425f;
  border-bottom: 1px solid #30425f;
  padding-top: 1rem;
  padding-bottom: 1rem;
}
html[data-theme="dark"] tbody tr:not(.company-details) td:first-child { border-left: 1px solid #30425f; border-radius: 15px 0 0 15px; }
html[data-theme="dark"] tbody tr:not(.company-details) td:last-child { border-right: 1px solid #30425f; border-radius: 0 15px 15px 0; }
html[data-theme="dark"] tbody tr:not(.company-details):hover td { background: linear-gradient(145deg, #223452, #1c2d48); }
html[data-theme="dark"] tbody tr.company-details td { background: #0f1a2d; border-top: 1px solid #2a3b57; border-bottom: 1px solid #2a3b57; }
html[data-theme="dark"] .details-panel { background: linear-gradient(145deg, #101d32, #0c1729); border-radius: 0 0 14px 14px; }
html[data-theme="dark"] .detail-item { background: #182740; border-color: #2f4260; }
html[data-theme="dark"] .detail-toggle { background: #22314a; border-color: #3d5272; }
html[data-theme="dark"] .detail-toggle:hover,
html[data-theme="dark"] .detail-toggle.is-open { background: #3c1b2e; border-color: #e45688; color: #ff9fbd; }
html[data-theme="dark"] .detail-link { color: #a9c7ec !important; }
html[data-theme="dark"] .pagination-summary { color: #9eafc5; }
html[data-theme="dark"] .pagination-link { border-color: #3d5272; background: #172842; color: #cbd8e9; }
html[data-theme="dark"] .pagination-link:hover { border-color: #e45688; background: #3c1b2e; color: #ffb0c8; }
html[data-theme="dark"] .pagination-link.is-current { border-color: #c32961; background: #c32961; color: #fff; }

html[data-theme="dark"] .export-button {
  background: linear-gradient(135deg, #b92058, #d63870);
  border: 1px solid rgba(255, 164, 193, .2);
  box-shadow: 0 13px 26px rgba(195, 41, 97, .28);
}
html[data-theme="dark"] .export-button:hover { background: linear-gradient(135deg, #cc2b66, #eb4a82); }
html[data-theme="dark"] .export-icon { color: #ffd3e0; border-color: rgba(255, 211, 224, .32); }
html[data-theme="dark"] .export-arrow { color: #ffd0df; }


/* Mes exports */
.flash-info { border-color: var(--line); background: var(--surface, #f5f8fb); color: var(--navy-900); }
.flash-info .flash-icon { background: var(--navy-900); }
.export-etat { white-space: nowrap; }
.export-statut { display: inline-flex; align-items: center; gap: .5rem; font-size: .82rem; }
.export-pret { min-width: 0; padding: .45rem .8rem; }
.export-pret strong { color: inherit; }
html[data-theme="dark"] .flash-info { border-color: var(--line-dark); background: rgba(255, 255, 255, .04); color: #e8eef7; }
html[data-theme="dark"] .flash-info .flash-icon { background: var(--coral); }
.logout-link { white-space: nowrap; }
.intro-meta .logout-link { color: inherit; border-color: currentColor; }
.exports-table th:nth-child(1), .exports-table td:nth-child(1) { width: 38%; }
.exports-table th:nth-child(2), .exports-table td:nth-child(2) { width: 14%; }
.exports-table th:nth-child(3), .exports-table td:nth-child(3) { width: 20%; }
.exports-table th:nth-child(4), .exports-table td:nth-child(4) { width: 28%; }
/* Téléphone : une carte par export, le bouton reste visible sans faire glisser le tableau. */
@media (max-width: 720px) {
  .exports-table { min-width: 0; }
  .exports-table thead { display: none; }
  .exports-table tr, .exports-table td { display: block; width: auto !important; }
  .exports-table td { padding: .35rem 1.05rem; border: 0; }
  .exports-table td[data-label="Sociétés"]::before, .exports-table td[data-label="Demandé le"]::before { content: attr(data-label) " : "; color: #66758a; }
  .exports-table tr { padding: .6rem 0; border-bottom: 1px solid var(--line); }
  .exports-table .export-etat { white-space: normal; }
  .exports-table .export-pret { width: 100%; }
  html[data-theme="dark"] .exports-table tbody tr:not(.company-details) td { border: 0; border-radius: 0; background: transparent; }
  html[data-theme="dark"] .exports-table tr { border-bottom-color: var(--line-dark); }
}
.libelle-court { display: none; }
@media (max-width: 460px) {
  .header-actions { gap: .2rem; }
  .header-actions .logout-link { margin-left: .55rem; }
  .libelle-long { display: none; }
  .libelle-court { display: inline; }
}
@media (max-width: 380px) {
  .brand-logo { padding: .25rem .45rem; }
  .brand-logo img { height: 20px; }
  .header-inner { gap: .5rem; }
  .header-actions .logout-link { margin-left: .45rem; }
}

/* ---------- Navigation selon les accès ---------- */
.app-nav { width: min(calc(100% - clamp(2rem, 5vw, 8rem)), 1680px); max-width: 1680px; margin: 0 auto; display: flex; gap: .3rem; overflow-x: auto; scrollbar-width: none; }
.app-nav::-webkit-scrollbar { display: none; }
.app-nav a { position: relative; display: inline-flex; align-items: center; gap: .4rem; padding: .7rem .85rem .8rem; color: #b9c7da; font-size: .84rem; font-weight: 650; text-decoration: none; white-space: nowrap; border-bottom: 2px solid transparent; }
.app-nav a:hover { color: #fff; }
.app-nav a[aria-current="page"] { color: #fff; border-color: var(--coral); }
html[data-theme="dark"] .app-nav a[aria-current="page"] { border-color: #e2407a; }
.nav-badge { min-width: 1.25rem; height: 1.25rem; padding: 0 .35rem; display: inline-grid; place-items: center; border-radius: 99px; background: #25d366; color: #062b16; font-size: .7rem; font-weight: 800; }
.nav-badge[hidden] { display: none; }
@media (max-width: 720px) { .app-nav { width: calc(100% - 2.5rem); } .app-nav a { padding: .6rem .6rem .7rem; font-size: .8rem; } }
@media (max-width: 380px) { .app-nav { width: calc(100% - 1.5rem); gap: 0; } .app-nav a { padding: .55rem .45rem .65rem; } }

/* ---------- Comptes de l'équipe ---------- */
.equipe-layout { display: grid; grid-template-columns: minmax(280px, 420px) 1fr; gap: 1.6rem; align-items: start; }
.equipe-layout .table-card { margin-top: 0; }
.equipe-carte { padding: clamp(1.25rem, 3vw, 2rem); background: rgba(247, 249, 252, .94); border: 1px solid #d8e1eb; border-radius: 14px; box-shadow: var(--shadow-sm); max-width: 560px; }
.equipe-carte h2 { margin: 0; color: var(--navy-900); font-size: 1.15rem; letter-spacing: -.03em; }
.compte-form label { display: grid; gap: .45rem; font-size: .84rem; font-weight: 650; }
.compte-form input:not([type="checkbox"]) { min-height: 44px; padding: .6rem .75rem; }
.acces { display: grid; gap: .55rem; margin: 0; padding: .9rem 1rem; border: 1px solid #d3deea; border-radius: 9px; }
.acces legend { padding: 0 .35rem; font-size: .78rem; font-weight: 750; color: var(--muted); }
.compte-form .case { display: flex; align-items: center; gap: .6rem; font-weight: 550; }
.case input { width: 18px; height: 18px; margin: 0; accent-color: var(--coral); }
.comptes-table { width: 100%; border-collapse: collapse; }
.comptes-table th, .comptes-table td { padding: .8rem 1rem; text-align: left; border-bottom: 1px solid var(--line); font-size: .86rem; }
.comptes-table th { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.comptes-table tr.inactif td { opacity: .55; }
.comptes-table .logout-link { color: inherit; border-color: currentColor; }
.pastille { margin-left: .4rem; padding: .1rem .45rem; border-radius: 99px; background: var(--line); font-size: .7rem; font-weight: 700; }
.inline-error span:last-child { line-height: 1.5; }
html[data-theme="dark"] .equipe-carte { background: linear-gradient(155deg, #17243a 0%, #111c30 100%); border-color: #2c3b56; }
html[data-theme="dark"] .equipe-carte h2 { color: #edf3fb; }
html[data-theme="dark"] .acces { border-color: #2d3d58; }
html[data-theme="dark"] .comptes-table th, html[data-theme="dark"] .comptes-table td { border-color: #2d3d58; }
html[data-theme="dark"] .pastille { background: #2d3d58; }
@media (max-width: 900px) { .equipe-layout { grid-template-columns: 1fr; } }
@media (max-width: 720px) {
  .comptes-table thead { display: none; }
  .comptes-table tr { display: grid; grid-template-columns: 1fr auto; padding: .7rem 1rem; border-bottom: 1px solid var(--line); }
  .comptes-table td { padding: .15rem 0; border: 0; }
  .comptes-table td:last-child { grid-row: 1 / span 3; grid-column: 2; align-self: center; }
}

/* ---------- WhatsApp ---------- */
.wa-intro { margin-bottom: 1rem; }
.wa-liste { display: grid; max-width: 860px; overflow: hidden; border: 1px solid #d3deea; border-radius: 14px; background: #f5f8fb; box-shadow: var(--shadow-sm); }
.wa-liste .empty-state { border: 0; }
.wa-ligne { display: grid; grid-template-columns: 46px 1fr; gap: .85rem; align-items: center; padding: .85rem 1rem; color: inherit; text-decoration: none; border-bottom: 1px solid var(--line); }
.wa-ligne:last-child { border-bottom: 0; }
.wa-ligne:hover { background: #eaf0f7; }
.wa-avatar { width: 46px; height: 46px; display: inline-grid; place-items: center; border-radius: 50%; background: #d7e2ef; color: var(--navy-900); font-weight: 800; font-size: 1.05rem; flex: none; }
.wa-ligne-corps { min-width: 0; display: grid; gap: .2rem; }
.wa-ligne-haut, .wa-ligne-bas { display: flex; justify-content: space-between; align-items: center; gap: .75rem; min-width: 0; }
.wa-ligne-haut strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .95rem; }
.wa-ligne-haut time { flex: none; color: var(--muted); font-size: .74rem; }
.wa-apercu { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: .85rem; }
.wa-numero { color: var(--muted); font-size: .74rem; text-decoration: none; }
.non-lue .wa-ligne-haut strong, .non-lue .wa-apercu { color: var(--ink); font-weight: 750; }
.non-lue .wa-ligne-haut time { color: #128c4b; font-weight: 700; }
.wa-badge { flex: none; min-width: 1.4rem; height: 1.4rem; padding: 0 .4rem; display: inline-grid; place-items: center; border-radius: 99px; background: #25d366; color: #062b16; font-size: .72rem; font-weight: 800; }

.wa-entete { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; gap: .8rem; max-width: 860px; margin: 1rem 0 .5rem; padding: .7rem .9rem; border: 1px solid #d3deea; border-radius: 14px; background: rgba(245, 248, 251, .97); backdrop-filter: blur(6px); }
.wa-entete h1 { margin: 0; font-size: 1.05rem; letter-spacing: -.02em; color: var(--navy-900); }
.wa-entete .wa-avatar { width: 40px; height: 40px; }
.wa-retour { width: 36px; height: 36px; display: inline-grid; place-items: center; border-radius: 50%; color: inherit; font-size: 1.25rem; text-decoration: none; }
.wa-retour:hover { background: #e3eaf3; }
.wa-fil { max-width: 860px; display: flex; flex-direction: column; gap: .45rem; padding: .5rem 0 1rem; }
.wa-bulle { position: relative; max-width: min(78%, 560px); padding: .55rem .75rem .4rem; border-radius: 12px; background: #fff; box-shadow: 0 1px 1.5px rgba(16, 33, 60, .13); align-self: flex-start; overflow-wrap: anywhere; }
.wa-bulle.sortant { align-self: flex-end; background: #d9fdd3; }
.wa-auteur { display: block; margin-bottom: .15rem; color: #0e7a3c; font-size: .72rem; font-weight: 800; }
.wa-texte { margin: 0; font-size: .92rem; line-height: 1.42; }
.wa-type { display: block; color: var(--muted); font-size: .8rem; font-style: italic; }
.wa-meta { display: flex; justify-content: flex-end; align-items: center; gap: .3rem; margin-top: .15rem; color: #6b778a; font-size: .68rem; }
.wa-coches { letter-spacing: -.18em; font-weight: 700; }
.wa-coches.lu { color: #34b7f1; }
.wa-coches.echec { color: var(--coral-dark); letter-spacing: 0; }
.wa-echec { display: block; color: var(--coral-dark); font-size: .74rem; }
.wa-image { display: block; max-width: 100%; max-height: 320px; border-radius: 8px; }
.wa-bulle audio { width: min(280px, 100%); }
.wa-bulle video { max-width: 100%; max-height: 320px; border-radius: 8px; }
.wa-document { display: inline-block; padding: .45rem .6rem; border-radius: 8px; background: rgba(19, 35, 63, .06); color: inherit; font-weight: 650; text-decoration: none; }
.wa-saisie { position: sticky; bottom: 0; z-index: 5; max-width: 860px; display: grid; grid-template-columns: 1fr auto; gap: .5rem; align-items: end; padding: .65rem 0 calc(.65rem + env(safe-area-inset-bottom)); background: linear-gradient(transparent, var(--paper) 25%); }
.wa-saisie textarea { width: 100%; min-height: 46px; max-height: 200px; padding: .7rem .85rem; resize: none; font: inherit; font-size: .95rem; line-height: 1.35; color: var(--ink); background: #fff; border: 1px solid #c8d3e0; border-radius: 22px; outline: none; }
.wa-saisie textarea:focus { border-color: #25a35a; box-shadow: 0 0 0 3px rgba(37, 211, 102, .18); }
.wa-saisie button { min-height: 46px; padding: 0 1rem; border-radius: 23px; background: #128c4b; color: #fff; font-weight: 750; white-space: nowrap; }
.wa-saisie button:disabled { opacity: .45; cursor: not-allowed; }
.wa-fenetre { grid-column: 1 / -1; margin: 0; padding: .6rem .8rem; border-radius: 10px; background: #fff4d6; color: #6b4b00; font-size: .82rem; line-height: 1.4; }
.wa-fenetre[hidden] { display: none; }

html[data-theme="dark"] .wa-liste, html[data-theme="dark"] .wa-entete { background: #111c30; border-color: #2c3b56; }
html[data-theme="dark"] .wa-ligne { border-color: #22324c; }
html[data-theme="dark"] .wa-ligne:hover, html[data-theme="dark"] .wa-retour:hover { background: #17243a; }
html[data-theme="dark"] .wa-avatar { background: #24375a; color: #dbe6f5; }
html[data-theme="dark"] .wa-entete h1, html[data-theme="dark"] .non-lue .wa-ligne-haut strong, html[data-theme="dark"] .non-lue .wa-apercu { color: #edf3fb; }
html[data-theme="dark"] .wa-apercu, html[data-theme="dark"] .wa-numero, html[data-theme="dark"] .wa-ligne-haut time { color: #9fb0c8; }
html[data-theme="dark"] .non-lue .wa-ligne-haut time { color: #25d366; }
html[data-theme="dark"] .wa-bulle { background: #1f2c43; color: #e8eef8; box-shadow: none; }
html[data-theme="dark"] .wa-bulle.sortant { background: #005c4b; }
html[data-theme="dark"] .wa-auteur { color: #6ee7a8; }
html[data-theme="dark"] .wa-meta { color: #a7b6cb; }
html[data-theme="dark"] .wa-document { background: rgba(255, 255, 255, .08); }
html[data-theme="dark"] .wa-saisie { background: linear-gradient(transparent, #0b1425 25%); }
html[data-theme="dark"] .wa-saisie textarea { background: #17243a; border-color: #2c3b56; color: #e8eef8; }
html[data-theme="dark"] .wa-fenetre { background: #3a2e0c; color: #ffe08a; }
@media (max-width: 720px) {
  .wa-bulle { max-width: 86%; }
  .wa-ligne { padding: .75rem .8rem; }
  .wa-saisie button { padding: 0 .85rem; }
}
.page-wa-fil .site-footer { display: none; }
@media (max-width: 480px) { .app-nav a { padding-inline: .5rem; } }
.wa-notifications { display: grid; gap: .45rem; justify-items: start; }
.wa-notifications[hidden] { display: none; }
.wa-push-bouton { color: var(--ink); border-color: #c8d3e0; background: #fff; }
.wa-push-etat { font-size: .78rem; max-width: 34ch; }
html[data-theme="dark"] .wa-push-bouton { color: #dbe6f5; }
