/*
 * T-DS05 — Grilles de page + points de rupture (docs/DESIGN_SYSTEM.md).
 * Feuille de layout : les DEUX points de rupture de largeur du produit —
 * mobile ≤ 700px (max-width: 700px) et desktop ≥ 701px (min-width: 701px).
 * Les états 360/640/900/960 de l'ancien CSS sont re-implémentés comme
 * variantes à l'intérieur de ces deux blocs ; aucune valeur rendue à
 * 390/1440 ne change (dérive visuelle 0 % sur la baseline).
 */

/* Mobile ≤ 700 — variantes du shell portail (ex-blocs <style> de server.py) :
 * grilles de page en une colonne, outillage du flux compact. Les règles
 * ex-max-width:900 sont re-implémentées en tête de ce bloc (inertes à 390
 * derrière display:flex, conservées pour l'état ≤ 700). */
@media (max-width: 700px) {
  .offers-page .offers-tools { display: grid; grid-template-columns: 1fr; }
  .offers-page .offers-tools-copy { grid-column: auto; }
  .wrap { width: min(100% - 32px, 1160px); }
  .topbar-inner { min-height: 68px; gap: 8px; }
  .portal-nav { gap: 2px; }
  .portal-nav .top-link:not(.active) { display: none; }
  .portal-nav .top-link.active { padding: 0 7px; font-size: 12px; }
  .portal-nav .button { min-height: 42px; padding: 0 10px; font-size: 12px; }
  main { padding: 26px 0 70px; }
  .offers-page { margin-top: -16px; }
  .offers-page .offers-hero { display: block; }
  .offers-page .eyebrow { font-size: 10px; letter-spacing: .075em; }
  .offers-page .eyebrow::before { width: 6px; height: 6px; }
  .offers-page .offers-hero h1 { margin: 3px 0 4px; font-size: clamp(24px, 6.8vw, 27px); line-height: 1.02; letter-spacing: -.045em; }
  .offers-page .offers-lead { overflow: visible; overflow-wrap: anywhere; font-size: 11.5px; line-height: 18px; text-overflow: clip; white-space: normal; }
  .offers-page .transparency-link { min-height: 44px; margin-top: 7px; font-size: 10.5px; }
  .offers-page .lead-detail, .offers-page .hero-action { display: none; }
  .offers-page .hero-action:has(.export-actions) { display: grid; min-width: 0; gap: 8px; margin-top: 12px; }
  .offers-page .hero-action:has(.export-actions) > .button, .offers-page .hero-action:has(.export-actions) > small { display: none; }
  .offers-page .hero-action:has(.export-actions) .export-actions { margin-top: 0; }
  .offers-page .hero-action:has(.export-actions) .export-action { min-height: 40px; flex: 1 1 0; }
  .offers-page .offers-tools { min-height: 0; margin-bottom: 8px; padding: 8px; }
  .offers-page .feed-tools-head { display: grid; gap: 8px; }
  .offers-page .offers-tools-copy { position: static; width: auto; height: auto; overflow: visible; clip-path: none; white-space: normal; }
  .offers-page .offers-tools-copy h2 { font-size: 16px; }
  .offers-page .quick-filters { flex-wrap: nowrap; gap: 3px; }
  .offers-page .quick-filter { min-height: 40px; flex: 1 1 0; justify-content: center; gap: 3px; padding: 0 5px; font-size: 10px; white-space: nowrap; }
  .offers-page .quick-filter strong { font-size: 11px; }
  .offers-page .feed-filter-form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .offers-page .feed-search-control { grid-column: 1 / -1; }
  .offers-page .feed-filter-submit, .offers-page .feed-filter-reset { width: 100%; }
  .offers-page .filter-label { font-size: 10px; }
  .offers-page .feed-filter-control input, .offers-page .feed-search-control input, .offers-page .filter-select { min-height: 42px; padding: 0 7px; font-size: 11px; }
  .offers-page .opportunities { grid-template-columns: 1fr; gap: 7px; }
  .offers-page .deadline-badge { width: 56px; height: 48px; border-radius: 8px; }
  .offers-page .deadline-badge strong { font-size: 15px; }
  .offers-page .deadline-badge span { font-size: 9px; }
  .offers-page .score-name { font-size: 11px; letter-spacing: .04em; text-transform: none; }
  .offers-page .score-name-long { display: none; }
  .offers-page .score-name-short { display: inline; }
  .offers-page .score-label { font-size: 12px; line-height: 1.1; white-space: normal; }
  .offers-page .score-reason { font-size: 11px; }
  .offers-page .score-badge { display: flex; flex: 1 1 100%; max-width: 100%; flex-direction: column; align-items: flex-start; padding: 5px 6px; border-radius: 10px; font-size: 12px; line-height: 1.4; white-space: normal; }
  .offers-page .score-caveat { display: block; min-width: 0; }
  .offers-page .list-badge { margin: 8px 0 0; }
  .offers-page .decision-band-top { padding: 12px 10px; }
  .offers-page .decision-band-intro { display: block; margin-bottom: 9px; }
  .offers-page .decision-band-intro h2 { font-size: 18px; }
  .offers-page .decision-band-intro p:not(.decision-kicker) { font-size: 11px; line-height: 1.4; }
  .offers-page .decision-band-intro .decision-count { margin-top: 7px; }
  .offers-page .decision-band-toggle { min-height: 54px; padding: 9px 11px; }
  .offers-page .decision-band-toggle strong { font-size: 15px; }
  .offers-page .decision-band-content { padding: 0 7px 7px; }
  .offers-page .decision-row { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, 30px); column-gap: 8px; row-gap: 2px; white-space: nowrap; }
  .offers-page .decision-value { font-size: 12px !important; }
  .offers-page .decision-caption { font-size: 10px; line-height: 1.1; }
  .offers-page .context-meta { font-size: 11px; }
  .offers-page .reasons { flex-wrap: wrap; gap: 4px; overflow: visible; }
  .offers-page .reason { min-height: 28px; max-width: 100%; gap: 4px; overflow: visible; padding: 0 7px; border-radius: 7px; font-size: 11px; line-height: 1.25; white-space: normal; }
  .offers-page .reason > span:last-child { min-width: 0; flex: 1 1 auto; overflow: visible; overflow-wrap: anywhere; text-overflow: clip; white-space: normal; }
  .offers-page .boamp-link { min-height: 44px; padding: 0 8px; font-size: 11px; }
  .mobile-menu { display: block; }
  .feed-state { min-height: 190px; padding: 30px 18px; }
  .auth-layout { min-height: 560px; }
  .auth-card { padding: 28px 24px; }
  .auth-card h1 { font-size: 32px; }
  .page-card { padding: 28px 22px; }
  .page-card .grid { display: block; }
  .pricing-intro { display: block; }
  .pricing-status { min-width: 0; margin-top: 20px; }
  .pricing-grid { grid-template-columns: 1fr; }
}

/* Desktop ≥ 701 — complément de max-width:700 : grille desktop du hero
 * (valeurs identiques aux règles de base, aucune dérive à 1440). */
@media (min-width: 701px) {
  .offers-page .offers-hero { display: grid; align-items: end; }
  .auth-layout, .pricing-grid { display: grid; }
}

/* Mobile ≤ 700 — topbar portail et sélecteur d'entité
 * (ex-second bloc max-width:700 du shell portail). */
@media (max-width: 700px) {
  .topbar-inner:has(.portal-nav) { flex-wrap: wrap; row-gap: 2px; }
  .entity-switch { gap: 4px; padding-left: 7px; }
  .entity-switch-label { display: none; }
  .entity-switch-select { max-width: 128px; font-size: 11.5px; }
  .portal-nav { flex-wrap: wrap; }
  .topbar-inner:has(.portal-nav) { gap: 2px 20px; }

  .topbar-inner:has(.portal-nav) .brand { gap: 0; font-size: 0; }
  .topbar-inner:has(.portal-nav) .brand-mark { width: 34px; height: 34px; }
  .portal-nav { gap: 4px; }
  .portal-nav .button-quiet { display: none; }
}


/* T-DS06 — styles extraits des pages servies par server.py. */

.home-page { --home-navy: var(--c-09273a); --home-navy-soft: var(--c-123a50); --home-mint: var(--c-8ff0d3); position: relative; min-width: 0; }
        .home-page a { text-underline-offset: 3px; }
        .home-hero { position: relative; display: grid; min-height: 430px; grid-template-columns: minmax(0, 1fr) 360px; align-items: center; gap: 42px; overflow: hidden; padding: 46px 58px 64px; border-radius: 28px; background: var(--home-navy); box-shadow: 0 28px 70px var(--c-09273a-18); color: var(--c-ffffff); isolation: isolate; }
        .home-hero::before { position: absolute; z-index: -2; inset: 0; background: radial-gradient(circle at 78% 20%, var(--c-00c48f-22), transparent 33%), linear-gradient(var(--c-ffffff-035) 1px, transparent 1px), linear-gradient(90deg, var(--c-ffffff-035) 1px, transparent 1px); background-size: auto, 42px 42px, 42px 42px; content: ""; }
        .home-hero::after { position: absolute; z-index: -1; right: -130px; bottom: -220px; width: 480px; height: 480px; border: 1px solid var(--c-8ff0d3-2); border-radius: 50%; box-shadow: 0 0 0 54px var(--c-8ff0d3-035), 0 0 0 108px var(--c-8ff0d3-025); content: ""; }
        .home-hero-copy { position: relative; z-index: 1; min-width: 0; }
        .home-page .home-eyebrow { display: inline-flex; align-items: center; gap: 9px; color: var(--home-mint); font-size: 11px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
        .home-page .home-eyebrow::before { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 5px var(--c-00c48f-12); content: ""; }
        .home-page h1 { max-width: 720px; margin: 20px 0 18px; color: var(--c-ffffff); font: 600 clamp(43px, 4.25vw, 61px)/.98 var(--mono); letter-spacing: -.062em; text-wrap: balance; }
        .home-hero-lead { max-width: 620px; margin: 0; color: var(--c-c6d6de); font-size: 17px; line-height: 1.62; }
        .home-hero-lead strong { color: var(--c-ffffff); font-weight: 600; }
        .home-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 11px; margin-top: 30px; }
        .home-page .home-primary { min-height: 51px; padding: 0 20px; border-color: var(--accent); background: var(--accent); color: var(--home-navy); box-shadow: 0 10px 26px var(--c-00c48f-2); }
        .home-page .home-primary:hover { border-color: var(--home-mint); background: var(--home-mint); color: var(--home-navy); }
        .home-page .home-secondary { min-height: 51px; border-color: var(--c-ffffff-22); background: var(--c-ffffff-06); color: var(--c-ffffff); }
        .home-page .home-secondary:hover { border-color: var(--c-ffffff-42); background: var(--c-ffffff-12); color: var(--c-ffffff); }
        .home-proof { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 20px 0 0; color: var(--c-8fa9b6); font-size: 11px; }
        .home-proof span { display: inline-flex; align-items: center; gap: 7px; }
        .home-proof span::before { color: var(--home-mint); content: "✓"; font-weight: 700; }
        .home-signal { position: relative; z-index: 1; min-width: 0; padding: 23px; border: 1px solid var(--c-ffffff-15); border-radius: 21px; background: var(--c-ffffff-085); box-shadow: inset 0 1px 0 var(--c-ffffff-1), 0 20px 50px var(--c-000000-16); backdrop-filter: blur(16px); }
        .home-signal-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 17px; border-bottom: 1px solid var(--c-ffffff-12); }
        .home-signal-kicker { display: block; color: var(--home-mint); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
        .home-signal-live { display: inline-flex; align-items: center; gap: 7px; color: var(--c-b7ccd6); font-size: 10px; }
        .home-signal-live::before { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 5px var(--c-00c48f-13); content: ""; }
        .home-signal-main { display: grid; grid-template-columns: 80px minmax(0,1fr); align-items: center; gap: 16px; padding: 20px 0 17px; }
        .home-signal-title { min-width: 0; }
        .home-signal-title strong { display: -webkit-box; overflow: hidden; color: var(--c-ffffff); font-size: 15px; font-weight: 600; line-height: 1.32; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
        .home-signal-title span { display: block; margin-top: 7px; overflow: hidden; color: var(--c-9fb4bf); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
        .home-signal-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; margin: 0; }
        .home-signal-facts div { min-width: 0; padding: 11px 10px; border-radius: 10px; background: var(--c-ffffff-07); }
        .home-signal-facts dt { color: var(--c-8fa9b6); font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
        .home-signal-facts dd { margin: 5px 0 0; overflow: hidden; color: var(--c-ffffff); font: 600 12px/1.25 var(--mono); text-overflow: ellipsis; white-space: nowrap; }
        .home-signal-reason { display: flex; align-items: flex-start; gap: 7px; margin: 13px 0 0; color: var(--c-b9d0d9); font-size: 10px; line-height: 1.4; }
        .home-signal-reason .home-reason-check { flex: 0 0 auto; color: var(--home-mint); font-weight: 700; }
        .home-signal-reason strong { display: block; margin-bottom: 2px; color: var(--home-mint); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
        .home-metrics { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; margin: -43px 28px 0; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: var(--line); box-shadow: 0 16px 38px var(--c-102d42-1); }
        .home-metric { min-width: 0; padding: 22px 24px; background: var(--paper); }
        .home-metric-value { display: block; color: var(--ink); font: 600 clamp(28px,3.4vw,38px)/1 var(--mono); letter-spacing: -.07em; }
        .home-metric-label { display: block; margin-top: 8px; color: var(--ink-soft); font-size: 12px; font-weight: 700; }
        .home-metric-note { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
        .home-icp { display: grid; gap: 24px; margin: 48px 0 54px; padding: 30px; border: 1px solid var(--line); border-radius: 22px; background: var(--paper); box-shadow: 0 12px 30px var(--c-102d42-05); }
        .home-icp-intro { max-width: 760px; }
        .home-icp-intro h2 { margin: 0; color: var(--ink); font: 600 clamp(27px,3vw,38px)/1.05 var(--mono); letter-spacing: -.052em; text-wrap: balance; }
        .home-icp-intro p { max-width: 650px; margin: 12px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
        .home-icp-families { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
        .home-icp-family { min-width: 0; padding: 17px; border: 1px solid var(--line-soft); border-radius: 13px; background: var(--paper-warm); }
        .home-icp-index { display: block; color: var(--accent-dark); font: 600 11px/1 var(--mono); }
        .home-icp-family h3 { margin: 14px 0 5px; color: var(--ink); font-size: 15px; line-height: 1.25; }
        .home-icp-family p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
        .home-icp-scenario { display: grid; grid-template-columns: minmax(0,1fr) 190px; align-items: center; gap: 22px; padding: 21px; border: 1px solid var(--c-b7e6d7); border-radius: 15px; background: var(--accent-soft); }
        .home-icp-label { display: block; color: var(--accent-dark); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
        .home-icp-scenario h3 { max-width: 680px; margin: 9px 0 0; color: var(--ink); font-size: 17px; line-height: 1.28; }
        .home-icp-scenario p { max-width: 680px; margin: 8px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.55; }
        .home-icp-scenario-price { display: grid; gap: 5px; padding: 15px; border: 1px solid var(--c-b7e6d7); border-radius: 11px; background: var(--paper); }
        .home-icp-scenario-price span, .home-icp-scenario-price small { color: var(--muted); font-size: 10px; }
        .home-icp-scenario-price strong { color: var(--ink); font: 600 27px/1 var(--mono); letter-spacing: -.06em; }
        .home-icp-pricing { display: grid; grid-template-columns: minmax(220px,1.45fr) repeat(3,minmax(90px,.7fr)) auto; gap: 10px; align-items: center; padding-top: 3px; }
        .home-icp-pricing > div:first-child { min-width: 0; }
        .home-icp-pricing > div:first-child > span { color: var(--accent-dark); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
        .home-icp-pricing > div:first-child p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
        .home-icp-price { min-width: 0; padding-left: 14px; border-left: 1px solid var(--line); }
        .home-icp-price span, .home-icp-price small { display: block; color: var(--muted); font-size: 10px; }
        .home-icp-price strong { display: inline-block; margin-top: 5px; color: var(--ink); font: 600 21px/1 var(--mono); letter-spacing: -.06em; }
        .home-icp-pricing > .button { min-height: 42px; white-space: nowrap; }
        .home-destinations { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin: 24px 0 48px; }
        .home-destination { display: grid; min-width: 0; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 12px; min-height: 76px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--c-ffffff-74); color: var(--ink); text-decoration: none; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
        .home-destination:hover { border-color: var(--c-94d8c5); background: var(--paper); transform: translateY(-2px); }
        .home-destination-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; background: var(--accent-soft); color: var(--accent-dark); font: 600 16px/1 var(--mono); }
        .home-destination strong { display: block; font-size: 13px; }
        .home-destination small { display: block; margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
        .home-destination-arrow { color: var(--blue); font: 600 15px/1 var(--mono); }
        #featured-offers { scroll-margin-top: 92px; }
        .home-section-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 23px; }
        .home-section-kicker { display: block; margin-bottom: 8px; color: var(--accent-dark); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
        .home-section-head h2 { max-width: 650px; font: 600 clamp(27px,3vw,38px)/1.05 var(--mono); letter-spacing: -.052em; text-wrap: balance; }
        .home-section-head p { max-width: 390px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
        .home-section-head .home-list-badge { display: inline-flex; max-width: 100%; align-items: center; gap: 6px; margin-top: 12px; padding: 5px 10px; border: 1px solid var(--c-d9e3e6); border-radius: 999px; background: var(--surface-soft); color: var(--c-4d6572); font-size: 11px; font-weight: 600; line-height: 1.4; }
        .home-section-head .home-list-badge::before { flex: 0 0 auto; color: var(--blue); content: "ⓘ"; }
        .home-offers-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
        .home-offer-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-top: 3px solid var(--card-accent); border-radius: 17px; background: var(--paper); box-shadow: 0 9px 24px var(--c-102d42-055); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; animation: card-in .4s calc(var(--card-order) * 80ms) both; }
        .home-offer-card:hover { border-color: color-mix(in srgb, var(--card-accent) 45%, var(--line)); box-shadow: 0 18px 38px var(--c-102d42-1); transform: translateY(-3px); }
        .home-offer-high { --card-accent: var(--c-066b5a); --card-soft: var(--accent-soft); }
        .home-offer-medium { --card-accent: var(--c-a85b10); --card-soft: var(--amber-soft); }
        .home-offer-low { --card-accent: var(--c-63737d); --card-soft: var(--surface-soft); }
        .home-offer-public { --card-accent: var(--c-087f6a); --card-soft: var(--accent-soft); animation: none; }
        .home-offer-public .home-offer-facts dt { text-transform: none; }
        .home-offer-link { display: flex; min-height: 100%; flex-direction: column; padding: 20px; color: inherit; text-decoration: none; }
        .home-offer-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
        .home-offer-kind { color: var(--card-accent); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
        .home-public-live { padding: 5px 8px; border-radius: 999px; background: var(--accent-soft); color: var(--accent-dark); font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
        .home-score-pill { display: inline-flex; min-height: 31px; align-items: baseline; padding: 0 10px; border-radius: 999px; background: var(--card-soft); color: var(--card-accent); }
        .home-score-pill strong { font: 600 16px/1 var(--mono); letter-spacing: -.05em; }
        .home-score-pill small { margin-left: 2px; font: 500 8px/1 var(--mono); }
        .home-offer-card h3 { display: -webkit-box; min-height: 62px; margin: 17px 0 8px; overflow: hidden; font-size: 17px; font-weight: 600; line-height: 1.25; letter-spacing: -.02em; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
        .home-offer-buyer { min-height: 34px; margin: 0; overflow: hidden; color: var(--muted); font-size: 11px; line-height: 1.45; }
        .home-offer-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin: 18px 0 0; overflow: hidden; border: 1px solid var(--line-soft); border-radius: 11px; background: var(--line-soft); }
        .home-offer-facts div { min-width: 0; padding: 12px; background: var(--paper-warm); }
        .home-offer-facts dt { color: var(--muted); font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
        .home-offer-facts dd { margin: 6px 0 0; overflow: hidden; color: var(--ink); font: 600 15px/1.2 var(--mono); letter-spacing: -.035em; text-overflow: ellipsis; white-space: nowrap; }
        .home-offer-reason { display: flex; min-height: 55px; align-items: flex-start; gap: 7px; margin: 13px 0 0; padding: 10px; border-radius: 10px; background: var(--card-soft); color: var(--card-accent); font-size: 10px; line-height: 1.4; }
        .home-offer-reason .home-reason-check { flex: 0 0 auto; font-weight: 700; }
        .home-offer-reason strong { display: block; margin-bottom: 2px; font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
        .home-offer-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding: 17px 0 0; border: 0; color: var(--muted); font-size: 10px; }
        .home-offer-footer strong { color: var(--blue); font-size: 10px; text-align: right; }
        .home-offers-empty { grid-column: 1 / -1; padding: 44px 24px; border: 1px dashed var(--c-a9c5cc); border-radius: 17px; background: var(--paper); text-align: center; }
        .home-offers-empty > span { display: grid; width: 46px; height: 46px; margin: 0 auto 14px; place-items: center; border-radius: 14px; background: var(--accent-soft); color: var(--accent-dark); font: 600 20px/1 var(--mono); }
        .home-offers-empty h3 { margin: 0; font-size: 18px; }
        .home-offers-empty p { margin: 7px 0 18px; color: var(--muted); font-size: 13px; }
        .public-bridge { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 24px 0 0; padding: 15px 18px; border: 1px solid var(--c-b7e6d7); border-radius: 14px; background: var(--accent-soft); }
        .public-bridge-kicker { color: var(--accent-dark); font: 700 10px/1.2 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
        .public-bridge p { margin: 0; color: var(--ink-soft); font-size: 13px; }
        .public-bridge p strong { color: var(--accent-dark); font: 600 20px/1 var(--mono); }
        .public-updated { font-size: clamp(15px, 1.8vw, 21px); letter-spacing: -.04em; white-space: nowrap; }
        .home-signal-public .home-signal-title { margin-top: 29px; }
        .home-signal-public .home-signal-title span { margin-top: 8px; }
        .home-final-cta { position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 30px; margin-top: 68px; overflow: hidden; padding: 38px 42px; border: 1px solid var(--c-b7e6d7); border-radius: 22px; background: var(--accent-soft); }
        .home-final-cta::after { position: absolute; right: -58px; bottom: -105px; width: 210px; height: 210px; border: 1px solid var(--c-087f6a-17); border-radius: 50%; box-shadow: 0 0 0 34px var(--c-087f6a-035); content: ""; }
        .home-final-copy { position: relative; z-index: 1; }
        .home-final-cta h2 { max-width: 700px; font: 600 clamp(25px,3vw,36px)/1.05 var(--mono); letter-spacing: -.05em; }
        .home-final-cta p { max-width: 650px; margin: 10px 0 0; color: var(--ink-soft); font-size: 13px; line-height: 1.55; }
        .home-final-actions { position: relative; z-index: 1; display: grid; justify-items: stretch; gap: 8px; min-width: 210px; }
        .home-final-actions .button { width: 100%; }
        .home-final-actions a:not(.button) { color: var(--blue); font-size: 11px; font-weight: 700; text-align: center; text-decoration: none; }
        .home-final-actions a:not(.button):hover { text-decoration: underline; }
        @media (max-width: 700px) {
          .home-hero { grid-template-columns: minmax(0,1fr) minmax(300px,.75fr); gap: 30px; padding-right: 38px; padding-left: 38px; }
          .home-page h1 { font-size: 47px; }
          .home-offers-grid { grid-template-columns: 1fr; }
          .home-offer-card h3, .home-offer-buyer { min-height: 0; }
          .home-offer-link { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(260px,.7fr); gap: 0 22px; }
          .home-offer-top, .home-offer-card h3, .home-offer-buyer { grid-column: 1; }
          .home-offer-facts { grid-column: 2; grid-row: 1 / span 2; margin-top: 0; }
          .home-offer-reason { grid-column: 2; grid-row: 3; min-height: 0; }
          .home-offer-footer { grid-column: 1 / -1; }
          .home-hero { display: block; min-height: 0; padding: 34px 24px 58px; border-radius: 21px; }
          .home-hero::after { right: -230px; bottom: -290px; }
          .home-page h1 { margin: 17px 0 15px; font-size: clamp(39px,11.5vw,47px); line-height: .99; }
          .home-hero-lead { font-size: 14px; line-height: 1.56; }
          .home-hero-actions { display: grid; gap: 8px; margin-top: 24px; }
          .home-hero-actions .button { width: 100%; }
          .home-proof { gap: 7px 12px; margin-top: 17px; }
          .home-proof span:last-child { display: none; }
          .home-signal { display: none; }
          .home-metrics { margin: -25px 12px 0; border-radius: 14px; }
          .home-metric { padding: 16px 10px; text-align: center; }
          .home-metric-value { font-size: clamp(22px,7.3vw,29px); }
          .public-updated { font-size: 12px; line-height: 1.2; white-space: normal; overflow-wrap: anywhere; }
          .home-metric-label { min-height: 31px; margin-top: 7px; font-size: 10px; line-height: 1.35; }
          .home-metric-note { display: none; }
          .home-icp { gap: 17px; margin: 34px 0 40px; padding: 20px 17px; border-radius: 17px; }
          .home-icp-intro h2 { font-size: 28px; }
          .home-icp-intro p { margin-top: 9px; font-size: 12px; }
          .home-icp-families { grid-template-columns: 1fr; gap: 7px; }
          .home-icp-family { padding: 14px; }
          .home-icp-family h3 { margin-top: 9px; font-size: 14px; }
          .home-icp-scenario { grid-template-columns: 1fr; gap: 15px; padding: 16px; }
          .home-icp-scenario h3 { font-size: 15px; }
          .home-icp-scenario p { font-size: 11px; }
          .home-icp-scenario-price { grid-template-columns: auto 1fr; align-items: center; column-gap: 10px; }
          .home-icp-scenario-price span { grid-column: 1 / -1; }
          .home-icp-scenario-price strong { grid-row: 2; }
          .home-icp-scenario-price small { grid-row: 2; }
          .home-icp-pricing { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
          .home-icp-pricing > div:first-child { grid-column: 1 / -1; margin-bottom: 3px; }
          .home-icp-price { padding-left: 9px; }
          .home-icp-price strong { font-size: 18px; }
          .home-icp-pricing > .button { grid-column: 1 / -1; width: 100%; margin-top: 4px; }
          .home-destinations { gap: 6px; margin: 19px 0 54px; }
          .public-bridge { display: block; margin-top: 14px; padding: 13px 14px; }
          .public-bridge p { margin-top: 7px; font-size: 12px; line-height: 1.45; }
          .home-destination { display: flex; min-height: 58px; justify-content: center; gap: 6px; padding: 8px 5px; text-align: center; }
          .home-destination-icon { width: 30px; height: 30px; flex: 0 0 30px; border-radius: 9px; font-size: 12px; }
          .home-destination strong { font-size: 11px; }
          .home-destination small, .home-destination-arrow { display: none; }
          .home-section-head { display: block; margin-bottom: 18px; }
          .home-section-head h2 { font-size: 29px; }
          .home-section-head p { margin-top: 10px; font-size: 12px; }
          .home-offers-grid { gap: 11px; }
          .home-offer-link { display: flex; padding: 17px; }
          .home-offer-card h3 { min-height: 0; margin-top: 14px; font-size: 16px; -webkit-line-clamp: 2; }
          .home-offer-buyer { min-height: 0; }
          .home-offer-facts { width: 100%; margin-top: 14px; }
          .home-offer-reason { width: 100%; min-height: 0; }
          .home-offer-footer { width: 100%; }
          .home-final-cta { display: block; margin-top: 46px; padding: 28px 23px; }
          .home-final-cta h2 { font-size: 27px; }
          .home-final-actions { min-width: 0; margin-top: 22px; }
        }

/* T-P04 — le conteneur de la fiche reste compressible sur les deux vues. */
.opportunity-page, .opportunity-page * { min-width: 0; }
.opportunity-page a, .opportunity-page strong, .opportunity-page span, .opportunity-page p { overflow-wrap: anywhere; }

.history-tools { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(200px, .6fr) auto auto; gap: 12px; align-items: end; margin-bottom: 18px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
        .history-tools .filter-select { min-height: 40px; }
        .history-pagination { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 20px; }
        .history-page-link { display: inline-flex; min-height: 38px; align-items: center; padding: 0 14px; border: 1px solid var(--line); border-radius: 9px; background: var(--paper); color: var(--ink); font-weight: 600; text-decoration: none; }
        .history-page-link:hover { border-color: var(--green); color: var(--green); }
        .history-page-link.is-disabled { opacity: .45; pointer-events: none; }
        .history-page-indicator { color: var(--muted); font-size: 13px; }
        @media (max-width: 700px) { .history-tools { grid-template-columns: 1fr; } }

.history-tools { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(200px, .6fr) auto auto; gap: 12px; align-items: end; margin-bottom: 18px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
        .history-tools .filter-select { min-height: 40px; }
        @media (max-width: 700px) { .history-tools { grid-template-columns: 1fr; } }

.transparency-page { max-width: 980px; margin: 0 auto; }
        .transparency-hero { padding: 26px 38px; border-radius: 22px; background: var(--home-navy, var(--c-09273a)); color: var(--c-ffffff); }
        .transparency-hero h1 { max-width: 720px; margin: 10px 0 10px; color: var(--c-ffffff); font: 600 clamp(30px, 4vw, 44px)/1.05 var(--mono); letter-spacing: -.05em; }
        .transparency-hero .lead { color: var(--c-c6d6de); font-size: 16px; }
        .transparency-page section { margin-top: 34px; }
        .transparency-page h2 { margin: 0 0 14px; font-size: 26px; }
        .transparency-page h3 { margin: 0 0 8px; font-size: 16px; }
        .transparency-card-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
        .transparency-card { padding: 20px 22px; border: 1px solid var(--line); border-radius: 15px; background: var(--paper); }
        .transparency-card h3 { display: flex; align-items: center; gap: 8px; }
        .transparency-card ul { margin: 8px 0 0; padding-left: 18px; color: var(--ink-soft); font-size: 14px; line-height: 1.6; }
        .transparency-card li + li { margin-top: 6px; }
        .transparency-card.is-do h3::before { content: "✓"; color: var(--green); font-weight: 800; }
        .transparency-card.is-not h3::before { content: "✕"; color: var(--amber); font-weight: 800; }
        .transparency-table { width: 100%; margin-top: 4px; border-collapse: collapse; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--paper); font-size: 14px; }
        .transparency-table th, .transparency-table td { padding: 11px 16px; text-align: left; border-bottom: 1px solid var(--line-soft); }
        .transparency-table th { background: var(--paper-warm); color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
        .transparency-table td:last-child { color: var(--ink); font: 600 14px/1 var(--mono); text-align: right; }
        .transparency-table tr:last-child td { border-bottom: 0; }
        .transparency-table .penalty td { color: var(--amber); }
        .metric-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
        .metric-box { padding: 20px; border: 1px solid var(--line); border-radius: 15px; background: var(--paper); }
        .metric-box strong { display: block; color: var(--blue); font: 700 30px/1 var(--mono); letter-spacing: -.04em; }
        .metric-box span { display: block; margin-top: 8px; color: var(--muted); font-size: 12px; font-weight: 700; }
        .metric-box p { margin: 9px 0 0; color: var(--ink-soft); font-size: 12.5px; line-height: 1.5; }
        .exec-box { margin-top: 22px; padding: 22px 24px; border: 1px solid var(--line); border-left: 5px solid var(--green); border-radius: 15px; background: var(--green-soft, var(--c-e2f3ed)); }
        .exec-box h2 { margin: 0 0 4px; font-size: 19px; }
        .exec-box p { margin: 6px 0 0; color: var(--ink-soft); font-size: 15px; line-height: 1.55; }
        .faq-list { display: grid; gap: 10px; margin-top: 4px; }
        .faq-item { padding: 16px 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
        .faq-item summary { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; color: var(--ink); font-size: 15px; font-weight: 800; }
        .faq-item summary::-webkit-details-marker { display: none; }
        .faq-item summary::after { content: "+"; flex: none; color: var(--blue); font: 700 20px/1 var(--mono); transition: transform .15s ease; }
        .faq-item[open] summary::after { transform: rotate(45deg); }
        .faq-item p { margin: 10px 0 0; color: var(--ink-soft); font-size: 14px; line-height: 1.6; }
        .metric-box .metric-label em { display: block; margin-top: 3px; color: var(--faint); font-size: 11px; font-style: normal; font-weight: 600; }
        .transparency-freshness { margin-top: 14px; color: var(--muted); font-size: 13px; line-height: 1.6; }
        .transparency-freshness a { color: var(--blue); font-weight: 700; text-decoration: none; }
        .transparency-freshness a:hover { text-decoration: underline; }
        .transparency-note { margin-top: 16px; padding: 16px 18px; border-left: 4px solid var(--accent, var(--c-00c48f)); border-radius: 0 10px 10px 0; background: var(--accent-soft, var(--c-e1f7ef)); color: var(--ink-soft); font-size: 13.5px; line-height: 1.6; }
        .probability-calibration { padding-top: 2px; }
        .probability-calibration-table td:nth-child(2) { color: var(--muted); font-family: var(--mono); }
        .probability-calibration-table td:last-child { color: var(--blue-deep); }
        .probability-calibration-table td:first-child { color: var(--ink); font-family: var(--mono); }
        .transparency-cta { display: inline-flex; min-height: 46px; align-items: center; gap: 8px; margin-top: 26px; padding: 0 18px; border-radius: 10px; background: var(--blue); color: var(--c-ffffff); font-weight: 800; text-decoration: none; }
        .transparency-cta:hover { background: var(--blue-deep); }
        .transparency-stats { margin-top: 34px; padding: 24px 26px 22px; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); box-shadow: var(--shadow); }
        .transparency-stats h2 { margin: 0; font-size: 20px; }
        .transparency-stats-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
        .transparency-stat { padding: 18px 20px; border-radius: 14px; background: var(--surface-soft); border-left: 3px solid var(--accent); }
        .transparency-stat strong { display: block; color: var(--ink); font: 700 clamp(26px, 3.4vw, 36px)/1 var(--mono); letter-spacing: -.04em; }
        .transparency-stat span { display: block; margin-top: 8px; color: var(--muted); font-size: 12px; font-weight: 700; line-height: 1.4; }
        .transparency-stats-note { margin: 14px 0 0; color: var(--faint); font-size: 12px; line-height: 1.5; }
        .transparency-try { margin-top: 34px; padding: 30px 32px; border-radius: 20px; background: var(--home-navy, var(--c-09273a)); color: var(--c-ffffff); text-align: center; }
        .transparency-try h2 { margin: 0; color: var(--c-ffffff); font: 600 clamp(24px, 3vw, 32px)/1.15 var(--mono); letter-spacing: -.03em; }
        .transparency-try p { max-width: 540px; margin: 10px auto 0; color: var(--c-c6d6de); font-size: 15px; line-height: 1.55; }
        .transparency-try .button-primary { margin-top: 20px; min-height: 50px; padding: 0 26px; border-radius: 11px; font-size: 15px; }
        .transparency-close { margin-top: 44px; padding: 34px 32px; border-radius: 20px; background: var(--home-navy, var(--c-09273a)); color: var(--c-ffffff); text-align: center; }
        .transparency-close h2 { margin: 0; color: var(--c-ffffff); font: 600 clamp(24px, 3vw, 32px)/1.15 var(--mono); letter-spacing: -.03em; }
        .transparency-close p { max-width: 540px; margin: 10px auto 0; color: var(--c-c6d6de); font-size: 15px; line-height: 1.55; }
        .transparency-close .button-primary { margin-top: 20px; min-height: 50px; padding: 0 26px; border-radius: 11px; font-size: 15px; }
        code { padding: 2px 6px; border-radius: 6px; background: var(--line-soft, var(--c-e7eef0)); color: var(--blue-deep); font: 500 12px/1.5 var(--mono); }
        @media (max-width: 700px) {
          .transparency-hero { padding: 24px 20px; border-radius: 16px; }
          .transparency-hero .lead { font-size: 14px; }
          .transparency-page section { margin-top: 26px; }
          .transparency-page h2 { font-size: 23px; }
          .transparency-card-grid, .metric-grid { grid-template-columns: 1fr; }
          .transparency-card, .metric-box { padding: 16px; }
          .exec-box { padding: 14px 16px; }
          .exec-box h2 { font-size: 17px; }
          .exec-box p { font-size: 14px; }
          .faq-item { padding: 14px; }
          .faq-item summary { font-size: 14px; }
          .transparency-table { font-size: 12.5px; }
          .transparency-table th, .transparency-table td { padding: 9px 10px; }
          .probability-calibration-table { min-width: 560px; }
          .metric-box strong { font-size: 26px; }
          .transparency-stats { padding: 14px 12px; }
          .transparency-stats h2 { font-size: 17px; }
          .transparency-stats-grid { margin-top: 12px; gap: 6px; }
          .transparency-stat { padding: 10px 8px; }
          .transparency-stat strong { font-size: 20px; }
          .transparency-stat span { margin-top: 4px; font-size: 10.5px; }
          .transparency-stats-note { margin-top: 8px; font-size: 10.5px; }
          .transparency-try { margin-top: 26px; padding: 14px 14px; }
          .transparency-try h2 { font-size: 20px; }
          .transparency-try p { margin-top: 8px; font-size: 13px; }
          .transparency-try .button-primary { margin-top: 10px; min-height: 46px; padding: 0 22px; }
          .transparency-close { margin-top: 28px; padding: 14px 14px; }
          .transparency-close h2 { font-size: 20px; }
          .transparency-close p { margin-top: 8px; font-size: 13px; }
          .transparency-close .button-primary { margin-top: 10px; min-height: 46px; padding: 0 22px; }
        }
        .table-scroll { margin-top: 4px; overflow-x: auto; }
        .famille-table { table-layout: fixed; }
        .famille-table td:first-child { min-width: 228px; }
        .famille-table th:first-child, .famille-table td:first-child { width: 34%; }
        .famille-table th:nth-child(2), .famille-table td:nth-child(2) { width: 30%; }
        .famille-table th:nth-child(3), .famille-table td:nth-child(3) { width: 18%; }
        .famille-table th:nth-child(4), .famille-table td:nth-child(4) { width: 18%; }
        .famille-cpv { display: inline-block; margin-left: 6px; padding: 2px 7px; border-radius: 999px; background: var(--line-soft, var(--c-e7eef0)); color: var(--blue-deep); font: 700 10px/1.4 var(--mono); letter-spacing: .03em; vertical-align: 1px; }
        .famille-cible { display: block; margin-top: 3px; color: var(--accent, var(--c-00c48f)); font-size: 11px; font-weight: 800; }
        .famille-row.is-target td { background: var(--accent-soft, var(--c-e1f7ef)); }
        .famille-row.is-target td:first-child { box-shadow: inset 3px 0 0 var(--accent, var(--c-00c48f)); }
        .transparency-example-link { display: inline-block; margin-top: 6px; color: var(--blue); font-weight: 800; text-decoration: none; }
        .transparency-example-link:hover { text-decoration: underline; }
        .transparency-example { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 18px; }
        .example-card { padding: 18px 20px; border: 1px solid var(--line); border-radius: 15px; background: var(--paper); }
        .example-card.is-won { border-top: 4px solid var(--green, var(--c-1d9a6c)); }
        .example-card.is-lost { border-top: 4px solid var(--amber, var(--c-c98a2d)); }
        .example-status { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
        .example-card.is-won .example-status { color: var(--green, var(--c-1d9a6c)); }
        .example-card.is-lost .example-status { color: var(--amber, var(--c-c98a2d)); }
        .example-title { margin-top: 8px; color: var(--ink); font-size: 14px; font-weight: 700; line-height: 1.45; }
        .example-meta { margin-top: 6px; color: var(--muted); font-size: 12px; line-height: 1.5; }
        .example-scores { display: flex; align-items: stretch; gap: 12px; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--line-soft, var(--c-e7eef0)); }
        .example-scores > span { color: var(--muted); font-size: 11px; font-weight: 700; line-height: 1.5; }
        .example-scores strong { display: block; margin-top: 3px; color: var(--ink); font: 700 19px/1 var(--mono); }
        .example-scores .arrow { align-self: center; color: var(--blue); font: 700 16px/1 var(--mono); }
        .example-lecture { margin-top: 14px; }
        @media (max-width: 700px) {
          .famille-table { font-size: 11px; }
          .famille-table th, .famille-table td { padding: 8px 6px; }
          .famille-table th { font-size: 9px; letter-spacing: .04em; }
          .famille-table td:first-child { min-width: 0; }
          .famille-table th:first-child, .famille-table td:first-child { width: 30%; }
          .famille-table th:nth-child(2), .famille-table td:nth-child(2) { width: 26%; }
          .famille-table th:nth-child(3), .famille-table td:nth-child(3) { width: 16%; }
          .famille-table th:nth-child(4), .famille-table td:nth-child(4) { width: 28%; }
          .famille-table .famille-cpv { display: inline; margin: 0; padding: 0; background: none; color: var(--muted); font: 700 10px/1 var(--mono); letter-spacing: 0; }
          .transparency-example { grid-template-columns: 1fr; }
          .example-card { padding: 14px 16px; }
          .example-scores strong { font-size: 16px; }
        }

/* Dark mode — follows the operating system setting. Only semantic variables
   are remapped; dark hero blocks keep their fixed navy/white pair. */
@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --ink: var(--c-dark-e8f1f4);
    --ink-soft: var(--c-dark-c9d9df);
    --muted: var(--c-dark-9fb3bc);
    --faint: var(--c-dark-8397a1);
    --low: var(--c-dark-8397a1);
    --bg: var(--c-dark-0c1a24);
    --paper: var(--c-dark-12232f);
    --paper-warm: var(--c-dark-102029);
    --accent-dark: var(--c-dark-5fe0b8);
    --green: var(--c-dark-5fe0b8);
    --accent-soft: var(--c-dark-123b33);
    --surface-soft: var(--c-dark-172c39);
    --blue: var(--c-dark-7cc4ea);
    --blue-deep: var(--c-dark-a5d8f3);
    --amber: var(--c-dark-f3c27a);
    --amber-soft: var(--c-dark-33270f);
    --line: var(--c-dark-28404e);
    --line-soft: var(--c-dark-1e3441);
    --shadow: 0 14px 34px var(--c-000000-16);
  }
  .topbar { background: var(--c-dark-0c1a24-94); }
  .brand-mark { background: var(--c-102d42); box-shadow: 0 0 0 1px var(--line); }
  .button-primary, .button-primary:hover, .auth-submit, .auth-submit:hover,
  .buyer-follow-button[aria-pressed="true"], .pricing-card .popular,
  .page-card form > button[type="submit"], .page-card form > button[type="submit"]:hover,
  .offers-page .boamp-link, .transparency-cta { color: var(--c-102d42); }
  input, select, textarea { background: var(--paper-warm); color: var(--ink); border-color: var(--line); }
  input::placeholder, textarea::placeholder { color: var(--faint); }
  .reason, .chip { border-color: var(--c-dark-2b6b5b); }
}
