:root {
    --gl-navy-950: #07152f;
    --gl-navy-900: #0c1c3d;
    --gl-navy-800: #112a60;
    --gl-navy-700: #17357a;
    /* Correctif 13/09/2026 : ces deux variables étaient référencées par
       .status-pill--neutral, .pcard__cover et .partner-current-plan__badge
       depuis leur création, mais jamais définies ici — un var() invalide
       ne "retombe" sur rien (jamais sur du gris implicite), donc ces
       usages rendaient un fond transparent/absent au lieu du gris clair
       prévu. Valeurs alignées sur le nuancier navy déjà utilisé en
       Tailwind (cf. tailwind.config dans layout.blade.php : navy 100/500),
       pour que les deux systèmes de couleur restent un seul et même
       nuancier. */
    --gl-navy-100: #dbe1ee;
    --gl-navy-500: #2c3e63;
    --gl-teal-600: #0b9295;
    --gl-teal-500: #0ea5a8;
    --gl-teal-100: #d8f5f2;
    --gl-coral-600: #c23b3b;
    --gl-coral-500: #d64545;
    --gl-ink: #141b32;
    --gl-muted: #64708d;
    --gl-line: #d7dde8;
    --gl-surface: #ffffff;
    --gl-canvas: #f5f7fb;
    /* Ombres aplaties (redesign "back-office" 13/09/2026, retour utilisateur
       « trop beau pour être vrai / pas assez professionnel/sécurisant ») —
       un vrai logiciel métier (banque, compta) s'appuie sur des bordures
       nettes, pas des ombres portées diffuses façon site vitrine. Conservées
       comme variables (compat), mais quasi neutres désormais. */
    --gl-shadow: 0 1px 2px rgba(12, 28, 61, .06);
    --gl-shadow-soft: 0 1px 2px rgba(12, 28, 61, .05);
    --gl-radius-sm: 6px;
    --gl-radius-md: 8px;
}

html { scroll-behavior: smooth; }
body { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
::selection { background: var(--gl-teal-100); color: var(--gl-navy-900); }

.partner-focus:focus-visible,
.partner-nav-link:focus-visible,
.partner-button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
button:focus-visible,
a:focus-visible {
    outline: 3px solid rgba(14, 165, 168, .28);
    outline-offset: 2px;
}

.partner-skip-link {
    position: fixed;
    left: 1rem;
    top: .75rem;
    z-index: 100;
    transform: translateY(-180%);
    border-radius: .75rem;
    background: white;
    padding: .65rem 1rem;
    color: var(--gl-navy-900);
    box-shadow: var(--gl-shadow);
}
.partner-skip-link:focus { transform: translateY(0); }

.partner-public-header {
    position: sticky;
    top: 0;
    z-index: 50;
    border-bottom: 1px solid rgba(225, 231, 241, .86);
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(18px);
}
.partner-public-header__inner {
    display: flex;
    min-height: 74px;
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 24px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.partner-brand { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.partner-brand img { height: 36px; width: auto; }
.partner-brand__tag {
    border: 1px solid #ccefeb;
    border-radius: 999px;
    background: #effbf9;
    padding: 5px 10px;
    color: #087b7e;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .03em;
}
.partner-public-nav { display: flex; align-items: center; gap: 28px; color: #3c4866; font-size: 14px; font-weight: 650; }
.partner-public-nav a { transition: color .18s ease; }
.partner-public-nav a:hover { color: var(--gl-navy-900); }
.partner-header-actions { display: flex; align-items: center; gap: 10px; }

.partner-button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border-radius: 14px;
    padding: 0 20px;
    font-size: 14px;
    font-weight: 750;
    line-height: 1;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.partner-button:hover { transform: translateY(-1px); }
.partner-button--primary { background: var(--gl-coral-500); color: white; border: 1px solid var(--gl-coral-600); }
.partner-button--primary:hover { background: var(--gl-coral-600); }
.partner-button--secondary { border: 1px solid #cad4e4; background: white; color: var(--gl-navy-900); }
.partner-button--secondary:hover { border-color: #9eaac0; background: #f9fbfe; }
.partner-button--dark { background: var(--gl-navy-900); color: white; box-shadow: 0 10px 24px rgba(12,28,61,.18); }

/* Public marketing */
.partner-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 76% 8%, rgba(14,165,168,.22), transparent 28%),
        radial-gradient(circle at 8% 90%, rgba(255,92,92,.14), transparent 30%),
        linear-gradient(135deg, #07152f 0%, #0c1c3d 58%, #102a5d 100%);
    color: white;
}
.partner-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .18;
    background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(to bottom, black, transparent 78%);
}
.partner-hero__inner { position: relative; z-index: 1; display: grid; max-width: 1240px; margin: 0 auto; padding: 86px 24px 76px; align-items: center; gap: 64px; grid-template-columns: minmax(0, 1.02fr) minmax(420px, .98fr); }
.partner-eyebrow { display: inline-flex; align-items: center; gap: 9px; color: #6ce0d6; font-size: 12px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.partner-eyebrow::before { content: ""; width: 28px; height: 2px; border-radius: 999px; background: currentColor; }
.partner-hero h1 { max-width: 760px; margin-top: 18px; font-size: clamp(2.55rem, 5vw, 4.55rem); font-weight: 850; letter-spacing: -.055em; line-height: .98; }
.partner-hero__lead { max-width: 670px; margin-top: 24px; color: #cbd5e8; font-size: 18px; line-height: 1.72; }
.partner-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.partner-hero__actions .partner-button--secondary { border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.06); color: white; }
.partner-hero__actions .partner-button--secondary:hover { background: rgba(255,255,255,.12); }
.partner-hero__proof { display: flex; flex-wrap: wrap; gap: 12px 22px; margin-top: 28px; color: #dbe4f3; font-size: 13px; }
.partner-hero__proof span { display: inline-flex; align-items: center; gap: 7px; }
.partner-hero__proof svg { color: #5dd4cb; }
.partner-product-preview { position: relative; border: 1px solid rgba(255,255,255,.16); border-radius: 28px; background: rgba(255,255,255,.08); padding: 14px; box-shadow: 0 34px 80px rgba(0,0,0,.3); backdrop-filter: blur(8px); transform: rotate(1deg); }
.partner-product-preview::before { content: ""; position: absolute; inset: -24px 26px auto -20px; height: 82%; border-radius: 38px; background: rgba(14,165,168,.15); filter: blur(40px); z-index: -1; }
.partner-product-preview__window { overflow: hidden; border-radius: 20px; background: #f8fafc; color: var(--gl-navy-900); }
.partner-preview-topbar { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--gl-line); padding: 14px 18px; background: white; }
.partner-preview-dots { display: flex; gap: 5px; }
.partner-preview-dots i { width: 7px; height: 7px; border-radius: 50%; background: #d2d8e4; }
.partner-preview-body { display: grid; grid-template-columns: 116px 1fr; min-height: 335px; }
.partner-preview-sidebar { background: var(--gl-navy-900); padding: 18px 12px; }
.partner-preview-sidebar span { display: block; height: 8px; margin-bottom: 13px; border-radius: 999px; background: rgba(255,255,255,.15); }
.partner-preview-sidebar span:first-child { width: 72%; background: #49c9c1; }
.partner-preview-content { padding: 22px; }
.partner-preview-kpis { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin: 17px 0; }
.partner-preview-kpi { border: 1px solid var(--gl-line); border-radius: 13px; background: white; padding: 13px; }
.partner-preview-kpi b { display: block; margin-top: 5px; font-size: 18px; }
.partner-preview-card { display: flex; align-items: center; gap: 12px; border: 1px solid var(--gl-line); border-radius: 15px; background: white; padding: 12px; }
.partner-preview-thumb { width: 58px; height: 58px; border-radius: 12px; background: linear-gradient(135deg,#0ea5a8,#17357a); }
.partner-preview-chart { display: flex; align-items: flex-end; gap: 7px; height: 64px; margin-top: 18px; padding: 0 4px; }
.partner-preview-chart i { flex: 1; min-height: 14px; border-radius: 5px 5px 2px 2px; background: linear-gradient(#20bbb5,#0b8689); opacity: .75; }
.partner-preview-label { position: absolute; right: 26px; bottom: -17px; display: inline-flex; align-items: center; gap: 7px; border-radius: 999px; background: white; padding: 10px 14px; color: #44506c; font-size: 11px; font-weight: 750; box-shadow: var(--gl-shadow); }

.partner-section { padding: 88px 24px; }
.partner-section--soft { background: var(--gl-canvas); }
.partner-section--dark { background: var(--gl-navy-900); color: white; }
.partner-container { width: 100%; max-width: 1200px; margin: 0 auto; }
.partner-section-heading { max-width: 720px; margin-bottom: 40px; }
.partner-section-heading--center { margin-right: auto; margin-left: auto; text-align: center; }
.partner-section-heading h2 { margin-top: 12px; color: var(--gl-navy-900); font-size: clamp(2rem,4vw,3.2rem); font-weight: 850; letter-spacing: -.045em; line-height: 1.08; }
.partner-section-heading p { margin-top: 15px; color: var(--gl-muted); font-size: 17px; line-height: 1.7; }
.partner-section--dark .partner-section-heading h2 { color: white; }
.partner-section--dark .partner-section-heading p { color: #c7d2e7; }
.partner-benefit-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.partner-benefit-card { border: 1px solid var(--gl-line); border-radius: 20px; background: white; padding: 25px; box-shadow: 0 1px 0 rgba(12,28,61,.02); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.partner-benefit-card:hover { transform: translateY(-3px); border-color: #c8d5e7; box-shadow: var(--gl-shadow-soft); }
.partner-icon-tile { display: inline-flex; width: 46px; height: 46px; align-items: center; justify-content: center; border-radius: 14px; background: #e9f8f6; color: var(--gl-teal-600); }
.partner-benefit-card h3 { margin-top: 18px; color: var(--gl-navy-900); font-size: 17px; font-weight: 800; }
.partner-benefit-card p { margin-top: 8px; color: var(--gl-muted); font-size: 14px; line-height: 1.65; }
.partner-trust-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.partner-trust-card { border-radius: 24px; padding: 30px; }
.partner-trust-card--do { border: 1px solid #cceeea; background: #f0fbfa; }
.partner-trust-card--dont { border: 1px solid var(--gl-line); background: white; }
.partner-trust-card h3 { font-size: 20px; font-weight: 850; color: var(--gl-navy-900); }
.partner-trust-list { margin-top: 18px; display: grid; gap: 13px; color: #47536d; font-size: 14px; }
.partner-trust-list li { display: flex; align-items: flex-start; gap: 10px; line-height: 1.55; }
.partner-trust-list svg { flex: 0 0 auto; margin-top: 2px; }
.partner-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.partner-step { position: relative; border: 1px solid var(--gl-line); border-radius: 20px; background: white; padding: 24px; }
.partner-step__number { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border-radius: 12px; background: var(--gl-navy-900); color: white; font-size: 13px; font-weight: 850; }
.partner-step h3 { margin-top: 18px; color: var(--gl-navy-900); font-size: 16px; font-weight: 800; }
.partner-step p { margin-top: 8px; color: var(--gl-muted); font-size: 13px; line-height: 1.6; }
.partner-pricing-toggle { display: flex; width: max-content; margin: 0 auto 30px; border: 1px solid var(--gl-line); border-radius: 14px; background: white; padding: 4px; }
.partner-pricing-toggle button { border-radius: 10px; padding: 10px 18px; color: #536079; font-size: 13px; font-weight: 750; }
.partner-pricing-toggle button.is-active { background: var(--gl-navy-900); color: white; box-shadow: 0 5px 14px rgba(12,28,61,.16); }
.partner-pricing-grid { display: grid; max-width: 900px; margin: 0 auto; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; align-items: stretch; }
.partner-price-card { position: relative; display: flex; flex-direction: column; border: 1px solid var(--gl-line); border-radius: 25px; background: white; padding: 32px; box-shadow: var(--gl-shadow-soft); }
.partner-price-card--featured { border: 2px solid var(--gl-teal-500); box-shadow: none; }
.partner-price-badge { position: absolute; top: 18px; right: 18px; border-radius: 999px; background: #e7f8f6; padding: 6px 10px; color: #087b7e; font-size: 11px; font-weight: 850; }
.partner-price-card h3 { font-size: 21px; font-weight: 850; }
.partner-price-card__subtitle { margin-top: 5px; color: var(--gl-muted); font-size: 14px; }
.partner-price { margin-top: 25px; font-size: 43px; font-weight: 850; letter-spacing: -.04em; }
.partner-price small { color: var(--gl-muted); font-size: 14px; font-weight: 600; letter-spacing: 0; }
.partner-price-list { display: grid; gap: 11px; margin: 24px 0 28px; color: #43506a; font-size: 14px; }
.partner-price-list li { display: flex; gap: 9px; line-height: 1.45; }
.partner-price-list svg { flex: 0 0 auto; margin-top: 1px; color: var(--gl-teal-600); }
.partner-price-card .partner-button { margin-top: auto; }
.partner-legal-note { max-width: 800px; margin: 25px auto 0; color: var(--gl-muted); font-size: 12px; line-height: 1.65; text-align: center; }
.partner-faq { max-width: 850px; margin: 0 auto; display: grid; gap: 10px; }
.partner-faq details { border: 1px solid var(--gl-line); border-radius: 17px; background: white; padding: 0 20px; transition: border-color .18s ease, box-shadow .18s ease; }
.partner-faq details[open] { border-color: #bddad9; box-shadow: var(--gl-shadow-soft); }
.partner-faq summary { position: relative; cursor: pointer; list-style: none; padding: 19px 34px 19px 0; color: var(--gl-navy-900); font-size: 15px; font-weight: 800; }
.partner-faq summary::-webkit-details-marker { display: none; }
.partner-faq summary::after { content: "+"; position: absolute; right: 0; top: 13px; color: var(--gl-teal-600); font-size: 25px; font-weight: 400; }
.partner-faq details[open] summary::after { content: "−"; }
.partner-faq details p { padding: 0 34px 18px 0; color: var(--gl-muted); font-size: 14px; line-height: 1.7; }
.partner-cta { position: relative; overflow: hidden; border-radius: 32px; background: linear-gradient(135deg,#102a5d,#07152f); padding: 58px; color: white; text-align: center; box-shadow: var(--gl-shadow); }
.partner-cta::after { content: ""; position: absolute; width: 260px; height: 260px; right: -90px; top: -130px; border-radius: 50%; background: rgba(14,165,168,.22); }
.partner-cta h2 { position: relative; z-index: 1; font-size: clamp(2rem,4vw,3.2rem); font-weight: 850; letter-spacing: -.04em; }
.partner-cta p { position: relative; z-index: 1; max-width: 680px; margin: 15px auto 0; color: #cbd5e8; line-height: 1.7; }
.partner-cta__actions { position: relative; z-index: 1; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 26px; }
.partner-public-footer { border-top: 1px solid var(--gl-line); background: #f8fafc; }
.partner-public-footer__grid { display: grid; max-width: 1200px; margin: 0 auto; padding: 55px 24px 34px; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 40px; }
.partner-public-footer h3 { color: var(--gl-navy-900); font-size: 13px; font-weight: 850; }
.partner-public-footer ul { display: grid; gap: 9px; margin-top: 15px; color: var(--gl-muted); font-size: 13px; }
.partner-public-footer a:hover { color: var(--gl-navy-900); }
.partner-public-footer__bottom { border-top: 1px solid var(--gl-line); padding: 20px 24px; color: #737f98; font-size: 12px; text-align: center; }

/* Authenticated application shell */
.partner-app-body { background: var(--gl-canvas); color: var(--gl-ink); }
.partner-app-shell { min-height: 100vh; }
/* Correctif 12/08/2026 : sur un écran dont la hauteur est insuffisante
   pour les 9 liens + la carte compte + le bouton « Déconnexion », le
   panneau (position fixed, hauteur = 100vh, sans overflow) coupait
   silencieusement le bas de son contenu — la déconnexion devenait
   invisible et inatteignable, sans aucune barre de défilement pour le
   signaler. `overflow-y: auto` rend ce contenu accessible en scrollant. */
.partner-app-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 40; display: flex; width: 240px; flex-direction: column; overflow-y: auto; overflow-x: hidden; border-right: 1px solid rgba(255,255,255,.08); background: var(--gl-navy-950); color: white; transition: width .16s ease; }
.partner-app-sidebar__brandrow { display: flex; min-height: 64px; align-items: center; justify-content: space-between; gap: 6px; padding: 0 16px; border-bottom: 1px solid rgba(255,255,255,.08); }
.partner-app-sidebar__brand { display: flex; min-width: 0; align-items: center; gap: 9px; overflow: hidden; }
.partner-app-sidebar__brand img { height: 28px; width: auto; flex: 0 0 auto; filter: drop-shadow(0 2px 5px rgba(0,0,0,.12)); }
.partner-app-sidebar__brand span { overflow: hidden; border-radius: 999px; background: rgba(77,212,202,.14); padding: 5px 9px; color: #69e0d7; font-size: 10px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.partner-sidebar-collapse { display: flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 26px; height: 26px; border: 1px solid rgba(255,255,255,.14); border-radius: 8px; background: rgba(255,255,255,.05); color: rgba(255,255,255,.7); transition: background .15s ease, transform .16s ease; }
.partner-sidebar-collapse:hover { background: rgba(255,255,255,.12); color: white; }
.partner-app-nav { display: grid; gap: 2px; padding: 14px 10px; }
.partner-app-nav__group + .partner-app-nav__group { margin-top: 10px; }
.partner-app-nav__label { padding: 10px 10px 5px; color: rgba(255,255,255,.4); font-size: 10px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.partner-nav-link { display: flex; min-height: 38px; align-items: center; gap: 11px; border-radius: 10px; padding: 0 11px; color: rgba(255,255,255,.72); font-size: 13px; font-weight: 650; transition: color .18s ease, background .18s ease; }
.partner-nav-link svg { width: 18px; height: 18px; flex: 0 0 auto; opacity: .84; }
.partner-nav-link span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.partner-nav-link:hover { background: rgba(255,255,255,.07); color: white; }
/* Badge "avis en attente de réponse" (14/09/2026) — même logique visuelle
   qu'un compteur de notifications, coral pour rester cohérent avec le
   reste de la palette d'alerte de l'espace pro. */
.partner-nav-link__badge { flex: 0 0 auto; margin-left: auto; border-radius: 999px; background: var(--gl-coral-500); padding: 1px 7px; color: white; font-size: 10.5px; font-weight: 800; line-height: 1.5; }
.partner-nav-link.is-active { background: rgba(14,165,168,.18); color: white; box-shadow: inset 3px 0 #4dd4ca; }
.partner-app-sidebar__footer { display: grid; gap: 4px; margin-top: auto; padding: 10px 10px 16px; }
.partner-sidebar-account { overflow: hidden; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; background: rgba(255,255,255,.05); padding: 11px; margin-bottom: 6px; }
.partner-sidebar-account strong { display: block; overflow: hidden; text-overflow: ellipsis; color: white; font-size: 12.5px; white-space: nowrap; }
.partner-sidebar-account span { display: block; overflow: hidden; margin-top: 2px; text-overflow: ellipsis; color: rgba(255,255,255,.5); font-size: 10.5px; white-space: nowrap; }
.partner-sidebar-account__verified { display: flex !important; align-items: center; gap: 4px; margin-top: 6px !important; color: #6ee7df !important; font-weight: 700; }
.partner-app-main { min-height: 100vh; padding-left: 240px; transition: padding-left .16s ease; }

/* Sidebar réduite (icônes seules) — état mémorisé (localStorage), togglé
   par app/layout.blade.php. :has() est supporté par tous les navigateurs
   modernes (Safari 15.4+/Chrome 105+/Firefox 121+) ; à défaut la sidebar
   reste simplement dépliée (dégradation silencieuse, jamais cassée). */
.partner-app-sidebar.is-collapsed { width: 68px; }
.partner-app-sidebar.is-collapsed .partner-app-sidebar__brand,
.partner-app-sidebar.is-collapsed .partner-app-nav__label,
.partner-app-sidebar.is-collapsed .partner-nav-link span,
.partner-app-sidebar.is-collapsed .partner-sidebar-account { display: none; }
/* Correctif : le logo (image horizontale large) restait affiché en
   collapsed via .partner-app-sidebar__brand span display:none — seul le
   texte "Partenaires" était caché, pas l'image elle-même, qui débordait
   du panneau réduit (68px) et se faisait rogner par overflow-x:hidden,
   laissant un liseré visible. La ligne ci-dessus masque tout le lien
   (image comprise) ; le bouton de réduction reste seul, centré. */
.partner-app-sidebar.is-collapsed .partner-app-sidebar__brandrow { justify-content: center; }
.partner-app-sidebar.is-collapsed .partner-nav-link { justify-content: center; padding: 0; }
.partner-app-sidebar.is-collapsed .partner-sidebar-collapse svg { transform: rotate(180deg); }
.partner-app-shell:has(.partner-app-sidebar.is-collapsed) .partner-app-main { padding-left: 68px; }
.partner-app-topbar { position: sticky; top: 0; z-index: 30; display: flex; min-height: 60px; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--gl-line); background: #ffffff; padding: 0 28px; }
.partner-app-topbar__context { display: flex; align-items: center; gap: 5px; color: var(--gl-muted); font-size: 11.5px; }
.partner-app-topbar__context svg { flex: 0 0 auto; color: var(--gl-teal-600); }
.partner-app-topbar__actions { display: flex; align-items: center; gap: 10px; }
/* Sélecteur de langue (ajout 13/09/2026) — deux liens compacts plutôt
   qu'un menu déroulant : un seul clic pour basculer, cohérent avec le
   reste de l'espace (pas de fioriture, juste deux états clairs). */
.partner-language-switcher { display: flex; align-items: center; border: 1px solid var(--gl-line); border-radius: 6px; overflow: hidden; }
.partner-language-switcher a { display: flex; align-items: center; justify-content: center; min-width: 34px; min-height: 34px; padding: 0 8px; color: var(--gl-muted); font-size: 11px; font-weight: 800; letter-spacing: .02em; }
.partner-language-switcher a + a { border-left: 1px solid var(--gl-line); }
.partner-language-switcher a:hover { background: var(--gl-canvas); color: var(--gl-navy-900); }
.partner-language-switcher a.is-active { background: var(--gl-navy-900); color: white; }
.partner-mobile-menu__languages { display: flex; gap: 8px; margin: 10px 0; }
.partner-mobile-menu__languages a { flex: 1; display: flex; align-items: center; justify-content: center; min-height: 38px; border: 1px solid var(--gl-line); border-radius: 6px; color: var(--gl-navy-700); font-size: 12.5px; font-weight: 700; }
.partner-mobile-menu__languages a.is-active { background: var(--gl-navy-900); border-color: var(--gl-navy-900); color: white; }
.partner-plan-pill { display: inline-flex; align-items: center; gap: 7px; border: 1px solid #caece8; border-radius: 999px; background: #effbf9; padding: 7px 11px; color: #087b7e; font-size: 11px; font-weight: 800; }
.partner-app-content { width: 100%; max-width: 1400px; margin: 0 auto; padding: 34px 34px 50px; }
.partner-app-footer { padding: 12px 34px 28px; color: #7b879f; font-size: 11px; text-align: center; }
.partner-mobile-toggle { display: none; }
.partner-mobile-menu { display: none; }

/* Shared private page polish: improves every existing Blade page */
.partner-app-content h1 { letter-spacing: -.035em; }
.partner-app-content .rounded-2xl.border.bg-white,
.partner-app-content .rounded-2xl.border.border-navy-100.bg-white,
.partner-app-content form.rounded-2xl {
    border-color: var(--gl-line) !important;
    box-shadow: var(--gl-shadow-soft);
}
.partner-app-content input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.partner-app-content textarea,
.partner-app-content select,
.partner-auth-card input:not([type="checkbox"]):not([type="radio"]),
.partner-auth-card textarea,
.partner-auth-card select {
    width: 100%;
    min-height: 46px;
    border: 1px solid #cfd8e6 !important;
    border-radius: 12px !important;
    background: #fff;
    color: var(--gl-ink);
    transition: border-color .18s ease, box-shadow .18s ease;
}
.partner-app-content textarea { min-height: 110px; }
.partner-app-content input:focus,
.partner-app-content textarea:focus,
.partner-app-content select:focus,
.partner-auth-card input:focus {
    border-color: var(--gl-teal-500) !important;
    box-shadow: 0 0 0 4px rgba(14,165,168,.1);
    outline: none;
}
.partner-app-content label { color: #25304a; font-weight: 700; }
.partner-app-content table thead { background: #f6f8fb; }
.partner-app-content table th { padding: 12px 10px !important; color: #58657e; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.partner-app-content table td { padding: 13px 10px !important; }
.partner-app-content table tbody tr { border-color: var(--gl-line); }
.partner-app-content details { transition: border-color .18s ease, box-shadow .18s ease; }
.partner-app-content details[open] { border-color: #bddad9 !important; box-shadow: var(--gl-shadow-soft); }

.partner-dashboard-hero { position: relative; overflow: hidden; display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; border-radius: 8px; background: var(--gl-navy-900); padding: 26px 28px; color: white; box-shadow: none; }
/* Décor supprimé (redesign "back-office" 13/09/2026) — le cercle flouté en
   surimpression donnait un ton "site vitrine", pas "outil professionnel". */
.partner-dashboard-hero::after { content: none; }
.partner-dashboard-hero h1 { position: relative; z-index: 1; font-size: clamp(1.75rem,3vw,2.5rem); font-weight: 850; }
.partner-dashboard-hero p { position: relative; z-index: 1; margin-top: 7px; color: #cbd5e8; }
.partner-dashboard-badges { position: relative; z-index: 1; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.partner-dashboard-badges span { border: 1px solid rgba(255,255,255,.16); border-radius: 999px; background: rgba(255,255,255,.09); padding: 8px 11px; color: white; font-size: 11px; font-weight: 750; }
.partner-kpi-grid { display: grid; margin-top: 22px; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.partner-kpi-card { border: 1px solid var(--gl-line); border-radius: 8px; background: white; padding: 18px 20px; box-shadow: none; }
.partner-kpi-card__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.partner-kpi-card__icon { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 12px; background: #edf8f7; color: var(--gl-teal-600); }
.partner-kpi-card__label { margin-top: 17px; color: var(--gl-muted); font-size: 12px; font-weight: 680; }
.partner-kpi-card__value { margin-top: 4px; color: var(--gl-navy-900); font-size: 28px; font-weight: 850; letter-spacing: -.04em; }
.partner-dashboard-grid { display: grid; margin-top: 22px; grid-template-columns: 1.35fr .65fr; gap: 18px; }
.partner-panel { border: 1px solid var(--gl-line); border-radius: 8px; background: white; padding: 22px; box-shadow: none; }
.partner-panel__header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.partner-panel__header h2 { color: var(--gl-navy-900); font-size: 16px; font-weight: 850; }

/* Statistiques (modernisation 13/09/2026) — mêmes composants que le
   tableau de bord (partner-kpi-card, partner-panel) plutôt que des divs
   Tailwind ad hoc, pour une page visuellement cohérente avec le reste de
   l'espace pro. */
.partner-kpi-grid--5 { grid-template-columns: repeat(5,minmax(0,1fr)); }
.partner-kpi-card--stat { padding-bottom: 16px; }
.partner-kpi-card__help { display: inline-flex; width: 22px; height: 22px; flex: 0 0 auto; align-items: center; justify-content: center; border-radius: 999px; color: var(--gl-line); transition: color .15s ease; }
.partner-kpi-card__help:hover, .partner-kpi-card__help:focus-visible { color: var(--gl-muted); }
.partner-kpi-card__delta { margin-top: 10px; }
.partner-kpi-card__tooltip { left: 20px; right: 20px; }
.partner-funnel-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.partner-funnel-grid--2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.partner-funnel-stat__label { color: var(--gl-muted); font-size: 12.5px; font-weight: 650; }
.partner-funnel-stat__value { margin-top: 5px; color: var(--gl-navy-900); font-size: 21px; font-weight: 850; letter-spacing: -.02em; }
.partner-funnel-stat__formula { margin-top: 5px; color: var(--gl-muted); font-size: 11.5px; }
.partner-panel--coral { border-color: #ffd4d0; background: #fff9f8; }
.partner-panel--teal { border-color: var(--gl-teal-100); background: #f2fbfa; }
.partner-panel--muted { background: var(--gl-canvas); }
.partner-explainer-list { display: grid; gap: 7px; color: #4a5674; font-size: 13px; line-height: 1.6; }
.partner-explainer-list li { position: relative; padding-left: 16px; }
.partner-explainer-list li::before { content: ''; position: absolute; left: 0; top: 8px; width: 5px; height: 5px; border-radius: 50%; background: var(--gl-line); }
@media (max-width: 860px) {
    .partner-kpi-grid--5 { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .partner-funnel-grid { grid-template-columns: 1fr; }
}

.partner-quick-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.partner-quick-action { display: flex; align-items: center; gap: 11px; border: 1px solid var(--gl-line); border-radius: 6px; padding: 13px; color: #35415d; font-size: 13px; font-weight: 720; transition: background .18s ease,border-color .18s ease; }
.partner-quick-action:hover { transform: translateY(-1px); border-color: #bfccdf; background: #f8fafc; }
.partner-quick-action svg { width: 19px; height: 19px; color: var(--gl-teal-600); }
.partner-progress { height: 8px; overflow: hidden; border-radius: 999px; background: #e9edf4; }
.partner-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--gl-teal-500),#53d3c9); }

/* Authentication */
.partner-guest-body { background: #f7f9fc; }
.partner-auth-shell { display: grid; max-width: 1120px; min-height: calc(100vh - 150px); margin: 0 auto; padding: 46px 24px 70px; align-items: center; grid-template-columns: .88fr 1.12fr; gap: 54px; }
.partner-auth-story { position: relative; display: flex; min-height: 620px; flex-direction: column; overflow: hidden; border-radius: 28px; background: linear-gradient(155deg,#07152f 0%,#102a5d 70%,#0b9295 160%); padding: 42px; color: white; box-shadow: 0 28px 65px rgba(12,28,61,.18); }
.partner-auth-story::after { content: ""; position: absolute; width: 280px; height: 280px; right: -110px; bottom: -100px; border-radius: 50%; background: rgba(14,165,168,.2); }
.partner-auth-story h2 { max-width: 400px; margin-top: 22px; font-size: 35px; font-weight: 850; letter-spacing: -.045em; line-height: 1.08; }
.partner-auth-story > p { max-width: 400px; margin-top: 17px; color: #cbd5e8; font-size: 15px; line-height: 1.7; }
.partner-auth-trust { position: relative; z-index: 1; display: grid; gap: 13px; margin-top: 30px; }
.partner-auth-trust li { display: flex; align-items: center; gap: 10px; color: #e4ebf6; font-size: 13px; }
.partner-auth-trust svg { flex: 0 0 auto; color: #5bd3ca; }
.partner-auth-quote { position: relative; z-index: 1; margin-top: auto; border: 1px solid rgba(255,255,255,.14); border-radius: 18px; background: rgba(255,255,255,.08); padding: 17px; color: #dbe4f3; font-size: 12px; line-height: 1.65; backdrop-filter: blur(8px); }
.partner-auth-panel { width: 100%; max-width: 500px; }
.partner-auth-panel__eyebrow { color: var(--gl-teal-600); font-size: 11px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.partner-auth-panel h1 { margin-top: 10px; color: var(--gl-navy-900); font-size: 34px; font-weight: 850; letter-spacing: -.04em; }
.partner-auth-panel__lead { margin-top: 8px; color: var(--gl-muted); font-size: 14px; line-height: 1.6; }
.partner-auth-card { margin-top: 25px; border: 1px solid var(--gl-line); border-radius: 24px; background: white; padding: 28px; box-shadow: var(--gl-shadow); }
.partner-auth-card label { color: #2a3650; font-size: 13px; font-weight: 750; }
.partner-auth-card input:not([type="checkbox"]) { width: 100%; padding: 0 14px; }
.partner-auth-card .partner-button { width: 100%; margin-top: 4px; }
.partner-auth-meta { margin-top: 18px; color: var(--gl-muted); font-size: 13px; text-align: center; }
.partner-auth-meta a { color: #087b7e; font-weight: 750; }
.partner-auth-meta a:hover { text-decoration: underline; }

/* Professional inner pages */
.partner-page-header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:26px; }
.partner-page-header h1 { margin-top:7px; color:var(--gl-navy-900); font-size:clamp(2rem,3vw,2.8rem); font-weight:850; letter-spacing:-.045em; line-height:1.05; }
.partner-page-header > div > p:last-child { max-width:720px; margin-top:10px; color:var(--gl-muted); font-size:14px; line-height:1.65; }
.partner-page-eyebrow { color:var(--gl-teal-600); font-size:11px; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.partner-status-pill { display:inline-flex; flex:0 0 auto; align-items:center; gap:7px; border:1px solid var(--gl-line); border-radius:999px; background:white; padding:8px 12px; color:#536079; font-size:11px; font-weight:800; }
.partner-status-pill::before { content:""; width:7px; height:7px; border-radius:50%; background:#94a3b8; }
.partner-status-pill--active { border-color:#c8ece8; background:#effbf9; color:#087b7e; }
.partner-status-pill--active::before { background:var(--gl-teal-500); box-shadow:0 0 0 4px rgba(14,165,168,.1); }
.partner-alert-card { display:flex; gap:15px; margin-bottom:22px; border:1px solid var(--gl-line); border-radius:8px; padding:20px; }
.partner-alert-card--warning { border-color:#ffd4d0; background:#fff7f6; }
.partner-alert-card__icon { display:flex; width:38px; height:38px; flex:0 0 auto; align-items:center; justify-content:center; border-radius:12px; background:#ffe1de; color:var(--gl-coral-600); font-weight:900; }
.partner-alert-card h2 { color:var(--gl-navy-900); font-size:15px; font-weight:850; }
.partner-alert-card p { margin-top:5px; color:#68748d; font-size:13px; line-height:1.6; }
.partner-billing-grid { display:grid; grid-template-columns:1.35fr .65fr; gap:18px; }
/* Carte "offre actuelle" — redesign SaaS 20/08/2026 : carte blanche
   compacte plutôt que le grand dégradé navy plein cadre (demande
   explicite, "davantage de blanc, moins de grandes surfaces bleu marine").
   Le marine reste utilisé pour la hiérarchie (titre, valeurs), jamais
   comme fond dominant. */
.partner-current-plan { position:relative; border:1px solid var(--gl-line); border-radius:8px; background:white; padding:20px 22px; color:var(--gl-navy-900); box-shadow:none; }
.partner-current-plan__top { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.partner-current-plan__top span:first-child { color:var(--gl-teal-600); font-size:11px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.partner-current-plan h2 { margin-top:4px; font-size:24px; font-weight:800; letter-spacing:-.03em; color:var(--gl-navy-900); }
.partner-current-plan__badge { border:1px solid var(--gl-line); border-radius:4px; background:var(--gl-canvas); padding:6px 11px; color:var(--gl-navy-500); font-size:10px; font-weight:800; text-transform:uppercase; }
.partner-current-plan__details { display:grid; margin-top:18px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.partner-current-plan__details div { border:1px solid var(--gl-line); border-radius:12px; background:var(--gl-canvas); padding:11px 13px; }
.partner-current-plan__details small { display:flex; align-items:center; gap:5px; color:var(--gl-muted); font-size:10.5px; text-transform:uppercase; }
.partner-current-plan__details strong { display:block; margin-top:4px; color:var(--gl-navy-900); font-size:13.5px; }
.partner-current-plan__date { margin-top:14px; color:var(--gl-muted); font-size:12px; }
.partner-current-plan .partner-button--secondary { border-color:var(--gl-line); background:white; color:var(--gl-navy-900); }
.partner-reassurance-card,.partner-support-info,.partner-profile-card,.partner-data-card { border:1px solid var(--gl-line); border-radius:8px; background:white; padding:22px; box-shadow:none; }
.partner-reassurance-card h2,.partner-support-info h2,.partner-data-card h2 { margin-top:15px; color:var(--gl-navy-900); font-size:16px; font-weight:850; }
.partner-reassurance-card ul { display:grid; gap:9px; margin-top:15px; color:#43506a; font-size:12px; }
.partner-reassurance-card li::before { content:"✓"; margin-right:8px; color:var(--gl-teal-600); font-weight:900; }
.partner-reassurance-card > p,.partner-support-info > p,.partner-data-card > p { margin-top:16px; color:var(--gl-muted); font-size:12px; line-height:1.65; }
.partner-upgrade-card { display:grid; margin-top:22px; overflow:hidden; border:1px solid var(--gl-line); border-radius:8px; background:white; grid-template-columns:1fr .78fr; box-shadow:none; }
.partner-upgrade-copy { padding:31px; }
.partner-upgrade-copy h2 { margin-top:8px; color:var(--gl-navy-900); font-size:27px; font-weight:850; letter-spacing:-.035em; }
.partner-upgrade-copy > p:not(.partner-page-eyebrow) { max-width:560px; margin-top:9px; color:var(--gl-muted); font-size:13px; line-height:1.65; }
.partner-upgrade-list { display:grid; margin-top:22px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px 18px; color:#3f4b65; font-size:12px; }
.partner-upgrade-list li { display:flex; align-items:flex-start; gap:8px; }
.partner-upgrade-list svg { flex:0 0 auto; color:var(--gl-teal-600); }
.partner-checkout-card { border-left:1px solid var(--gl-line); background:#f8fafc; padding:30px; }
.partner-interval-toggle { display:grid; margin-top:14px; border:1px solid #d5ddeb; border-radius:12px; background:white; padding:4px; grid-template-columns:1fr 1fr; }
.partner-interval-toggle button { border-radius:9px; padding:9px 15px; color:#536079; font-size:12px; font-weight:800; }
.partner-interval-toggle button.is-active { background:var(--gl-navy-900); color:white; box-shadow:none; }
.partner-checkout-price { margin:22px 0; color:var(--gl-navy-900); font-size:38px; font-weight:850; letter-spacing:-.04em; }
.partner-checkout-price small { color:var(--gl-muted); font-size:13px; font-weight:650; letter-spacing:0; }
.partner-renewal-note { display:flex; gap:10px; border-radius:13px; background:#edf3fa; padding:13px; color:#4b5872; }
.partner-renewal-note svg { flex:0 0 auto; color:var(--gl-teal-600); }
.partner-renewal-note p { font-size:11px; line-height:1.55; }
.partner-consent-box { display:flex; align-items:flex-start; gap:9px; margin:15px 0 !important; border:1px solid var(--gl-line); border-radius:6px; background:white; padding:13px; color:#43506a !important; font-size:11px !important; font-weight:600 !important; line-height:1.5; }
.partner-consent-box input { margin-top:2px; }
.partner-consent-box a { color:#087b7e; font-weight:800; text-decoration:underline; }
.partner-support-grid { display:grid; grid-template-columns:1.35fr .65fr; gap:18px; }
.partner-support-form textarea { min-height:190px; }
.partner-support-info ol { display:grid; gap:15px; margin-top:19px; }
.partner-support-info li { display:flex; align-items:flex-start; gap:11px; }
.partner-support-info li > span { display:flex; width:27px; height:27px; flex:0 0 auto; align-items:center; justify-content:center; border-radius:9px; background:var(--gl-navy-900); color:white; font-size:10px; font-weight:850; }
.partner-support-info li p { color:var(--gl-muted); font-size:11px; line-height:1.5; }
.partner-support-info li strong { display:block; color:var(--gl-navy-900); font-size:12px; }
.partner-support-info--soft { background:#eff9f8; border-color:#cfecea; }
.partner-request-status { border-radius:999px; background:#edf3fa; padding:6px 10px; color:#52617a; font-size:10px; font-weight:800; text-transform:uppercase; }
.partner-settings-grid { display:grid; grid-template-columns:300px minmax(0,1fr); gap:20px; align-items:start; }
.partner-profile-card { text-align:center; }
.partner-profile-avatar { display:flex; width:68px; height:68px; margin:0 auto; align-items:center; justify-content:center; border-radius:8px; background:var(--gl-navy-900); color:white; font-size:20px; font-weight:850; box-shadow:none; }
.partner-profile-card h2 { margin-top:15px; color:var(--gl-navy-900); font-size:17px; font-weight:850; }
.partner-profile-card p { overflow-wrap:anywhere; margin-top:4px; color:var(--gl-muted); font-size:12px; }
.partner-profile-card > span { display:inline-flex; margin-top:14px; border-radius:999px; background:#eff9f8; padding:6px 10px; color:#087b7e; font-size:10px; font-weight:800; text-transform:uppercase; }
.partner-data-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.partner-data-card { display:flex; flex-direction:column; align-items:flex-start; }
.partner-data-card .partner-button { margin-top:20px; }
.partner-data-card--danger { border-color:#f2d8d6; }
.partner-data-card--danger .partner-icon-tile { background:#fff0ef; color:var(--gl-coral-600); }
.partner-data-card details { width:100%; margin-top:17px; }
.partner-data-card summary { cursor:pointer; color:var(--gl-coral-600); font-size:11px; font-weight:800; }

@media (max-width: 1024px) {
    .partner-hero__inner { grid-template-columns: 1fr; }
    .partner-product-preview { max-width: 700px; transform: none; }
    .partner-benefit-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .partner-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .partner-public-footer__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .partner-kpi-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .partner-dashboard-grid { grid-template-columns: 1fr; }
    .partner-billing-grid,.partner-support-grid { grid-template-columns:1fr; }
    .partner-upgrade-card { grid-template-columns:1fr; }
    .partner-checkout-card { border-top:1px solid var(--gl-line); border-left:0; }
    .partner-settings-grid { grid-template-columns:240px minmax(0,1fr); }
    .partner-auth-shell { grid-template-columns: 1fr; max-width: 600px; }
    .partner-auth-story { display: none; }
    .partner-auth-panel { max-width: none; }
}

@media (max-width: 860px) {
    .partner-public-nav { display: none; }
    .partner-app-sidebar { display: none; }
    .partner-app-main { padding-left: 0; }
    .partner-mobile-toggle { display: inline-flex; width: 42px; height: 42px; align-items: center; justify-content: center; border: 1px solid var(--gl-line); border-radius: 12px; background: white; color: var(--gl-navy-900); }
    .partner-mobile-menu.is-open { position: fixed; z-index: 45; display: grid; inset: 72px 12px auto 12px; max-height: calc(100vh - 90px); overflow-y: auto; border: 1px solid var(--gl-line); border-radius: 18px; background: white; padding: 12px; box-shadow: var(--gl-shadow); }
    .partner-mobile-menu .partner-nav-link { color: #46526d; }
    .partner-mobile-menu .partner-nav-link.is-active { background: #eef8f7; color: var(--gl-navy-900); }
    .partner-mobile-menu__account { border-top: 1px solid var(--gl-line); margin-top: 10px; padding: 12px 13px 4px; }
    .partner-mobile-menu__account strong { display: block; overflow: hidden; color: var(--gl-navy-900); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
    .partner-mobile-menu__account span { display: block; overflow: hidden; margin-top: 2px; color: var(--gl-muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
    .partner-settings-grid { grid-template-columns:1fr; }
    .partner-settings-grid > aside { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 680px) {
    .partner-public-header__inner { min-height: 66px; padding: 0 16px; }
    .partner-brand img { height: 31px; }
    .partner-brand__tag { display: none; }
    /* CORRECTIF (15/09/2026, audit page d'accueil) : la CTA principale
       "Créer mon espace" — le seul bouton qui convertit un visiteur en
       inscription — était masquée sur mobile pour laisser la place au
       bouton "Se connecter", pourtant secondaire pour une page d'atterrissage
       dont le but est l'acquisition. Inversé : "Se connecter" devient un
       simple lien texte compact (garde l'accès à la connexion, qu'aucun
       autre lien du pied de page ne propose), la CTA primaire reste visible. */
    .partner-header-actions { gap: 12px; }
    .partner-header-actions .partner-button--primary { min-height: 38px; padding: 0 14px; font-size: 13px; }
    .partner-header-actions .partner-button--secondary { min-height: auto; padding: 0; border: 0; background: none; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
    .partner-header-actions .partner-button--secondary:hover { border: 0; background: none; }
    .partner-hero__inner { padding: 58px 18px 62px; gap: 43px; }
    .partner-hero h1 { font-size: 2.65rem; }
    .partner-hero__lead { font-size: 16px; }
    .partner-hero__actions .partner-button { width: 100%; }
    .partner-preview-body { grid-template-columns: 82px 1fr; min-height: 285px; }
    .partner-preview-content { padding: 15px; }
    .partner-preview-kpis { grid-template-columns: repeat(2,1fr); }
    .partner-preview-kpi:last-child { display: none; }
    .partner-section { padding: 66px 18px; }
    .partner-benefit-grid,
    .partner-trust-grid,
    .partner-steps,
    .partner-pricing-grid,
    .partner-public-footer__grid,
    .partner-kpi-grid,
    .partner-quick-actions { grid-template-columns: 1fr; }
    .partner-cta { border-radius: 24px; padding: 42px 20px; }
    .partner-cta__actions .partner-button { width: 100%; }
    .partner-price-card { padding: 26px 22px; }
    .partner-public-footer__grid { padding: 44px 18px 28px; gap: 28px; }
    .partner-app-topbar { min-height: 66px; padding: 0 16px; }
    .partner-app-topbar__context { display: none; }
    .partner-app-content { padding: 22px 16px 40px; }
    .partner-app-footer { padding: 10px 16px 24px; }
    .partner-dashboard-hero { display: block; border-radius: 21px; padding: 24px 20px; }
    .partner-dashboard-badges { justify-content: flex-start; margin-top: 18px; }
    .partner-auth-shell { padding: 32px 16px 55px; }
    .partner-auth-panel h1 { font-size: 29px; }
    .partner-auth-card { border-radius: 20px; padding: 22px 18px; }
    .partner-app-content .grid.grid-cols-2 { grid-template-columns: 1fr !important; }
    .partner-app-content .flex.items-center.justify-between { align-items: flex-start; gap: 12px; }
    .partner-page-header { display:block; }
    .partner-page-header .partner-status-pill { margin-top:16px; }
    .partner-current-plan__details,.partner-upgrade-list,.partner-data-grid,.partner-settings-grid > aside { grid-template-columns:1fr; }
    .partner-upgrade-copy,.partner-checkout-card { padding:22px 18px; }
    .partner-current-plan { padding:23px 19px; }
}

@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* ================= Centre d'assistance (tickets) ================= */
/* Champs de formulaire génériques — jusqu'ici aucune règle globale
   n'existait pour input/textarea/select en dehors de .partner-support-form
   textarea (juste sa hauteur) ; ajoutée ici, bénéficie aussi aux
   formulaires existants qui réutilisaient ces balises nues. */
.partner-field { margin-bottom: 18px; }
.partner-field label { display:block; margin-bottom:7px; color:var(--gl-navy-900); font-size:13px; font-weight:700; }
.partner-field .partner-field-hint { margin-top:6px; color:var(--gl-muted); font-size:11px; line-height:1.5; }
.partner-field input[type="text"],
.partner-field input[type="email"],
.partner-field input[type="file"],
.partner-field textarea,
.partner-field select,
.partner-reply-box textarea {
    width:100%; border:1px solid #d5ddeb; border-radius:13px; background:white;
    padding:11px 14px; color:var(--gl-ink); font-size:14px; font-family:inherit;
    transition:border-color .15s, box-shadow .15s;
}
.partner-field textarea, .partner-reply-box textarea { min-height:130px; resize:vertical; }
.partner-field input:focus, .partner-field textarea:focus, .partner-field select:focus, .partner-reply-box textarea:focus {
    outline:none; border-color:var(--gl-teal-500); box-shadow:0 0 0 3px rgba(14,165,168,.14);
}
.partner-field-error { margin-top:6px; color:var(--gl-coral-600); font-size:11px; font-weight:700; }
.partner-checkbox-row { display:flex; align-items:flex-start; gap:9px; font-size:12px; color:#43506a; }
.partner-checkbox-row input { margin-top:3px; }

/* En-tête + bouton principal */
.ticket-header { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:24px; }
.ticket-header h1 { color:var(--gl-navy-900); font-size:clamp(1.7rem,3vw,2.3rem); font-weight:850; letter-spacing:-.03em; }
.ticket-header p { max-width:520px; margin-top:8px; color:var(--gl-muted); font-size:13.5px; line-height:1.6; }

/* Tuiles de statistiques */
.ticket-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:22px; }
.ticket-stat-tile { border:1px solid var(--gl-line); border-radius:6px; background:white; padding:17px 18px; box-shadow:none; }
.ticket-stat-tile strong { display:block; color:var(--gl-navy-900); font-size:26px; font-weight:850; letter-spacing:-.03em; }
.ticket-stat-tile span { display:block; margin-top:4px; color:var(--gl-muted); font-size:11.5px; font-weight:650; }
.ticket-stat-tile--action strong { color:var(--gl-coral-600); }

/* Filtres */
.ticket-filters { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:18px; }
.ticket-filter-pill { border:1px solid var(--gl-line); border-radius:999px; background:white; padding:7px 14px; color:#536079; font-size:12px; font-weight:700; white-space:nowrap; }
.ticket-filter-pill.is-active { border-color:var(--gl-teal-500); background:var(--gl-teal-100); color:var(--gl-teal-600); }
.ticket-search { margin-left:auto; display:flex; gap:8px; }
.ticket-search input { border:1px solid #d5ddeb; border-radius:6px; padding:9px 13px; font-size:13px; min-width:220px; }

/* Liste de tickets */
.ticket-list { display:flex; flex-direction:column; gap:10px; }
.ticket-row { display:flex; flex-wrap:wrap; align-items:center; gap:16px; border:1px solid var(--gl-line); border-radius:8px; background:white; padding:16px 18px; box-shadow:none; text-decoration:none; transition:border-color .15s; }
.ticket-row:hover { border-color:#b9c6de; transform:translateY(-1px); }
.ticket-row.is-unread { border-color:var(--gl-teal-500); background:#f7fdfc; }
.ticket-row__main { flex:1 1 260px; min-width:0; }
.ticket-row__ref { color:var(--gl-muted); font-size:11px; font-weight:800; letter-spacing:.02em; }
.ticket-row__subject { margin-top:2px; overflow:hidden; color:var(--gl-navy-900); font-size:14.5px; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }
.ticket-row__meta { display:flex; flex-wrap:wrap; gap:10px; margin-top:6px; color:var(--gl-muted); font-size:11.5px; }
.ticket-row__unread-dot { display:inline-block; width:8px; height:8px; margin-right:6px; border-radius:50%; background:var(--gl-coral-500); }
.ticket-row__cta { flex:0 0 auto; border:1px solid var(--gl-line); border-radius:6px; padding:8px 15px; color:var(--gl-navy-900); font-size:12px; font-weight:750; }

/* Badges de statut */
.ticket-badge { display:inline-flex; align-items:center; gap:6px; border-radius:999px; padding:5px 11px; font-size:11px; font-weight:800; white-space:nowrap; }
.ticket-badge::before { content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }
.ticket-badge--info { background:#eef3fb; color:#3557a3; }
.ticket-badge--progress { background:#fff3e0; color:#b5690a; }
.ticket-badge--action { background:#ffe9e9; color:var(--gl-coral-600); }
.ticket-badge--resolved { background:var(--gl-teal-100); color:var(--gl-teal-600); }
.ticket-badge--closed { background:#eef0f4; color:#5b6478; }

/* État vide */
.ticket-empty { border:1px dashed #cfd8e8; border-radius:8px; background:#fbfcfe; padding:48px 24px; text-align:center; }
.ticket-empty h2 { color:var(--gl-navy-900); font-size:17px; font-weight:800; }
.ticket-empty p { max-width:380px; margin:8px auto 0; color:var(--gl-muted); font-size:12.5px; line-height:1.6; }

/* Fiche ticket : en-tête + méta */
.ticket-detail-header { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:20px; }
.ticket-detail-meta { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:10px; color:var(--gl-muted); font-size:12px; }
.ticket-detail-actions { display:flex; flex-wrap:wrap; gap:8px; }

/* Fil de conversation */
.ticket-thread { display:flex; flex-direction:column; gap:14px; margin-bottom:22px; }
.ticket-bubble { max-width:78%; border-radius:8px; padding:14px 17px; box-shadow:none; }
.ticket-bubble__meta { display:flex; justify-content:space-between; gap:12px; margin-bottom:6px; font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; opacity:.65; }
.ticket-bubble__body { font-size:13.5px; line-height:1.65; white-space:pre-line; }
.ticket-bubble--pro { align-self:flex-end; border:1px solid #c8ece8; background:#effbf9; color:var(--gl-navy-900); }
.ticket-bubble--goloisir { align-self:flex-start; border:1px solid var(--gl-line); background:white; color:var(--gl-navy-900); }
.ticket-bubble--system { align-self:center; max-width:90%; border:none; background:transparent; padding:4px 10px; color:var(--gl-muted); font-size:11.5px; text-align:center; box-shadow:none; }
.ticket-bubble__attachments { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.ticket-bubble__attachment { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--gl-line); border-radius:10px; background:white; padding:6px 10px; color:var(--gl-navy-900); font-size:11.5px; text-decoration:none; }

/* Zone de réponse */
.partner-reply-box { border:1px solid var(--gl-line); border-radius:8px; background:white; padding:20px; box-shadow:none; }
.partner-reply-box .partner-field-hint { margin-top:10px; }

@media (max-width: 860px) {
    .ticket-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .ticket-search { margin-left:0; width:100%; }
    .ticket-search input { flex:1; min-width:0; }
    .ticket-bubble { max-width:92%; }
}

/* --- Ciblage d'une campagne sponsorisée (audit 12/08/2026) ---
   Pas de mode sombre : aucune partie de l'espace partenaire n'en propose
   aujourd'hui (aucun token --dark-*, aucun prefers-color-scheme existant
   ailleurs dans ce fichier) — en ajouter un uniquement ici créerait une
   incohérence (un composant sombre au milieu d'une app entièrement
   claire) plutôt que de la cohérence. Signalé dans le rapport d'audit. */

.targeting-progress { display: flex; align-items: center; gap: 6px; margin-bottom: 18px; flex-wrap: wrap; }
.targeting-progress__step {
    display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700;
    color: var(--gl-muted); padding: 5px 10px; border-radius: 999px; background: var(--gl-canvas);
}
.targeting-progress__step[data-state="done"] { color: var(--gl-teal-600); background: var(--gl-teal-100); }
.targeting-progress__step[data-state="current"] { color: white; background: var(--gl-navy-900); }

.scope-type-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin-bottom: 14px; }
.scope-type-card {
    display: flex; flex-direction: column; gap: 4px; text-align: left; cursor: pointer;
    border: 1.5px solid var(--gl-line); border-radius: 14px; padding: 14px; background: white;
    transition: border-color .15s ease, box-shadow .15s ease, transform .1s ease;
}
.scope-type-card:hover { border-color: var(--gl-teal-500); box-shadow: var(--gl-shadow-soft); }
.scope-type-card:active { transform: scale(.99); }
.scope-type-card[aria-pressed="true"] {
    border-color: var(--gl-teal-500); background: var(--gl-teal-100);
    box-shadow: 0 0 0 3px rgba(14, 165, 168, .18);
}
/* Correctif 20/08/2026 (retour utilisateur, icônes "trop grandes et pas
   belles") : le sélecteur .scope-type-card__icon svg (qui existait plus
   bas dans ce fichier, désormais supprimé) attendait un <svg> DESCENDANT
   d'un élément portant cette classe — mais icon.blade.php pose la classe
   directement SUR le <svg> lui-même (pas de wrapper), donc la règle ne
   matchait jamais et le SVG s'affichait à sa taille intrinsèque du
   navigateur (des centaines de pixels) au lieu d'une taille d'icône.
   Largeur/hauteur/couleur posées ici, sur le sélecteur qui matche
   réellement l'élément. */
.scope-type-card__icon {
    display: block; width: 26px; height: 26px; margin-bottom: 6px;
    color: var(--gl-teal-600);
}
.scope-type-card__label { font-weight: 750; color: var(--gl-navy-900); font-size: 14px; }
.scope-type-card__desc { font-size: 12px; color: var(--gl-muted); line-height: 1.4; }

.targeting-combobox { position: relative; }
.targeting-combobox__input-wrap { position: relative; }
.targeting-combobox__input {
    width: 100%; border: 1.5px solid var(--gl-line); border-radius: 12px; padding: 10px 38px 10px 14px;
    font-size: 14px; color: var(--gl-navy-900); background: white;
}
.targeting-combobox__input:focus-visible { outline: none; border-color: var(--gl-teal-500); box-shadow: 0 0 0 3px rgba(14, 165, 168, .18); }
.targeting-combobox__spinner {
    position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
    width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--gl-line);
    border-top-color: var(--gl-teal-500); animation: targeting-spin .7s linear infinite; display: none;
}
.targeting-combobox__spinner[data-visible="true"] { display: block; }
@keyframes targeting-spin { to { transform: translateY(-50%) rotate(360deg); } }

.targeting-listbox {
    position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 6px);
    background: white; border: 1px solid var(--gl-line); border-radius: 14px;
    box-shadow: var(--gl-shadow); padding: 6px; max-height: 320px; overflow-y: auto;
}
.targeting-listbox[hidden] { display: none; }
.targeting-option {
    display: flex; flex-direction: column; gap: 2px; padding: 9px 12px; border-radius: 10px;
    cursor: pointer; transition: background .1s ease;
}
.targeting-option:hover, .targeting-option[data-active="true"] { background: var(--gl-teal-100); }
.targeting-option__title { font-size: 14px; font-weight: 650; color: var(--gl-navy-900); }
.targeting-option__meta { font-size: 12px; color: var(--gl-muted); }
.targeting-listbox__empty, .targeting-listbox__loading { padding: 14px 12px; font-size: 13px; color: var(--gl-muted); text-align: center; }

.targeting-summary {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    border: 1.5px solid var(--gl-teal-500); background: var(--gl-teal-100); border-radius: 14px;
    padding: 12px 14px; margin-top: 10px;
}
.targeting-summary__label { font-size: 11px; font-weight: 750; text-transform: uppercase; letter-spacing: .05em; color: var(--gl-teal-600); }
.targeting-summary__value { font-size: 15px; font-weight: 700; color: var(--gl-navy-900); margin-top: 2px; }
.targeting-summary__edit {
    flex: 0 0 auto; border: 1.5px solid var(--gl-navy-900); border-radius: 999px; background: white;
    padding: 6px 14px; font-size: 12px; font-weight: 700; color: var(--gl-navy-900); cursor: pointer;
}
.targeting-summary__edit:hover { background: var(--gl-canvas); }
.targeting-summary__save {
    flex: 0 0 auto; border: 1.5px solid transparent; border-radius: 999px; background: var(--gl-navy-900);
    padding: 6px 14px; font-size: 12px; font-weight: 700; color: white; cursor: pointer;
}
.targeting-summary__save:hover { background: var(--gl-navy-800); }
.targeting-summary__save:disabled { opacity: .6; cursor: default; }

/* Préréglages de zone de diffusion (14/09/2026). */
.targeting-preset-chip-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.targeting-preset-chip { display: inline-flex; align-items: stretch; border: 1px solid var(--gl-line); border-radius: 999px; overflow: hidden; background: white; }
.targeting-preset-chip__apply { padding: 6px 12px; font-size: 12.5px; font-weight: 650; color: var(--gl-navy-800); }
.targeting-preset-chip__apply:hover { background: var(--gl-canvas); }
.targeting-preset-chip__delete { padding: 6px 10px; border-left: 1px solid var(--gl-line); color: var(--gl-muted); font-size: 14px; line-height: 1; }
.targeting-preset-chip__delete:hover { background: #fff1f0; color: var(--gl-coral-600); }

.category-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
.category-card {
    display: flex; flex-direction: column; gap: 6px; text-align: left; cursor: pointer;
    border: 1.5px solid var(--gl-line); border-radius: 16px; padding: 12px; background: white;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.category-card:hover { border-color: var(--gl-teal-500); box-shadow: var(--gl-shadow-soft); }
.category-card[aria-pressed="true"] { border-color: var(--gl-coral-500); box-shadow: 0 0 0 3px rgba(255, 92, 92, .16); }
.category-card__image { width: 100%; height: 72px; border-radius: 10px; object-fit: cover; background: var(--gl-canvas); }
.category-card__name { font-weight: 700; font-size: 13.5px; color: var(--gl-navy-900); }
.category-card__desc { font-size: 11.5px; color: var(--gl-muted); line-height: 1.35; }
.category-card__count { font-size: 11px; font-weight: 650; color: var(--gl-teal-600); }

.subcategory-chip-grid { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.subcategory-chip {
    border: 1.5px solid var(--gl-line); border-radius: 999px; padding: 7px 14px; font-size: 13px;
    font-weight: 650; color: var(--gl-navy-900); background: white; cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}
.subcategory-chip:hover { border-color: var(--gl-teal-500); }
.subcategory-chip[aria-pressed="true"] { border-color: var(--gl-coral-500); background: var(--gl-coral-500); color: white; }

.targeting-help-link {
    display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; font-size: 12.5px;
    font-weight: 650; color: var(--gl-teal-600); text-decoration: underline; text-underline-offset: 2px;
}
.targeting-help-link:hover { color: var(--gl-teal-500); }

.final-summary { border: 1.5px solid var(--gl-line); border-radius: 8px; padding: 16px; background: var(--gl-canvas); }
.final-summary dt { font-size: 12px; color: var(--gl-muted); }
.final-summary dd { font-size: 14px; font-weight: 650; color: var(--gl-navy-900); margin-bottom: 8px; }
.final-summary__disclaimer { font-size: 12px; color: var(--gl-muted); border-top: 1px solid var(--gl-line); padding-top: 10px; margin-top: 4px; line-height: 1.5; }

@media (max-width: 640px) {
    .scope-type-grid { grid-template-columns: repeat(2, 1fr); }
    .category-grid { grid-template-columns: repeat(2, 1fr); }
}

/* --- Cartes modernisées : établissement / activités / revendications /
   mise en avant (13/08/2026) — grille de cartes avec photo quand
   disponible, badges de statut à puce colorée, en-tête de synthèse par
   compteurs. Composants partagés entre les 4 pages concernées. */

.page-hero { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.page-hero h1 { letter-spacing: -.03em; }
.page-hero__subtitle { margin-top: 4px; color: var(--gl-muted); font-size: 13.5px; }

.stat-row { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; }
.stat-chip { display: flex; align-items: baseline; gap: 7px; border: 1px solid var(--gl-line); border-radius: 6px; background: white; padding: 10px 16px; box-shadow: none; }
.stat-chip__value { font-size: 20px; font-weight: 800; color: var(--gl-navy-900); font-variant-numeric: tabular-nums; }
.stat-chip__label { font-size: 12px; color: var(--gl-muted); font-weight: 600; }
.stat-chip--accent .stat-chip__value { color: var(--gl-teal-600); }
.stat-chip--warn .stat-chip__value { color: var(--gl-coral-600); }

.pgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }

.pcard { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--gl-line); border-radius: 8px; background: white; box-shadow: none; transition: border-color .18s ease; }
a.pcard, .pcard--link { cursor: pointer; }
a.pcard:hover, .pcard--link:hover { border-color: var(--gl-teal-500); box-shadow: var(--gl-shadow); transform: translateY(-2px); }

.pcard__cover { position: relative; height: 148px; width: 100%; overflow: hidden; background: linear-gradient(135deg, var(--gl-navy-100), var(--gl-teal-100)); }
.pcard__cover img { height: 100%; width: 100%; object-fit: cover; }
.pcard__cover-icon { display: flex; height: 100%; width: 100%; align-items: center; justify-content: center; font-size: 34px; color: var(--gl-navy-500); opacity: .55; }
.pcard__cover-badge { position: absolute; top: 10px; left: 10px; display: inline-flex; align-items: center; gap: 5px; border-radius: 999px; background: rgba(12,28,61,.72); backdrop-filter: blur(4px); padding: 4px 10px; font-size: 10.5px; font-weight: 750; color: white; letter-spacing: .02em; }
.pcard__photo-count { position: absolute; bottom: 10px; right: 10px; display: inline-flex; align-items: center; gap: 4px; border-radius: 999px; background: rgba(12,28,61,.6); backdrop-filter: blur(4px); padding: 3px 9px; font-size: 10.5px; font-weight: 700; color: white; }

.pcard__body { display: flex; flex: 1; flex-direction: column; gap: 8px; padding: 16px 18px 18px; }
.pcard__title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.pcard__title { font-size: 15px; font-weight: 750; color: var(--gl-navy-900); line-height: 1.35; }
.pcard__meta { display: flex; flex-wrap: wrap; gap: 6px 12px; font-size: 12.5px; color: var(--gl-muted); }
.pcard__meta span { display: inline-flex; align-items: center; gap: 4px; }
.pcard__note { border-radius: 10px; background: var(--gl-coral-50, #fff1f0); padding: 8px 10px; font-size: 12.5px; color: var(--gl-coral-600); line-height: 1.4; }
.pcard__note--info { background: var(--gl-teal-100); color: var(--gl-teal-700, #096b6e); }
.pcard__footer { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 4px; }

.status-pill { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 5px 11px; font-size: 11.5px; font-weight: 750; white-space: nowrap; }
.status-pill::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.status-pill--neutral { background: var(--gl-navy-100); color: var(--gl-navy-500); }
.status-pill--info { background: #e8f4fd; color: #1d6fb8; }
.status-pill--success { background: var(--gl-teal-100); color: var(--gl-teal-700, #096b6e); }
.status-pill--warn { background: #fff4e0; color: #a3660a; }
.status-pill--danger { background: var(--gl-coral-50, #fff1f0); color: var(--gl-coral-600); }

.empty-state { display: flex; flex-direction: column; align-items: center; gap: 10px; border-radius: 8px; border: 1px dashed var(--gl-line); background: white; padding: 48px 24px; text-align: center; color: var(--gl-muted); }
.empty-state__icon { font-size: 34px; opacity: .7; }
.empty-state__title { font-size: 15px; font-weight: 700; color: var(--gl-navy-900); }

@media (max-width: 640px) {
    .pgrid { grid-template-columns: 1fr; }
}

/* --- Icônes trait (correctif 13/08/2026, remplace les émojis) --- */
.icon-inline { display: inline-block; width: 14px; height: 14px; flex: 0 0 auto; vertical-align: -2px; }
.icon-badge { display: inline-block; width: 12px; height: 12px; flex: 0 0 auto; vertical-align: -1px; }
.pcard__cover-icon svg { width: 34px; height: 34px; }
.empty-state__icon svg { width: 36px; height: 36px; }
.status-pill { gap: 5px; }
.status-pill::before { display: none; }
.targeting-help-link svg { width: 15px; height: 15px; }

/* --- Espace facturation (audit 13/08/2026) : timeline abonnement, bénéfices,
   tableau des factures, filtres, profil de facturation. --- */
.partner-plan-benefits { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--gl-navy-900); }
.partner-plan-benefits li { display: flex; align-items: center; gap: 7px; }
.partner-plan-benefits svg { color: var(--gl-teal-600); flex: 0 0 auto; }
/* Correctif 13/08/2026 : utilisée exclusivement sur la carte .partner-current-plan
   à fond bleu nuit — le texte foncé par défaut y était quasi invisible. */
.partner-plan-benefits--dark { color: rgba(255,255,255,.92); }
.partner-plan-benefits--dark svg { color: #6ee7df; }

.subscription-timeline { position: relative; margin-top: 14px; padding-left: 22px; }
.subscription-timeline::before { content: ''; position: absolute; left: 5px; top: 6px; bottom: 6px; width: 2px; background: var(--gl-line); }
.subscription-timeline li { position: relative; padding-bottom: 20px; }
.subscription-timeline li:last-child { padding-bottom: 0; }
.subscription-timeline__dot { position: absolute; left: -22px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: var(--gl-teal-500); border: 2px solid white; box-shadow: 0 0 0 2px var(--gl-teal-100); }

.invoice-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.invoice-filters select { border: 1px solid var(--gl-line); border-radius: 10px; padding: 8px 12px; font-size: 13px; color: var(--gl-navy-900); background: white; }

/* Barre d'outils de filtres (13/08/2026 — modernisation /factures) : champs
   étiquetés dans une carte plutôt que des <select> nus flottant sur la page. */
.invoice-toolbar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px; margin-bottom: 20px; border: 1px solid var(--gl-line); border-radius: 8px; background: white; padding: 14px 16px; box-shadow: none; }
.invoice-toolbar__field { display: flex; flex-direction: column; gap: 4px; }
.invoice-toolbar__field label { font-size: 10.5px; font-weight: 750; text-transform: uppercase; letter-spacing: .05em; color: var(--gl-muted); }
.invoice-toolbar__field select { min-width: 168px; border: 1px solid var(--gl-line); border-radius: 10px; padding: 8px 12px; font-size: 13px; color: var(--gl-navy-900); background: white; }
.invoice-toolbar__reset { display: inline-flex; align-items: center; gap: 4px; margin-left: auto; align-self: center; font-size: 12.5px; font-weight: 650; color: var(--gl-teal-600); }
.invoice-toolbar__reset:hover { text-decoration: underline; }
.invoice-toolbar__reset svg { width: 13px; height: 13px; }

.invoice-table-wrap { overflow-x: auto; border: 1px solid var(--gl-line); border-radius: 16px; background: white; box-shadow: var(--gl-shadow-soft); }
table.invoice-table { width: 100%; border-collapse: collapse; min-width: 760px; font-size: 13px; }
table.invoice-table th { text-align: left; font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--gl-muted); padding: 13px 14px; border-bottom: 1px solid var(--gl-line); white-space: nowrap; background: var(--gl-canvas); }
table.invoice-table th.num, table.invoice-table td.num { text-align: right; }
table.invoice-table td { padding: 13px 14px; border-bottom: 1px solid var(--gl-line); vertical-align: middle; white-space: nowrap; }
table.invoice-table tbody tr:hover { background: var(--gl-canvas); }
table.invoice-table tr:last-child td { border-bottom: none; }
table.invoice-table .invoice-desc { white-space: normal; max-width: 260px; color: var(--gl-muted); font-size: 12px; }
.invoice-table__id { display: flex; align-items: center; gap: 9px; }
.invoice-table__kind-icon { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; flex: 0 0 auto; border-radius: 9px; background: var(--gl-teal-100); color: var(--gl-teal-600); }
.invoice-table__kind-icon svg { width: 15px; height: 15px; }
.invoice-table__kind { display: block; margin-top: 1px; font-size: 11px; font-weight: 600; color: var(--gl-muted); }

.billing-profile-form { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0,1fr)); max-width: 720px; }
.billing-profile-form .full { grid-column: 1 / -1; }
.billing-profile-form label { display: block; margin-bottom: 5px; font-size: 12.5px; font-weight: 650; color: var(--gl-navy-900); }
.billing-profile-form input, .billing-profile-form select { width: 100%; border: 1px solid var(--gl-line); border-radius: 10px; padding: 9px 12px; font-size: 13.5px; }

.invoice-detail-grid { display: grid; gap: 20px; grid-template-columns: repeat(2, minmax(0,1fr)); }
@media (max-width: 720px) {
    .billing-profile-form { grid-template-columns: 1fr; }
    .invoice-detail-grid { grid-template-columns: 1fr; }
}

/* ================================================================
   IDENTITÉ PREMIUM PARTAGÉE — 13/08/2026
   Harmonise toutes les pages privées avec le tableau de bord.
   ================================================================ */
.partner-app-body { background:#f2f5fa; }
.partner-app-content { color:#18213a; }
.partner-app-topbar {
    border-bottom-color:var(--gl-line);
    background:#ffffff;
    box-shadow:none;
}
.partner-app-sidebar { background: var(--gl-navy-950); }

/* En-têtes compacts SaaS des pages secondaires (redesign 20/08/2026,
   demande explicite : "un véritable dashboard SaaS", grand bandeau bleu
   réservé au seul tableau de bord — cf. .partner-dashboard-hero, une
   classe totalement distincte et non affectée par ce bloc). Remplace
   l'ancien traitement dégradé navy pleine largeur, qui s'appliquait à
   TOUTES les pages via .page-hero/.partner-page-header/.ticket-header. */
.partner-app-content > .page-hero,
.partner-app-content > .partner-page-header,
.partner-app-content > .ticket-header {
    align-items:flex-start;
    margin-bottom:20px;
    padding-bottom:16px;
    border:0;
    border-bottom:1px solid var(--gl-line);
    border-radius:0;
    background:none;
    color:inherit;
    box-shadow:none;
}
.partner-app-content > .page-hero h1,
.partner-app-content > .partner-page-header h1,
.partner-app-content > .ticket-header h1 {
    margin-top:2px;
    color:var(--gl-navy-900)!important;
    font-size:26px;
    font-weight:800;
    letter-spacing:-.025em;
    line-height:1.2;
}
.partner-app-content > .page-hero .page-hero__subtitle,
.partner-app-content > .partner-page-header > div > p:last-child,
.partner-app-content > .ticket-header p { max-width:560px; margin-top:4px; color:var(--gl-muted)!important; font-size:13.5px; }
.partner-app-content > .page-hero .partner-button--secondary,
.partner-app-content > .partner-page-header .partner-button--secondary,
.partner-app-content > .ticket-header .partner-button--secondary {
    border-color:var(--gl-line);
    background:#fff;
    color:var(--gl-navy-900);
}
.partner-app-content > .page-hero .partner-button--secondary:hover,
.partner-app-content > .partner-page-header .partner-button--secondary:hover,
.partner-app-content > .ticket-header .partner-button--secondary:hover { background:var(--gl-canvas); }

/* Titres secondaires : même caractère, sans répéter un grand bandeau. */
.partner-app-content > .mx-auto > h1,
.partner-app-content > .mx-auto > div > h1,
.partner-app-content > .mb-6 > div > h1 {
    color:#0c1c3d;
    font-weight:850;
    letter-spacing:-.035em;
}

/* Surfaces, listes et formulaires. */
.partner-panel,
.partner-kpi-card,
.ticket-stat-tile,
.ticket-row,
.partner-reply-box,
.invoice-toolbar,
.invoice-table-wrap,
.pcard,
.partner-reassurance-card,
.partner-support-info,
.partner-profile-card,
.partner-data-card {
    border-color:#dde4ee;
    box-shadow:0 8px 24px rgba(12,28,61,.055);
}
.partner-panel:hover,
.partner-kpi-card:hover,
.pcard:hover { border-color:#cdd7e5; }
.partner-kpi-card__icon,
.partner-icon-tile,
.invoice-table__kind-icon { background:#e9f8f6; color:#0b9295; }
.partner-kpi-card__value,
.partner-panel__header h2,
.pcard__title,
.ticket-row__subject { color:#0c1c3d; }
.stat-chip { border-color:#dde4ee; box-shadow:none; }
.stat-chip--accent { border-color:#cbe8e5; background:#f3fbfa; }

/* Actions et états : le corail reste réservé aux actions importantes. */
.partner-button--primary {
    background:var(--gl-coral-500);
    color:#fff;
    border:1px solid var(--gl-coral-600);
    box-shadow:none;
}
.partner-button--primary:hover { background:var(--gl-coral-600); }
.partner-button--dark { background:#0c1c3d; }
.partner-plan-pill,
.partner-status-pill--active,
.status-pill--success,
.ticket-badge--resolved { border-color:#c8ece8; background:#effbf9; color:#087b7e; }

@media (max-width:680px) {
    .partner-app-content > .page-hero,
    .partner-app-content > .partner-page-header,
    .partner-app-content > .ticket-header { flex-direction:column; align-items:stretch; padding-bottom:14px; }
    .partner-app-content > .page-hero .partner-button--primary,
    .partner-app-content > .page-hero .partner-button--secondary,
    .partner-app-content > .partner-page-header .partner-button--primary,
    .partner-app-content > .partner-page-header .partner-button--secondary,
    .partner-app-content > .ticket-header .partner-button--primary,
    .partner-app-content > .ticket-header .partner-button--secondary { width:100%; justify-content:center; }
}
