:root {
  --navy: #071a33;
  --navy-soft: #0d2a4d;
  --blue: #0b5cff;
  --blue-dark: #073ca8;
  --yellow: #ffd226;
  --yellow-deep: #f0bc00;
  --ink: #111827;
  --muted: #5c6677;
  --line: #dce2ea;
  --pale: #f3f7fb;
  --white: #ffffff;
  --font: "Segoe UI", system-ui, Arial, Helvetica, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { min-height: 100vh; background: var(--white); color: var(--ink); font-family: var(--font); line-height: 1.5; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }
ul, ol { list-style: none; padding: 0; }
img, picture, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, select, input, textarea { font: inherit; color: inherit; }
button, summary { cursor: pointer; }
button { background: none; border: 0; padding: 0; }
table { border-collapse: collapse; }
/* Guarantee [hidden] always wins, regardless of a component's own display
   rule — e.g. ".formGrid label { display: block }" otherwise outranks the
   browser's default "[hidden] { display: none }" on specificity alone. */
[hidden] { display: none !important; }
.container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.skipLink { position: fixed; top: 8px; left: 8px; z-index: 1000; transform: translateY(-160%); background: var(--yellow); padding: 10px 14px; font-weight: 800; }
.skipLink:focus { transform: translateY(0); }

.brand { display: inline-flex; align-items: center; gap: 11px; flex: 0 0 auto; }

.button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 12px; border: 1px solid var(--blue); background: var(--blue); color: white; padding: 0 22px; font-weight: 800; font-size: 14px; transition: transform .18s ease, background .18s ease; }
.button:hover, .button:focus-visible { background: var(--blue-dark); transform: translateY(-2px); }
.buttonSmall { min-height: 42px; padding-inline: 17px; font-size: 13px; }
.buttonYellow { background: var(--yellow); color: var(--navy); border-color: var(--yellow); }
.buttonYellow:hover, .buttonYellow:focus-visible { background: var(--yellow-deep); border-color: var(--yellow-deep); }
.textLink { display: inline-flex; align-items: center; gap: 14px; color: var(--blue); font-weight: 800; font-size: 14px; }
.textLink span { font-size: 19px; transition: transform .18s ease; }
.textLink:hover span { transform: translateX(5px); }

.eyebrow { margin: 0 0 20px; display: flex; align-items: center; gap: 10px; color: var(--blue); font-size: 12px; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.eyebrow > span { width: 26px; height: 3px; background: var(--yellow); }

.targetVisual i.active { background: var(--blue); }

/* Rotating featured-group slider */
.groupSliderProgress i.running { transition: width linear; }
.groupSliderDots button.active { width: 15px; height: 15px; background: var(--yellow); border-color: var(--yellow); box-shadow: 0 0 0 3px rgba(255,210,38,.25); }
.groupSliderDots button.active:hover, .groupSliderDots button.active:focus-visible { background: var(--yellow); border-color: var(--yellow); transform: scale(1.15); }


.section { padding-block: 104px; }
.sectionHeading { margin-bottom: 48px; }
.sectionHeading h2 { max-width: 780px; margin: 0; color: var(--navy); font-size: clamp(36px, 4vw, 56px); line-height: 1.07; letter-spacing: -.045em; }
.splitHeading { display: grid; grid-template-columns: 1.4fr .6fr; gap: 70px; align-items: end; }
.splitHeading > p { margin: 0 0 4px; color: var(--muted); font-size: 16px; line-height: 1.7; }
.compactHeading { align-items: center; }
.compactHeading .textLink { justify-self: end; }

.eyebrow.light { color: #acc1d8; }

.formationGrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.formationCard { min-height: 300px; padding: 24px; display: flex; flex-direction: column; border: 1px solid var(--line); border-top: 4px solid var(--blue); background: white; transition: box-shadow .2s ease, transform .2s ease; }
.formationCard:hover { transform: translateY(-5px); box-shadow: 0 18px 35px rgba(7,26,51,.1); }
.formationMeta { display: flex; justify-content: space-between; gap: 10px; color: #748094; font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.formationMeta span:first-child { color: var(--blue); font-weight: 800; }
.formationCard h3 { margin: 25px 0 13px; color: var(--navy); font-size: 20px; line-height: 1.25; }
.formationCard p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.formationFoot { margin-top: auto; padding-top: 24px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--line); color: #7e8999; font-size: 11px; }
.formationFoot a { color: var(--blue); font-weight: 800; font-size: 12px; }
.formationFoot b { margin-left: 5px; }

.homeTechnologyGrid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.homeTechnologyGrid > a { min-height: 118px; display: grid; grid-template-columns: 48px 1fr auto; align-items: center; gap: 16px; padding: 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.homeTechnologyGrid > a:hover { background: #f4f8ff; }
.homeTechnologyGrid > a > b { width: 46px; height: 46px; display: grid; place-items: center; background: var(--navy); color: var(--yellow); font-size: 11px; }
.homeTechnologyGrid > a > div > span { color: var(--blue); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.homeTechnologyGrid h3 { margin: 5px 0 4px; color: var(--navy); font-size: 16px; }
.homeTechnologyGrid p { margin: 0; color: var(--muted); font-size: 10px; }
.homeTechnologyGrid > a > i { color: var(--blue); font-size: 18px; font-style: normal; }

.citiesCopy > p:not(.eyebrow) { margin: 24px 0 30px; color: var(--muted); font-size: 15px; line-height: 1.75; }
.businessGrid p:not(.eyebrow) { max-width: 720px; margin: 18px 0 0; color: #d9e5ff; line-height: 1.7; }
.businessGrid .eyebrow { color: #e5edff; }
.businessActions .textLink { color: white; justify-content: center; }

.siteFooter { background: #061426; color: white; }
.footerLead { padding-block: 70px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 40px; border-bottom: 1px solid #24354a; }
.footerLead h2 { max-width: 760px; margin: 0; font-size: clamp(30px, 4vw, 49px); line-height: 1.08; letter-spacing: -.04em; }
.footerGrid { padding-block: 65px; display: grid; grid-template-columns: 1.45fr repeat(4, 1fr); gap: 45px; }
.brandFooter img { width: 220px; height: auto; }
.footerAbout { max-width: 320px; color: #8fa3ba; font-size: 14px; line-height: 1.7; margin-top: 25px; }
.footerContact { margin-top: 22px; padding-top: 20px; border-top: 1px solid #24354a; display: flex; flex-direction: column; gap: 14px; }
.footerContactItem span { display: block; color: #6e849c; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 6px; }
.footerContactItem a { color: var(--yellow); font-size: 15px; font-weight: 800; }
.footerContactItem a:hover { text-decoration: underline; }
.footerGrid h3 { margin: 0 0 19px; color: white; font-size: 13px; text-transform: uppercase; letter-spacing: .1em; }
.footerGrid > div > a:not(.brand) { display: block; margin: 11px 0; color: #91a4ba; font-size: 13px; }
.footerGrid > div > a:hover { color: var(--yellow); }
.footerBottom { min-height: 66px; border-top: 1px solid #24354a; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: #6e849c; font-size: 11px; }
.footerBottomText { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.footerCookieManage { color: #6e849c; font-size: 11px; text-decoration: underline; text-underline-offset: 2px; }
.footerCookieManage:hover { color: white; }

/* Shared internal page system */
.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 38px; color: #728096; font-size: 11px; }
.breadcrumbs span { display: inline-flex; align-items: center; gap: 8px; }
.breadcrumbs i { color: #a7b2c0; font-style: normal; }
.breadcrumbs a:hover { color: var(--blue); }
.breadcrumbs b { color: #4a586b; font-weight: 650; }
.pageHero { padding-block: 42px 72px; background: var(--pale); border-bottom: 1px solid var(--line); }
.pageHeroGrid { display: grid; grid-template-columns: 1fr 260px; gap: 80px; align-items: end; }
.pageHero h1, .detailHero h1, .localHero h1, .legalHero h1, .partnerHero h1, .enterpriseHero h1 { margin: 0; color: var(--navy); font-size: clamp(44px, 5.5vw, 72px); line-height: 1.02; letter-spacing: -.055em; }
.pageHeroGrid > div:first-child > p:not(.eyebrow) { max-width: 780px; margin: 24px 0 0; color: var(--muted); font-size: 17px; line-height: 1.7; }
.heroMetric { min-height: 190px; padding: 25px; display: flex; flex-direction: column; justify-content: flex-end; background: var(--navy); color: white; border-left: 7px solid var(--yellow); }
.heroMetric strong { font-size: 56px; line-height: .9; letter-spacing: -.05em; }
.heroMetric span { margin-top: 10px; color: #b8c7d9; font-size: 13px; }
.heroMetric b { margin-top: 22px; padding-top: 15px; border-top: 1px solid #30455f; color: var(--yellow); font-size: 12px; }
.paleSection { background: var(--pale); border-top: 1px solid #e2e8f0; border-bottom: 1px solid #e2e8f0; }
.sectionLink { margin-top: 30px; }
.requestStrip { background: var(--blue); color: white; }
.requestStrip > .container { min-height: 250px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 50px; }
.requestStrip h2 { margin: 0; font-size: clamp(32px, 4vw, 48px); letter-spacing: -.04em; }
.requestStrip p:not(.eyebrow) { max-width: 720px; color: #dce7ff; line-height: 1.7; }
.requestStrip .eyebrow { color: #dce7ff; }

/* Catalogue */
.catalogueSection { padding-top: 64px; }
.catalogueControls { display: grid; grid-template-columns: 1.2fr 250px 250px 150px; gap: 14px; padding: 18px; background: var(--navy); }
.catalogueControls label { min-width: 0; padding: 9px 14px; background: white; }
.catalogueControls label > span { display: block; margin-bottom: 6px; color: #7a8799; font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; }
.catalogueControls input, .catalogueControls select { width: 100%; height: 31px; border: 0; outline: 0; color: var(--navy); background: white; font-weight: 700; }
.resultCount { display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--yellow); color: var(--navy); }
.resultCount strong { font-size: 30px; line-height: 1; }
.resultCount span { margin-top: 3px; font-size: 10px; font-weight: 750; }
.categoryPills { display: flex; flex-wrap: wrap; gap: 7px; margin-block: 22px 34px; }
.categoryPills button { min-height: 36px; padding: 0 13px; border: 1px solid var(--line); background: white; color: #455267; font-size: 11px; font-weight: 700; }
.categoryPills button:hover, .categoryPills button.active { border-color: var(--blue); background: var(--blue); color: white; }
.catalogueList { border-top: 1px solid var(--line); }
.catalogueRow { min-height: 160px; display: grid; grid-template-columns: 54px 1fr 190px 145px; gap: 24px; align-items: center; border-bottom: 1px solid var(--line); transition: background .18s ease; }
.catalogueRow:hover { background: #f6f9fd; }
.catalogueNumber { align-self: stretch; display: grid; place-items: center; border-right: 1px solid var(--line); color: #9aa6b5; font-size: 11px; }
.catalogueContent > p { margin: 0 0 8px; color: var(--blue); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.catalogueContent h2 { margin: 0 0 8px; color: var(--navy); font-size: 21px; }
.catalogueContent > span { color: var(--muted); font-size: 13px; line-height: 1.55; }
.inlineTechLinks { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.inlineTechLinks a, .technologyTags a { padding: 6px 9px; border: 1px solid #c9d8ee; background: #f4f8ff; color: var(--blue); font-size: 9px; font-weight: 800; }
.inlineTechLinks a:hover, .technologyTags a:hover { border-color: var(--blue); background: var(--blue); color: white; }
.catalogueFacts { display: grid; gap: 9px; color: #687588; font-size: 11px; }
.catalogueFacts span { padding-left: 12px; border-left: 3px solid #d7e0eb; }
.catalogueAction { display: flex; justify-content: space-between; color: var(--blue); font-size: 12px; font-weight: 800; }
.catalogueAction b { font-size: 16px; }
.emptyState { padding: 70px 25px; text-align: center; background: var(--pale); }
.emptyState h2 { color: var(--navy); font-size: 30px; }
.emptyState p { color: var(--muted); }
.emptyState .button { margin-top: 20px; }

/* Formation and city detail pages */
.detailHero, .localHero { position: relative; overflow: hidden; padding-block: 38px 78px; background: linear-gradient(120deg, #f7fafe 0%, #eaf3ff 100%); border-bottom: 1px solid #d6e1ee; }
.detailHero::after, .localHero::after { content: ""; position: absolute; right: -100px; bottom: -160px; width: 420px; height: 420px; border: 68px solid rgba(11,92,255,.1); transform: rotate(28deg); }
.detailHeroGrid, .localHeroGrid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 350px; gap: 72px; align-items: end; }
.detailHeroGrid > div > p:not(.eyebrow), .localHeroGrid > div > p:not(.eyebrow) { max-width: 760px; margin: 24px 0 0; color: #4e5d72; font-size: 17px; line-height: 1.7; }
.detailActions { display: flex; align-items: center; gap: 28px; margin-top: 30px; }
.technologyTags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 23px; }
.factPanel { background: var(--navy); color: white; box-shadow: 13px 13px 0 var(--yellow); }
.factPanel > div { padding: 17px 20px; border-bottom: 1px solid #2d425d; }
.factPanel span, .factPanel strong { display: block; }
.factPanel span { margin-bottom: 5px; color: #8fa5be; font-size: 9px; text-transform: uppercase; letter-spacing: .09em; }
.factPanel strong { font-size: 13px; }
.detailContentGrid { display: grid; grid-template-columns: minmax(0, 1fr) 410px; gap: 78px; align-items: start; }
.proseBlock h2 { margin: 58px 0 22px; color: var(--navy); font-size: clamp(29px, 3.2vw, 42px); line-height: 1.12; letter-spacing: -.035em; }
.proseBlock .eyebrow + h2 { margin-top: 0; }
.proseBlock > p:not(.eyebrow) { color: var(--muted); font-size: 16px; line-height: 1.75; }
.outcomeList { border-top: 1px solid var(--line); }
.outcomeList > div { min-height: 72px; display: grid; grid-template-columns: 48px 1fr; align-items: center; gap: 20px; border-bottom: 1px solid var(--line); }
.outcomeList b { color: var(--blue); font-size: 11px; }
.outcomeList span { color: var(--navy); font-weight: 750; }
.moduleList { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.moduleList article { padding: 24px; background: white; }
.moduleList article > span { color: var(--blue); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.moduleList h3 { margin: 8px 0 9px; color: var(--navy); font-size: 19px; }
.moduleList p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.stickyAside { position: sticky; top: 104px; }
.localLinks { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.localLinks a { min-height: 67px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 13px 16px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; color: #354257; font-size: 12px; font-weight: 700; }
.localLinks a span { color: var(--blue); font-size: 16px; }
.localLinks a:hover { background: var(--blue); color: white; }
.localLinks a:hover span { color: var(--yellow); }
.relatedGrid { grid-template-columns: repeat(3, 1fr); }
.localSignal { padding: 26px; background: var(--navy); color: white; border-top: 6px solid var(--yellow); }
.localSignal > span { color: #91a7c0; font-size: 9px; font-weight: 850; letter-spacing: .13em; }
.localSignal > strong { display: block; margin-top: 14px; font-size: 34px; }
.localSignal > p { margin: 25px 0 4px; color: #91a7c0; font-size: 11px; }
.localSignal > b { display: block; font-size: 19px; }
.localSignal > div { display: grid; grid-template-columns: repeat(8, 1fr); gap: 4px; margin-block: 17px; }
.localSignal i { height: 23px; background: #294460; }
.localSignal i:nth-child(-n+4) { background: var(--blue); }
.localSignal small { display: block; padding-top: 15px; border-top: 1px solid #2c4562; color: #9fb1c5; font-size: 10px; line-height: 1.55; }
.localFactGrid { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); }
.localFactGrid > div { padding: 22px; }
.localFactGrid > div + div { border-left: 1px solid var(--line); }
.localFactGrid span, .localFactGrid strong { display: block; }
.localFactGrid span { color: var(--blue); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.localFactGrid strong { margin-top: 8px; color: var(--navy); }
.localFactGrid p { margin: 7px 0 0; color: var(--muted); font-size: 12px; }
.faqList { max-width: 900px; border-top: 1px solid var(--line); }
.faqList details { border-bottom: 1px solid var(--line); }
.faqList summary { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 30px; list-style: none; color: var(--navy); font-weight: 800; }
.faqList summary::-webkit-details-marker { display: none; }
.faqList summary span { color: var(--blue); font-size: 25px; font-weight: 400; }
.faqList details[open] summary span { transform: rotate(45deg); }
.faqList details p { max-width: 760px; margin: 0; padding: 0 0 24px; color: var(--muted); line-height: 1.7; }
.splitLocalSections { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; }
.splitLocalSections h2 { margin: 0 0 20px; color: var(--navy); font-size: 26px; }
.splitLocalSections a { min-height: 49px; display: flex; align-items: center; justify-content: space-between; gap: 15px; border-bottom: 1px solid var(--line); color: #48566b; font-size: 12px; }
.splitLocalSections a span { color: var(--blue); }

/* Technology taxonomy */
.technologyDirectory { padding-top: 70px; }
.technologyFamilies { display: grid; gap: 75px; }
.technologyFamilyHead { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 4px solid var(--navy); }
.technologyFamilyHead h2 { margin: 0; color: var(--navy); font-size: 29px; letter-spacing: -.025em; }
.technologyFamilyHead span { color: var(--blue); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.technologyGrid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.technologyCard { min-height: 205px; display: grid; grid-template-columns: 49px 1fr; gap: 18px; padding: 23px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.technologyCard:hover { background: #f4f8ff; }
.technologyCard > b { width: 47px; height: 47px; display: grid; place-items: center; background: var(--navy); color: var(--yellow); font-size: 11px; }
.technologyCard > div > span { color: var(--blue); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.technologyCard h3 { margin: 7px 0 9px; color: var(--navy); font-size: 19px; }
.technologyCard p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.technologyCard strong { display: block; margin-top: 18px; color: var(--blue); font-size: 10px; }
.technologyCard strong i { margin-left: 7px; font-size: 15px; font-style: normal; }
.technologyIdentity { padding: 27px; display: grid; background: var(--navy); color: white; border-left: 7px solid var(--yellow); box-shadow: 13px 13px 0 #cbdcff; }
.technologyIdentity > b { width: 65px; height: 65px; display: grid; place-items: center; margin-bottom: 25px; background: var(--blue); color: var(--yellow); font-size: 20px; }
.technologyIdentity > span { margin-top: 13px; color: #8fa5be; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.technologyIdentity > strong { margin-top: 4px; padding-bottom: 11px; border-bottom: 1px solid #2d425d; font-size: 14px; }
.technologyCourseGrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.technologyCourseCard { min-height: 410px; padding: 25px; display: flex; flex-direction: column; border: 1px solid var(--line); border-top: 5px solid var(--blue); }
.technologyCourseCard > div { display: flex; justify-content: space-between; gap: 20px; color: var(--blue); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.technologyCourseCard > div b { color: #7b8797; }
.technologyCourseCard h2 { margin: 24px 0 12px; color: var(--navy); font-size: 22px; line-height: 1.2; }
.technologyCourseCard > p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.technologyCourseCard ul { margin: 20px 0 25px; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.technologyCourseCard li { padding: 10px 0 10px 17px; position: relative; border-bottom: 1px solid var(--line); color: #4d5b70; font-size: 11px; }
.technologyCourseCard li::before { content: ""; position: absolute; left: 0; top: 15px; width: 6px; height: 6px; background: var(--yellow); }
.technologyCourseCard footer { margin-top: auto; padding-top: 16px; display: flex; align-items: center; justify-content: space-between; gap: 15px; color: #788598; font-size: 10px; }
.technologyCourseCard footer a { color: var(--blue); font-weight: 800; }
.technologyCourseCard footer b { margin-left: 5px; }

/* Profils de formateurs */
.trainerSection { border-top: 1px solid var(--line); background: #fff; }
.trainerHeading > p { padding-left: 22px; border-left: 4px solid var(--yellow); }
.trainerGrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.trainerCard { min-height: 465px; display: flex; flex-direction: column; padding: 24px; border: 1px solid var(--line); border-top: 5px solid var(--navy); background: white; }
.trainerCardTop { display: grid; grid-template-columns: 58px 1fr; gap: 14px; align-items: center; }
.trainerCardAvatar { width: 58px; height: 58px; display: grid; grid-template-columns: 1fr 20px; background: var(--navy); color: white; }
.trainerCardAvatar b { display: grid; place-items: center; color: var(--yellow); font-size: 13px; }
.trainerCardAvatar span { display: grid; place-items: center; background: var(--blue); font-size: 8px; font-weight: 850; writing-mode: vertical-rl; }
.trainerCardTop > div:last-child { display: grid; gap: 5px; }
.trainerCardTop span { color: var(--blue); font-size: 9px; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }
.trainerCardTop strong { color: #6e7b8d; font-size: 10px; }
.trainerCard h3 { margin: 25px 0 11px; color: var(--navy); font-size: 20px; line-height: 1.28; }
.trainerCard h3 a:hover { color: var(--blue); }
.trainerCard > p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.trainerSkills { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 19px; }
.trainerSkills span { padding: 6px 8px; border: 1px solid #d2deed; background: #f6f9fd; color: #41516a; font-size: 9px; font-weight: 750; }
.trainerCardFoot { margin-top: auto; padding-top: 22px; display: grid; gap: 13px; }
.trainerProfileLink { display: flex; align-items: center; justify-content: space-between; padding-bottom: 11px; border-bottom: 1px solid var(--line); color: var(--blue); font-size: 10px; font-weight: 850; }
.trainerProfileLink span { font-size: 16px; }
.buttonTrainer { min-height: 45px; padding: 9px 13px; background: var(--blue); color: white; font-size: 10px; line-height: 1.25; text-align: center; }
.trainerDisclosure { margin-top: 24px; display: grid; grid-template-columns: 190px 1fr; gap: 25px; padding: 20px 24px; border-left: 6px solid var(--yellow); background: var(--navy); color: white; }
.trainerDisclosure b { font-size: 13px; }
.trainerDisclosure p { margin: 0; color: #afc0d3; font-size: 11px; line-height: 1.65; }
.otherTrainersSection { border-top: 1px solid var(--line); }
.otherTrainerGrid { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.otherTrainerGrid > a, .similarTrainerGrid > a { min-height: 96px; display: grid; grid-template-columns: 37px 1fr auto; align-items: center; gap: 11px; padding: 14px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.otherTrainerGrid > a:hover, .similarTrainerGrid > a:hover { background: #f1f6ff; }
.otherTrainerGrid > a > b, .similarTrainerGrid > a > b { width: 36px; height: 36px; display: grid; place-items: center; background: var(--navy); color: var(--yellow); font-size: 9px; }
.otherTrainerGrid span, .similarTrainerGrid span { display: grid; gap: 4px; min-width: 0; }
.otherTrainerGrid strong, .similarTrainerGrid strong { color: var(--navy); font-size: 10px; line-height: 1.3; }
.otherTrainerGrid small, .similarTrainerGrid small { color: #778497; font-size: 8px; line-height: 1.4; }
.otherTrainerGrid i, .similarTrainerGrid i { color: var(--blue); font-size: 15px; font-style: normal; }
.trainerPrefill { display: grid; gap: 5px; margin-top: 16px; padding: 13px 15px; border-left: 4px solid var(--yellow); background: #edf4ff; }
.trainerPrefill b { color: var(--blue); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.trainerPrefill span { color: var(--navy); font-size: 12px; font-weight: 850; }
.trainerPrefill small { color: #657489; font-size: 9px; line-height: 1.5; }

.trainerDirectoryMetric { padding: 27px; display: grid; background: var(--navy); color: white; border-top: 7px solid var(--yellow); }
.trainerDirectoryMetric > span { color: #93aac2; font-size: 9px; font-weight: 850; letter-spacing: .12em; }
.trainerDirectoryMetric strong { margin-top: 17px; font-size: 28px; }
.trainerDirectoryMetric b { margin-top: 5px; color: var(--yellow); font-size: 17px; }
.trainerDirectoryMetric p { margin: 20px 0 0; padding-top: 16px; border-top: 1px solid #2b435d; color: #a9bbce; font-size: 11px; line-height: 1.6; }
.trainerSubjectGrid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.trainerSubjectGrid article { min-height: 310px; display: flex; flex-direction: column; padding: 23px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.trainerSubjectGrid article > b { width: 45px; height: 45px; display: grid; place-items: center; background: var(--navy); color: var(--yellow); font-size: 11px; }
.trainerSubjectGrid article > span { margin-top: 17px; color: var(--blue); font-size: 9px; font-weight: 850; text-transform: uppercase; }
.trainerSubjectGrid h2 { margin: 7px 0 9px; color: var(--navy); font-size: 20px; }
.trainerSubjectGrid p { margin: 0 0 19px; color: var(--muted); font-size: 11px; line-height: 1.6; }
.trainerSubjectGrid article > div { margin-top: auto; border-top: 1px solid var(--line); }
.trainerSubjectGrid article > div a { min-height: 35px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); color: #58667a; font-size: 9px; font-weight: 750; }
.trainerSubjectGrid article > div a span { color: var(--blue); }
.trainerMethodGrid { display: grid; grid-template-columns: .72fr 1.28fr; gap: 80px; align-items: start; }
.trainerMethodGrid > div:first-child h2 { margin: 0; color: var(--navy); font-size: clamp(34px, 4vw, 52px); line-height: 1.08; letter-spacing: -.04em; }
.trainerMethodGrid > div:first-child > p:not(.eyebrow) { color: var(--muted); line-height: 1.75; }
.trainerMethodSteps { border-top: 1px solid var(--line); }
.trainerMethodSteps article { display: grid; grid-template-columns: 52px 1fr; gap: 16px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.trainerMethodSteps b { color: var(--blue); font-size: 11px; }
.trainerMethodSteps h3 { margin: 0; color: var(--navy); font-size: 18px; }
.trainerMethodSteps p { grid-column: 2; margin: -8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }

.trainerProfileIdentity { padding: 27px; display: grid; background: var(--navy); color: white; border-left: 7px solid var(--yellow); }
.trainerProfileIdentity > b { width: 68px; height: 68px; display: grid; place-items: center; margin-bottom: 24px; background: var(--blue); color: var(--yellow); font-size: 20px; }
.trainerProfileIdentity > span { margin-top: 13px; color: #91a7c0; font-size: 9px; letter-spacing: .08em; }
.trainerProfileIdentity > strong { margin-top: 5px; padding-bottom: 12px; border-bottom: 1px solid #2d435c; font-size: 14px; }
.trainerProfileIdentity small { margin-top: 18px; color: #a9bbce; font-size: 9px; line-height: 1.55; }
.trainerProfileContent { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 78px; align-items: start; }
.trainerExpertiseList { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.trainerExpertiseList > div { min-height: 65px; display: grid; grid-template-columns: 35px 1fr; align-items: center; gap: 10px; padding: 10px 15px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.trainerExpertiseList b { color: var(--blue); font-size: 9px; }
.trainerExpertiseList strong { color: var(--navy); font-size: 12px; }
.trainerProfileAside { position: sticky; top: 104px; padding: 25px; border-top: 6px solid var(--yellow); background: var(--navy); color: white; }
.trainerProfileAside > span { color: #91a7c0; font-size: 9px; font-weight: 850; letter-spacing: .1em; }
.trainerProfileAside h2 { margin: 15px 0 11px; font-size: 23px; line-height: 1.2; }
.trainerProfileAside > p { color: #aebfd1; font-size: 11px; line-height: 1.65; }
.trainerProfileAside > div { display: grid; gap: 4px; padding: 13px 0; border-top: 1px solid #2d435c; }
.trainerProfileAside > div b { color: #91a7c0; font-size: 8px; text-transform: uppercase; }
.trainerProfileAside > div strong { font-size: 11px; line-height: 1.5; }
.trainerProfileAside .button { width: 100%; margin-top: 15px; font-size: 11px; }
.trainerProfileAside .textLink { margin-top: 18px; color: var(--yellow); font-size: 10px; }
.similarTrainerGrid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }

/* Forms */
.leadForm { padding: 38px; background: white; border: 1px solid var(--line); border-top: 7px solid var(--blue); box-shadow: 0 20px 60px rgba(7,26,51,.09); }
.leadFormCompact { padding: 27px; }
.formTitle { margin-bottom: 28px; }
.formTitle h2 { margin: 0; color: var(--navy); font-size: 29px; line-height: 1.12; letter-spacing: -.035em; }
.leadFormCompact .formTitle h2 { font-size: 25px; }
.formTitle > p:not(.eyebrow) { margin: 12px 0 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.formGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.formGrid label { display: block; min-width: 0; }
.formGrid .span2 { grid-column: 1 / -1; }
.formGrid label > span { display: block; margin-bottom: 7px; color: #566478; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.formGrid input, .formGrid select, .formGrid textarea { width: 100%; border: 1px solid #ccd6e2; background: #fbfdff; color: var(--navy); padding: 0 12px; outline: 0; font-size: 13px; }
.formGrid input, .formGrid select { height: 45px; }
.formGrid textarea { padding-block: 11px; resize: vertical; }
.formGrid input:focus, .formGrid select:focus, .formGrid textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(11,92,255,.1); }
.formRequired { color: #d4380d; font-weight: 800; }
.formChoice { display: flex; flex-wrap: wrap; gap: 10px; min-width: 0; margin: 0; padding: 0; border: 0; }
.formChoice legend { width: 100%; margin-bottom: 7px; padding: 0; color: #566478; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.formGrid .formChoice label { display: flex; flex: 1 1 160px; align-items: center; gap: 9px; min-height: 45px; padding: 0 14px; border: 1px solid #ccd6e2; border-radius: 10px; background: #fbfdff; color: var(--navy); font-size: 13px; font-weight: 700; cursor: pointer; }
.formGrid .formChoice label.isChosen { border-color: var(--blue); background: #eef4ff; box-shadow: 0 0 0 3px rgba(11,92,255,.1); }
.formGrid .formChoice input { width: auto; height: auto; margin: 0; accent-color: var(--blue); }

/* Searchable "type to filter" select (formation pickers, etc.) */
.searchableSelect { position: relative; }
.searchableSelect::after { content: "⌄"; position: absolute; top: 50%; right: 12px; transform: translateY(-50%); color: #566478; font-size: 15px; line-height: 1; pointer-events: none; }
.searchableSelectNative { display: none; }
.searchableSelectInput { width: 100%; height: 45px; border: 1px solid #ccd6e2; background: #fbfdff; color: var(--navy); padding: 0 30px 0 12px; outline: 0; font-size: 13px; }
.searchableSelectInput:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(11,92,255,.1); }
.searchableSelectList { position: absolute; z-index: 60; top: calc(100% + 4px); left: 0; right: 0; max-height: 260px; overflow-y: auto; background: white; border: 1px solid var(--line); box-shadow: 0 18px 40px rgba(7,26,51,.16); }
.searchableSelectOption { padding: 10px 12px; font-size: 12.5px; color: #344055; cursor: pointer; }
.searchableSelectOption:hover, .searchableSelectOption.highlighted { background: #f1f6ff; color: var(--blue); }
.searchableSelectOption.selected { font-weight: 800; color: var(--navy); }
.searchableSelectAdd { position: sticky; bottom: 0; border-top: 1px solid var(--line); background: #fbfdff; color: var(--blue); font-weight: 750; }
.searchableSelectAdd b { display: inline-grid; place-items: center; width: 15px; height: 15px; margin-right: 7px; background: var(--blue); color: white; font-size: 11px; font-weight: 900; border-radius: 50%; }
.searchableSelectAdd:hover, .searchableSelectAdd.highlighted { background: #eaf2ff; }
.searchableSelectEmpty { padding: 14px 12px; font-size: 12px; color: #8290a3; text-align: center; }
/* Finder select: match its borderless, transparent look */
.finder .searchableSelect::after { right: 2px; color: var(--navy); }
.finder .searchableSelectInput { height: auto; border: 0; background: transparent; padding: 0 22px 0 0; font-size: 14px; font-weight: 750; color: var(--navy); }
.finder .searchableSelectList { left: -18px; right: -18px; top: calc(100% + 13px); }
/* Compact admin contexts (filter bars, inline table rows) */
.featuredGroupRow .searchableSelect::after, .adminFilterBar .searchableSelect::after { right: 8px; font-size: 13px; }
.featuredGroupRow .searchableSelectInput, .adminFilterBar .searchableSelectInput { height: 36px; font-size: 12px; padding: 0 24px 0 8px; }
.featuredGroupRow .searchableSelectList, .adminFilterBar .searchableSelectList { font-size: 12px; }

.consent { display: grid; grid-template-columns: 17px 1fr; gap: 10px; margin-top: 20px; color: #5b687a; font-size: 11px; line-height: 1.55; }
.consent input { width: 16px; height: 16px; accent-color: var(--blue); }
.formSubmit { width: 100%; margin-top: 20px; }
.formSubmit:disabled { opacity: .65; cursor: wait; }
.formPrivacy { margin: 12px 0 0; color: #8792a2; font-size: 9px; line-height: 1.5; text-align: center; }
.formError { padding: 10px 12px; background: #fff0f0; border-left: 4px solid #d22; color: #8b1c1c; font-size: 12px; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.formSuccess { min-height: 350px; padding: 45px; display: flex; flex-direction: column; justify-content: center; background: #f2fbf7; border: 1px solid #bfe6d2; border-top: 7px solid #0eb368; }
.formSuccess > span { width: 44px; height: 44px; display: grid; place-items: center; background: #0eb368; color: white; font-size: 24px; }
.formSuccess h3 { margin: 20px 0 10px; color: var(--navy); font-size: 28px; }
.formSuccess p { color: var(--muted); line-height: 1.65; }
.formSuccess .eyebrow { margin-top: 18px; }
.formSuccess .eyebrow i { width: 20px; height: 3px; background: #0eb368; }
.formSuccess .textLink { border: 0; background: transparent; padding: 0; align-self: flex-start; }
.groupSignal { padding: 12px; background: white; border-left: 4px solid #0eb368; font-size: 12px; }
.groupSignal strong { color: #0a8f55; }
.formStandalone { max-width: 920px; }

/* City index and city page */
.regionGroups { display: grid; gap: 55px; }
.regionTitle { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 15px; border-bottom: 4px solid var(--navy); }
.regionTitle span { color: var(--navy); font-size: 22px; font-weight: 850; }
.regionTitle b { color: var(--blue); font-size: 11px; text-transform: uppercase; }
.regionCities { display: grid; grid-template-columns: repeat(3, 1fr); border-left: 1px solid var(--line); }
.regionCities a { min-height: 110px; position: relative; display: flex; flex-direction: column; justify-content: center; padding: 20px 42px 20px 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.regionCities a strong { color: var(--navy); font-size: 16px; }
.regionCities a > span { margin-top: 8px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.regionCities a > b { position: absolute; right: 18px; color: var(--blue); }
.regionCities a:hover { background: #f5f9ff; }
.citySectorPanel { padding: 25px; background: var(--navy); color: white; box-shadow: 13px 13px 0 var(--yellow); }
.citySectorPanel > span { color: #8da3bd; font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.citySectorPanel h2 { margin: 10px 0 20px; font-size: 25px; }
.citySectorPanel div { min-height: 48px; display: flex; align-items: center; gap: 14px; border-top: 1px solid #2e4662; }
.citySectorPanel b { color: var(--yellow); font-size: 9px; }
.citySectorPanel strong { font-size: 12px; text-transform: capitalize; }
.localEditorial { display: grid; grid-template-columns: .8fr 1.2fr; gap: 90px; }
.localEditorial h2 { margin: 0; color: var(--navy); font-size: clamp(34px, 4vw, 50px); letter-spacing: -.04em; line-height: 1.1; }
.localEditorial > div:last-child { color: var(--muted); font-size: 16px; line-height: 1.8; }
.nearbyStrip { background: var(--navy); color: white; }
.nearbyStrip > div { min-height: 90px; display: flex; align-items: center; gap: 30px; }
.nearbyStrip strong { color: var(--yellow); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }
.nearbyStrip a { color: #aebfd2; font-size: 12px; }
.nearbyStrip a span { margin-left: 7px; color: var(--yellow); }

/* Enterprise, process and partner pages */
.enterpriseHero, .partnerHero { padding-block: 38px 82px; background: var(--navy); color: white; }
.enterpriseHero .breadcrumbs, .partnerHero .breadcrumbs { color: #8096af; }
.enterpriseHero .breadcrumbs b, .partnerHero .breadcrumbs b { color: #b7c5d5; }
.enterpriseGrid, .partnerHeroGrid { display: grid; grid-template-columns: 1fr 410px; gap: 85px; align-items: end; }
.enterpriseHero h1, .partnerHero h1 { color: white; }
.enterpriseGrid > div:first-child > p:not(.eyebrow), .partnerHeroGrid > div:first-child > p:not(.eyebrow) { max-width: 730px; color: #b9c7d7; font-size: 17px; line-height: 1.75; }
.enterpriseBrief, .partnerCriteria { background: white; color: var(--navy); border-top: 6px solid var(--yellow); }
.enterpriseBrief > span, .partnerCriteria > span { display: block; padding: 16px 20px; color: var(--blue); font-size: 9px; font-weight: 850; letter-spacing: .12em; border-bottom: 1px solid var(--line); }
.enterpriseBrief > div { min-height: 72px; display: grid; grid-template-columns: 32px 1fr; gap: 12px; align-items: center; padding: 12px 20px; border-bottom: 1px solid var(--line); }
.enterpriseBrief b, .partnerCriteria b { color: var(--blue); font-size: 9px; }
.enterpriseBrief p, .enterpriseBrief strong { display: block; margin: 0; }
.enterpriseBrief strong { margin-bottom: 3px; font-size: 12px; }
.enterpriseBrief p { color: var(--muted); font-size: 10px; line-height: 1.45; }
.useCaseGrid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.useCaseGrid article { min-height: 230px; padding: 25px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.useCaseGrid article > span, .partnerBenefits article > span { color: var(--blue); font-size: 10px; font-weight: 800; }
.useCaseGrid h3 { margin: 50px 0 10px; color: var(--navy); font-size: 20px; }
.useCaseGrid p { color: var(--muted); font-size: 13px; line-height: 1.65; }
.processTimeline { display: grid; grid-template-columns: .75fr 1.25fr; gap: 90px; }
.processTimeline h2 { margin: 0; color: var(--navy); font-size: clamp(34px, 4vw, 50px); line-height: 1.1; letter-spacing: -.04em; }
.processTimeline ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.processTimeline li { min-height: 83px; display: grid; grid-template-columns: 45px 1fr; align-items: center; gap: 20px; border-bottom: 1px solid var(--line); }
.processTimeline li > b { color: var(--blue); font-size: 11px; }
.processTimeline li span { display: grid; gap: 5px; color: var(--muted); font-size: 12px; }
.processTimeline li strong { color: var(--navy); font-size: 15px; }
.processFormula { min-height: 200px; display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 9px; align-content: center; background: var(--navy); padding: 25px; color: white; }
.processFormula span { height: 44px; display: grid; place-items: center; background: #173451; font-size: 10px; font-weight: 800; }
.processFormula b { align-self: center; color: var(--yellow); }
.processFormula strong { grid-column: 1 / -1; height: 50px; display: grid; place-items: center; background: var(--blue); color: white; font-size: 13px; }
.processSteps { max-width: 970px; }
.processSteps article { min-height: 190px; display: grid; grid-template-columns: 100px 1fr; gap: 50px; align-items: center; border-bottom: 1px solid var(--line); }
.processSteps article > b { color: var(--blue); font-size: 41px; letter-spacing: -.04em; }
.processSteps h2 { margin: 0 0 10px; color: var(--navy); font-size: 30px; }
.processSteps p { margin: 0; color: var(--muted); line-height: 1.7; }
.trustGrid { display: grid; grid-template-columns: .65fr 1.35fr; gap: 80px; }
.trustGrid h2 { color: var(--navy); font-size: 48px; letter-spacing: -.04em; }
.trustItems { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.trustItems article { padding: 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.trustItems h3 { margin: 0 0 10px; color: var(--navy); font-size: 16px; }
.trustItems p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.partnerCriteria h2 { margin: 0; padding: 20px; font-size: 24px; }
.partnerCriteria > div { min-height: 52px; display: flex; align-items: center; gap: 14px; padding: 0 20px; border-top: 1px solid var(--line); color: #4e5b6d; font-size: 12px; }
.partnerBenefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
.partnerBenefits article { min-height: 250px; padding: 25px; background: var(--pale); border-top: 5px solid var(--blue); }
.partnerBenefits h3 { margin: 55px 0 10px; color: var(--navy); font-size: 22px; }
.partnerBenefits p { color: var(--muted); font-size: 13px; line-height: 1.7; }
.contactPromise { min-height: 175px; padding: 25px; background: white; border-top: 6px solid var(--yellow); box-shadow: 0 14px 35px rgba(7,26,51,.08); }
.contactPromise span { color: var(--blue); font-size: 9px; font-weight: 850; letter-spacing: .11em; }
.contactPromise strong { display: block; margin-top: 40px; color: var(--navy); font-size: 20px; }
.contactPromise p { color: var(--muted); font-size: 11px; line-height: 1.5; }

/* Legal and error pages */
.legalHero { padding-block: 38px 68px; background: var(--pale); border-bottom: 1px solid var(--line); }
.legalHero p { max-width: 680px; color: var(--muted); line-height: 1.7; }
.legalContent { max-width: 820px; }
.legalContent h2 { margin: 42px 0 13px; color: var(--navy); font-size: 26px; }
.legalContent p { color: var(--muted); line-height: 1.8; }
.legalContent p strong, .legalContent li strong { color: var(--navy); }
.legalContent ul { margin: 0 0 18px; color: var(--muted); }
.legalContent li { position: relative; padding-left: 20px; line-height: 1.8; margin-bottom: 8px; }
.legalContent li::before { content: ""; position: absolute; left: 0; top: 10px; width: 6px; height: 6px; background: var(--yellow); }
.legalContent a { color: var(--blue); text-decoration: underline; text-underline-offset: 2px; }
.legalContent a:hover { color: var(--navy); }
.notFound { min-height: 70vh; display: grid; place-items: center; padding: 70px 20px; background: var(--pale); text-align: center; }
.notFound > div { max-width: 680px; }
.notFound > div > span { color: var(--blue); font-size: 96px; font-weight: 900; line-height: 1; }
.notFound h1 { color: var(--navy); font-size: 44px; }
.notFound p { color: var(--muted); }
.notFound > div > div { display: flex; justify-content: center; align-items: center; gap: 25px; margin-top: 25px; }

/* Cookie consent banner */
.cookieBanner { position: fixed; left: 0; right: 0; bottom: 0; z-index: 500; background: var(--navy); border-top: 1px solid #24354a; box-shadow: 0 -12px 30px rgba(7,26,51,.25); }
.cookieBannerInner { padding-block: 20px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.cookieBannerInner p { margin: 0; max-width: 720px; color: #b7c3d4; font-size: 12.5px; line-height: 1.7; }
.cookieBannerInner a { color: var(--yellow); }
.cookieBannerActions { display: flex; gap: 12px; flex-shrink: 0; }
.cookieBannerReject, .cookieBannerAccept { min-height: 42px; padding: 0 18px; font-size: 12.5px; font-weight: 800; border: 1px solid transparent; }
.cookieBannerReject { background: transparent; border-color: #3a4c64; color: #b7c3d4; }
.cookieBannerReject:hover { border-color: #b7c3d4; color: white; }
.cookieBannerAccept { background: var(--yellow); color: var(--navy); }
.cookieBannerAccept:hover { transform: translateY(-1px); }
@media (max-width: 720px) {
  .cookieBannerInner { flex-direction: column; align-items: stretch; gap: 16px; }
  .cookieBannerActions { justify-content: flex-end; }
}

/* WhatsApp floating button */
.whatsappButton { position: fixed; right: 22px; bottom: 22px; z-index: 480; display: flex; align-items: center; justify-content: center; width: 58px; height: 58px; border-radius: 50%; background: #25d366; color: white; box-shadow: 0 12px 26px rgba(7,26,51,.3); transition: bottom .2s ease, transform .18s ease, background .18s ease; }
.whatsappButton:hover, .whatsappButton:focus-visible { background: #1ebe5b; transform: translateY(-2px); }
.whatsappButton svg { width: 30px; height: 30px; position: relative; z-index: 1; }
.whatsappButtonRing { position: absolute; inset: 0; border-radius: 50%; background: #25d366; opacity: .55; animation: whatsappPulse 2.2s ease-out infinite; }
@keyframes whatsappPulse {
  0% { transform: scale(1); opacity: .55; }
  100% { transform: scale(1.7); opacity: 0; }
}
body.cookieBannerVisible .whatsappButton { bottom: 100px; }
@media (max-width: 720px) {
  body.cookieBannerVisible .whatsappButton { bottom: 190px; }
}
@media (max-width: 560px) {
  .whatsappButton { right: 16px; bottom: 16px; width: 52px; height: 52px; }
  .whatsappButton svg { width: 27px; height: 27px; }
}

/* Direct-form popup: trigger button + modal */
.formPopupButton { position: fixed; right: 22px; bottom: 94px; z-index: 480; display: flex; align-items: center; justify-content: center; width: 58px; height: 58px; border-radius: 50%; background: var(--blue); color: white; box-shadow: 0 12px 26px rgba(7,26,51,.3); transition: bottom .2s ease, transform .18s ease, background .18s ease; }
.formPopupButton:hover, .formPopupButton:focus-visible { background: var(--blue-dark); transform: translateY(-2px); }
.formPopupButton svg { width: 26px; height: 26px; }
body.cookieBannerVisible .formPopupButton { bottom: 172px; }
@media (max-width: 720px) {
  body.cookieBannerVisible .formPopupButton { bottom: 256px; }
}
@media (max-width: 560px) {
  .formPopupButton { right: 16px; bottom: 82px; width: 52px; height: 52px; }
  .formPopupButton svg { width: 23px; height: 23px; }
}

.formPopupOverlay { position: fixed; inset: 0; z-index: 900; display: flex; align-items: center; justify-content: center; padding: 20px; }
.formPopupBackdrop { position: absolute; inset: 0; background: rgba(7,26,51,.55); }
.formPopupPanel { position: relative; width: min(560px, 100%); max-height: min(680px, 90vh); overflow-y: auto; background: white; box-shadow: 0 30px 80px rgba(7,26,51,.35); }
.formPopupClose { position: absolute; top: 14px; right: 14px; z-index: 2; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--pale); color: var(--navy); font-size: 20px; line-height: 1; }
.formPopupClose:hover, .formPopupClose:focus-visible { background: var(--line); }
.formPopupChoices { padding: 44px 36px; }
.formPopupChoices h2 { margin: 0; color: var(--navy); font-size: 27px; line-height: 1.15; letter-spacing: -.03em; }
.formPopupOptions { margin-top: 24px; display: grid; gap: 14px; }
.formPopupOption { display: flex; align-items: center; gap: 16px; padding: 20px; text-align: left; border: 1px solid var(--line); background: var(--pale); transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.formPopupOption:hover, .formPopupOption:focus-visible { border-color: var(--blue); background: #f1f6ff; transform: translateY(-2px); outline: 0; }
.formPopupOptionText { flex: 1; }
.formPopupOptionText strong { display: block; color: var(--navy); font-size: 15px; }
.formPopupOptionText small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.formPopupOption i { color: var(--blue); font-size: 18px; font-style: normal; }
.formPopupFormWrap { padding: 36px; }
.formPopupBack { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 18px; color: var(--blue); font-size: 12px; font-weight: 800; }
.formPopupBack:hover { text-decoration: underline; }
.formPopupFormWrap .leadForm { padding: 0; border: 0; box-shadow: none; }
body.formPopupOpen { overflow: hidden; }
@media (max-width: 560px) {
  .formPopupChoices, .formPopupFormWrap { padding: 26px 20px; }
}

/* Owner dashboard */
.adminPage { min-height: 100vh; background: #eef3f8; }
.adminHead { padding-block: 34px 58px; background: var(--navy); color: white; }
.adminHead .breadcrumbs { color: #8096af; }
.adminHead .breadcrumbs b { color: #b7c5d5; }
.adminHeadRow { display: flex; align-items: end; justify-content: space-between; gap: 50px; }
.adminHead h1 { margin: 0; font-size: clamp(42px, 5vw, 64px); letter-spacing: -.05em; }
.adminHeadRow > div:first-child > p:not(.eyebrow) { color: #aebfd1; }
.adminUser { min-width: 260px; padding: 18px; background: #112c49; border-left: 5px solid var(--yellow); }
.adminUser span, .adminUser strong, .adminUser a { display: block; }
.adminUser span { color: #8097b0; font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.adminUser strong { margin-block: 7px; font-size: 13px; }
.adminUser a { color: var(--yellow); font-size: 10px; font-weight: 800; }
.adminBody { padding-block: 38px 80px; }
.adminMetrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.adminMetrics article { min-height: 145px; padding: 20px; background: white; border-top: 5px solid var(--blue); }
.adminMetrics span { display: block; color: #798698; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.adminMetrics strong { display: block; margin-top: 20px; color: var(--navy); font-size: 38px; line-height: 1; }
.adminMetrics p { margin: 7px 0 0; color: var(--muted); font-size: 11px; }
.adminSection { margin-top: 32px; padding: 26px; background: white; border: 1px solid #dce3eb; }
.adminSectionTitle { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 22px; }
.adminSectionActions { display: flex; align-items: center; gap: 10px; }
.adminSectionTitle span { color: var(--blue); font-size: 9px; font-weight: 850; letter-spacing: .11em; }
.adminSectionTitle h2 { margin: 6px 0 0; color: var(--navy); font-size: 27px; }
.adminExport { min-height: 38px; display: inline-flex; align-items: center; padding: 0 13px; border: 1px solid var(--blue); color: var(--blue); font-size: 10px; font-weight: 800; }
.adminExport:hover { background: var(--blue); color: white; }

/* Admin filter bar (leads / partners management pages) */
.adminFilterBar { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; align-items: end; }
.adminFilterBar label { display: block; min-width: 0; }
.adminFilterBar .span2 { grid-column: span 2; }
.adminFilterBar label > span { display: block; margin-bottom: 6px; color: #566478; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.adminFilterBar input, .adminFilterBar select { width: 100%; height: 38px; border: 1px solid #ccd6e2; background: #fbfdff; padding: 0 10px; font-size: 12px; color: var(--navy); outline: 0; }
.adminFilterBar input:focus, .adminFilterBar select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(11,92,255,.1); }
.adminFilterActions { display: flex; align-items: center; gap: 16px; }

/* Admin data table (leads / partners management pages) */
.adminDataTable { border-top: 1px solid var(--line); }
.adminDataHead { display: grid; grid-template-columns: 28px 75px 1.2fr 1.3fr 1fr 150px 40px; gap: 14px; align-items: center; padding: 0 4px; min-height: 38px; color: #8290a3; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.adminDataRow { display: grid; grid-template-columns: 28px 75px 1.2fr 1.3fr 1fr 150px 40px; gap: 14px; align-items: center; padding: 12px 4px 12px 10px; border-top: 1px solid var(--line); border-left: 4px solid transparent; font-size: 12px; color: #586578; }
.adminDataRow form { display: contents; }
.adminDataRow strong { display: block; color: var(--navy); font-size: 13px; margin-bottom: 2px; }
.adminDataRow a { display: block; color: var(--blue); font-size: 11px; }
.adminDataRow select { height: 34px; border: 1px solid #ccd6e2; background: #fbfdff; padding: 0 8px; font-size: 11px; color: var(--navy); }

/* Status colors — red by default for "not yet processed" states */
.adminDataRow[data-status="nouveau"], .adminDataRow[data-status="a-qualifier"],
.adminDataRow[data-status="nouveau"] + .adminDataDetails, .adminDataRow[data-status="a-qualifier"] + .adminDataDetails { border-left-color: #d9463b; }
.adminDataRow[data-status="nouveau"], .adminDataRow[data-status="a-qualifier"] { background: #fff6f5; }
.adminDataRow[data-status="contacte"], .adminDataRow[data-status="contacte"] + .adminDataDetails { border-left-color: #d99a1f; }
.adminDataRow[data-status="contacte"] { background: #fffaf2; }
.adminDataRow[data-status="qualifie"], .adminDataRow[data-status="qualifie"] + .adminDataDetails { border-left-color: var(--blue); }
.adminDataRow[data-status="qualifie"] { background: #f4f8ff; }
.adminDataRow[data-status="inscrit"], .adminDataRow[data-status="actif"],
.adminDataRow[data-status="inscrit"] + .adminDataDetails, .adminDataRow[data-status="actif"] + .adminDataDetails { border-left-color: #0eb368; }
.adminDataRow[data-status="inscrit"], .adminDataRow[data-status="actif"] { background: #f2fbf7; }
.adminDataRow[data-status="perdu"], .adminDataRow[data-status="rejete"],
.adminDataRow[data-status="perdu"] + .adminDataDetails, .adminDataRow[data-status="rejete"] + .adminDataDetails { border-left-color: #9aa5b3; }
.adminDataRow[data-status="perdu"], .adminDataRow[data-status="rejete"] { background: #f7f8f9; }

.adminDataToggle { width: 22px; height: 22px; border: 1px solid var(--line); background: white; color: #7a8798; font-size: 9px; display: grid; place-items: center; transition: transform .15s ease, color .15s ease, border-color .15s ease; }
.adminDataToggle:hover { color: var(--blue); border-color: var(--blue); }
.adminDataToggle.open { transform: rotate(90deg); color: var(--blue); border-color: var(--blue); }

.adminDataDetails { margin: 0 0 4px; padding: 14px 16px; background: rgba(255,255,255,.6); border-left: 4px solid transparent; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px 20px; font-size: 11.5px; }
.adminDataDetails > div { display: grid; gap: 3px; min-width: 0; }
.adminDataDetails b { color: #8290a3; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.adminDataDetails span { color: var(--navy); word-break: break-word; }
.adminDataDetailsMessage { grid-column: 1 / -1; }
.adminDataDetailsMessage p { margin: 4px 0 0; color: var(--muted); line-height: 1.6; }

.adminPagination { display: flex; align-items: center; justify-content: space-between; margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 12px; color: #7a8798; }
.adminPageLinks { display: flex; gap: 6px; align-items: center; }
.adminPageLinks a, .adminPageLinks span { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 30px; padding: 0 6px; border: 1px solid var(--line); color: #455267; font-weight: 700; font-size: 11px; }
.adminPageLinks a:hover { border-color: var(--blue); color: var(--blue); }
.adminPageLinks span.current { background: var(--blue); border-color: var(--blue); color: white; }
.adminPageLinks span[aria-disabled] { color: #c3cbd6; }

.groupTable { border-top: 1px solid var(--line); }
.tableHead, .tableRow { display: grid; grid-template-columns: minmax(280px, 1fr) 110px 75px 65px 110px; gap: 15px; align-items: center; }
.tableHead { min-height: 42px; color: #8290a3; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.tableRow { min-height: 72px; border-top: 1px solid var(--line); color: #586578; font-size: 11px; }
.tableRow > div strong, .tableRow > div span { display: block; }
.tableRow > div strong { color: var(--navy); font-size: 13px; }
.tableRow > div span { margin-top: 4px; color: var(--blue); }
.tableRow > b { color: var(--navy); font-size: 14px; }
.tableRow > i { padding: 7px 8px; font-style: normal; font-size: 9px; font-weight: 800; text-align: center; background: #edf2f7; color: #657386; }
.tableRow > i.warm { background: #fff7db; color: #8f6700; }
.tableRow > i.ready { background: #ddf8e9; color: #087b44; }
.leadCards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.leadCards article { padding: 20px; border: 1px solid var(--line); border-top: 4px solid var(--blue); }
.leadCardTop { display: flex; justify-content: space-between; gap: 20px; color: #8995a5; font-size: 9px; text-transform: uppercase; }
.leadCards h3 { margin: 14px 0 4px; color: var(--navy); font-size: 18px; }
.leadCards article > p { margin: 0; color: var(--blue); font-size: 11px; }
.leadContact { display: flex; flex-wrap: wrap; gap: 15px; margin-block: 15px; }
.leadContact a { color: #445267; font-size: 11px; font-weight: 750; }
.leadCards dl { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 0; background: var(--line); border: 1px solid var(--line); }
.leadCards dl > div { padding: 9px; background: #f9fbfd; }
.leadCards dt { color: #8a96a6; font-size: 8px; text-transform: uppercase; }
.leadCards dd { margin: 4px 0 0; color: var(--navy); font-size: 10px; }
.leadCards blockquote { margin: 14px 0 0; padding: 11px; background: #f4f7fa; color: var(--muted); font-size: 11px; line-height: 1.55; }
.partnerTable { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.partnerTable article { padding: 20px; border: 1px solid var(--line); }
.partnerTable article > span { color: var(--blue); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.partnerTable h3 { margin: 14px 0 3px; color: var(--navy); font-size: 18px; }
.partnerTable p { margin: 0 0 15px; color: var(--muted); font-size: 11px; }
.partnerTable strong, .partnerTable small { display: block; color: #435065; font-size: 11px; line-height: 1.55; }
.partnerTable small { margin-top: 8px; color: #7e8b9c; }
.partnerTable article > div { display: grid; gap: 5px; margin-top: 15px; padding-top: 12px; border-top: 1px solid var(--line); }
.partnerTable a { color: var(--blue); font-size: 10px; }
.adminEmpty { padding: 45px 20px; background: #f7f9fb; color: #7a8798; font-size: 13px; text-align: center; }

/* Featured groups admin (homepage slider management) */
.featuredGroupHint { margin: -8px 0 18px; color: var(--muted); font-size: 12px; line-height: 1.6; max-width: 760px; }
.featuredGroupTable { margin-bottom: 6px; }
[data-featured-group-rows] { display: grid; gap: 8px; }
.featuredGroupHead, .featuredGroupRow { display: grid; grid-template-columns: 44px 1.4fr 1fr .85fr .65fr .55fr .4fr auto; gap: 10px; align-items: center; }
.featuredGroupHead { padding: 0 12px 8px; color: #8290a3; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.featuredGroupRow { padding: 10px 12px; border: 1px solid var(--line); background: #fbfdff; }
.featuredGroupRow select, .featuredGroupRow input[type="number"] { height: 36px; border: 1px solid #ccd6e2; background: white; padding: 0 8px; font-size: 12px; color: var(--navy); }
.featuredGroupRow input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--blue); justify-self: center; }
.featuredGroupRange { display: flex; gap: 5px; }
.featuredGroupRange input { width: 100%; min-width: 0; }
.featuredGroupMove { display: grid; gap: 2px; }
.featuredGroupMove button { width: 24px; height: 17px; border: 1px solid #ccd6e2; background: white; color: #566478; font-size: 8px; line-height: 1; padding: 0; }
.featuredGroupMove button:hover { border-color: var(--blue); color: var(--blue); }
.featuredGroupDelete { width: 36px; height: 36px; border: 1px solid #e7c7c7; background: #fff5f5; color: #b23b3b; font-size: 13px; }
.featuredGroupDelete:hover { background: #ffe4e4; }
.featuredGroupAddForm { display: grid; grid-template-columns: 1.5fr 1fr .9fr .8fr .8fr .8fr .8fr auto; gap: 10px; padding: 14px 12px; border: 1px dashed #c7d3e2; }
.featuredGroupAddForm select, .featuredGroupAddForm input { height: 36px; border: 1px solid #ccd6e2; background: white; padding: 0 8px; font-size: 12px; color: var(--navy); }
@media (max-width: 1080px) {
  .featuredGroupHead { display: none; }
  .featuredGroupRow, .featuredGroupAddForm { grid-template-columns: 1fr 1fr; }
}
.adminDenied { min-height: 75vh; display: grid; place-items: center; padding: 50px 20px; background: var(--pale); }
.adminDenied > div { max-width: 650px; padding: 45px; background: white; border-top: 7px solid var(--yellow); box-shadow: 0 20px 60px rgba(7,26,51,.1); }
.adminDenied span { color: var(--blue); font-size: 10px; font-weight: 850; letter-spacing: .12em; }
.adminDenied h1 { color: var(--navy); font-size: 38px; letter-spacing: -.04em; }
.adminDenied p { color: var(--muted); line-height: 1.7; }
.adminDenied .button { margin-top: 15px; }

@media (max-width: 1080px) {
  .headerInner > .button { display: none; }
  .formationGrid { grid-template-columns: repeat(2, 1fr); }
  .detailHeroGrid, .localHeroGrid { grid-template-columns: 1fr 310px; gap: 40px; }
  .detailContentGrid { grid-template-columns: 1fr 370px; gap: 40px; }
  .catalogueRow { grid-template-columns: 45px 1fr 150px 130px; gap: 15px; }
  .catalogueControls { grid-template-columns: 1fr 1fr; }
  .resultCount { min-height: 62px; }
  .homeTechnologyGrid, .technologyGrid, .technologyCourseGrid { grid-template-columns: repeat(2, 1fr); }
  .trainerGrid { grid-template-columns: repeat(2, 1fr); }
  .otherTrainerGrid { grid-template-columns: repeat(3, 1fr); }
  .trainerSubjectGrid { grid-template-columns: repeat(2, 1fr); }
  .trainerProfileContent { grid-template-columns: minmax(0, 1fr) 320px; gap: 42px; }
}

@media (max-width: 820px) {
  .splitHeading, .footerLead { grid-template-columns: 1fr; gap: 30px; }
  .footerGrid { grid-template-columns: repeat(2, 1fr); gap: 45px; }
  .compactHeading .textLink { justify-self: start; }
  .pageHeroGrid, .detailHeroGrid, .localHeroGrid, .detailContentGrid, .enterpriseGrid, .partnerHeroGrid, .processTimeline, .trustGrid, .localEditorial { grid-template-columns: 1fr; }
  .heroMetric, .factPanel, .localSignal, .citySectorPanel, .contactPromise { max-width: 450px; }
  .stickyAside { position: static; }
  .localLinks, .regionCities { grid-template-columns: repeat(2, 1fr); }
  .catalogueControls { grid-template-columns: 1fr 1fr; }
  .resultCount { min-height: 62px; grid-column: 1 / -1; }
  .catalogueRow { grid-template-columns: 42px 1fr; padding-block: 18px; }
  .catalogueFacts, .catalogueAction { grid-column: 2; }
  .catalogueFacts { grid-template-columns: 1fr 1fr; }
  .useCaseGrid { grid-template-columns: repeat(2, 1fr); }
  .requestStrip > .container { grid-template-columns: 1fr; padding-block: 55px; }
  .processFormula { max-width: 500px; }
  .adminMetrics { grid-template-columns: repeat(2, 1fr); }
  .tableHead { display: none; }
  .tableRow { grid-template-columns: 1fr 100px 60px 60px 100px; }
  .partnerTable { grid-template-columns: repeat(2, 1fr); }
  .adminFilterBar { grid-template-columns: repeat(2, 1fr); }
  .adminFilterBar .span2 { grid-column: span 2; }
  .adminDataHead { display: none; }
  .adminDataRow { grid-template-columns: 1fr 1fr; row-gap: 6px; }
  .technologyIdentity { max-width: 450px; }
  .trainerGrid { grid-template-columns: repeat(2, 1fr); }
  .otherTrainerGrid, .similarTrainerGrid { grid-template-columns: repeat(2, 1fr); }
  .trainerMethodGrid, .trainerProfileContent { grid-template-columns: 1fr; gap: 42px; }
  .trainerProfileAside { position: static; }
  .trainerDirectoryMetric, .trainerProfileIdentity { max-width: 450px; }
}

@media (max-width: 560px) {
  .container { width: min(100% - 28px, 1180px); }
  .toplineTagline { display: none; }
  .section { padding-block: 72px; }
  .formationGrid, .homeTechnologyGrid, .technologyGrid, .technologyCourseGrid { grid-template-columns: 1fr; }
  .formationGrid { gap: 12px; }
  .footerGrid { grid-template-columns: 1fr; }
  .footerBottom { padding-block: 20px; align-items: flex-start; flex-direction: column; gap: 8px; }
  .pageHero, .detailHero, .localHero, .enterpriseHero, .partnerHero, .legalHero { padding-bottom: 58px; }
  .pageHero h1, .detailHero h1, .localHero h1, .enterpriseHero h1, .partnerHero h1, .legalHero h1 { font-size: 43px; }
  .detailActions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .localLinks, .regionCities, .formGrid, .localFactGrid, .splitLocalSections, .partnerBenefits, .trustItems { grid-template-columns: 1fr; }
  .formGrid .span2 { grid-column: auto; }
  .localFactGrid > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .leadForm, .leadFormCompact { padding: 22px; }
  .catalogueControls { grid-template-columns: 1fr; }
  .resultCount { grid-column: auto; }
  .catalogueRow { grid-template-columns: 34px 1fr; }
  .catalogueFacts { grid-template-columns: 1fr; }
  .useCaseGrid { grid-template-columns: 1fr; }
  .processSteps article { grid-template-columns: 52px 1fr; gap: 15px; padding-block: 28px; }
  .processSteps article > b { font-size: 28px; }
  .processFormula { grid-template-columns: 1fr; }
  .processFormula b { display: none; }
  .processFormula strong { grid-column: auto; }
  .nearbyStrip > div { align-items: flex-start; flex-direction: column; gap: 12px; padding-block: 25px; }
  .notFound > div > div { flex-direction: column; }
  .adminHeadRow, .adminSectionTitle { align-items: flex-start; flex-direction: column; }
  .adminMetrics, .leadCards, .partnerTable { grid-template-columns: 1fr; }
  .technologyFamilyHead { align-items: flex-start; flex-direction: column; gap: 8px; }
  .trainerGrid, .otherTrainerGrid, .trainerSubjectGrid, .similarTrainerGrid, .trainerExpertiseList { grid-template-columns: 1fr; }
  .trainerDisclosure { grid-template-columns: 1fr; gap: 10px; }
  .trainerCard { min-height: 430px; }
  .adminSection { padding: 18px; }
  .tableRow { grid-template-columns: 1fr 1fr; gap: 8px; padding-block: 15px; }
  .tableRow > div { grid-column: 1 / -1; }
  .tableRow > i { grid-column: 1 / -1; }
}

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

/* ---- /pilotage: shell with left navigation ------------------------------ */
.adminShell { display: grid; grid-template-columns: 250px minmax(0, 1fr); align-items: start; background: #eef3f8; }
.adminShellMain { min-width: 0; }
.adminShellMain .container { width: min(1180px, calc(100% - 56px)); }
.adminSidebar { position: sticky; top: 79px; align-self: start; height: calc(100vh - 79px); overflow-y: auto; background: var(--navy); color: #c9d6e5; border-right: 1px solid #0f2a48; }
.adminSidebarToggle { display: none; }
.adminSidebarBody { display: flex; flex-direction: column; min-height: 100%; padding: 22px 12px 18px; }
.adminNavSection + .adminNavSection { margin-top: 18px; }
.adminNavSection > p { margin: 0 0 6px; padding: 0 10px; color: #6f86a1; font-size: 9px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.adminNavSection ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 2px; }
.adminNavSection a { display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 0 10px; border-left: 3px solid transparent; color: #c9d6e5; font-size: 13px; font-weight: 650; }
.adminNavSection a:hover { background: #10304f; color: white; }
.adminNavSection a.active { background: #133a60; border-left-color: var(--yellow); color: white; }
.adminNavSection svg { flex: none; width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; opacity: .85; }
.adminNavSection a > span { flex: 1; min-width: 0; }
.adminNavSection small { min-width: 26px; padding: 2px 6px; border-radius: 10px; background: #0d2440; color: #a9bbd0; font-size: 10px; font-weight: 800; text-align: center; }
.adminNavSection a.active small { background: #0b2a47; color: white; }
.adminNavSection em { padding: 2px 6px; border-radius: 10px; background: var(--yellow); color: var(--navy); font-size: 10px; font-style: normal; font-weight: 850; }
.adminSidebarUser { margin-top: auto; padding: 14px 10px 0; border-top: 1px solid #16375a; }
.adminSidebarUser span { display: block; color: #6f86a1; font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.adminSidebarUser strong { display: block; margin-top: 6px; color: white; font-size: 13px; }
.adminSidebarUser small { display: block; margin-top: 2px; color: #8aa0b8; font-size: 11px; word-break: break-all; }
.adminSidebarUser button { margin-top: 12px; padding: 0; border: 0; background: none; color: var(--yellow); font-size: 11px; font-weight: 800; cursor: pointer; }
.adminHeadActions { display: flex; flex-wrap: wrap; gap: 10px; }
.adminMetrics > a { display: block; min-height: 145px; padding: 20px; background: white; border-top: 5px solid var(--blue); transition: transform .15s ease, box-shadow .15s ease; }
.adminMetrics > a:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(7,26,51,.08); }

/* ---- /pilotage: data table toolbar, selection, sorting, paging ----------- */
.adminToolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-bottom: 14px; }
.adminToolbarCount { display: flex; align-items: baseline; gap: 8px; margin-right: auto; }
.adminToolbarCount strong { color: var(--navy); font-size: 15px; }
.adminToolbarCount span { color: #7a8798; font-size: 12px; }
.adminSelectionBar { flex-basis: 100%; order: 3; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding: 10px 14px; background: #eaf1ff; border: 1px solid #c9dafc; color: var(--navy); font-size: 12px; }
.adminSelectionBar b { font-size: 13px; }
.adminBulk { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: auto; }
.adminBulk select { height: 34px; border: 1px solid #ccd6e2; background: white; padding: 0 8px; font-size: 12px; color: var(--navy); }
.adminToolButton { height: 34px; padding: 0 12px; border: 1px solid var(--blue); background: white; color: var(--blue); font-size: 11px; font-weight: 800; cursor: pointer; }
.adminToolButton:hover:not(:disabled) { background: var(--blue); color: white; }
.adminToolButton.danger { border-color: #d9a3a3; color: #b23b3b; }
.adminToolButton.danger:hover:not(:disabled) { background: #b23b3b; border-color: #b23b3b; color: white; }
.adminToolButton:disabled { opacity: .45; cursor: not-allowed; }
.adminLinkButton { padding: 0; border: 0; background: none; color: var(--blue); font-size: 12px; font-weight: 750; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
button.adminExport { background: white; cursor: pointer; }
.adminCheck { display: inline-grid; place-items: center; width: 22px; height: 22px; cursor: pointer; }
.adminCheck input { width: 16px; height: 16px; margin: 0; accent-color: var(--blue); cursor: pointer; }
.adminSort { display: inline-flex; align-items: center; gap: 4px; color: inherit; }
.adminSort span { color: #b5c0cd; font-size: 8px; }
.adminSort:hover, .adminSort.active { color: var(--blue); }
.adminSort.active span { color: var(--blue); }
.adminSortPair { display: flex; gap: 10px; }
.adminChips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--line); font-size: 11px; }
.adminChips > span { color: #8290a3; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.adminChips > a { display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border: 1px solid #c9dafc; background: #f2f6ff; color: var(--navy); }
.adminChips > a b { color: #5b6b80; font-weight: 700; }
.adminChips > a i { color: #7a8798; font-style: normal; font-size: 9px; }
.adminChips > a:hover { border-color: var(--blue); }
.adminChips > a:hover i { color: #b23b3b; }
.adminChips > a.adminChipsReset { border: 0; background: none; color: var(--blue); font-weight: 800; }
.adminPagination { flex-wrap: wrap; gap: 12px 20px; }
.adminPerPage { display: flex; align-items: center; gap: 8px; margin-right: auto; font-size: 11px; }
.adminPerPage select { height: 30px; border: 1px solid var(--line); background: white; padding: 0 6px; font-size: 12px; color: var(--navy); }
.adminPageGroup { display: inline-flex; gap: 6px; }
.adminPageLinks span.gap { border: 0; min-width: 14px; color: #9aa5b3; }

.adminDataTable.isSelectable .adminDataHead, .adminDataTable.isSelectable .adminDataRow { grid-template-columns: 24px 28px 75px 1.2fr 1.3fr 1fr 150px 40px; }
.adminDataTable.isGroups .adminDataHead, .adminDataTable.isGroups .adminDataRow { grid-template-columns: 24px minmax(220px, 1.6fr) 100px 80px 80px 70px 95px 110px; }
.adminDataTable.isGroups .adminDataRow { min-height: 62px; }
.adminDataTable.isGroups .adminDataRow > b { color: var(--navy); font-size: 14px; }
.adminDataTable.isGroups .adminDataRow > b.hasNew { color: #d9463b; }
.adminGroupState { padding: 7px 8px; font-style: normal; font-size: 9px; font-weight: 800; text-align: center; background: #edf2f7; color: #657386; }
.adminGroupState.warm { background: #fff7db; color: #8f6700; }
.adminGroupState.ready { background: #ddf8e9; color: #087b44; }

.adminDialog { width: min(620px, calc(100vw - 32px)); max-height: calc(100vh - 40px); padding: 0; border: 0; border-top: 6px solid var(--yellow); box-shadow: 0 30px 80px rgba(7,26,51,.35); color: var(--ink); }
.adminDialog::backdrop { background: rgba(7,26,51,.55); }
.adminDialog form { display: grid; gap: 18px; padding: 24px; }
.adminDialog header { display: flex; align-items: center; justify-content: space-between; }
.adminDialog h2 { margin: 0; color: var(--navy); font-size: 22px; }
.adminDialogClose { width: 32px; height: 32px; border: 1px solid var(--line); background: white; color: #6b7889; cursor: pointer; }
.adminDialog fieldset { margin: 0; padding: 0; border: 0; display: grid; gap: 8px; }
.adminDialog legend { display: flex; width: 100%; justify-content: space-between; margin-bottom: 8px; color: #566478; font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }
.adminDialog legend span { display: flex; gap: 12px; text-transform: none; letter-spacing: 0; }
.adminDialog fieldset > label, .adminDialogColumns label { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border: 1px solid var(--line); font-size: 13px; color: var(--navy); cursor: pointer; }
.adminDialog fieldset > label:has(input:checked) { border-color: var(--blue); background: #f2f6ff; }
.adminDialog fieldset > label.disabled { opacity: .5; cursor: not-allowed; }
.adminDialog label small { margin-left: 6px; color: #7a8798; font-size: 11px; }
.adminDialog input[type="radio"], .adminDialog input[type="checkbox"] { width: 16px; height: 16px; margin: 0; accent-color: var(--blue); }
.adminDialogColumns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.adminDialogColumns label { padding: 7px 9px; font-size: 12px; }
.adminDialog footer { display: flex; align-items: center; justify-content: flex-end; gap: 18px; padding-top: 6px; border-top: 1px solid var(--line); }
.adminDialog footer .button:disabled { opacity: .5; cursor: not-allowed; transform: none; }

@media (max-width: 1080px) {
  .adminShell { grid-template-columns: 210px minmax(0, 1fr); }
  .adminDataTable.isGroups .adminDataHead, .adminDataTable.isGroups .adminDataRow { grid-template-columns: 24px minmax(180px, 1.6fr) 90px 70px 70px 60px 90px 100px; gap: 10px; }
}
@media (max-width: 900px) {
  .adminShell { grid-template-columns: 1fr; }
  .adminShellMain .container { width: min(1180px, calc(100% - 32px)); }
  .adminSidebar { position: sticky; top: 68px; z-index: 40; height: auto; overflow: visible; border-right: 0; border-bottom: 1px solid #0f2a48; }
  .adminSidebarToggle { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 48px; padding: 0 16px; border: 0; background: var(--navy); color: white; font-size: 13px; cursor: pointer; }
  .adminSidebarToggle span { color: #6f86a1; font-size: 9px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
  .adminSidebarToggle i { margin-left: auto; font-style: normal; }
  .adminSidebarBody { display: none; max-height: calc(100vh - 120px); overflow-y: auto; padding-top: 6px; }
  .adminSidebarBody.open { display: flex; }
}
@media (max-width: 820px) {
  .adminDataTable.isSelectable .adminDataRow, .adminDataTable.isGroups .adminDataRow { grid-template-columns: 28px 1fr 1fr; row-gap: 6px; }
  .adminDataTable.isSelectable .adminDataRow > .adminCheck, .adminDataTable.isGroups .adminDataRow > .adminCheck { grid-row: span 3; align-self: start; }
  .adminDataTable.isSelectable .adminDataHead, .adminDataTable.isGroups .adminDataHead { display: flex; flex-wrap: wrap; gap: 8px 14px; padding-block: 8px; }
  .adminDialogColumns { grid-template-columns: repeat(2, 1fr); }
  .adminBulk { margin-left: 0; }
}

/* ---- /pilotage: AI filter panel (Demandes) --------------------------------- */
.adminAiFilter { margin-top: 18px; padding: 16px 18px; border: 1px solid #d7ccf5; border-left: 5px solid #7c4dff; background: #faf8ff; }
.adminAiFilterHead { display: flex; gap: 12px; align-items: flex-start; }
.adminAiFilterHead strong { color: var(--navy); font-size: 14px; }
.adminAiFilterHead p { margin: 3px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.adminAiFilterHead code { padding: 1px 5px; background: #ece6ff; color: #4a2bb5; font-size: 11px; }
.adminAiBadge { flex: none; display: inline-grid; place-items: center; width: 28px; height: 28px; background: #7c4dff; color: white; font-size: 11px; font-weight: 850; }
.adminAiActive { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; margin-top: 12px; padding: 9px 12px; background: #ece6ff; color: var(--navy); font-size: 12px; }
.adminAiActive a { color: #4a2bb5; font-weight: 800; white-space: nowrap; }
.adminAiForm { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: start; margin-top: 12px; }
.adminAiForm textarea { width: 100%; min-height: 54px; padding: 9px 11px; border: 1px solid #ccd6e2; background: white; font: inherit; font-size: 13px; color: var(--navy); resize: vertical; }
.adminAiForm textarea:focus { outline: 0; border-color: #7c4dff; box-shadow: 0 0 0 3px rgba(124,77,255,.12); }
.adminAiForm .button { background: #7c4dff; border-color: #7c4dff; }
.adminAiForm .button:hover:not(:disabled) { background: #6234e6; }
.adminAiForm .button:disabled { opacity: .55; cursor: wait; transform: none; }
.adminAiExamples { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
.adminAiExamples button { padding: 4px 9px; border: 1px dashed #c4b6f0; background: white; color: #5b3fc4; font-size: 11px; cursor: pointer; }
.adminAiExamples button:hover:not(:disabled) { background: #ece6ff; }
.adminAiStatus { grid-column: 1 / -1; margin: 10px 0 0; color: var(--muted); font-size: 12px; }
.adminAiStatus a { color: var(--blue); font-weight: 800; }
.adminAiForm .formError { grid-column: 1 / -1; margin: 0; }
@media (max-width: 720px) { .adminAiForm { grid-template-columns: 1fr; } }

/* Formateur opportunities */
.offerFeatured { background: #f4f8fb; }
.offerFeatured .textLink { display: inline-flex; margin-top: 24px; }
.offerGrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.offerCard { display: flex; flex-direction: column; min-height: 250px; padding: 24px; border: 1px solid #dce7ed; background: #fff; box-shadow: 0 8px 22px rgba(13, 51, 72, .04); color: var(--navy); text-decoration: none; transition: transform .2s, box-shadow .2s; }
.offerCard:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(13, 51, 72, .1); }
.offerCardTop, .offerCardMeta, .offerHeroFacts, .offerSkills { display: flex; flex-wrap: wrap; gap: 8px; }
.offerCardTop span, .offerHeroFacts span, .offerSkills span { padding: 5px 10px; background: #eaf3f7; color: #175a6e; font-size: 12px; font-weight: 750; }
.offerCard h3 { margin: 17px 0 10px; font-size: 21px; line-height: 1.25; }
.offerCard h3 a { color: inherit; text-decoration: none; }
.offerCard h3 a:hover { color: var(--blue); }
.offerCard p { margin: 0 0 22px; color: var(--muted); line-height: 1.55; }
.offerCardMeta { margin-top: auto; justify-content: space-between; color: var(--muted); font-size: 12px; }
.offerCard .offerCardMeta { margin-top: 0; justify-content: flex-start; }
.offerCard .offerCardMeta span { padding: 5px 9px; background: #eaf3f7; color: #175a6e; font-weight: 750; }
.offerCardFoot { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-top: auto; font-size: 13px; }
.offerCardFoot small { color: var(--muted); }
.offerCardFoot a { color: var(--blue); font-weight: 800; text-decoration: none; }
.offerCardArrow { display: block; margin-top: 18px; color: var(--blue); font-weight: 800; }
.offerFilters { display: flex; flex-wrap: wrap; gap: 14px; align-items: end; margin-bottom: 24px; padding: 20px; background: #f4f8fb; border: 1px solid #dce7ed; }
.offerFilters label { flex: 1 1 220px; display: grid; gap: 6px; font-weight: 750; }
.offerFilters select { width: 100%; min-height: 45px; padding: 8px 12px; border: 1px solid #cddce4; background: white; color: var(--navy); font: inherit; }
.offerCount { color: var(--muted); font-weight: 750; }
.offerHeroFacts { margin: 20px 0 24px; }
.offerHeroFacts span { background: #eaf3f7; color: #175a6e; border: 1px solid #c5dce5; overflow-wrap: anywhere; }
.offerPageHero .pageHeroGrid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
.offerPageHero h1 { max-width: 1100px; font-size: clamp(30px, 4vw, 56px); overflow-wrap: anywhere; }
.offerDetailGrid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(290px, .9fr); align-items: start; gap: 38px; }
.offerDetail { min-width: 0; }
.offerDetail section { padding: 30px 0; border-bottom: 1px solid #dce7ed; }
.offerDetail section:first-of-type { padding-top: 0; }
.offerDetail h2 { margin: 0 0 15px; color: var(--navy); font-size: clamp(24px, 3vw, 32px); }
.offerDetail p, .offerDetail li { color: #3b5362; line-height: 1.7; }
.offerDetail ul { padding-left: 22px; }
.offerDetail li + li { margin-top: 9px; }
.offerQuickFacts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin-bottom: 34px; background: #dce7ed; border: 1px solid #dce7ed; }
.offerQuickFacts div { display: grid; gap: 6px; padding: 16px; background: #f4f8fb; }
.offerQuickFacts small { color: var(--muted); }
.offerQuickFacts strong { color: var(--navy); }
.offerSkills { gap: 9px; }
.offerClosing { padding: 22px; background: #f4f8fb; font-weight: 700; }
.offerAside { position: sticky; top: 24px; }
.jobApplication { padding: 26px; border: 1px solid #dce7ed; background: white; box-shadow: 0 10px 30px rgba(13, 51, 72, .08); }
.offerFormKicker { color: var(--blue); font-size: 12px; font-weight: 850; text-transform: uppercase; letter-spacing: .1em; }
.jobApplication h2 { margin: 7px 0 20px; color: var(--navy); font-size: 24px; }
.offerForm { display: grid; gap: 16px; }
.offerForm p { margin: 0; color: var(--muted); font-size: 13px; }
.offerForm label { display: grid; gap: 6px; color: var(--navy); font-size: 13px; font-weight: 750; }
.offerForm input:not([type=checkbox]), .offerForm select, .offerForm textarea { width: 100%; min-width: 0; padding: 10px 12px; border: 1px solid #cddce4; background: #fff; color: var(--navy); font: inherit; }
/* Civilité: same box as the other fields, with its own arrow. */
.offerForm select { appearance: none; -webkit-appearance: none; padding-right: 38px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23071a33' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center; cursor: pointer; }
.offerForm select:invalid { color: var(--muted); }
.offerForm select option { color: var(--navy); }
/* CV: the same box, its button in the site's style. */
.offerForm input[type=file] { padding: 4px 10px 4px 5px; color: var(--muted); font-size: 14px; cursor: pointer; }
.offerForm input[type=file]::file-selector-button { margin-right: 12px; padding: 5px 12px; border: 1px solid var(--blue); border-radius: 7px; background: #f3f7ff; color: var(--blue-dark); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; transition: background .15s; }
.offerForm input[type=file]::file-selector-button:hover { background: #e3edff; }
.offerForm input:not([type=checkbox]):focus, .offerForm select:focus, .offerForm textarea:focus { border-color: var(--blue); outline: 0; box-shadow: 0 0 0 3px rgba(11, 92, 255, .12); }
.offerForm .applicationConsent { grid-template-columns: auto 1fr; align-items: start; font-weight: 500; line-height: 1.45; }
.offerForm .applicationConsent input { margin-top: 3px; }
.offerForm .honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.offerSkip { border: 0; background: none; color: var(--blue); text-align: left; font: inherit; font-size: 13px; cursor: pointer; }
.applicationSuccess, .applicationError { padding: 12px 15px; line-height: 1.5; }
.applicationSuccess { background: #e8f8ed; color: #23633a; }
.applicationError { background: #fff0ed; color: #9b332c; }
.offerShare { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 22px; font-size: 13px; }
.offerShare strong { flex-basis: 100%; }
.offerShare a { color: var(--blue); }

/* Publication dashboard */
.publicationSubnav { display: grid; grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); gap: 8px; margin-top: 26px; }
.publicationSubnav a { display: grid; align-content: center; gap: 4px; min-height: 66px; padding: 11px 14px; border: 1px solid #d7e1e9; background: #fff; color: var(--navy); text-decoration: none; }
.publicationSubnav a:hover, .publicationSubnav a.active { border-color: var(--blue); background: #eef8fb; }
.publicationSubnav a.active { box-shadow: inset 0 3px var(--blue); }
.publicationSubnav strong { font-size: 13px; }
.publicationSubnav small { color: var(--muted); font-size: 11px; }
.publicationTaskSubnav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.publicationTaskSubnav a { padding: 9px 13px; border: 1px solid #d7e1e9; background: #fff; color: var(--navy); font-size: 13px; font-weight: 750; text-decoration: none; }
.publicationTaskSubnav a:hover, .publicationTaskSubnav a.active { border-color: var(--blue); background: #eef8fb; color: var(--blue); }
.publicationOverviewGrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 21px; }
.publicationOverviewGrid a { display: grid; gap: 7px; padding: 20px; border: 1px solid #d7e1e9; background: #f6f9fb; color: var(--navy); text-decoration: none; }
.publicationOverviewGrid a:hover { border-color: var(--blue); }
.publicationOverviewGrid small { color: var(--blue); font-size: 10px; font-weight: 850; letter-spacing: .08em; }
.publicationOverviewGrid strong { font-size: 29px; line-height: 1; }
.publicationOverviewGrid span { color: var(--muted); font-size: 12px; }
.publicationRecentTasks { margin-top: 27px; }
.publicationRecentTasks > h3 { margin: 0 0 14px; color: var(--navy); }
.publicationTaskGrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.publicationTaskCard { display: block; padding: 20px; border: 1px solid #d7e1e9; background: white; color: var(--navy); text-decoration: none; }
.publicationTaskCard:hover { border-color: var(--blue); }
.publicationTaskCard span { color: var(--blue); font-size: 11px; font-weight: 850; text-transform: uppercase; }
.publicationTaskCard h3 { margin: 7px 0; }
.publicationTaskCard p { margin: 0 0 9px; }
.publicationTaskCard small { color: var(--muted); }
.publicationChoices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; max-height: 240px; overflow: auto; margin-top: 10px; padding: 12px; border: 1px solid #d7e1e9; }
.publicationChoices label { display: flex; align-items: center; gap: 7px; font-size: 12px; }
.publicationSelector { min-width: 0; padding: 17px; border: 1px solid #d7e1e9; background: #f8fafc; }
.publicationSelector legend, .publicationMultiChoice legend { padding: 0 7px; color: var(--navy); font-size: 14px; font-weight: 850; }
.publicationSelector legend strong { margin-left: 7px; color: var(--blue); }
.publicationSelectorTools { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.publicationSelectorTools input { flex: 1 1 220px; min-height: 39px; padding: 8px 11px; border: 1px solid #cddce4; background: white; font: inherit; }
.publicationSelectorTools button, .publicationMultiChoiceOptions button { min-height: 39px; padding: 7px 11px; border: 1px solid #bacbd7; background: white; color: var(--navy); font: inherit; font-size: 12px; font-weight: 750; cursor: pointer; }
.publicationSelectorTools button:hover, .publicationSelectorTools button.isActive, .publicationMultiChoiceOptions button:hover { border-color: var(--blue); color: var(--blue); }
.publicationChoiceList { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; max-height: 280px; overflow-y: auto; }
.publicationChoiceList label { display: flex; align-items: flex-start; gap: 8px; min-width: 0; padding: 9px; border: 1px solid #e1e9ee; background: white; font-size: 12px; cursor: pointer; }
.publicationChoiceList label:has(input:checked) { border-color: #93c8dc; background: #eef8fb; }
.publicationChoiceList input { flex: none; margin-top: 2px; }
.publicationTaskForm input[type="checkbox"] { appearance: auto; width: 18px; height: 18px; min-width: 18px; flex: 0 0 18px; padding: 0; accent-color: var(--blue); cursor: pointer; }
.publicationTaskForm input[type="checkbox"]:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.publicationTaskForm .publicationChoiceList label > span { min-width: 0; margin: 0; color: var(--navy); font-size: 13px; font-weight: 650; line-height: 1.4; text-transform: none; letter-spacing: normal; overflow-wrap: anywhere; }
.publicationChoiceList small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }
.publicationSelector > p, .publicationCityExplanation { margin: 5px 0 12px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.publicationMultiChoice { min-width: 0; padding: 15px; border: 1px solid #d7e1e9; }
.publicationMultiChoiceOptions { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 15px; }
.publicationMultiChoiceOptions label { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.publicationTaskForm .publicationMultiChoiceOptions label, .publicationTaskForm .publicationWeekdays label { min-height: 38px; padding: 7px 10px; border: 1px solid #d7e1e9; background: white; cursor: pointer; }
.publicationTaskForm .publicationMultiChoiceOptions label:has(input:checked), .publicationTaskForm .publicationWeekdays label:has(input:checked) { border-color: #93c8dc; background: #eef8fb; }
.publicationTaskForm label.consent { display: flex; align-items: center; gap: 9px; }
.publicationTaskForm label.consent > span { margin: 0; text-transform: none; letter-spacing: normal; font-size: 13px; }
.publicationLiveSummary { position: sticky; top: 90px; z-index: 20; display: flex; align-items: center; gap: 20px; padding: 14px 18px; border: 1px solid #93c8dc; background: #f1f8fb; box-shadow: 0 5px 16px #12354b18; }
.publicationLiveTotal { display: grid; flex: none; gap: 2px; color: var(--navy); }
.publicationLiveTotal strong { font-size: 28px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.publicationLiveTotal span { font-size: 12px; font-weight: 750; }
.publicationLiveFormula { display: grid; min-width: 0; gap: 5px; color: var(--navy); font-size: 13px; line-height: 1.4; }
.publicationLiveFormula small { color: var(--muted); font-size: 12px; }
.publicationLiveFormula .publicationLiveWarning { color: #a22b24; font-weight: 750; }
@media (max-width: 620px) { .publicationLiveSummary { top: 80px; gap: 12px; padding: 10px; } .publicationLiveTotal strong { font-size: 23px; } .publicationLiveFormula { font-size: 11px; } .publicationLiveFormula small { font-size: 10px; } }
.publicationPreview { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-top: 8px; padding: 1px; background: #d3e2e9; }
.publicationPreview > div { display: grid; align-content: start; gap: 6px; padding: 17px; background: #f1f8fb; }
.publicationPreview small { color: #476b7a; font-size: 10px; font-weight: 850; letter-spacing: .08em; }
.publicationPreview strong { color: var(--navy); font-size: clamp(19px, 2.2vw, 27px); line-height: 1.2; overflow-wrap: anywhere; }
.publicationPreview span { color: var(--muted); font-size: 12px; line-height: 1.45; }
.publicationWeekdays { display: flex; flex-wrap: wrap; gap: 14px; padding: 12px; border: 1px solid #d7e1e9; }
.publicationWeekdays label { display: flex; gap: 5px; align-items: center; }
.publicationOfferList { display: grid; gap: 1px; background: #d7e1e9; border: 1px solid #d7e1e9; }
.publicationProgress { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 20px; }
.publicationProgress > div { display: grid; gap: 4px; padding: 14px; border: 1px solid #d7e1e9; background: #f6f9fb; }
.publicationProgress span { color: var(--blue); font-weight: 750; }
.publicationProgress small { color: var(--muted); line-height: 1.45; }
.publicationOfferRow { display: flex; justify-content: space-between; gap: 15px; padding: 15px; background: white; }
.publicationOfferRow > div:first-child { display: grid; gap: 5px; }
.publicationOfferRow small { color: var(--muted); }
.publicationApplication { display: flex; justify-content: space-between; gap: 20px; padding: 18px; background: white; }
.publicationApplication > div { display: grid; gap: 6px; }
.publicationApplication small { color: var(--muted); }
.publicationApplication p { margin: 0; line-height: 1.5; }
.publicationApplication button { padding: 8px 12px; border: 1px solid #cddce4; background: white; color: var(--navy); cursor: pointer; }
.publicationActions { display: flex; flex-wrap: wrap; gap: 8px; align-items: start; }
.publicationActions button { padding: 7px 10px; border: 1px solid #cddce4; background: white; color: var(--navy); cursor: pointer; }
.publicationTestActions { align-items: end; margin: 16px 0; }
.publicationTestActions label { display: grid; gap: 5px; color: var(--navy); font-size: 13px; font-weight: 650; }
.publicationTestActions input[type="number"] { width: 110px; padding: 8px 10px; border: 1px solid #cddce4; border-radius: 4px; }
.publicationTestActions .buttonYellow { background: var(--yellow); border-color: var(--yellow); }
@media (max-width: 900px) { .offerGrid, .publicationTaskGrid, .publicationProgress, .publicationPreview, .publicationOverviewGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .publicationChoiceList { grid-template-columns: repeat(2, minmax(0, 1fr)); } .offerDetailGrid { grid-template-columns: 1fr; } .offerAside { position: static; } }
@media (max-width: 620px) { .offerGrid, .publicationTaskGrid, .publicationProgress, .publicationPreview, .publicationOverviewGrid, .publicationChoices, .publicationChoiceList { grid-template-columns: 1fr; } .offerQuickFacts { grid-template-columns: 1fr; } .publicationOfferRow { display: grid; } }
.offerPagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:2rem}

/* ---- /pilotage publication: tasks & offers management ------------------------- */
.pubKpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.pubKpis > a, .pubKpis > div { display: grid; gap: 5px; padding: 15px 16px; border: 1px solid #dce3eb; border-top: 4px solid #c9d4e0; background: #fbfdff; color: var(--navy); }
.pubKpis > a:hover { border-color: var(--blue); }
.pubKpis small { color: #6b7889; font-size: 10px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.pubKpis strong { font-size: 27px; line-height: 1; font-variant-numeric: tabular-nums; }
.pubKpis span { color: var(--muted); font-size: 11.5px; }
.pubKpis .ok { border-top-color: #0eb368; }
.pubKpis .warn { border-top-color: #e0a100; }
.pubKpis .bad { border-top-color: #d9463b; }
.pubKpisCompact { margin-top: 14px; }
.pubKpisCompact strong { font-size: 21px; }
.pubKpisCompact .pubKpiText { font-size: 14px; line-height: 1.3; }
.pubIndexMeter { height: 10px; margin: 0 0 16px; background: #eef2f6; overflow: hidden; }
.pubIndexMeter span { display: block; height: 100%; background: linear-gradient(90deg, #0eb368, #33c98a); }

.pubBadge { display: inline-block; padding: 3px 8px; font-size: 10px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; background: #edf2f7; color: #566478; }
.pubBadge-active, .pubBadge-published { background: #ddf8e9; color: #087b44; }
.pubBadge-paused, .pubBadge-draft { background: #fff5d6; color: #8f6700; }
.pubBadge-completed { background: #e7efff; color: #1d4fc4; }
.pubBadge-stopped, .pubBadge-withdrawn, .pubBadge-expired { background: #f1f2f4; color: #6b7481; }

.pubProgress { display: grid; gap: 4px; min-width: 0; }
.pubProgressTrack { display: flex; height: 8px; background: #eef2f6; overflow: hidden; }
.pubProgressDone { background: var(--blue); }
.pubProgressFailed { background: #d9463b; }
.pubProgress small { color: #6b7889; font-size: 11px; }

.pubIndex { display: grid; gap: 3px; min-width: 0; }
.pubIndex small { color: #6b7889; font-size: 11px; line-height: 1.4; }
.pubDot { display: inline-flex; align-items: center; gap: 6px; color: var(--navy); font-size: 12px; font-weight: 750; }
.pubDot::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: #aab4c0; flex: none; }
.pubDot-ok::before { background: #0eb368; }
.pubDot-warn::before { background: #e0a100; }
.pubDot-bad::before { background: #d9463b; }
.pubError { color: #b23b3b !important; }

.pubTable { border-top: 1px solid var(--line); }
.pubTableHead, .pubTableRow { display: grid; gap: 14px; align-items: center; padding: 10px 6px; }
.pubTableHead { min-height: 38px; padding-block: 6px; color: #8290a3; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.pubTableRow { border-top: 1px solid var(--line); font-size: 12.5px; color: #4d5a6c; }
.pubTableRow:hover { background: #f8fbff; }
.pubTableRow > div { display: grid; gap: 3px; min-width: 0; }
.pubTableRow small { color: #7a8798; font-size: 11px; line-height: 1.45; }
.pubTableRow strong { color: var(--navy); }
.pubTaskName { color: var(--navy); font-weight: 800; font-size: 13.5px; line-height: 1.35; }
.pubTaskName:hover { color: var(--blue); }
.pubTaskName small { color: #9aa5b3; font-weight: 600; }
.pubTasks .pubTableHead, .pubTasks .pubTableRow { grid-template-columns: minmax(220px, 2fr) 110px minmax(150px, 1.2fr) 110px 150px 60px auto; }
.pubOffers .pubTableHead, .pubOffers .pubTableRow { grid-template-columns: 24px minmax(240px, 2.2fr) 110px 100px minmax(140px, 1fr) minmax(170px, 1.3fr) auto; }
.pubSubjects .pubTableHead, .pubSubjects .pubTableRow { grid-template-columns: minmax(200px, 2fr) minmax(200px, 2fr) 90px; }
.pubRowActions { display: flex !important; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 6px; }
.pubRowActions form { display: contents; }
a.adminToolButton { display: inline-flex; align-items: center; }
.pubInline { display: inline-flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.pubFlash { flex-basis: 100%; order: 4; margin: 0; padding: 8px 12px; background: #eefaf3; color: #087b44; font-size: 12px; }
.pubFilterTabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.pubFilterTabs a { padding: 7px 12px; border: 1px solid var(--line); color: #4d5a6c; font-size: 12px; font-weight: 750; }
.pubFilterTabs a small { margin-left: 4px; color: #9aa5b3; }
.pubFilterTabs a.active, .pubFilterTabs a:hover { border-color: var(--blue); color: var(--blue); background: #f2f6ff; }
.pubTaskBar { margin-top: 18px; }
.pubTaskBarHead { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px 24px; margin-bottom: 14px; }
.pubTaskBarHead > div:first-child { display: grid; gap: 5px; }
.pubTaskBarHead strong { color: var(--navy); font-size: 15px; }
.pubTaskBarHead small { color: var(--muted); font-size: 12px; }

@media (max-width: 1080px) {
  .pubTableHead { display: none; }
  .pubTasks .pubTableRow, .pubOffers .pubTableRow, .pubSubjects .pubTableRow { grid-template-columns: 1fr 1fr; }
  .pubOffers .pubTableRow > .adminCheck { grid-column: 1 / -1; }
  .pubTableRow > div:first-child, .pubOffers .pubTableRow > div:nth-child(2) { grid-column: 1 / -1; }
  .pubRowActions { grid-column: 1 / -1; justify-content: flex-start; }
}

/* Sidebar sub-entries + test-mode Google table */
.adminNavChildren { margin: 2px 0 6px 20px !important; padding-left: 10px !important; border-left: 1px solid #1d4468; gap: 1px !important; }
.adminNavChildren a { min-height: 32px !important; font-size: 12.5px !important; font-weight: 600 !important; color: #a9bbd0 !important; border-left: 0 !important; }
.adminNavChildren a:hover { color: white !important; }
.adminNavChildren a.active { background: #133a60; color: white !important; box-shadow: inset 3px 0 var(--yellow); }
.pubGoogle .pubTableHead, .pubGoogle .pubTableRow { grid-template-columns: minmax(220px, 2fr) minmax(150px, 1fr) minmax(170px, 1.3fr) auto; }
@media (max-width: 1080px) { .pubGoogle .pubTableRow { grid-template-columns: 1fr 1fr; } }

/* ---- /pilotage: full-width content, aligned publication tables ------------- */
.adminShellMain .container { width: calc(100% - 56px); max-width: none; }
/* Fixed-width actions column (not "auto"), so every row of a table shares the
   same column widths whatever buttons it shows; buttons stack vertically. */
.pubTasks .pubTableHead, .pubTasks .pubTableRow { grid-template-columns: minmax(240px, 2fr) 110px minmax(160px, 1.2fr) 120px 160px 70px 150px; }
.pubOffers .pubTableHead, .pubOffers .pubTableRow { grid-template-columns: 24px minmax(260px, 2.4fr) 120px 110px minmax(160px, 1fr) minmax(200px, 1.4fr) 170px; }
.pubGoogle .pubTableHead, .pubGoogle .pubTableRow { grid-template-columns: minmax(240px, 2fr) minmax(160px, 1fr) minmax(200px, 1.4fr) 170px; }
.pubRowActions { flex-direction: column; flex-wrap: nowrap; align-items: stretch; justify-content: flex-start; gap: 6px; }
.pubRowActions .adminToolButton, .pubRowActions form, .pubRowActions .pubInline { width: 100%; }
.pubRowActions form { display: block; }
.pubRowActions .adminToolButton { justify-content: center; text-align: center; }
.pubRowActions .pubInline { align-items: stretch; }
.pubRowActions .pubInline small { text-align: center; }
.pubTaskBarHead .pubRowActions { flex-direction: row; flex-wrap: wrap; width: auto; }
.pubTaskBarHead .pubRowActions .adminToolButton, .pubTaskBarHead .pubRowActions form { width: auto; }
@media (max-width: 1080px) {
  .adminShellMain .container { width: calc(100% - 32px); }
  .pubRowActions { flex-direction: row; flex-wrap: wrap; }
  .pubRowActions .adminToolButton, .pubRowActions form, .pubRowActions .pubInline { width: auto; }
}
.pubRowActions .adminToolButton.pubDelete { background: #b23b3b; border-color: #b23b3b; color: white; }
.pubRowActions .adminToolButton.pubDelete:hover:not(:disabled) { background: #8f2b2b; border-color: #8f2b2b; }

/* Offer page: "En bref" points + "Critères de l'annonce" key/value block */
.offerHighlights { padding: 20px 22px; background: #f4f8fb; border-left: 4px solid var(--blue); }
.offerHighlights h2 { margin-top: 0; }
.offerHighlights ul { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.offerCriteria dl { margin: 0; border: 1px solid #dce7ed; }
.offerCriteria dl > div { display: grid; grid-template-columns: minmax(160px, 34%) 1fr; border-top: 1px solid #dce7ed; }
.offerCriteria dl > div:first-child { border-top: 0; }
.offerCriteria dt { padding: 12px 16px; background: #f4f8fb; color: var(--navy); font-weight: 800; font-size: 14px; }
.offerCriteria dd { margin: 0; padding: 12px 16px; color: #33475b; font-size: 14px; line-height: 1.5; }
@media (max-width: 560px) { .offerCriteria dl > div { grid-template-columns: 1fr; } .offerCriteria dt { padding-bottom: 4px; } .offerCriteria dd { padding-top: 4px; } }

/* ---- Offer page design (icons, lists, cards) --------------------------------- */
.offerIcon { width: 18px; height: 18px; flex: none; }
.offerHero { max-width: 1100px; }
.offerHeroSummary { max-width: 860px; font-size: 18px; line-height: 1.6; }
.offerHeroFacts span { display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px; border-radius: 999px; font-size: 13px; }
.offerHeroFacts .offerIcon { width: 16px; height: 16px; color: var(--blue); }
.offerHeroActions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; }
.offerHeroActions .button { gap: 10px; }
.offerHeroActions > small { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: 13px; }
.offerHeroActions > small .offerIcon { width: 16px; height: 16px; }
.offerShareButtons { display: flex; gap: 8px; }
.offerShareButtons a { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: white; transition: transform .15s ease, opacity .15s ease; }
.offerShareButtons a:hover { transform: translateY(-2px); opacity: .9; }
.offerShareButtons .share-linkedin { background: #0a66c2; }
.offerShareButtons .share-whatsapp { background: #25d366; }
.offerShareButtons .share-facebook { background: #1877f2; }
.offerShareButtons .share-mail { background: var(--navy); }

.offerBody { background: #fbfcfd; }
.offerDetailGrid { gap: 44px; }
.offerDetail section { padding: 32px 0; }
.offerSectionTitle { display: flex; align-items: center; gap: 12px; }
.offerSectionIcon { display: inline-grid; place-items: center; width: 40px; height: 40px; flex: none; border-radius: 10px; background: #e7f0fb; color: var(--blue); }
.offerSectionIcon .offerIcon { width: 21px; height: 21px; }
.offerLead { font-size: 17px; }

.offerList, .offerHighlights ul, .offerSteps { margin: 0; padding: 0 !important; list-style: none; display: grid; gap: 12px; }
.offerList li, .offerHighlights li { display: grid; grid-template-columns: 26px 1fr; gap: 10px; align-items: start; margin: 0 !important; }
.offerList li .offerIcon, .offerHighlights li .offerIcon { width: 22px; height: 22px; padding: 3px; margin-top: 2px; border-radius: 50%; background: #e3f6ec; color: #0e8f53; }
.offerListPlus li .offerIcon { background: #fff3d6; color: #a26b00; }

.offerHighlights { margin-bottom: 8px; padding: 26px !important; border: 1px solid #d6e4f5; border-left: 5px solid var(--blue); background: white; box-shadow: 0 8px 24px rgba(13, 51, 72, .05); }
.offerHighlights ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 22px; }

.offerSteps li { display: grid; grid-template-columns: 34px 1fr; gap: 14px; align-items: start; margin: 0 !important; padding: 14px 16px; background: white; border: 1px solid #e1eaf1; }
.offerStepNumber { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--navy); color: var(--yellow); font-weight: 850; font-size: 14px; }

.offerModules { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.offerModules > div { display: grid; gap: 4px; padding: 14px 16px; background: white; border: 1px solid #e1eaf1; border-top: 3px solid var(--blue); }
.offerModules small { color: var(--blue); font-size: 11px; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }
.offerModules strong { color: var(--navy); line-height: 1.4; }
.offerOutcomes { margin-bottom: 16px; padding: 18px; background: #f4f8fb; }
.offerOutcomes > strong { display: block; margin-bottom: 12px; color: var(--navy); }

.offerCallout { display: grid; grid-template-columns: 44px 1fr; gap: 14px; align-items: start; padding: 20px; background: #f1f6fd; border: 1px solid #d6e4f5; }
.offerCallout > .offerIcon { width: 44px; height: 44px; padding: 10px; border-radius: 50%; background: white; color: var(--blue); }
.offerCallout p { margin: 0; }

.offerTwoCards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.offerTwoCards > div { display: grid; gap: 6px; padding: 18px; background: white; border: 1px solid #e1eaf1; }
.offerTwoCards > div > .offerIcon { width: 26px; height: 26px; color: var(--blue); }
.offerTwoCards strong { color: var(--navy); }
.offerTwoCards p { margin: 0; }

.offerTags { display: flex; flex-wrap: wrap; gap: 8px; }
.offerTags span { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px; background: #eef3f8; color: #3b5362; font-size: 13px; font-weight: 700; }
.offerTagsStrong span { background: #e7f0fb; color: #174e9e; }
.offerTags .offerIcon { width: 15px; height: 15px; }

.offerCriteria dl { border-radius: 4px; overflow: hidden; background: white; }
.offerCriteria dt { display: flex; align-items: center; gap: 9px; }
.offerCriteria dt .offerIcon { color: var(--blue); }

.offerClosing { display: grid; grid-template-columns: 36px 1fr auto; gap: 14px; align-items: center; margin-top: 30px; padding: 22px; background: var(--navy); color: white; font-weight: 600; }
.offerClosing > .offerIcon { width: 30px; height: 30px; color: var(--yellow); }
.offerClosing p { margin: 0; color: white; }

.offerAside { top: 96px; display: grid; gap: 18px; }
.offerEssentials { padding: 22px; background: var(--navy); color: white; }
.offerEssentials > strong { display: block; margin-bottom: 12px; color: var(--yellow); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.offerEssentials dl { margin: 0; display: grid; gap: 12px; }
.offerEssentials dl > div { display: grid; gap: 2px; }
.offerEssentials dt { display: flex; align-items: center; gap: 8px; color: #9fb4ca; font-size: 12px; }
.offerEssentials dt .offerIcon { width: 16px; height: 16px; color: var(--yellow); }
.offerEssentials dd { margin: 0 0 0 24px; font-weight: 750; font-size: 14px; }
.offerShare { margin-top: 0; padding: 18px; background: white; border: 1px solid #dce7ed; }
.offerShare strong { margin-bottom: 10px; display: block; color: var(--navy); }

@media (max-width: 980px) {
  .offerDetailGrid { grid-template-columns: 1fr; }
  .offerAside { position: static; }
}
@media (max-width: 640px) {
  .offerHighlights ul, .offerTwoCards { grid-template-columns: 1fr; }
  .offerClosing { grid-template-columns: 1fr; text-align: left; }
  .offerHeroSummary { font-size: 16px; }
}

/* OpenAI cost display */
.pubCostForecast { margin: 10px 0; padding: 10px 14px; background: #f4f8fb; border-left: 3px solid var(--blue); color: #3b5362; font-size: 13px; line-height: 1.5; }
.pubCosts .pubTableHead, .pubCosts .pubTableRow { grid-template-columns: 130px minmax(220px, 2fr) 110px 120px 110px 130px 90px; }
@media (max-width: 1080px) { .pubCosts .pubTableRow { grid-template-columns: 1fr 1fr; } }

.pubBatchRow > div { display: grid; gap: 6px; width: 100%; }
.pubBatchRow .pubProgress { max-width: 420px; }

/* Offer aside: application form first; the sticky column scrolls on its own when taller than the screen */
.offerAside { max-height: calc(100vh - 110px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; padding-right: 2px; }
@media (max-width: 980px) { .offerAside { max-height: none; overflow: visible; } }

/* ---- /pilotage Indexation Google (catalogue pages) ---------------------------- */
.pubCatalog .pubTableHead, .pubCatalog .pubTableRow { grid-template-columns: 24px minmax(240px, 2fr) minmax(170px, 1.2fr) 120px 150px 150px; }
.pubCatalogItem { border-top: 1px solid var(--line); }
.pubCatalogItem > .pubTableRow { border-top: 0; }
.pubRatioFull { color: #087b44 !important; }
.pubRatioNone { color: #b23b3b !important; }
.pubCatalogPages { margin: 0 6px 12px 44px; }
.pubCatalogPages > summary { cursor: pointer; color: var(--blue); font-size: 12px; font-weight: 800; }
.pubCatalogGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 6px; margin-top: 10px; }
.pubCatalogGrid > div { display: grid; gap: 3px; padding: 9px 11px; border: 1px solid #e1eaf1; background: #fbfdff; }
.pubCatalogGrid a { color: var(--navy); font-weight: 750; font-size: 13px; }
.pubCatalogGrid small { color: #7a8798; font-size: 11px; }
@media (max-width: 1080px) { .pubCatalog .pubTableRow { grid-template-columns: 28px 1fr 1fr; } .pubCatalogPages { margin-left: 6px; } }

/* Webhooks n8n (Réglages) */
.webhookChannels { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; margin-top: 22px; }
.webhookChannel { display: grid; gap: 8px; align-content: start; padding: 16px; border: 1px solid #dce3eb; background: #fbfdff; }
.webhookChannel strong { color: var(--navy); }
.webhookChannel small { color: var(--muted); font-size: 12px; }
.webhookTools { display: grid; gap: 8px; }
.webhookButtons { flex-direction: row !important; flex-wrap: wrap !important; justify-content: flex-start !important; }
.webhookButtons .adminToolButton { width: auto !important; }
.webhookJson { width: 100%; font: 12px/1.45 ui-monospace, SFMono-Regular, Consolas, monospace; padding: 10px; border: 1px solid #ccd6e2; background: #0f1b2d; color: #d6e2f0; }
.webhookLog .pubTableHead, .webhookLog .pubTableRow { grid-template-columns: 130px minmax(200px, 1.2fr) minmax(180px, 1fr) minmax(160px, 1fr) 110px; }
@media (max-width: 1080px) { .webhookLog .pubTableRow { grid-template-columns: 1fr 1fr; } }

/* ---- CRM: AI analysis, lead source, WhatsApp conversations ----------------------- */
.aiBlock { padding: 12px 14px; border: 1px solid #d6e4f5; border-left: 4px solid #7c4dff; background: #faf8ff; }
.aiBlock > b { color: #4a2bb5 !important; }
.aiBlock small { display: block; margin-top: 6px; color: #5b6b80; font-size: 11.5px; line-height: 1.5; }
.aiBlockEmpty { border-left-color: #c9d4e0; background: #fbfcfd; }
.aiBlockEmpty > b { color: #7a8798 !important; }
.aiChips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.aiChip { padding: 3px 9px; border-radius: 999px; background: #eef3f8; color: #3b5362; font-size: 11px; font-weight: 700; }
.aiChipFormation { background: #e7f0fb; color: #174e9e; }
.aiChipCity { background: #e3f6ec; color: #087b44; }
.aiConversationLink { display: inline-block; margin-top: 8px; color: #0e8f53 !important; font-weight: 800; font-size: 12px; }
.aiInline { display: block; margin-top: 12px; padding: 0; background: none; border: 0; }
.leadSource { display: inline-block; margin-left: 8px; padding: 1px 7px; border-radius: 999px; background: #eef3f8; color: #3b5362; font-size: 10px; font-style: normal; font-weight: 800; vertical-align: middle; }
.leadSourceWa { background: #25d366; color: white; }
.waLayout { display: grid; grid-template-columns: minmax(280px, 380px) minmax(0, 1fr); gap: 18px; align-items: start; }
.waList { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.waList a { display: grid; gap: 3px; padding: 12px 14px; background: white; color: var(--navy); }
.waList a:hover, .waList a.active { background: #f1f8f4; }
.waList a.active { box-shadow: inset 4px 0 #25d366; }
.waList strong { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; }
.waList strong small { color: #7a8798; font-weight: 600; font-size: 11px; }
.waList span { color: #5b6b80; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.waList em { font-style: normal; color: #087b44; font-size: 11px; font-weight: 700; }
.waThread { display: grid; gap: 8px; padding: 18px; background: #efeae2; border: 1px solid #dcd3c6; max-height: 70vh; overflow-y: auto; }
.waBubble { max-width: 78%; padding: 8px 11px; border-radius: 8px; background: white; color: #111b21; font-size: 13.5px; line-height: 1.45; white-space: pre-wrap; box-shadow: 0 1px 1px rgba(0,0,0,.08); }
.waBubble.out { justify-self: end; background: #d9fdd3; }
.waBubble small { display: block; margin-top: 4px; color: #667781; font-size: 10.5px; text-align: right; }
.waBubble.confirmation { border: 1px dashed #25a35a; }
.waHead { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
@media (max-width: 980px) { .waLayout { grid-template-columns: 1fr; } }

/* Nos formateurs (anonymous trainer presentation pages) */
.presenceCard p { margin-bottom: 14px; }
.trainerCardSkills { margin: 0 0 20px; padding: 0; list-style: none; display: grid; gap: 7px; }
.trainerCardSkills li { display: grid; grid-template-columns: 18px 1fr; gap: 8px; align-items: start; color: #3b5362; font-size: 14px; line-height: 1.45; }
.trainerCardSkills .offerIcon { width: 16px; height: 16px; margin-top: 2px; color: #0e8f53; }
.presenceCard .offerCardFoot { margin-top: auto; }
.trainerEmpty { display: grid; justify-items: start; gap: 14px; padding: 28px; border: 1px dashed #c9d8e2; background: #fbfcfd; }
.trainerEmpty p { margin: 0; }
.trainerPreviewBanner { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 16px; background: #fff5d6; color: #8f6700; font-weight: 750; font-size: 14px; }
.trainerPreviewBanner .offerIcon { width: 18px; height: 18px; }
.trainerOffers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.trainerOffers > div { display: grid; align-content: start; gap: 8px; padding: 18px; background: white; border: 1px solid #e1eaf1; border-top: 3px solid var(--blue); }
.trainerOffers small { color: var(--blue); font-size: 11px; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }
.trainerOffers strong { color: var(--navy); font-size: 17px; line-height: 1.35; }
.trainerOffers p { margin: 0; color: #3b5362; line-height: 1.55; }
.trainerOffers .offerTags span { padding: 5px 10px; font-size: 12px; }
.trainerTagLink { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px; background: #eef3f8; color: #174e9e; font-size: 13px; font-weight: 700; text-decoration: none; }
.trainerTagLink:hover { background: #e7f0fb; }
.trainerTagLink .offerIcon { width: 15px; height: 15px; }
.trainerFaq { display: grid; gap: 10px; }
.trainerFaq details { padding: 0; background: white; border: 1px solid #e1eaf1; }
.trainerFaq summary { padding: 16px 18px; color: var(--navy); font-weight: 800; cursor: pointer; }
.trainerFaq details p { margin: 0; padding: 0 18px 18px; }
.trainerPrivacy strong { display: flex; align-items: center; gap: 8px; }
.trainerPrivacy .offerIcon { width: 16px; height: 16px; color: var(--blue); }
.trainerPrivacy p { margin: 0; color: #3b5362; font-size: 14px; line-height: 1.5; }
.trainerContact { scroll-margin-top: 110px; }
@media (max-width: 640px) { .trainerOffers { grid-template-columns: 1fr; } }
.actionResult { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.actionResult small { font-size: 11.5px; line-height: 1.4; }
.actionResult small.ok { color: #087b44; }
.actionResult small.error { color: #b42318; }

/* Pilotage → Nos formateurs / Candidatures */
.adminDataTable.isTrainerPages { overflow-x: auto; }
.adminDataTable.isTrainerPages .adminDataHead, .adminDataTable.isTrainerPages .adminDataRow { min-width: 1180px; grid-template-columns: 24px 28px 70px minmax(205px, 1.6fr) minmax(115px, .8fr) 120px 120px 160px 150px 28px; gap: 12px; }
.adminDataTable.isTrainerPages .adminDataDetails { min-width: 1180px; }
.trainerGaPeriods { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; padding: 12px 0; font-size: 11px; }
.trainerGaPeriods > span { margin-right: 6px; color: var(--navy); font-weight: 800; }
.trainerGaPeriods a { padding: 6px 10px; border: 1px solid var(--line); color: var(--blue); font-weight: 700; text-decoration: none; }
.trainerGaPeriods a.active { background: var(--blue); border-color: var(--blue); color: white; }
.trainerGaPeriods small { flex-basis: 100%; color: var(--muted); line-height: 1.4; }
.trainerGaNotice { margin: 0 0 12px; padding: 10px 12px; background: #fff7e7; color: #704b12; font-size: 12px; line-height: 1.5; }
.trainerGaNotice a { color: var(--blue); font-weight: 700; }
.trainerGaMetric { display: grid; gap: 3px; min-width: 0; font-variant-numeric: tabular-nums; }
.trainerGaMetric strong { margin: 0; font-size: 16px; line-height: 1.1; }
.trainerGaMetric strong small { font-size: 10px; font-weight: 600; }
.trainerGaMetric > small { color: #586578; font-size: 10px; line-height: 1.35; }
.adminDataTable.isApplications .adminDataHead, .adminDataTable.isApplications .adminDataRow { grid-template-columns: 24px 28px 75px 1.2fr 1.3fr 150px 150px 150px 40px; }
.trainerAdminStatus, .trainerAdminActions { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.trainerAdminActions .adminToolButton { width: 100%; justify-content: center; text-align: center; }
.trainerAdminActions form, .trainerAdminActions .actionResult { width: 100%; }
.adminDataRow .trainerAdminActions .adminToolButton { display: inline-flex; align-items: center; justify-content: center; }
.trainerAdminActions .actionResult small { display: block; margin-top: 4px; font-size: 11px; line-height: 1.35; }
.adminDataRow .adminToolButton { display: inline-block; color: var(--navy); font-size: 11px; }
.trainerEditGrid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
.trainerEditForm { display: grid; gap: 16px; }
.trainerEditForm fieldset { display: grid; gap: 12px; margin: 0; padding: 18px; border: 1px solid var(--line); background: white; }
.trainerEditForm legend { padding: 0 6px; color: var(--navy); font-weight: 800; }
.trainerEditForm label { display: grid; gap: 5px; font-size: 12px; font-weight: 700; color: #586578; }
.trainerEditForm label small { font-weight: 500; color: #8290a3; }
.trainerEditForm input[type="text"], .trainerEditForm textarea, .trainerEditForm select { width: 100%; border: 1px solid #ccd6e2; background: #fbfdff; padding: 9px 10px; font: inherit; font-size: 13px; color: var(--navy); }
.trainerEditForm textarea { resize: vertical; line-height: 1.5; }
.trainerEditForm select[multiple] { min-height: 150px; }
.trainerEditTwo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.trainerEditThree { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.trainerEditChecks { display: flex; flex-wrap: wrap; gap: 14px; }
.trainerEditChecks label { display: inline-flex; align-items: center; gap: 6px; }
.trainerEditSide { position: sticky; top: 90px; display: grid; gap: 14px; }
.trainerEditSide > div { display: grid; gap: 10px; padding: 16px; border: 1px solid var(--line); background: white; }
.trainerEditSide h3 { margin: 0; font-size: 14px; color: var(--navy); }
.trainerEditSide p { margin: 0; font-size: 12px; color: #586578; line-height: 1.5; }
.trainerEditSide .adminToolButton { text-align: center; }
.trainerEditSave { position: sticky; bottom: 0; display: flex; align-items: center; gap: 14px; padding: 12px 0; background: linear-gradient(transparent, #f4f7fa 30%); }
@media (max-width: 1100px) { .trainerEditGrid { grid-template-columns: 1fr; } .trainerEditSide { position: static; } .trainerEditTwo, .trainerEditThree { grid-template-columns: 1fr; } }
.trainerEditSide > .trainerRedactions { border-color: #f0c36d; background: #fff8e6; }

/* Pilotage sidebar: dropdown groups */
.adminNavGroup > button { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 40px; padding: 0 10px; border: 0; border-left: 3px solid transparent; background: none; color: #c9d6e5; font: inherit; font-size: 13px; font-weight: 650; text-align: left; cursor: pointer; }
.adminNavGroup > button:hover { background: #10304f; color: white; }
.adminNavGroup > button.active { color: white; border-left-color: var(--yellow); cursor: default; }
.adminNavGroup > button.active:hover { background: none; }
.adminNavGroup > button > span { flex: 1; min-width: 0; }
.adminNavGroup > button > i { font-style: normal; font-size: 11px; color: #6f86a1; transform: rotate(-90deg); transition: transform .15s ease; }
.adminNavGroup.open > button > i { transform: none; }
.adminNavGroup > button.active > i { color: var(--yellow); }

/* Réglages tabs */
.settingsTabs { margin-bottom: 18px; }
.settingsTabs a { display: inline-flex; align-items: center; gap: 6px; }
.settingsStatus { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #c3ccd6; }
.settingsStatus.ok { background: #0eb368; }
.settingsStatus.warn { background: #e0a01f; }
.settingsUses { margin: 0 0 14px; padding: 12px 16px; background: #f4f8fb; border-left: 3px solid var(--blue); color: #3b5362; font-size: 13px; line-height: 1.6; }
.settingsUses ul { margin: 6px 0 0; padding-left: 18px; }

/* ===== Espace formateur (/formateur) ===== */
.tsShell .adminSidebar { background: #0f2f4f; }
.tsPageHead { margin-bottom: 22px; }
.tsPageHead h1 { margin: 6px 0 8px; color: var(--navy); font-size: clamp(26px, 3vw, 34px); }
.tsPageHead p { max-width: 820px; color: #3b5362; line-height: 1.6; }
.tsPageHead .eyebrow a { color: var(--blue); }
.tsHero { display: grid; grid-template-columns: 170px 1fr; gap: 30px; align-items: center; margin-bottom: 22px; padding: 28px; background: white; border: 1px solid var(--line); }
.tsHero h1 { margin: 6px 0 10px; color: var(--navy); font-size: clamp(24px, 3vw, 32px); }
.tsHero p { color: #3b5362; line-height: 1.6; }
.tsRing { --pct: 0%; position: relative; display: grid; place-items: center; align-content: center; width: 160px; height: 160px; border-radius: 50%; background: conic-gradient(var(--yellow) var(--pct), #e6edf4 0); }
.tsRing::before { content: ""; position: absolute; inset: 14px; border-radius: 50%; background: white; }
.tsRing strong, .tsRing small { position: relative; }
.tsRing strong { color: var(--navy); font-size: 34px; line-height: 1; }
.tsRing small { color: #6b7a8d; font-size: 12px; font-weight: 700; }
.tsSteps { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.tsStep { display: grid; grid-template-columns: 40px 1fr 190px; gap: 16px; align-items: center; padding: 16px; background: white; border: 1px solid var(--line); border-left: 4px solid #c9d5e2; }
.tsStep strong { color: var(--navy); font-size: 15px; }
.tsStep p { margin: 4px 0 8px; color: #586578; font-size: 13px; line-height: 1.5; }
.tsStep-done { border-left-color: #0eb368; }
.tsStep-pending { border-left-color: #e0a01f; }
.tsStep-partial { border-left-color: var(--blue); }
.tsStepIcon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #eef3f8; color: var(--navy); font-weight: 800; }
.tsStep-done .tsStepIcon { background: #ddf8e9; color: #087b44; }
.tsStepSide { display: grid; justify-items: end; gap: 6px; }
.tsStepSide small { color: #8290a3; font-size: 11px; }
.tsStepBar { height: 6px; border-radius: 3px; background: #e6edf4; overflow: hidden; }
.tsStepBar span { display: block; height: 100%; background: var(--yellow); }
.tsBadge { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 11px; font-weight: 800; background: #edf2f7; color: #566478; }
.tsBadge-done { background: #ddf8e9; color: #087b44; }
.tsBadge-pending { background: #fff5d6; color: #8f6700; }
.tsBadge-partial { background: #e7efff; color: #1d4fc4; }
.tsBadge-rejected { background: #fde8e7; color: #b42318; }
.tsHow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.tsHow > div { padding: 16px; background: #f7fafc; border: 1px solid var(--line); }
.tsHow b { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--navy); color: var(--yellow); }
.tsHow strong { display: block; margin: 8px 0 4px; color: var(--navy); }
.tsHow p { margin: 0; color: #586578; font-size: 13px; line-height: 1.5; }
.tsFeedback { border-left: 4px solid #d9463b; }
.tsFeedback h2 { margin-top: 0; font-size: 18px; color: var(--navy); }
.tsFeedback li { margin: 6px 0; }
.tsForm { display: grid; gap: 14px; }
.tsForm label { display: grid; gap: 6px; }
.tsForm label > span { color: #3b5362; font-size: 13px; font-weight: 700; }
.tsForm label > span small, .tsForm label > small { color: #8290a3; font-weight: 500; }
.tsForm input[type="text"], .tsForm input[type="number"], .tsForm input[type="url"], .tsForm input[type="password"], .tsForm textarea { width: 100%; border: 1px solid #ccd6e2; background: #fbfdff; padding: 10px 12px; font: inherit; font-size: 14px; color: var(--navy); }
.tsForm textarea { resize: vertical; line-height: 1.55; }
.tsForm fieldset { display: grid; gap: 10px; margin: 0; padding: 16px; border: 1px solid var(--line); background: white; }
.tsForm legend { padding: 0 6px; color: var(--navy); font-weight: 800; }
.tsFormTwo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tsFormTwo > label { align-content: start; }
.tsFormActions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.tsInline { grid-template-columns: 1fr auto; align-items: end; margin-top: 14px; }
.tsInline .tsMsg { grid-column: 1 / -1; }
.tsChecks { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.tsChecks label { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
.tsChecksCities { max-height: 190px; overflow: auto; padding: 4px; }
.tsAssistRow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.tsAssistButton { padding: 9px 14px; border: 1px dashed var(--blue); border-radius: 6px; background: #f2f6ff; color: #174e9e; font: inherit; font-size: 13px; font-weight: 750; cursor: pointer; }
.tsAssistButton:disabled { opacity: .6; cursor: wait; }
.tsMsg { font-size: 13px; font-weight: 700; }
.tsMsg.ok { color: #087b44; }
.tsMsg.error { color: #b42318; }
.tsNote { margin: 0 0 12px; padding: 12px 14px; background: #fff8e6; border-left: 3px solid #e0a01f; color: #5c4a14; font-size: 13px; line-height: 1.55; }
.tsStatusLine { margin: 0 0 12px; padding: 10px 14px; background: #f4f8fb; border-left: 3px solid var(--blue); font-size: 13px; font-weight: 700; color: #3b5362; }
.tsStatus-submitted { border-left-color: #e0a01f; background: #fffaf0; }
.tsStatus-rejected { border-left-color: #d9463b; background: #fff6f5; }
.tsStatus-approved, .tsStatus-confirmed { border-left-color: #0eb368; background: #f2fbf7; }
.tsAdminNote { margin: 0 0 12px; padding: 10px 14px; background: #fff6f5; color: #8a1f17; font-size: 13px; }
.tsTwoCols { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.tsList { margin: 0 0 14px; padding-left: 18px; color: #3b5362; font-size: 13px; line-height: 1.7; }
.tsUploader { display: grid; gap: 8px; }
.tsUploaderDrop { position: relative; display: grid; gap: 4px; padding: 20px; border: 2px dashed #b9cadb; background: #f7fafc; text-align: center; cursor: pointer; }
.tsUploaderDrop:hover { border-color: var(--blue); background: #f2f6ff; }
.tsUploaderDrop input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.tsUploaderDrop strong { color: var(--navy); }
.tsUploaderDrop small { color: #6b7a8d; }
.tsProgress { height: 8px; border-radius: 4px; background: #e6edf4; overflow: hidden; }
.tsProgress span { display: block; height: 100%; background: var(--blue); transition: width .2s; }
.tsMediaList { display: grid; gap: 12px; }
.tsPhoto { display: flex; gap: 14px; align-items: center; margin: 0; padding: 10px; background: white; border: 1px solid var(--line); }
.tsPhoto img { width: 110px; height: 110px; object-fit: cover; border-radius: 50%; }
.tsPhoto figcaption, .tsVideo figcaption { display: grid; gap: 6px; justify-items: start; font-size: 12px; }
.tsVideo { display: grid; gap: 8px; margin: 0; padding: 10px; background: white; border: 1px solid var(--line); }
.tsVideo video, .tsVideo iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; background: #0b1e33; }
.tsPdf { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 10px 12px; background: white; border: 1px solid var(--line); font-size: 13px; }
.tsMedia-rejected { opacity: .75; }
.tsEmpty { color: #6b7a8d; font-size: 13px; }
.tsScript { display: grid; gap: 14px; }
.tsTips { padding: 14px 16px; background: #f4f8fb; }
.tsTips ul { margin: 8px 0 0; padding-left: 18px; line-height: 1.6; font-size: 13px; }
.tsCards { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.tsCard { display: grid; gap: 10px; align-content: start; padding: 18px; background: white; border: 1px solid var(--line); border-top: 3px solid var(--blue); }
.tsCard h2 { margin: 0; color: var(--navy); font-size: 17px; line-height: 1.35; }
.tsCard p { margin: 0; color: #586578; font-size: 13px; line-height: 1.5; }
.tsCardHead, .tsCardActions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.tsChecklist { margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; font-size: 13px; color: #6b7a8d; }
.tsChecklist li::before { content: "\25CB  "; }
.tsChecklist li.ok { color: #087b44; }
.tsChecklist li.ok::before { content: "\2713  "; }
.tsLoginHelp { margin-top: 14px; color: #6b7a8d; font-size: 13px; }
@media (max-width: 900px) {
  .tsHero, .tsTwoCols, .tsFormTwo { grid-template-columns: 1fr; }
  .tsHow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tsStep { grid-template-columns: 36px 1fr; }
  .tsStepSide { grid-column: 2; justify-items: start; }
}

/* Admin: trainer spaces */
.tsAdminTable .pubTableHead, .tsAdminTable .pubTableRow { grid-template-columns: minmax(200px, 1.4fr) minmax(180px, 1.3fr) 140px 120px 190px 100px; }
.tsAdminSteps { margin: 14px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 13px; }
.tsCompare { border: 1px solid var(--line); background: white; font-size: 13px; }
.tsCompare > div { display: grid; grid-template-columns: 150px 1fr 1fr; gap: 12px; padding: 10px 12px; border-top: 1px solid var(--line); }
.tsCompare > div:first-child { border-top: 0; }
.tsCompareHead { background: #f4f8fb; color: #8290a3; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.tsCompare > div.changed { background: #fffaf0; }
.tsCompare > div.changed > span:last-child { color: var(--navy); font-weight: 650; }
.tsCompare span { white-space: pre-line; word-break: break-word; }
.tsRejectForm { display: inline-flex; gap: 6px; }
.tsRejectForm input { min-width: 240px; height: 34px; border: 1px solid #ccd6e2; padding: 0 10px; font-size: 12px; }
.tsMediaReview { display: grid; gap: 12px; }
.tsMediaItem { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: start; padding: 12px; background: white; border: 1px solid var(--line); }
.tsMediaItem > div { display: grid; gap: 6px; justify-items: start; font-size: 13px; }
.tsMediaItem img { border-radius: 50%; }
.tsProposal { margin-bottom: 14px; padding: 14px; background: white; border: 1px solid var(--line); }
.tsProposal > header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.tsProposal > header strong { display: block; color: var(--navy); }
.tsProposal > header small { color: #6b7a8d; }
.tsProgrammeView p { margin: 0 0 4px; }
.tsProgrammeView ul, .tsProgrammeView ol { margin: 4px 0; padding-left: 18px; }
.trainerAccess { display: inline-grid; gap: 8px; justify-items: start; }
.trainerAccessBox { display: grid; gap: 8px; padding: 12px; background: #fffaf0; border: 1px solid #f0c36d; }
.trainerAccessBox code { padding: 8px 10px; background: white; font-size: 13px; line-height: 1.6; }
.trainerAccess .error { color: #b42318; }

/* Public: trainer profile and card */
.profileHero { display: grid; grid-template-columns: 160px 1fr; gap: 30px; align-items: center; }
.profileHeroPhoto { width: 160px; height: 160px; border-radius: 50%; object-fit: cover; border: 4px solid white; box-shadow: 0 10px 28px rgba(13, 51, 72, .15); }
.profileHeroInitial { display: grid; place-items: center; background: var(--navy); color: var(--yellow); font-size: 60px; font-weight: 800; }
.profileVideo video, .profileVideo iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; background: #0b1e33; }
.profileFormations { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.trainerProfileCard { display: grid; grid-template-columns: 64px 1fr; gap: 14px; align-items: center; padding: 16px; background: white; border: 1px solid #dce7ed; color: var(--navy); text-decoration: none; }
.trainerProfileCard:hover { border-color: var(--blue); }
.trainerProfileCard img, .trainerProfileInitial { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; }
.trainerProfileInitial { display: grid; place-items: center; background: var(--navy); color: var(--yellow); font-size: 26px; font-weight: 800; }
.trainerProfileCard > span:last-child { display: grid; gap: 2px; }
.trainerProfileCard small { color: #8290a3; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.trainerProfileCard em { color: #586578; font-size: 13px; font-style: normal; }
.trainerProfileCard b { color: var(--blue); font-size: 13px; }
.programmePoints { margin: 6px 0 0; padding-left: 18px; color: #3b5362; font-size: 14px; line-height: 1.6; }
@media (max-width: 760px) {
  .profileHero { grid-template-columns: 1fr; justify-items: start; }
  .profileFormations { grid-template-columns: 1fr; }
  .tsCompare > div { grid-template-columns: 1fr; }
}

/* WhatsApp: reply box, contact actions, mobile list / thread */
.waSearch { display: flex; gap: 8px; margin-bottom: 10px; }
.waSearch input { flex: 1; min-width: 0; height: 38px; border: 1px solid #ccd6e2; padding: 0 10px; font-size: 13px; }
.waHead { align-items: center; }
.waContact { flex: 1; min-width: 0; }
.waContact strong { display: block; color: var(--navy); font-size: 17px; }
.waContact small { color: #6b7a8d; }
.waActions { display: flex; flex-wrap: wrap; gap: 6px; }
.waBack { display: none; }
.waBubble.agent { border-right: 3px solid #128c7e; }
.waComposer { display: grid; gap: 8px; padding: 10px; background: #f0f2f5; border: 1px solid #dcd3c6; border-top: 0; }
.waComposerRow { display: grid; grid-template-columns: auto 1fr auto; gap: 8px; align-items: end; }
.waComposer textarea { min-height: 42px; max-height: 160px; resize: vertical; border: 0; border-radius: 20px; padding: 11px 16px; font: inherit; font-size: 14px; line-height: 1.4; }
.waAttach { position: relative; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; font-size: 20px; cursor: pointer; }
.waAttach:hover { background: #e2e6ea; }
.waAttach input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.waSend { width: 42px; height: 42px; border: 0; border-radius: 50%; background: #25d366; color: white; font-size: 18px; cursor: pointer; }
.waSend:disabled { background: #a5b3ad; cursor: default; }
.waAttachment { display: flex; align-items: center; gap: 10px; padding: 8px; background: white; border-radius: 8px; font-size: 13px; }
.waAttachment img { width: 48px; height: 48px; object-fit: cover; border-radius: 6px; }
.waAttachment span:nth-child(2) { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.waAttachment button { border: 0; background: none; cursor: pointer; font-size: 14px; }
.waWarning { margin: 0; padding: 8px 10px; background: #fff8e6; color: #5c4a14; font-size: 12px; border-radius: 6px; }
.waError { margin: 0; color: #b42318; font-size: 13px; font-weight: 700; }
.waComposerOff { margin: 0; padding: 12px; background: #f0f2f5; border: 1px solid #dcd3c6; border-top: 0; color: #5b6b80; font-size: 13px; }
.adminBottomNav { display: none; }
@media (max-width: 980px) {
  .waLayout:not(.waShowThread) .waThreadCol { display: none; }
  .waLayout.waShowThread .waListCol { display: none; }
  .waBack { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #eef3f8; color: var(--navy); font-size: 18px; text-decoration: none; }
  .waHead { flex-wrap: nowrap; }
  .waActions .adminToolButton span { display: none; }
  .waThread { max-height: calc(100vh - 330px); min-height: 45vh; }
}
@media (max-width: 760px) {
  .adminShell { padding-bottom: 72px; }
  .adminBottomNav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: grid; grid-template-columns: repeat(5, 1fr); padding: 4px 4px calc(4px + env(safe-area-inset-bottom)); background: var(--navy); box-shadow: 0 -6px 18px rgba(8, 26, 45, .25); }
  .adminBottomNav a, .adminBottomNav button { position: relative; display: grid; justify-items: center; gap: 2px; padding: 6px 2px; border: 0; background: none; color: #a9bbd0; font: inherit; text-decoration: none; cursor: pointer; }
  .adminBottomNav span { font-size: 20px; line-height: 1; }
  .adminBottomNav small { font-size: 10.5px; font-weight: 700; }
  .adminBottomNav .active { color: white; }
  .adminBottomNav .active small { color: var(--yellow); }
  .adminBottomNav em { position: absolute; top: 2px; left: calc(50% + 6px); padding: 1px 5px; border-radius: 9px; background: var(--yellow); color: var(--navy); font-size: 10px; font-style: normal; font-weight: 850; }
  .waSearch .button { display: none; }
}

/* WhatsApp: bot pause */
.waBot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 8px; padding: 8px 12px; background: #eef8f1; border: 1px solid #cfe9d8; color: #1f5134; font-size: 13px; }
.waBot.paused { background: #fff8e6; border-color: #f0d49a; color: #5c4a14; }
.waBotButtons { display: flex; flex-wrap: wrap; gap: 6px; }
.waBotButtons form { display: contents; }
.waPausedTag { color: #a26b00; font-weight: 700; }

/* ===== Espace formateur v2 (Fiverr-like seller space) ===== */
.fx { --fx-bg: #f6f6f4; --fx-card: #ffffff; --fx-line: #e3e3de; --fx-text: #17202b; --fx-muted: #5f6873; --fx-accent: #0d3b8c; --fx-accent-dark: #0a2d6b; --fx-green: #2f7d57; --fx-radius: 10px; min-height: 100vh; display: flex; flex-direction: column; background: var(--fx-bg); color: var(--fx-text); }
.fxBody { flex: 1; }
.fx a { text-decoration: none; }

/* Top bar */
.fxTop { position: sticky; top: 0; z-index: 50; background: #ffffff; border-bottom: 1px solid var(--fx-line); }
.fxTopInner { display: flex; align-items: center; gap: 22px; width: min(1240px, calc(100% - 32px)); height: 66px; margin: 0 auto; }
.fxBrand { display: flex; align-items: center; gap: 10px; flex: none; }
.fxBrand img { width: 112px; height: auto; }
.fxBrand span { padding-left: 10px; border-left: 1px solid var(--fx-line); color: var(--fx-muted); font-size: 13px; font-weight: 500; white-space: nowrap; }
.fxTabs { display: flex; align-items: stretch; gap: 4px; height: 100%; overflow-x: auto; scrollbar-width: none; }
.fxTabs::-webkit-scrollbar { display: none; }
.fxTab { position: relative; display: flex; align-items: center; gap: 6px; padding: 0 12px; color: var(--fx-muted); font-size: 14px; font-weight: 650; white-space: nowrap; }
.fxTab:hover { color: var(--fx-text); }
.fxTab.active { color: var(--fx-text); }
.fxTab.active::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: var(--fx-accent); }
.fxTab small { padding: 1px 7px; border-radius: 999px; background: #eef2f7; color: var(--fx-muted); font-size: 11px; font-weight: 600; }
.fxTab.soon { cursor: default; opacity: .6; }
.fxTab.soon small { background: #fff3cd; color: #8a6500; }
.fxTopRight { display: flex; align-items: center; gap: 14px; margin-left: auto; }
.fxCompletion { display: flex; align-items: center; gap: 8px; padding: 5px 12px 5px 6px; border: 1px solid var(--fx-line); border-radius: 999px; color: var(--fx-text); font-size: 13px; }
.fxMiniRing { --pct: 0%; position: relative; width: 22px; height: 22px; border-radius: 50%; background: conic-gradient(var(--fx-text) var(--pct), #e3e3de 0); }
.fxMiniRing::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: #fff; }
.fxAccount { position: relative; }
.fxAccount summary { list-style: none; cursor: pointer; }
.fxAccount summary::-webkit-details-marker { display: none; }
.fxAccount summary img, .fxAvatarInitial { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; object-fit: cover; background: var(--navy); color: var(--yellow); font-weight: 600; }
.fxAccountMenu { position: absolute; right: 0; top: calc(100% + 8px); display: grid; min-width: 220px; padding: 6px; background: white; border: 1px solid var(--fx-line); border-radius: 8px; box-shadow: 0 6px 18px rgba(0, 0, 0, .08); }
.fxAccountMenu strong { padding: 8px 10px; border-bottom: 1px solid var(--fx-line); margin-bottom: 4px; }
.fxAccountMenu a, .fxAccountMenu button { padding: 9px 10px; border: 0; border-radius: 8px; background: none; color: var(--fx-text); font: inherit; font-size: 14px; text-align: left; cursor: pointer; }
.fxAccountMenu a:hover, .fxAccountMenu button:hover { background: #f2f5f9; }

/* Layout */
.fxPage { width: min(1240px, calc(100% - 32px)); margin: 0 auto; padding: 28px 0 56px; }
.fxDash { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 26px; align-items: start; }
.fxSide { position: sticky; top: 90px; display: grid; gap: 16px; }
.fxMainCol { display: grid; gap: 18px; min-width: 0; }
.fxCard { padding: 22px; background: var(--fx-card); border: 1px solid var(--fx-line); border-radius: var(--fx-radius); }
.fxCardHead { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 14px; }
.fxCardHead h2 { font-size: 18px; font-weight: 600; color: var(--fx-text); }
.fxTwo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.fxTwo h3 { margin-bottom: 8px; font-size: 14px; font-weight: 600; }
.fxMuted { color: var(--fx-muted); font-size: 13.5px; line-height: 1.55; }
.fxLink { color: var(--fx-accent); font-size: 13.5px; font-weight: 700; }
.fxLinkButton { padding: 0; border: 0; background: none; color: #b42318; font-size: 12px; font-weight: 700; cursor: pointer; }
.fxBack { display: inline-block; margin-bottom: 14px; color: var(--fx-muted); font-size: 14px; font-weight: 700; }
.fxPageHead { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 18px; }
.fxPageHead h1 { font-size: clamp(24px, 3vw, 30px); font-weight: 600; }
.fxPageHead p { max-width: 760px; margin-top: 6px; color: var(--fx-muted); line-height: 1.55; }

/* Buttons, chips, bars, notices */
.fxBtn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 18px; border: 0; border-radius: 6px; background: var(--fx-text); color: white; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; transition: background .15s; }
.fxBtn:hover { background: #000; color: white; }
.fxBtn:disabled { opacity: .6; cursor: wait; }
.fxBtnGhost { background: white; color: var(--fx-text); border: 1px solid var(--fx-line); }
.fxBtnGhost:hover { background: #f2f5f9; color: var(--fx-text); }
.fxBtnLight { background: white; color: var(--navy); }
.fxBtnLight:hover { background: #f0f0ec; color: var(--navy); }
.fxBtnWide { width: 100%; }
.fxChip { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 600; white-space: nowrap; background: #eef2f7; color: #52606d; }
.fxChip-done { background: #dcf7ea; color: #0b7a4b; }
.fxChip-pending { background: #fff2cc; color: #8a6500; }
.fxChip-partial { background: #e5eeff; color: #1d4fc4; }
.fxChip-rejected { background: #fde6e4; color: #b42318; }
.fxBar { height: 6px; border-radius: 999px; background: #e8edf3; overflow: hidden; }
.fxBar span { display: block; height: 100%; border-radius: 999px; background: var(--fx-green); }
.fxNotice { padding: 14px 18px; border-radius: 12px; border: 1px solid; font-size: 14px; line-height: 1.5; }
.fxNotice strong { display: block; margin-bottom: 2px; }
.fxNotice ul { display: grid; gap: 4px; margin-top: 6px; }
.fxNotice a { font-weight: 600; }
.fxNoticeInfo { background: #eef4ff; border-color: #cfdcfb; color: #1d3f86; }
.fxNoticeWarn { background: #fff8e6; border-color: #f3dca0; color: #6b5210; }
.fxNoticeError { background: #fff1f0; border-color: #f6c9c4; color: #8a1f17; }
.fxNoticeOk { background: #edfbf3; border-color: #bfe9d3; color: #0e6a41; }
.fxSectionHead { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-top: 8px; }
.fxSectionHead h2 { font-size: 20px; font-weight: 600; }
.fxSectionHead a, .fxSectionHead span { color: var(--fx-muted); font-size: 14px; font-weight: 700; }
.fxSectionHead a:hover { color: var(--fx-accent); }

/* Profile card (dashboard) */
.fxProfileCard { display: grid; justify-items: center; gap: 10px; text-align: center; }
.fxProfileCard h2 { font-size: 19px; font-weight: 600; }
.fxProfileCard > p { color: var(--fx-muted); font-size: 13.5px; line-height: 1.5; }
.fxProfileCard .fxBtn { width: 100%; }
.fxAvatar { position: relative; }
.fxAvatar img, .fxAvatarEmpty { display: grid; place-items: center; width: 96px; height: 96px; border-radius: 50%; object-fit: cover; }
.fxAvatarEmpty { background: #efefeb; border: 1px dashed #c9c9c2; font-size: 13px; font-weight: 600; color: var(--fx-muted); }
.fxAvatarEmpty small { display: block; font-size: 11px; font-weight: 600; }
.fxOnline { position: absolute; right: 6px; bottom: 6px; width: 16px; height: 16px; border-radius: 50%; border: 3px solid white; background: #c3ccd6; }
.fxOnline.on { background: var(--fx-green); }
.fxProgressBlock { display: grid; gap: 6px; width: 100%; margin-top: 4px; }
.fxProgressBlock > div:first-child { display: flex; justify-content: space-between; font-size: 13px; color: var(--fx-muted); }
.fxProgressBlock b { color: var(--fx-text); }
.fxStats { display: grid; width: 100%; margin-top: 6px; border-top: 1px solid var(--fx-line); }
.fxStats > div { display: flex; justify-content: space-between; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--fx-line); font-size: 13.5px; }
.fxStats dt { color: var(--fx-muted); }
.fxStats dd { margin: 0; font-weight: 600; text-align: right; }
.fxTipCard { background: #fff; border-left: 3px solid var(--yellow); }
.fxTipCard p { margin-top: 6px; color: var(--fx-muted); font-size: 13.5px; line-height: 1.55; }

/* Welcome banner */
.fxWelcome { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 18px; padding: 26px 28px; border-radius: var(--fx-radius); background: #0b1f3a; color: white; }
.fxWelcome p { color: #aab7c8; font-weight: 500; }
.fxWelcome h1 { max-width: 620px; margin: 4px 0 6px; font-size: clamp(21px, 2.4vw, 26px); font-weight: 600; line-height: 1.3; }
.fxWelcome span { color: #b9cbe8; font-size: 13.5px; }

/* Checklist */
.fxSteps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.fxStep { display: grid; grid-template-columns: 36px 1fr; gap: 12px; align-items: start; padding: 16px; background: white; border: 1px solid var(--fx-line); border-radius: 8px; color: var(--fx-text); transition: border-color .15s; }
.fxStep:hover { border-color: #b9b9b1; }
.fxStep strong { font-size: 15px; }
.fxStep p { margin: 3px 0 10px; color: var(--fx-muted); font-size: 13px; line-height: 1.45; }
.fxStep .fxChip { grid-column: 2; justify-self: start; }
.fxStepIcon { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--fx-line); color: var(--fx-muted); font-size: 14px; font-weight: 600; }
.fxStep-done .fxStepIcon { border-color: var(--fx-green); background: var(--fx-green); color: white; }

/* Gig cards */
.fxGigGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; }
.fxGig { display: flex; flex-direction: column; overflow: hidden; background: white; border: 1px solid var(--fx-line); border-radius: var(--fx-radius); color: var(--fx-text); transition: border-color .15s; }
.fxGig:hover { border-color: #a9a9a1; }
.fxGigMedia { position: relative; display: grid; place-items: center; aspect-ratio: 16 / 9; overflow: hidden; }
.fxGigMedia img { width: 100%; height: 100%; object-fit: cover; }
.fxGigMedia.empty { background: #efefeb; border-bottom: 1px solid var(--fx-line); }
.fxGigInitial { color: var(--fx-text); font-size: 56px; font-weight: 600; }
.fxGigPlay { position: absolute; right: 10px; bottom: 10px; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(0, 0, 0, .6); color: white; }
.fxGigMedia .fxChip { position: absolute; left: 10px; top: 10px; }
.fxGigBody { display: grid; gap: 6px; padding: 14px 16px 8px; flex: 1; align-content: start; }
.fxGigBody h3 { font-size: 15.5px; font-weight: 600; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fxGigBody p { color: var(--fx-muted); font-size: 13px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fxGigTags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 2px; }
.fxGigTags span { padding: 3px 8px; border-radius: 6px; background: #f0f4fa; color: #3d4b5a; font-size: 11.5px; font-weight: 700; }
.fxGigFoot { display: grid; grid-template-columns: 1fr auto; gap: 6px 10px; align-items: center; padding: 12px 16px 14px; border-top: 1px solid var(--fx-line); }
.fxGigFoot .fxBar { grid-column: 1 / -1; }
.fxGigFoot small { color: var(--fx-muted); font-size: 12px; font-weight: 700; }
.fxGigFoot b { color: var(--fx-accent); font-size: 13px; }
.fxGigNew { align-items: center; justify-content: center; gap: 8px; padding: 26px; min-height: 280px; text-align: center; border: 1px dashed #b9b9b1; background: transparent; }
.fxGigNew strong { font-size: 16px; }
.fxGigNew p { color: var(--fx-muted); font-size: 13px; line-height: 1.5; }
.fxGigPlus { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--fx-text); color: var(--fx-text); font-size: 24px; font-weight: 400; }
.fxSoon { display: flex; gap: 16px; align-items: center; }
.fxSoonIcon { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--fx-line); color: var(--fx-muted); }
.fxSoon p { margin-top: 4px; color: var(--fx-muted); font-size: 13.5px; line-height: 1.5; }

/* Profile page (seller profile) */
.fxCover { height: 150px; margin: -28px 0 0; border-radius: 0 0 var(--fx-radius) var(--fx-radius); background: #0b1f3a; }
.fxProfileLayout { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 26px; align-items: start; margin-top: -80px; }
.fxSellerCard { position: sticky; top: 90px; display: grid; justify-items: center; gap: 10px; text-align: center; }
.fxAvatarLarge img, .fxAvatarLarge .fxAvatarEmpty { width: 140px; height: 140px; border: 4px solid white; }
.fxSellerCard h1 { font-size: 22px; font-weight: 600; }
.fxSellerHeadline { color: var(--fx-muted); line-height: 1.5; }
.fxFacts { display: grid; gap: 8px; width: 100%; padding: 14px 0; border-top: 1px solid var(--fx-line); border-bottom: 1px solid var(--fx-line); text-align: left; font-size: 13.5px; }
.fxFacts li { display: flex; align-items: center; gap: 8px; color: var(--fx-muted); }
.fxIcon { flex: none; vertical-align: -3px; }
.fxProfileLayout .fxMainCol { padding-top: 96px; }
.fxTips { display: grid; gap: 6px; margin-bottom: 14px; color: var(--fx-muted); font-size: 13.5px; }
.fxTips li { padding-left: 14px; position: relative; }
.fxTips li::before { content: ""; position: absolute; left: 0; top: .6em; width: 5px; height: 5px; border-radius: 50%; background: var(--fx-muted); }
.fxMediaList { display: grid; gap: 10px; margin-top: 12px; }
.fxMediaItem { display: flex; gap: 12px; align-items: center; margin: 0; padding: 10px; border: 1px solid var(--fx-line); border-radius: 10px; background: #fbfcfe; }
.fxMediaItem img { width: 72px; height: 72px; object-fit: cover; border-radius: 50%; }
.fxMediaItem video, .fxMediaItem iframe { width: 200px; max-width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 8px; background: #0b1e33; }
.fxMediaItem figcaption { display: grid; gap: 4px; justify-items: start; font-size: 12px; }
.fxPdf { font-size: 13.5px; font-weight: 700; color: var(--fx-text); }

/* Offers list & offer editor */
.fxFilters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.fxFilters a { padding: 8px 14px; border: 1px solid var(--fx-line); border-radius: 999px; background: white; color: var(--fx-muted); font-size: 13.5px; font-weight: 700; }
.fxFilters a small { margin-left: 4px; color: #8a97a5; }
.fxFilters a.active { background: var(--fx-text); border-color: var(--fx-text); color: white; }
.fxFilters a.active small { color: #c6d0da; }
.fxOfferHead { display: grid; grid-template-columns: 300px 1fr; gap: 24px; align-items: center; margin-bottom: 18px; padding: 18px; background: white; border: 1px solid var(--fx-line); border-radius: var(--fx-radius); }
.fxOfferThumb { aspect-ratio: 16 / 9; overflow: hidden; border-radius: 8px; background: #efefeb; }
.fxOfferThumb img { width: 100%; height: 100%; object-fit: cover; }
.fxOfferThumb a { display: grid; place-items: center; height: 100%; color: var(--fx-accent); font-weight: 600; }
.fxOfferHead h1 { margin: 8px 0 6px; font-size: clamp(20px, 2.4vw, 26px); font-weight: 600; line-height: 1.25; }
.fxOfferHead p { color: var(--fx-muted); line-height: 1.5; }
.fxOfferMeta { display: grid; grid-template-columns: minmax(120px, 240px) auto auto; gap: 12px; align-items: center; margin-top: 12px; }
.fxOfferMeta small { color: var(--fx-muted); font-weight: 700; }
.fxOfferLayout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 22px; align-items: start; margin-top: 18px; }
.fxOfferLayoutReverse { grid-template-columns: minmax(0, 1fr) 300px; }
.fxOfferLayoutReverse > aside { order: 2; }
.fxStepNav { position: sticky; top: 90px; display: grid; gap: 4px; padding: 16px; }
.fxStepNav strong { margin-bottom: 6px; font-size: 14px; }
.fxStepNav a { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 8px; color: var(--fx-muted); font-size: 13.5px; font-weight: 700; }
.fxStepNav a:hover { background: #f2f5f9; color: var(--fx-text); }
.fxStepNav a span { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: #eef2f7; font-size: 11px; }
.fxStepNav a.done { color: #0b7a4b; }
.fxStepNav a.done span { background: var(--fx-green); color: white; }
.fxStepNav small { margin-left: auto; color: #9aa7b4; font-size: 10.5px; font-weight: 700; }
.fxStepNav small.req { color: #b54708; }
.fxTipsCard { position: sticky; top: 90px; }
.fxTipsCard ul { display: grid; gap: 10px; margin-top: 10px; color: var(--fx-muted); font-size: 13.5px; line-height: 1.5; }
.fxTipsCard b { color: var(--fx-text); }

/* Forms inside the space */
.fx .tsForm fieldset { border-radius: 12px; }
.fx .tsForm input[type="text"], .fx .tsForm input[type="number"], .fx .tsForm input[type="url"], .fx .tsForm input[type="password"], .fx .tsForm input[type="email"], .fx .tsForm input[type="search"], .fx .tsForm textarea, .fx .tsForm select { width: 100%; border: 1px solid #d3dce6; border-radius: 10px; background: white; padding: 11px 13px; font: inherit; font-size: 14px; color: var(--fx-text); transition: border-color .15s, box-shadow .15s; }
.fx .tsForm input:focus, .fx .tsForm textarea:focus, .fx .tsForm select:focus { outline: none; border-color: var(--fx-accent); box-shadow: 0 0 0 3px rgba(11, 92, 255, .12); }
.fx .tsForm .button { border-radius: 10px; }
.fx .tsUploaderDrop { border-radius: 12px; }
.fx .tsNote { border-radius: 10px; }
.fxForm { gap: 18px; }
.fxForm .fxCard { display: grid; gap: 14px; }
.fxLabel { display: block; margin-bottom: 6px; color: #3b5362; font-size: 13px; font-weight: 700; }
.fxPicker { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 6px; border: 1px solid #d3dce6; border-radius: 10px; background: white; }
.fxPicker input[type="search"] { flex: 1; min-width: 180px; border: 0 !important; box-shadow: none !important; padding: 6px !important; }
.fxPicked { display: inline-flex; align-items: center; gap: 6px; padding: 5px 6px 5px 10px; border-radius: 999px; background: #e5eeff; color: #1d4fc4; font-size: 13px; font-weight: 700; }
.fxPicked button { border: 0; background: none; color: inherit; cursor: pointer; }
.fxPickerList { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.fxPickerList button { padding: 6px 12px; border: 1px solid var(--fx-line); border-radius: 999px; background: white; font: inherit; font-size: 13px; cursor: pointer; }
.fxPickerList button:hover { border-color: var(--fx-accent); color: var(--fx-accent); }
.fxSubmitBar { position: sticky; bottom: 0; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; padding: 14px 18px; background: #fff; border: 1px solid var(--fx-line); border-radius: var(--fx-radius); }
.fxSubmitBar span { max-width: 560px; color: var(--fx-muted); font-size: 13px; }

/* Pages still using section blocks (video, account) */
.fxStack { display: grid; gap: 18px; }
.fx .adminSection { margin: 0; padding: 22px; background: white; border: 1px solid var(--fx-line); border-radius: var(--fx-radius); box-shadow: none; }
.fx .tsPageHead h1 { font-weight: 600; }
.fx .tsPageHead .eyebrow { color: var(--fx-accent); }

/* Footer */
.fxFooter { margin-top: 20px; background: #fff; border-top: 1px solid var(--fx-line); color: var(--fx-muted); }
.fxFooterGrid { display: grid; grid-template-columns: 1.2fr 1fr 1fr 1.2fr; gap: 28px; width: min(1240px, calc(100% - 32px)); margin: 0 auto; padding: 40px 0 26px; }
.fxFooterGrid strong { display: block; margin-bottom: 10px; color: var(--fx-text); font-size: 14px; font-weight: 600; }
.fxFooterGrid p { font-size: 13.5px; line-height: 1.6; }
.fxFooterGrid a { display: block; margin: 6px 0; color: var(--fx-muted); font-size: 13.5px; }
.fxFooterGrid a:hover { color: var(--fx-text); text-decoration: underline; }
.fxHowList { display: grid; gap: 6px; counter-reset: how; font-size: 13.5px; }
.fxHowList li { counter-increment: how; }
.fxHowList li::before { content: counter(how) ". "; color: var(--fx-text); font-weight: 600; }
.fxWhatsapp { display: inline-flex !important; align-items: center; gap: 8px; margin-top: 10px !important; padding: 9px 14px; border: 1px solid #1f8f4e; border-radius: 6px; background: transparent; color: #1f7a45 !important; font-weight: 600; }
.fxWhatsapp:hover { background: #eef7f1; text-decoration: none !important; }
.fxFooterBottom { display: flex; flex-wrap: wrap; gap: 18px; width: min(1240px, calc(100% - 32px)); margin: 0 auto; padding: 16px 0 22px; border-top: 1px solid var(--fx-line); font-size: 13px; }
.fxFooterBottom a { color: var(--fx-muted); }


/* Public: offer visuals */
.presenceCard.hasImage { padding-top: 0; }
.presenceCardImage { display: block; margin: 0 -24px 16px; aspect-ratio: 16 / 9; overflow: hidden; }
.presenceCardImage img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.presenceCard:hover .presenceCardImage img { transform: scale(1.03); }
.offerMediaBlock { padding: 0 0 8px !important; }
.offerMediaBlock img, .offerMediaBlock video, .offerMediaBlock iframe { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border: 0; border-radius: 12px; background: #0b1e33; }

@media (max-width: 1000px) {
  .fxDash, .fxProfileLayout, .fxOfferLayout, .fxOfferLayoutReverse { grid-template-columns: 1fr; }
  .fxSide, .fxSellerCard, .fxStepNav, .fxTipsCard { position: static; }
  .fxProfileLayout .fxMainCol { padding-top: 0; }
  .fxOfferLayoutReverse > aside { order: 0; }
  .fxFooterGrid { grid-template-columns: repeat(2, 1fr); }
  .fxOfferHead { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .fxTopInner { gap: 10px; height: auto; min-height: 58px; flex-wrap: wrap; padding: 8px 0 0; }
  .fxBrand img { width: 92px; }
  .fxBrand span { display: none; }
  .fxTabs { order: 3; width: 100%; height: 44px; }
  .fxCompletion b { display: none; }
  .fxSteps, .fxTwo { grid-template-columns: 1fr; }
  .fxWelcome { padding: 22px; }
  .fxFooterGrid { grid-template-columns: 1fr; }
  .fxOfferMeta { grid-template-columns: 1fr; }
  .fxCover { height: 110px; }
  .fxProfileLayout { margin-top: -60px; }
}

.fxGigInitial { padding: 0 18px; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.15; text-align: center; }
@media (max-width: 1000px) { .fxDash .fxMainCol { order: -1; } }

/* Trainer space: shared form pieces in the sober style */
.fx .button { border-radius: 6px; font-weight: 600; box-shadow: none; }
.fx .button.buttonYellow { background: var(--fx-text); border-color: var(--fx-text); color: #fff; }
.fx .button.buttonYellow:hover { background: #000; }
.fx .button:not(.buttonYellow) { background: #fff; border: 1px solid #c9c9c2; color: var(--fx-text); }
.fx .button:not(.buttonYellow):hover { border-color: var(--fx-text); }
.fx .tsAssistButton { border: 1px solid #c9c9c2; border-radius: 6px; background: #fff; color: var(--fx-text); font-weight: 600; }
.fx .tsAssistButton:hover { border-color: var(--fx-text); }
.fx .tsNote { background: #f6f6f4; border-left: 3px solid #c9c9c2; color: var(--fx-muted); }
.fx .tsUploaderDrop { border: 1px dashed #b9b9b1; background: #fbfbf9; }
.fx .tsUploaderDrop:hover { border-color: var(--fx-text); background: #fff; }
.fx .tsProgress span { background: var(--fx-text); }
.fx .tsForm fieldset { border-color: var(--fx-line); }
.fx .tsForm input:focus, .fx .tsForm textarea:focus, .fx .tsForm select:focus { border-color: var(--fx-text); box-shadow: 0 0 0 3px rgba(23, 32, 43, .08); }
.fx .eyebrow span { background: var(--fx-text); }
.fxPicked { background: #efefeb; color: var(--fx-text); }
.fxPickerList button:hover { border-color: var(--fx-text); color: var(--fx-text); }
.fxTab.active::after { background: var(--fx-text); }
.fxLink, .fxGigFoot b { color: var(--fx-text); text-decoration: underline; text-underline-offset: 3px; }
.fxFilters a.active { background: var(--fx-text); border-color: var(--fx-text); }

.fxGigInitial { font-size: 22px; font-weight: 500; letter-spacing: -.01em; }
.fxNotice { background: #fff; border: 1px solid var(--fx-line); border-left-width: 3px; color: var(--fx-text); }
.fxNoticeInfo { border-left-color: #3b5b8f; }
.fxNoticeWarn { border-left-color: #b8892b; }
.fxNoticeError { border-left-color: #b42318; }
.fxNoticeOk { border-left-color: var(--fx-green); }
.fxNotice p { color: var(--fx-muted); }
.fxCover { height: 120px; background: #e8e6df; border-bottom: 1px solid var(--fx-line); }
.fxProfileLayout { margin-top: -60px; }
.fxProfileLayout .fxMainCol { padding-top: 76px; }
@media (max-width: 1000px) { .fxProfileLayout .fxMainCol { padding-top: 0; } }

/* Trainer space: colour pass (brand navy, blue, yellow; flat, no gradients) */
.fx { --fx-bg: #f2f4f8; --fx-line: #dfe4ec; --fx-text: #0f1f38; --fx-muted: #56657a; --fx-accent: #0b5cff; --fx-accent-dark: #0846c4; --fx-navy: #0b2a55; --fx-yellow: #ffd226; --fx-green: #13875a; }
.fxTop { background: var(--fx-navy); border-bottom: 0; }
.fxBrand img { padding: 5px 8px; border-radius: 6px; background: #fff; }
.fxBrand span { border-left-color: rgba(255, 255, 255, .25); color: #c7d4e8; }
.fxTab { color: #c7d4e8; }
.fxTab:hover, .fxTab.active { color: #fff; }
.fxTab.active::after { background: var(--fx-yellow); }
.fxTab small { background: rgba(255, 255, 255, .14); color: #fff; }
.fxTab.soon small { background: var(--fx-yellow); color: var(--fx-navy); }
.fxCompletion { border-color: rgba(255, 255, 255, .25); color: #fff; }
.fxMiniRing { background: conic-gradient(var(--fx-yellow) var(--pct), rgba(255, 255, 255, .25) 0); }
.fxMiniRing::after { background: var(--fx-navy); }
.fxAvatarInitial { background: var(--fx-yellow); color: var(--fx-navy); }

.fxBtn { background: var(--fx-accent); }
.fxBtn:hover { background: var(--fx-accent-dark); }
.fx .button.buttonYellow { background: var(--fx-accent); border-color: var(--fx-accent); }
.fx .button.buttonYellow:hover { background: var(--fx-accent-dark); }
.fxBtnLight { background: var(--fx-yellow); color: var(--fx-navy); }
.fxBtnLight:hover { background: #ffdc4d; color: var(--fx-navy); }
.fxLink, .fxGigFoot b { color: var(--fx-accent); }
.fx .tsAssistButton { border-color: var(--fx-accent); color: var(--fx-accent); background: #eef4ff; }
.fx .tsAssistButton:hover { background: #e2ecff; }
.fx .tsProgress span, .fxBar span { background: var(--fx-accent); }
.fxStep-done .fxBar span { background: var(--fx-green); }

.fxWelcome { background: var(--fx-navy); border-left: 6px solid var(--fx-yellow); }
.fxWelcome p { color: var(--fx-yellow); }
.fxProfileCard { border-top: 4px solid var(--fx-accent); }
.fxTipCard { background: #fff8d9; border: 1px solid #f3e2a0; border-left: 4px solid var(--fx-yellow); }
.fxStepIcon { border-color: var(--fx-accent); color: var(--fx-accent); background: #eef4ff; }
.fxStep:hover { border-color: var(--fx-accent); }
.fxStep-done .fxStepIcon { border-color: var(--fx-green); background: var(--fx-green); color: #fff; }
.fxSoonIcon { border-color: var(--fx-accent); color: var(--fx-accent); background: #eef4ff; }

.fxNotice { border-left-width: 4px; }
.fxNoticeInfo { background: #eef4ff; border-color: #cfdcf7; border-left-color: var(--fx-accent); }
.fxNoticeWarn { background: #fff8e1; border-color: #f2e2a8; border-left-color: #d4a106; }
.fxNoticeError { background: #fff1ef; border-color: #f4cdc7; border-left-color: #c2352a; }
.fxNoticeOk { background: #ecf8f2; border-color: #c4e6d4; border-left-color: var(--fx-green); }

.fxGigMedia.empty { border-bottom: 0; }
.fxGigMedia.empty.c0 { background: var(--fx-navy); }
.fxGigMedia.empty.c1 { background: #0b5cff; }
.fxGigMedia.empty.c2 { background: #0f6b52; }
.fxGigMedia.empty.c3 { background: #b4532a; }
.fxGigMedia.empty .fxGigInitial { color: #fff; }
.fxGig:hover { border-color: var(--fx-accent); }
.fxGigPlus { border-color: var(--fx-accent); background: var(--fx-accent); color: #fff; }
.fxGigNew { border-color: #9db8ec; background: #f5f8ff; }
.fxFilters a.active { background: var(--fx-navy); border-color: var(--fx-navy); }
.fxPicked { background: #e5eeff; color: #1d4fc4; }
.fxCover { background: var(--fx-navy); border-bottom: 4px solid var(--fx-yellow); }
.fxSellerCard { border-top: 4px solid var(--fx-accent); }
.fxOfferThumb { background: #e7edf7; }
.fxOfferThumb a { color: var(--fx-accent); }
.fxStepNav a.done span { background: var(--fx-green); }

.fxFooter { background: var(--fx-navy); border-top: 4px solid var(--fx-yellow); color: #b8c6d8; }
.fxFooterGrid strong { color: #fff; }
.fxFooterGrid a { color: #c7d4e8; }
.fxFooterGrid a:hover { color: #fff; }
.fxHowList li::before { color: var(--fx-yellow); }
.fxWhatsapp { background: #25d366 !important; border-color: #25d366 !important; color: #fff !important; }
.fxWhatsapp:hover { background: #1fbd59 !important; }
.fxFooterBottom { border-top-color: rgba(255, 255, 255, .14); }
.fxFooterBottom a { color: #c7d4e8; }


/* Visual templates */
.fxTemplateOpen { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; width: 100%; margin-bottom: 18px; padding: 16px 18px; border: 1px solid #cfdcf7; border-left: 4px solid var(--fx-accent); border-radius: 8px; background: #f5f8ff; color: var(--fx-text); text-align: left; cursor: pointer; }
.fxTemplateOpen strong { display: block; font-size: 15px; }
.fxTemplateOpen small { color: var(--fx-muted); font-size: 13px; }
.fxTemplateOpen b { padding: 8px 14px; border-radius: 6px; background: var(--fx-accent); color: #fff; font-size: 13.5px; font-weight: 600; }
.fxTemplates { display: grid; gap: 16px; margin-bottom: 20px; padding: 16px; border: 1px solid var(--fx-line); border-radius: 10px; background: #f8fafc; }
.fxTemplateGrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.fxTemplateGrid button { display: grid; gap: 6px; padding: 6px; border: 2px solid transparent; border-radius: 8px; background: #fff; font-size: 13px; font-weight: 600; color: var(--fx-text); cursor: pointer; }
.fxTemplateGrid button.active { border-color: var(--fx-accent); }
.fxTemplateGrid canvas { width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 4px; }
.fxTemplateEditor { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, 1fr); gap: 18px; align-items: start; }
.fxTemplatePreview { width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 6px; border: 1px solid var(--fx-line); background: #fff; }
.fxTemplateControls { gap: 12px; }
.fxSwatches { display: flex; gap: 10px; }
.fxSwatches button { width: 40px; height: 40px; border: 2px solid #fff; border-radius: 50%; outline: 1px solid var(--fx-line); cursor: pointer; }
.fxSwatches button.active { outline: 3px solid var(--fx-text); }
.fxTemplatePhoto input { font-size: 13px; }
.fxTemplatePhoto small { color: var(--fx-muted); font-weight: 400; }
@media (max-width: 900px) {
  .fxTemplateGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fxTemplateEditor { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .fxTopInner { padding-bottom: 0; }
}

.fxTemplateGrid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.fxSwatches { flex-wrap: wrap; }
.fxSwatches button { width: 34px; height: 34px; }
.fxPhotoPicker { display: grid; gap: 10px; margin-top: 12px; }
.fxPhotoChips { display: flex; flex-wrap: wrap; gap: 6px; }
.fxPhotoChips button { padding: 6px 12px; border: 1px solid var(--fx-line); border-radius: 999px; background: #fff; font-size: 13px; font-weight: 600; color: var(--fx-text); cursor: pointer; }
.fxPhotoChips button.active { background: var(--fx-navy); border-color: var(--fx-navy); color: #fff; }
.fxPhotoSearch { display: flex; gap: 8px; }
.fxPhotoSearch input { flex: 1; min-width: 0; border: 1px solid var(--fx-line); border-radius: 6px; padding: 8px 10px; font-size: 13.5px; }
.fxPhotoResults { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.fxPhotoResults > button, .fxPhotoUpload { position: relative; display: grid; padding: 0; border: 2px solid transparent; border-radius: 6px; overflow: hidden; background: #e7edf7; cursor: pointer; aspect-ratio: 3 / 2; }
.fxPhotoResults > button.active { border-color: var(--fx-accent); }
.fxPhotoResults img { width: 100%; height: 100%; object-fit: cover; }
.fxPhotoResults small { position: absolute; left: 0; right: 0; bottom: 0; padding: 3px 6px; background: rgba(0,0,0,.55); color: #fff; font-size: 10.5px; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fxPhotoResults small a { color: #fff; }
.fxPhotoUpload { place-items: center; border: 1px dashed #9db8ec; background: #f5f8ff; color: var(--fx-accent); font-size: 13px; font-weight: 600; text-align: center; }
.fxPhotoUpload input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.fxUnsplashCredit a { color: var(--fx-text); text-decoration: underline; }
@media (max-width: 1100px) { .fxTemplateGrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .fxTemplateGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.fxHint { display: block; margin-top: 8px; color: var(--fx-muted); font-size: 12.5px; }
.fxCityTools { display: flex; gap: 8px; margin-bottom: 6px; }
.fxCityTools button { padding: 5px 12px; border: 1px solid var(--fx-line); border-radius: 6px; background: #fff; font-size: 12.5px; font-weight: 600; color: var(--fx-accent); cursor: pointer; }
.fxCityTools button:hover { border-color: var(--fx-accent); }
.fx .tsForm legend small { color: var(--fx-muted); font-weight: 400; }

/* ===== Pilotage: top menu (replaces the sidebar and the site header) ===== */
.apShell { min-height: 100vh; background: #eef1f5; }
.moderatorRoleLabel { display: none; }
.ownerRoleLabel, .moderatorRoleLabel { font-weight: inherit; }
.apShell[data-role="moderator"] .ownerRoleLabel, .apShell[data-role="moderator"] [data-owner-only] { display: none !important; }
.apShell[data-role="moderator"] .moderatorRoleLabel { display: inline; }
.apShell[data-role="moderator"] .apTop, .apShell[data-role="moderator"] .apMenus { background: #f5c518; color: #172338; }
.apShell[data-role="moderator"] .apMenu, .apShell[data-role="moderator"] .apBrand span, .apShell[data-role="moderator"] .apUser, .apShell[data-role="moderator"] .apUser button, .apShell[data-role="moderator"] .apMenuToggle { color: #172338; }
.apShell[data-role="moderator"] .apMenu:hover, .apShell[data-role="moderator"] .apMenuWrap.open > .apMenu, .apShell[data-role="moderator"] .apMenu.active { background: #e8b80d; color: #172338; }
.apShell[data-role="moderator"] .apMenu.active::after { background: #172338; }
.apShell[data-role="moderator"] .apMenu em { background: #172338; color: #fff; }
.apShell[data-role="moderator"] .apUser button, .apShell[data-role="moderator"] .apMenuToggle { border-color: #846a17; }
.moderatorAccounts { display: grid; gap: 12px; margin-top: 18px; }
.matchedPages .moderatorRoleLabel { min-width: 0; white-space: normal; font-size: 13px; }
.apTop { position: sticky; top: 0; z-index: 60; background: #1d222b; color: #d7dde6; box-shadow: 0 1px 0 rgba(0, 0, 0, .25); }
.apTopInner { display: flex; align-items: center; gap: 18px; width: min(1500px, calc(100% - 32px)); margin: 0 auto; min-height: 60px; }
.apBrand { display: flex; align-items: center; gap: 10px; flex: none; text-decoration: none; }
.apBrand img { width: 104px; height: auto; padding: 4px 8px; border-radius: 6px; background: #fff; }
.apBrand span { color: #f5b301; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.apMenus { display: flex; align-items: stretch; gap: 2px; height: 60px; }
.apMenuWrap { position: relative; display: flex; }
.apMenu { position: relative; display: flex; align-items: center; gap: 7px; height: 100%; padding: 0 14px; border: 0; background: none; color: #c9d1dc; font: inherit; font-size: 14px; font-weight: 600; text-decoration: none; cursor: pointer; white-space: nowrap; }
.apMenu:hover, .apMenuWrap.open > .apMenu { background: rgba(255, 255, 255, .07); color: #fff; }
.apMenu.active { color: #fff; }
.apMenu.active::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: #f5b301; }
.apMenu i { font-size: 10px; font-style: normal; opacity: .7; }
.apMenu em, .apGroup em { padding: 1px 7px; border-radius: 999px; background: #f5b301; color: #1d222b; font-size: 11px; font-style: normal; font-weight: 800; }
.apDropdown { position: absolute; top: 100%; left: 0; z-index: 70; display: none; min-width: 320px; padding: 10px; border-radius: 0 0 10px 10px; background: #fff; color: #1d222b; box-shadow: 0 18px 40px rgba(0, 0, 0, .2); }
.apMenuWrap.open .apDropdown { display: grid; gap: 6px; }
/* Desktop: hovering (or tabbing into) a menu opens it without JavaScript, so a script that fails to load never hides the menus. */
@media (hover: hover) and (min-width: 1101px) {
  .apMenuWrap:hover .apDropdown, .apMenuWrap:has(:focus-visible) .apDropdown { display: grid; gap: 6px; }
}
.apGroup + .apGroup { padding-top: 6px; border-top: 1px solid #eceff3; }
.apGroup p { margin: 6px 10px 4px; color: #8a93a3; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.apGroup a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 10px; border-radius: 6px; color: #1d222b; font-size: 14px; text-decoration: none; }
.apGroup a:hover { background: #f2f4f7; }
.apGroup a.active { background: #fff4d6; font-weight: 600; }
.apGroup a > span { display: grid; }
.apGroup a > span small { color: #8a93a3; font-size: 12px; font-weight: 400; }
.apGroup a > small { min-width: 28px; padding: 1px 7px; border-radius: 999px; background: #eef1f5; color: #5b6573; font-size: 11px; font-weight: 700; text-align: center; }
.apUser { display: flex; align-items: center; gap: 12px; margin-left: auto; font-size: 13px; color: #c9d1dc; white-space: nowrap; }
.apUser button { padding: 6px 10px; border: 1px solid rgba(255, 255, 255, .25); border-radius: 6px; background: none; color: #fff; font: inherit; font-size: 12.5px; cursor: pointer; }
.apUser button:hover { border-color: #fff; }
.apMenuToggle { display: none; }
@media (max-width: 1100px) {
  .apMenuToggle { display: block; margin-left: auto; padding: 8px 14px; border: 1px solid rgba(255, 255, 255, .3); border-radius: 6px; background: none; color: #fff; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
  .apUser { display: none; }
  .apMenus { position: absolute; top: 60px; left: 0; right: 0; display: none; flex-direction: column; height: auto; max-height: calc(100vh - 60px); overflow-y: auto; padding: 8px 12px 16px; background: #1d222b; }
  .apMenus.open { display: flex; }
  .apMenuWrap { display: block; }
  .apMenu { width: 100%; height: 48px; justify-content: flex-start; }
  .apMenu.active::after { display: none; }
  .apDropdown { position: static; min-width: 0; margin: 0 0 8px; border-radius: 8px; box-shadow: none; }
}
@media (max-width: 760px) { .apShell { padding-bottom: 72px; } }

/* Trainer space: blue buttons always with white text (incl. the former "ghost" ones) */
.fx .fxBtn, .fx .fxBtn:hover, .fx .fxBtnGhost, .fx .fxBtnGhost:hover { background: var(--fx-accent); border: 0; color: #fff; }
.fx .fxBtn:hover, .fx .fxBtnGhost:hover { background: var(--fx-accent-dark); }
.fx .fxBtnLight, .fx .fxBtnLight:hover { background: var(--fx-yellow); color: var(--fx-navy); }

/* Google index state: "requested" (signalled, check pending) */
.pubDot-wait::before { background: #3b82f6; }
.trainerAdminStatus .pubIndex, .trainerEditSide .pubIndex { margin-top: 6px; }

/* Dashboard recap (Tableau de bord) */
.rcRecap .adminSectionTitle { margin-bottom: 14px; }
.rcVisit { margin: 6px 0 0; color: #6b7889; font-size: 13px; }
.rcHeading { margin: 18px 0 10px; color: var(--navy); font-size: 15px; }
.rcEmpty { margin: 0; padding: 14px 16px; background: #f7f9fb; color: #6b7889; font-size: 13px; }
.rcTodo { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.rcTodoItem { display: grid; gap: 3px; padding: 12px 14px; border: 1px solid #dce3eb; border-left: 4px solid #c9d4e0; background: #fbfdff; color: var(--navy); text-decoration: none; }
.rcTodoItem:hover { border-color: var(--blue); }
.rcTodoItem strong { font-size: 24px; line-height: 1; font-variant-numeric: tabular-nums; }
.rcTodoItem span { font-size: 13px; font-weight: 750; }
.rcTodoItem small { color: #6b7889; font-size: 11.5px; line-height: 1.35; }
.rcTodoItem.rc-bad { border-left-color: #d9463b; }
.rcTodoItem.rc-warn { border-left-color: #e0a100; }
.rcTodoItem.rc-info { border-left-color: #0b5cff; }
.rcGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.rcCard { display: flex; flex-direction: column; border: 1px solid #dce3eb; background: #fff; }
.rcCard header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-bottom: 1px solid #eceff3; background: #f7f9fb; }
.rcCard h4 { margin: 0; color: var(--navy); font-size: 13.5px; }
.rcCard h4 em { margin-left: 4px; padding: 1px 7px; border-radius: 999px; background: #f5b301; color: #1d222b; font-size: 11px; font-style: normal; font-weight: 800; }
.rcSeenAll, .rcSeen { border: 0; background: none; color: #0b5cff; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.rcSeenAll:hover, .rcSeen:hover { text-decoration: underline; }
.rcCard ul { margin: 0; padding: 0; list-style: none; }
.rcCard li { display: flex; align-items: flex-start; gap: 8px; padding: 9px 12px; border-bottom: 1px solid #f0f2f5; }
.rcCard li a { display: grid; flex: 1; gap: 2px; min-width: 0; color: var(--navy); text-decoration: none; }
.rcCard li a:hover strong { color: #0b5cff; }
.rcCard li strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.rcCard li span { display: -webkit-box; overflow: hidden; color: #4d5a6c; font-size: 12px; line-height: 1.4; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.rcCard li small { color: #8a93a3; font-size: 11px; }
.rcCard li small b { margin-right: 6px; padding: 0 6px; background: #edf2f7; color: #4d5a6c; font-weight: 700; }
.rcMore { margin-top: auto; padding: 9px 12px; color: #0b5cff; font-size: 12px; font-weight: 700; text-decoration: none; }
.rcMore:hover { text-decoration: underline; }

/* Réponses du bot WhatsApp */
.bxLayout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 16px; align-items: start; }
.bxSide { display: grid; gap: 16px; }
.bxSide h2 { margin: 0 0 10px; color: var(--navy); font-size: 17px; }
.bxFilters { margin-bottom: 14px; }
.bxHelp { margin: 0 0 12px; color: #566478; font-size: 13px; line-height: 1.5; }
.bxMeta { margin: 10px 0 0; color: #6b7889; font-size: 12px; }
.bxList { display: grid; gap: 12px; }
.bxCard { padding: 14px; border: 1px solid #dce3eb; border-left: 4px solid #0eb368; background: #fff; scroll-margin-top: 90px; }
.bxCard.bx-uncertain { border-left-color: #e0a100; background: #fffdf6; }
.bxCard.bx-rejected { border-left-color: #aab4c0; background: #fafbfc; }
.bxCard:target { box-shadow: 0 0 0 3px rgba(11, 92, 255, .25); }
.bxCard header { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-bottom: 10px; color: #6b7889; font-size: 12px; }
.bxCard header b { color: #8f6700; }
.bxCard header time { margin-left: auto; }
.bxContext, .bxReason { margin: 0 0 10px; padding: 8px 10px; background: #f4f6f9; color: #334155; font-size: 13px; line-height: 1.45; white-space: pre-wrap; }
.bxReason { background: #fff5d6; color: #5c4a14; }
.bxContext span, .bxReason span { display: block; margin-bottom: 2px; color: #6b7889; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.bxForm { display: grid; gap: 10px; }
.bxForm label { display: grid; gap: 5px; }
.bxForm label > span { color: #566478; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.bxForm textarea, .bxForm input { width: 100%; border: 1px solid #ccd6e2; background: #fbfdff; padding: 8px 10px; color: var(--navy); font: inherit; font-size: 13px; line-height: 1.45; resize: vertical; }
.bxForm textarea:focus, .bxForm input:focus { border-color: var(--blue); outline: 0; box-shadow: 0 0 0 3px rgba(11, 92, 255, .1); }
.bxActions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.bxActions small { margin-left: auto; color: #8a93a3; font-size: 11px; }
.bxTest { display: grid; gap: 8px; margin: 12px 0 0; padding-left: 20px; font-size: 13px; }
.bxTest a { color: var(--navy); font-weight: 700; }
.bxTest small { display: block; color: #6b7889; font-size: 11.5px; line-height: 1.4; }
@media (max-width: 980px) {
  .bxLayout { grid-template-columns: 1fr; }
  .rcGrid { grid-template-columns: 1fr; }
}

/* Conversations WhatsApp: paging and live refresh note */
.waPager { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; margin-top: 12px; color: #566478; font-size: 12px; }
.waPagerLinks { display: flex; align-items: center; gap: 4px; }
.waPagerLinks a, .waPagerLinks b, .waPagerLinks .off, .waPagerLinks .gap { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 30px; padding: 0 6px; border: 1px solid #dce3eb; background: #fff; color: var(--navy); font-weight: 700; text-decoration: none; }
.waPagerLinks a:hover { border-color: var(--blue); color: var(--blue); }
.waPagerLinks b { border-color: var(--blue); background: var(--blue); color: #fff; }
.waPagerLinks .off { color: #c3cbd6; }
.waPagerLinks .gap { border: 0; background: none; min-width: 16px; }
.waPer { display: flex; align-items: center; gap: 6px; }
.waPer a, .waPer b { padding: 2px 6px; color: var(--blue); font-weight: 700; text-decoration: none; }
.waPer b { background: #e7efff; color: var(--navy); }
.waLive { margin: 8px 0 0; color: #8a93a3; font-size: 11px; }

/* Conversations WhatsApp: full-height view, the reply box always visible */
.adminHeadCompact { padding-block: 12px 14px; }
.adminHeadCompact .eyebrow { display: none; }
.adminHeadCompact .adminHeadRow { align-items: center; gap: 20px; }
.adminHeadCompact h1 { font-size: 24px; letter-spacing: -.02em; }
.adminHeadCompact .adminHeadRow > div:first-child > p:not(.eyebrow) { margin: 2px 0 0; font-size: 12.5px; }
.waPage { display: flex; flex-direction: column; min-height: 0; height: calc(100vh - 60px); height: calc(100dvh - 60px); }
.waPage .adminBody { display: flex; flex: 1; flex-direction: column; min-height: 0; padding-block: 12px; }
.waPage .adminSection { display: flex; flex: 1; flex-direction: column; min-height: 0; margin-top: 0; padding: 12px; }
.waPage .waLayout { flex: 1; min-height: 0; align-items: stretch; }
.waPage .waListCol, .waPage .waThreadCol { display: flex; flex-direction: column; min-height: 0; }
.waPage .waList { flex: 1; min-height: 0; overflow-y: auto; align-content: start; gap: 0; background: #fff; }
.waPage .waList a + a { border-top: 1px solid var(--line); }
.waPage .waHead { flex: none; margin-bottom: 8px; }
.waPage .waBot { flex: none; }
.waPage .waThread { flex: 1; min-height: 0; max-height: none; align-content: start; }
.waPage .waComposer, .waPage .waComposerOff { flex: none; }
.waPage .waPager, .waPage .waLive { flex: none; }
@media (max-width: 980px) {
  .waPage .waThread { max-height: none; min-height: 0; }
  .waPage .adminHeadCompact .breadcrumbs, .waPage .adminHeadCompact .adminHeadRow > div:first-child > p { display: none; }
  .waPage .adminHeadCompact h1 { font-size: 20px; }
}
@media (max-width: 760px) {
  .waPage { height: calc(100vh - 60px - 72px); height: calc(100dvh - 60px - 72px); }
  .waPage .adminBody { padding-block: 8px; }
  .waPage .adminSection { padding: 8px; }
}

/* Trainer space opened by an admin ("Se connecter en tant que") */
.fxImpersonation { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 9px 20px; background: #ffd226; color: #0b2a55; font-size: 13.5px; }
.fxImpersonation form { margin: 0; }
.fxImpersonation button { padding: 7px 14px; border: 0; border-radius: 6px; background: #0b2a55; color: #fff; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.fxImpersonation button:hover { background: #0b5cff; }

/* Réglages → Fichiers */
.fhFolders { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 12px; }
.fhFolder { display: grid; gap: 6px; padding: 14px; border: 1px solid #dce3eb; border-left: 4px solid #0eb368; background: #fbfdff; }
.fhFolder.bad { border-left-color: #d9463b; background: #fff8f7; }
.fhFolder code { overflow-wrap: anywhere; color: #334155; font-size: 12.5px; }
.fhFolder small { color: #6b7889; }
.fhTable .pubTableHead, .fhTable .pubTableRow { grid-template-columns: minmax(200px, 1.3fr) minmax(200px, 1.4fr) 110px minmax(220px, 1fr); }
.fhSteps { display: grid; gap: 10px; margin: 0; padding-left: 20px; color: #334155; font-size: 14px; line-height: 1.5; }

/* Default visual of an offer: cover photo (Photothèque) + formation title */
.cvVisual { position: relative; display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; width: 100%; height: 100%; min-height: 150px; padding: 16px 18px 26px; overflow: hidden; background-size: cover; background-position: center; color: #fff; text-align: left; }
.cvVisual.cv-card { aspect-ratio: 16 / 9; }
.cvVisual.cv-wide { aspect-ratio: 16 / 7; padding: 24px 28px 34px; }
.cvShade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 26, 45, .05) 20%, rgba(8, 26, 45, .82) 100%); }
.cvTag, .cvTitle, .cvCredit { position: relative; }
.cvTag { align-self: flex-start; padding: 3px 9px; border-radius: 999px; background: #ffd226; color: #0b2a55; font-size: 11px; font-weight: 800; letter-spacing: .02em; }
.cvTitle { display: -webkit-box; overflow: hidden; font-size: clamp(15px, 1.6vw, 20px); font-weight: 800; line-height: 1.2; text-shadow: 0 1px 8px rgba(0, 0, 0, .35); -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.cv-wide .cvTitle { font-size: clamp(20px, 2.4vw, 30px); }
.cvCredit { position: absolute; right: 10px; bottom: 6px; color: rgba(255, 255, 255, .78); font-size: 10px; }
.cvCredit a { color: inherit; text-decoration: underline; }
.fxGigMedia .cvVisual { position: absolute; inset: 0; min-height: 0; aspect-ratio: auto; }
.presenceCardImage { position: relative; }
.presenceCardImage .cvVisual { position: absolute; inset: 0; min-height: 0; aspect-ratio: auto; }
.fxOfferThumb .cvVisual { min-height: 0; height: 100%; aspect-ratio: auto; padding: 10px 12px 18px; }
.fxOfferThumb .cvTitle { font-size: 13px; }

/* Round trainer photo (or neutral silhouette) */
.trainerAvatar { display: inline-grid; flex: none; place-items: center; overflow: hidden; border-radius: 50%; background: #dfe8f1; color: #6d8199; }
.trainerAvatar img { width: 100%; height: 100%; object-fit: cover; }
.presenceCardAvatar { position: absolute; right: 14px; bottom: 10px; z-index: 2; border: 3px solid #fff; box-shadow: 0 6px 16px rgba(8, 26, 45, .18); }

/* Formateur / formation pages: hero over the cover photo */
.tpHero.hasCover { position: relative; background-color: #0b2a55; background-size: cover; background-position: center; border-bottom: 0; }
.tpHero.hasCover::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 26, 45, .92) 0%, rgba(8, 26, 45, .78) 55%, rgba(8, 26, 45, .45) 100%); }
.tpHero > .container { position: relative; }
.tpHero.hasCover h1, .tpHero.hasCover .offerHeroSummary, .tpHero.hasCover .eyebrow { color: #fff; }
.tpHero.hasCover .breadcrumbs, .tpHero.hasCover .breadcrumbs a, .tpHero.hasCover .breadcrumbs b { color: #c9d6e6; }
.tpHero.hasCover .offerHeroFacts span { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .28); color: #fff; }
.tpHero.hasCover .offerHeroFacts .offerIcon { color: #ffd226; }
.tpHero .cvCredit { right: 0; bottom: -46px; }
.tpHeroGrid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: start; }
.tpHeroPortrait { display: grid; justify-items: center; gap: 10px; margin: 8px 0 0; }
.tpHeroPortrait .trainerAvatar { border: 5px solid #fff; box-shadow: 0 16px 40px rgba(0, 0, 0, .3); }
.tpHeroPortrait figcaption { color: #fff; font-weight: 800; text-shadow: 0 1px 6px rgba(0, 0, 0, .4); }
.tpHero:not(.hasCover) .tpHeroPortrait figcaption { color: var(--navy); text-shadow: none; }
.button.tpGhost { border: 1px solid currentColor; background: transparent; color: var(--navy); }
.tpHero.hasCover .button.tpGhost { color: #fff; }
.button.tpGhost:hover { background: rgba(255, 255, 255, .12); }
.tpFormations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.tpFormationLink { display: grid; overflow: hidden; border: 1px solid #dce7ed; background: #fff; color: var(--navy); text-decoration: none; }
.tpFormationLink:hover { border-color: var(--blue); }
.tpFormationLink > span { display: grid; gap: 3px; padding: 14px 16px; }
.tpFormationLink small { color: #8290a3; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.tpFormationLink b { color: var(--blue); font-size: 13px; }
.trainerProfileCard .trainerAvatar { width: 64px; height: 64px; }
@media (max-width: 760px) {
  .tpHeroGrid { grid-template-columns: 1fr; }
  .tpHeroPortrait { order: -1; justify-items: start; }
  .tpHeroPortrait .trainerAvatar { width: 104px; height: 104px; }
  .tpFormations { grid-template-columns: 1fr; }
  .tpHero .cvCredit { bottom: -40px; }
}

/* Formation card (/nos-formations) and trainers of a formation */
.formationCard { padding-top: 0; }
.formationCardVisual { position: relative; display: block; margin: 0 -24px 16px; aspect-ratio: 16 / 9; overflow: hidden; background: #0b2a55; }
.formationCardVisual img { width: 100%; height: 100%; object-fit: cover; }
.formationCardVisual .cvVisual { position: absolute; inset: 0; min-height: 0; aspect-ratio: auto; }
.formationCardPlaceholder { display: grid; place-items: center; height: 100%; padding: 16px 70px; color: #fff; font-weight: 800; text-align: center; }
.formationCard .offerCardFoot { margin-top: auto; }
.formationCardTrainer { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.formationCardTrainer small { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.formationCardDuration { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; color: var(--muted); font-size: 12px; }
.formationCardDuration .offerIcon { width: 14px; height: 14px; }
.fmTrainers { display: grid; gap: 12px; }
.fmTrainer { display: grid; grid-template-columns: 64px 1fr; gap: 14px; align-items: center; padding: 14px 16px; border: 1px solid #dce7ed; background: #fff; color: var(--navy); text-decoration: none; }
.fmTrainer:hover { border-color: var(--blue); }
.fmTrainer > span:last-child { display: grid; gap: 3px; }
.fmTrainer b { font-size: 15px; }
.fmTrainer small { color: #586578; }
.fmTrainer em { color: #586578; font-size: 13px; font-style: normal; }
.fmTrainer i { color: var(--blue); font-size: 13px; font-style: normal; font-weight: 700; }

/* Trainer space: photo of the offer */
.fxCoverPicker { display: grid; gap: 14px; }
.fxCoverPicker h3 { margin: 4px 0 0; font-size: 15px; }
.fxCoverPreview { display: grid; gap: 8px; }
.fxCoverPreview .cvVisual { border-radius: 10px; }
.fxCoverEmpty { display: grid; place-items: center; aspect-ratio: 16 / 7; padding: 20px; border-radius: 10px; background: #e7edf7; color: #4a5b73; text-align: center; }
.fxCoverGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; }
.fxCoverGrid button { display: grid; gap: 5px; padding: 0 0 6px; overflow: hidden; border: 2px solid transparent; border-radius: 10px; background: #f3f5f9; color: #33415c; font: inherit; font-size: 12px; text-align: left; cursor: pointer; }
.fxCoverGrid button img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.fxCoverGrid button span { padding: 0 8px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.fxCoverGrid button.active { border-color: #0b5cff; box-shadow: 0 0 0 3px rgba(11, 92, 255, .15); }
.fxCoverGrid button:disabled { opacity: .6; cursor: wait; }
.fxCoverSearch { display: flex; gap: 8px; }
.fxCoverSearch input { flex: 1; min-width: 0; height: 42px; padding: 0 12px; border: 1px solid #d5dce8; border-radius: 8px; font: inherit; }

/* Pilotage → Photothèque */
.fhSearch { display: flex; flex-wrap: wrap; gap: 8px; }
.fhSearch input:not([type=hidden]) { flex: 1; min-width: 220px; height: 38px; padding: 0 10px; border: 1px solid #ccd6e2; background: #fbfdff; font-size: 13px; }
.phGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 12px; }
.phItem { margin: 0; overflow: hidden; border: 2px solid #e3e9f0; background: #fff; }
.phItem.cover { border-color: #f5b301; }
.phItem img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.phItem figcaption { display: grid; gap: 2px; padding: 6px 8px 8px; font-size: 12px; }
.phItem figcaption small { color: #8290a3; }
.phItem figcaption em { color: #8f6700; font-style: normal; font-weight: 800; }
.phItem form { margin: 0; }
.phPages { display: grid; gap: 14px; }
.phPage { padding: 14px; border: 1px solid #dce3eb; background: #fbfdff; }
.phPage header { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 10px; }
.phPage header > div { display: grid; gap: 4px; }
.phPage header a strong { color: var(--navy); }
.phPage header small { color: #6b7889; }

/* Aside of the formateur page: the formation card must not shrink in the scrollable aside grid */
.offerAside > .tpFormationLink { overflow: visible; min-height: max-content; }
.cvVisual .cvCredit { color: rgba(255, 255, 255, .78); font-size: 10px; font-weight: 400; letter-spacing: normal; text-transform: none; }

/* Service card (formateur version): Unsplash photo, coloured veil on the right, trainer photo bottom right, FormaGroup bottom left */
.svGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 18px; }
.svCard { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 14px; background-size: cover; background-position: left center; color: #fff; text-decoration: none; box-shadow: 0 10px 26px rgba(8, 26, 45, .14); transition: transform .2s, box-shadow .2s; }
.svCard:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(8, 26, 45, .22); }
.svVeil { position: absolute; inset: 0; }
.svBody { position: absolute; top: 0; right: 0; bottom: 0; display: flex; width: 58%; flex-direction: column; justify-content: center; gap: 8px; padding: 18px 20px 58px 10px; text-align: right; }
.svTag { align-self: flex-end; padding: 3px 10px; border-radius: 999px; background: rgba(255, 255, 255, .92); color: #0b2a55; font-size: 11px; font-weight: 800; }
.svTitle { display: -webkit-box; overflow: hidden; font-size: 18px; font-weight: 800; line-height: 1.22; -webkit-line-clamp: 4; -webkit-box-orient: vertical; }
.svMeta { color: rgba(255, 255, 255, .85); font-size: 12px; }
.svLogo { position: absolute; left: 12px; bottom: 12px; display: inline-flex; padding: 5px 8px; border-radius: 8px; background: #fff; box-shadow: 0 4px 12px rgba(0, 0, 0, .18); }
.svLogo img { display: block; width: 78px; height: auto; }
.svPhoto { position: absolute; right: 14px; bottom: 12px; width: 58px; height: 58px; overflow: hidden; border: 3px solid #fff; border-radius: 50%; box-shadow: 0 6px 16px rgba(0, 0, 0, .28); }
.svPhoto img { width: 100%; height: 100%; object-fit: cover; }
.svCredit { position: absolute; left: 12px; top: 8px; color: rgba(255, 255, 255, .8); font-size: 10px; text-shadow: 0 1px 4px rgba(0, 0, 0, .5); }

/* Nos formateurs: trainers and their services */
.svTrainers { display: grid; gap: 34px; }
.svTrainer header { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-bottom: 14px; }
.svTrainer header > div { flex: 1; min-width: 220px; }
.svTrainer h2 { margin: 0; color: var(--navy); font-size: 22px; line-height: 1.25; }
.svTrainer header p { margin: 4px 0 0; color: var(--muted); font-size: 14px; }
.svTrainer .trainerAvatar { border: 3px solid #fff; box-shadow: 0 6px 16px rgba(8, 26, 45, .15); }

/* Trainer space: Mes services */
.fxServiceGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 22px; }
.fxService { display: grid; gap: 10px; }
.fxServiceFoot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-size: 14px; }
.fxServiceColors { flex-wrap: wrap; gap: 8px; }
.fxServiceColors form { margin: 0; }
.fxServiceColors button { width: 28px; height: 28px; }

/* Without a trainer photo, nothing takes its place */
.fmTrainer { display: flex; }
.trainerProfileCard:not(:has(.trainerAvatar)) { grid-template-columns: 1fr; }
@media (max-width: 560px) {
  .svGrid, .fxServiceGrid { grid-template-columns: 1fr; }
  .svTitle { font-size: 16px; }
}

/* Header with Nos formations + Nos formateurs: one line per entry, tighter spacing on laptop widths */
.headerInner > .button { white-space: nowrap; }
@media (max-width: 1320px) { .trainerHeaderButton { display: none; } }

/* Service card: text keeps clear of the trainer photo and the logo */
.svCard:has(.svPhoto) .svBody { padding-bottom: 82px; }
.svTitle { -webkit-line-clamp: 3; }
.svMeta { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.svCard { container-type: inline-size; }
.svTitle { font-size: clamp(14px, 4.4cqi, 19px); -webkit-line-clamp: 4; }

/* ---- Missions, messages, onboarding (src/lib/missions.ts, trainerMessages.ts) ---- */

.tsForm input[type="date"], .tsForm input[type="email"], .tsForm select { width: 100%; border: 1px solid #ccd6e2; background: #fbfdff; padding: 10px 12px; font: inherit; font-size: 14px; color: var(--navy); }

/* Trainer space: Demandes */
.fxChip-todo { background: #fff0e0; color: #b54708; }
.fxHowSteps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.fxHowSteps li { display: grid; gap: 4px; align-content: start; padding: 14px; background: var(--fx-card, white); border: 1px solid var(--fx-line, #e3e8ef); border-radius: 10px; font-size: 13px; line-height: 1.45; }
.fxHowSteps b { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--fx-accent, #0b5cff); color: white; font-size: 13px; }
.fxHowSteps strong { color: var(--fx-text, #17202b); font-size: 14px; }
.fxHowSteps span { color: var(--fx-muted, #62717f); }
.fxEmptyCard strong { display: block; margin-bottom: 6px; font-size: 16px; }
.fxMissionList { display: grid; gap: 10px; }
.fxMissionCard { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 14px 16px; border: 1px solid var(--fx-line, #e3e8ef); border-radius: 10px; background: white; color: var(--fx-text, #17202b); }
.fxMissionCard:hover { border-color: var(--fx-accent, #0b5cff); color: var(--fx-text, #17202b); }
.fxMissionCard.todo { border-left: 4px solid #f79009; }
.fxMissionCard strong { display: block; font-size: 15px; }
.fxMissionCard small { display: block; margin-top: 3px; color: var(--fx-muted, #62717f); font-size: 13px; }
.fxMissionPage .tsPageHead .fxChip { margin-top: 2px; }
.fxMissionGrid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(300px, 1fr); gap: 18px; align-items: start; }
.fxFactList { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; margin: 0; }
.fxFactList div { display: grid; gap: 2px; min-width: 0; }
.fxFactList dt { color: var(--fx-muted, #62717f); font-size: 12.5px; }
.fxFactList dd { margin: 0; color: var(--fx-text, #17202b); font-weight: 600; overflow-wrap: anywhere; }
.fxNeed { margin-top: 14px; padding: 12px 14px; background: #f6f8fb; border-radius: 8px; font-size: 14px; line-height: 1.55; white-space: pre-line; }
.fxOfferActions { display: grid; gap: 12px; justify-items: start; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--fx-line, #e3e8ef); }
.fxDecline summary { cursor: pointer; color: var(--fx-muted, #62717f); font-size: 14px; font-weight: 600; }
.fxDecline form { margin-top: 10px; }
.fxMissionForm .fxFormGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.fxEstimate { margin: 0; padding: 10px 12px; background: #eefaf3; border-radius: 8px; color: #0b5132; font-size: 14px; line-height: 1.5; }
.fxFollowUp { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.fxFollowUp > div { display: grid; gap: 8px; align-content: start; justify-items: start; }
.fxMissionMessages { display: grid; gap: 12px; }
.fxMissionMessages .msgThread { max-height: 460px; }
.fxRateForm { max-width: 360px; margin-top: 10px; }
.fxNoticeLink { display: block; color: inherit; }
.fxNoticeLink:hover { color: inherit; border-color: #f79009; }
.fxSoonLinks { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 6px; }
.fxSoonLinks a { color: var(--fx-accent, #0b5cff); font-weight: 700; }
.fxMessagesCard { display: grid; gap: 14px; }
@media (max-width: 1100px) {
  .fxHowSteps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fxMissionGrid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .fxHowSteps, .fxFactList, .fxMissionForm .fxFormGrid, .fxFollowUp { grid-template-columns: 1fr; }
  .fxMissionCard { flex-direction: column; align-items: flex-start; }
}

/* Messages (trainer space and pilotage) */
.msgThread { display: flex; flex-direction: column-reverse; gap: 10px; max-height: 560px; margin: 0; padding: 4px; overflow-y: auto; list-style: none; }
.msgItem { display: flex; }
.msgItem.mine { justify-content: flex-end; }
.msgBubble { max-width: min(560px, 88%); padding: 10px 13px; border-radius: 12px; background: #f1f4f8; color: #1d2a39; font-size: 14px; line-height: 1.5; }
.msgItem.mine .msgBubble { background: #e6efff; }
.msgMeta { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 4px; color: #6b7889; font-size: 12px; }
.msgMeta b { color: #0b2a55; }
.msgBubble p { margin: 0; white-space: pre-line; overflow-wrap: anywhere; }
.msgMission { display: inline-block; margin-bottom: 4px; color: #0b5cff; font-size: 12px; font-weight: 700; }
.msgImage img { display: block; max-width: 260px; max-height: 260px; margin-top: 8px; border-radius: 8px; object-fit: cover; }
.msgAudio { display: block; width: 260px; max-width: 100%; margin-top: 8px; }
.msgFile { display: inline-flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; color: #0b5cff; font-weight: 600; overflow-wrap: anywhere; }
.msgFile small { color: #6b7889; font-weight: 500; }
.msgRead { display: block; margin-top: 2px; color: #6b7889; font-size: 11px; text-align: right; }
.msgEmpty { margin: 0; padding: 8px 0; color: #6b7889; font-size: 14px; }
.msgComposer { display: grid; gap: 8px; }
.msgComposer textarea { width: 100%; padding: 10px 12px; border: 1px solid #ccd6e2; border-radius: 10px; background: #fbfdff; font: inherit; font-size: 14px; resize: vertical; }
.msgActions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.msgTool { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border: 1px solid #ccd6e2; border-radius: 999px; background: white; color: #23324a; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.msgTool:hover { border-color: #0b5cff; }
.msgTool.recording { border-color: #d92d20; background: #fef3f2; color: #d92d20; }
.msgSend { margin-left: auto; padding: 9px 18px; border: 0; border-radius: 999px; background: #0b5cff; color: white; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.msgSend:disabled { opacity: .6; cursor: wait; }
.msgAttachment { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 13px; }
.msgAttachment audio { height: 36px; max-width: 100%; }
.msgLinkButton { border: 0; background: none; color: #b42318; font: inherit; font-size: 13px; font-weight: 600; text-decoration: underline; cursor: pointer; }
.msgResult { margin: 0; font-size: 13px; font-weight: 600; }
.msgResult.ok { color: #087b44; }
.msgResult.error { color: #b42318; }
.msgInbox { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 18px; align-items: start; }
.msgInbox > .adminSection { margin-top: 0; }
.msgThreads form { display: flex; gap: 6px; }
.msgThreads form + form { margin-top: 8px; }
.msgThreads input, .msgThreads select { flex: 1; min-width: 0; height: 36px; padding: 0 10px; border: 1px solid #ccd6e2; background: #fbfdff; font: inherit; font-size: 13px; }
.msgThreads ul { display: grid; gap: 4px; max-height: 70vh; margin: 12px 0 0; padding: 0; overflow-y: auto; list-style: none; }
.msgThreads a { display: grid; gap: 2px; padding: 10px 12px; border-radius: 8px; color: #23324a; }
.msgThreads a:hover, .msgThreads a.active { background: #eef3fb; }
.msgThreads strong { display: flex; justify-content: space-between; gap: 8px; font-size: 14px; }
.msgThreads a.unread strong { color: #0b2a55; }
.msgThreads em { min-width: 20px; padding: 0 6px; border-radius: 999px; background: #d92d20; color: white; font-size: 11.5px; font-style: normal; text-align: center; }
.msgThreads span { overflow: hidden; color: #6b7889; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.msgThreads time { color: #8290a3; font-size: 11.5px; }
.msgConversation { display: grid; gap: 12px; }
@media (max-width: 900px) { .msgInbox { grid-template-columns: 1fr; } }

/* Pilotage: missions */
.missionTable .pubTableHead, .missionTable .pubTableRow { grid-template-columns: minmax(220px, 1.6fr) minmax(150px, 1fr) minmax(140px, 1fr) 150px 170px 200px; }
.missionRow { color: inherit; }
.missionRow:hover { background: #f7f9fc; color: inherit; }
.missionPager { display: flex; justify-content: center; gap: 16px; margin-top: 14px; }
.missionSteps { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 16px; padding: 0; list-style: none; }
.missionSteps li { padding: 6px 12px; border-radius: 999px; background: #e4e9f0; color: #6b7889; font-size: 12.5px; font-weight: 700; }
.missionSteps li.done { background: #dcf7ea; color: #0b7a4b; }
.missionSteps li.current { background: #0b2a55; color: white; }
.missionColumns { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(300px, 1fr); gap: 18px; align-items: start; }
.missionMain, .missionSide { display: grid; gap: 18px; min-width: 0; }
.missionMain > .adminSection, .missionSide > .adminSection { margin-top: 0; }
.missionFacts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; margin: 12px 0 0; }
.missionFacts div { display: grid; gap: 2px; min-width: 0; }
.missionFacts dt { color: #6b7889; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.missionFacts dd { margin: 0; color: #0b2a55; font-size: 14px; overflow-wrap: anywhere; }
.missionNeed { margin-top: 14px; padding: 12px 14px; background: #f6f8fb; border-radius: 8px; font-size: 14px; }
.missionNeed p { margin: 4px 0 0; line-height: 1.55; white-space: pre-line; }
.missionNeed small { display: block; margin-top: 8px; color: #6b7889; }
.missionHint { margin: 0 0 12px; color: #52606d; font-size: 13.5px; line-height: 1.5; }
.missionSuggestions { display: grid; gap: 10px; }
.missionSuggestion { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 12px 14px; border: 1px solid #e3e8ef; border-radius: 10px; background: white; }
.missionRank { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #0b2a55; color: white; font-weight: 800; }
.missionSuggestion strong a { color: #0b2a55; }
.missionSuggestion small { display: block; color: #6b7889; }
.missionSuggestion ul { margin: 6px 0 0; padding-left: 18px; color: #3b5362; font-size: 13px; }
.missionSuggestionActions { display: grid; gap: 6px; justify-items: end; }
.missionOther { display: grid; gap: 8px; margin-top: 14px; padding-top: 14px; border-top: 1px solid #e3e8ef; }
.missionOtherForm { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.missionOtherForm select { min-width: 260px; height: 34px; padding: 0 10px; border: 1px solid #ccd6e2; background: #fbfdff; }
.missionOffers .pubTableHead, .missionOffers .pubTableRow { grid-template-columns: minmax(180px, 1.2fr) minmax(180px, 1.2fr) minmax(160px, 1fr) 210px; }
.missionEdit { margin-top: 14px; }
.missionEdit summary { color: var(--blue); font-weight: 700; cursor: pointer; }
.missionEditForm { margin-top: 12px; }
.missionEditForm h3 { margin: 12px 0 0; color: var(--navy); font-size: 15px; }
.missionFormActions { display: flex; align-items: center; gap: 12px; }
.missionSideText { color: #52606d; font-size: 13.5px; line-height: 1.55; }
.missionChecks { display: grid; gap: 6px; margin: 0 0 12px; padding: 0; font-size: 13.5px; list-style: none; }
.missionChecks li::before { content: "○"; margin-right: 8px; color: #aab4c0; }
.missionChecks li.done::before { content: "●"; color: #0eb368; }
.missionTimeline { display: grid; gap: 8px; max-height: 420px; margin: 0; padding: 0; overflow-y: auto; font-size: 13px; list-style: none; }
.missionTimeline time { display: block; color: #8290a3; font-size: 11.5px; }
.missionTimeline small { display: block; color: #52606d; }
.missionEmails { margin-top: 12px; font-size: 12.5px; }
.missionEmails summary { cursor: pointer; font-weight: 700; }
.missionEmails ul { margin: 8px 0 0; padding-left: 16px; display: grid; gap: 4px; }
.missionIssue { display: grid; gap: 8px; }
.missionIssue p { margin: 0; white-space: pre-line; }
.missionCancel { margin: 0; text-align: right; }
.adminToolButton.isPrimary { background: var(--blue); color: white; }
.adminToolButton.isPrimary:hover:not(:disabled) { background: #0846c4; border-color: #0846c4; }
.leadMission { display: block; margin-top: 4px; color: var(--blue); font-size: 11.5px; font-weight: 800; }
.leadAssign { margin-top: 5px; padding: 3px 8px; border: 1px solid var(--blue); background: white; color: var(--blue); font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.leadAssign:hover { background: var(--blue); color: white; }
.applicationStatusCell { display: grid; gap: 6px; align-content: start; }
.onboardingState { margin: 4px 0 8px; color: #3b5362; font-size: 13px; line-height: 1.5; }
.trainerMissionList { display: grid; gap: 4px; margin: 10px 0 0; padding-left: 18px; font-size: 13.5px; }
.trainerMissionList small { color: #6b7889; }
.emailLog .pubTableHead, .emailLog .pubTableRow { grid-template-columns: 130px minmax(160px, 1fr) minmax(220px, 2fr) minmax(160px, 1fr); }
@media (max-width: 1100px) {
  .missionColumns { grid-template-columns: 1fr; }
  .missionTable .pubTableRow, .missionOffers .pubTableRow, .emailLog .pubTableRow { grid-template-columns: 1fr 1fr; }
  .missionTable .pubTableHead, .missionOffers .pubTableHead, .emailLog .pubTableHead { display: none; }
}
@media (max-width: 640px) {
  .missionFacts { grid-template-columns: 1fr; }
  .missionSuggestion { grid-template-columns: 30px minmax(0, 1fr); }
  .missionSuggestionActions { grid-column: 1 / -1; justify-items: start; }
}

/* Attestations (printable, one A4 page per participant) */
.attestationPage { padding: 20px 16px 40px; background: #eef2f7; }
.attestationToolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; max-width: 800px; margin: 0 auto 16px; }
.attestation { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; box-sizing: border-box; width: 210mm; max-width: 100%; min-height: 297mm; margin: 0 auto 20px; padding: 26mm 22mm 30mm; border: 1px solid #dfe5ee; background: white; color: #0b2a55; text-align: center; }
.attestation::before { content: ""; position: absolute; inset: 9mm; border: 3px double #0b2a55; pointer-events: none; }
.attestationLogo { margin-bottom: 14mm; }
.attestation h1 { margin: 0 0 12mm; font-size: 30px; letter-spacing: .08em; text-transform: uppercase; }
.attestation p { max-width: 150mm; margin: 0; font-size: 16px; line-height: 1.6; }
.attestation .attestationName { margin: 4mm 0; font-size: 28px; font-weight: 800; }
.attestation .attestationTitle { margin: 3mm 0; font-size: 20px; font-weight: 700; }
.attestation .attestationDone { margin-top: 12mm; font-style: italic; }
.attestationSign { display: flex; justify-content: space-around; width: 100%; max-width: 160mm; margin-top: auto; padding-top: 16mm; }
.attestationSign div { display: grid; gap: 20mm; font-size: 14px; }
.attestationSign span { min-width: 50mm; padding-top: 4px; border-top: 1px solid #aab4c0; color: #6b7889; }
.attestationRef { position: absolute; right: 0; bottom: 14mm; left: 0; color: #8290a3; font-size: 11px; }
@media print {
  @page { size: A4; margin: 0; }
  body, .apShell { background: white !important; }
  .apTop, .adminBottomNav, .noPrint { display: none !important; }
  .attestationPage { padding: 0; background: white; }
  .attestation { width: 210mm; height: 297mm; min-height: 0; margin: 0; border: 0; break-after: page; page-break-after: always; }
}

/* Client follow-up page (/suivi/<key>) */
.suiviLayout { display: grid; gap: 18px; max-width: 860px; }
.suiviSteps { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.suiviSteps li { padding: 6px 12px; border-radius: 999px; background: #eef2f7; color: #6b7889; font-size: 13px; font-weight: 700; }
.suiviSteps li.done { background: #dcf7ea; color: #0b7a4b; }
.suiviCard { padding: 22px; border: 1px solid #e3e8ef; border-radius: 12px; background: white; }
.suiviCard h2 { margin: 0 0 12px; color: var(--navy); font-size: 20px; }
.suiviCard p { line-height: 1.6; }
.suiviFacts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; margin: 0; }
.suiviFacts div { display: grid; gap: 2px; min-width: 0; }
.suiviFacts dt { color: #6b7889; font-size: 13px; }
.suiviFacts dd { margin: 0; color: var(--navy); font-weight: 600; overflow-wrap: anywhere; }
.suiviStep { display: grid; gap: 10px; padding: 12px 0; border-top: 1px solid #eef2f7; }
.suiviStep:first-of-type { border-top: 0; }
.suiviStep p { margin: 0; }
.suiviAction { display: grid; gap: 6px; justify-items: start; }
.suiviOk { margin: 0; color: #087b44; font-weight: 700; }
.suiviError { margin: 0; color: #b42318; font-weight: 700; }
.suiviThanks { border-left: 4px solid #0eb368; }
.suiviIssue summary { color: var(--navy); font-weight: 700; cursor: pointer; }
.suiviIssue form { display: grid; gap: 10px; justify-items: start; margin-top: 12px; }
.suiviIssue label { display: grid; gap: 6px; width: 100%; font-size: 14px; }
.suiviIssue textarea { width: 100%; padding: 10px; border: 1px solid #ccd6e2; border-radius: 8px; font: inherit; }
@media (max-width: 640px) { .suiviFacts { grid-template-columns: 1fr; } }

/* ---- Missions v2: follow-up sheet, prepayment, WhatsApp templates ---- */
.srOnly { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Follow-up sheet (trainer space and pilotage) */
.sheetTable { display: grid; margin: 0 0 14px; border: 1px solid #e3e8ef; border-radius: 10px; overflow: hidden; background: white; font-size: 13.5px; }
.sheetHead, .sheetRow { display: grid; grid-template-columns: 92px 150px minmax(0, 2fr) minmax(0, 1fr) 34px; gap: 12px; align-items: start; padding: 10px 12px; }
.sheetHead { background: #f3f6fa; color: #6b7889; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.sheetRow { border-top: 1px solid #eef2f7; color: #1d2a39; }
.sheetRow.step { background: #f6fbf8; }
.sheetRow.team .sheetKind { background: #e6efff; color: #1d4fc4; }
.sheetRow small { display: block; margin-top: 3px; color: #8290a3; font-size: 11.5px; }
.sheetNote { line-height: 1.5; white-space: pre-line; overflow-wrap: anywhere; }
.sheetKind { display: inline-block; padding: 2px 8px; border-radius: 999px; background: #eef2f7; color: #3b5362; font-size: 11.5px; font-weight: 700; }
.sheetKind-etape { background: #dcf7ea; color: #0b7a4b; }
.sheetKind-seance { background: #fff2cc; color: #8a6500; }
.sheetDelete { width: 26px; height: 26px; border: 1px solid #e3e8ef; border-radius: 6px; background: white; color: #b42318; cursor: pointer; }
.sheetEmpty { margin: 0 0 14px; padding: 14px; border: 1px dashed #ccd6e2; border-radius: 10px; color: #6b7889; font-size: 13.5px; line-height: 1.55; }
.sheetForm { display: grid; gap: 10px; margin-bottom: 14px; padding: 14px; border: 1px solid #e3e8ef; border-radius: 10px; background: #fbfcfe; }
.sheetFormRow { display: grid; grid-template-columns: 180px minmax(0, 240px); gap: 12px; }
.sheetForm label { display: grid; gap: 5px; }
.sheetForm label > span { color: #3b5362; font-size: 12.5px; font-weight: 700; }
.sheetForm label > span small { color: #8290a3; font-weight: 500; }
.sheetForm input, .sheetForm select, .sheetForm textarea { width: 100%; padding: 9px 11px; border: 1px solid #ccd6e2; border-radius: 8px; background: white; font: inherit; font-size: 13.5px; color: #1d2a39; }
.sheetForm textarea { resize: vertical; line-height: 1.5; }
.sheetFormActions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.sheetSubmit { padding: 9px 16px; border: 0; border-radius: 8px; background: #0b5cff; color: white; font: inherit; font-size: 13.5px; font-weight: 700; cursor: pointer; }
.sheetSubmit:disabled { opacity: .6; cursor: wait; }
.sheetMsg { font-size: 13px; font-weight: 700; }
.sheetMsg.ok { color: #087b44; }
.sheetMsg.error { color: #b42318; }
@media (max-width: 760px) {
  .sheetHead { display: none; }
  .sheetRow { grid-template-columns: 1fr 1fr; }
  .sheetNote { grid-column: 1 / -1; }
  .sheetFormRow { grid-template-columns: 1fr 1fr; }
}

/* Trainer space: process, rate hint */
.fxProcess { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin: 16px 0 0; padding: 0; list-style: none; counter-reset: process; }
.fxProcess li { display: grid; gap: 4px; align-content: start; padding: 10px; border: 1px solid var(--fx-line, #e3e8ef); border-radius: 10px; font-size: 12.5px; line-height: 1.45; color: var(--fx-muted, #62717f); counter-increment: process; }
.fxProcess li b { color: var(--fx-text, #17202b); font-size: 13px; }
.fxProcess li b::before { content: counter(process) ". "; }
.fxProcess li.done { background: #f1fbf6; border-color: #bfe9d3; }
.fxProcess li.current { border-color: #0b5cff; box-shadow: 0 0 0 2px rgba(11, 92, 255, .12); }
.fxRateHint { margin: 0; color: var(--fx-muted, #62717f); font-size: 13px; line-height: 1.5; }
@media (max-width: 900px) { .fxProcess { grid-template-columns: 1fr 1fr; } }

/* Pilotage: mission v2 */
.missionSteps li.muted { opacity: .55; }
.missionNext { border-top: 4px solid #0b5cff; }
.missionRateForm { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; margin: 0 0 14px; padding: 12px; background: #f6f8fb; border-radius: 8px; }
.missionRateForm label { display: grid; gap: 5px; }
.missionRateForm label span { color: #566478; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.missionRateForm input { width: 150px; height: 34px; padding: 0 10px; border: 1px solid #ccd6e2; background: white; }
.missionRateForm small { color: #52606d; font-size: 12.5px; }
.missionFeedbackForm { display: grid; gap: 10px; margin-top: 10px; }
.missionFeedbackForm label { display: grid; gap: 5px; font-size: 13px; }
.missionFeedbackForm select, .missionFeedbackForm textarea { width: 100%; padding: 8px 10px; border: 1px solid #ccd6e2; background: white; font: inherit; font-size: 13px; }
.tplList { display: grid; gap: 8px; }
.tplCard { border: 1px solid #e3e8ef; border-radius: 10px; background: white; }
.tplCard.recommended { border-color: #0b5cff; box-shadow: 0 0 0 2px rgba(11, 92, 255, .1); }
.tplCard summary { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 10px 12px; cursor: pointer; font-size: 13.5px; }
.tplCard summary b { color: #0b2a55; }
.tplCard summary em { padding: 2px 8px; border-radius: 999px; background: #0b5cff; color: white; font-size: 11px; font-style: normal; font-weight: 800; }
.tplCard summary small { color: #0b7a4b; font-size: 11.5px; font-weight: 700; }
.tplWhen { margin: 0 12px 8px; color: #6b7889; font-size: 12.5px; }
.tplText { margin: 0 12px 10px; padding: 10px 12px; max-height: 320px; overflow: auto; border-radius: 8px; background: #f3f6fa; color: #1d2a39; font: inherit; font-size: 13px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.tplActions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 0 12px 12px; }
.tplActions a.adminToolButton { display: inline-flex; align-items: center; }
.tplNoPhone { color: #b42318; font-size: 12px; font-weight: 700; }
.tplVariables { margin-top: 14px; }
.tplVariables summary { cursor: pointer; color: var(--blue); font-weight: 700; }
.tplVariables dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 18px; margin: 10px 0 0; font-size: 13px; }
.tplVariables dt { color: #0b2a55; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-weight: 700; }
.tplVariables dd { margin: 0; color: #52606d; }
.tplEditList { display: grid; gap: 18px; }
.tplEdit { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 16px; padding-bottom: 18px; border-bottom: 1px solid #eef2f7; }
.tplEdit label { display: grid; gap: 5px; }
.tplEdit label > span { color: #0b2a55; font-size: 14px; font-weight: 800; }
.tplEdit label > small { color: #6b7889; font-size: 12.5px; }
.tplEdit textarea { width: 100%; padding: 10px 12px; border: 1px solid #ccd6e2; background: #fbfdff; font: inherit; font-size: 13.5px; line-height: 1.5; resize: vertical; }
.tplEditTools { display: grid; gap: 10px; align-content: start; }
.tplEditTools details summary { cursor: pointer; color: var(--blue); font-size: 13px; font-weight: 700; }
.tplEditTools .tplText { margin: 8px 0; }
.tplEditTools small { color: #6b7889; font-size: 12px; }
@media (max-width: 900px) { .tplEdit, .tplVariables dl { grid-template-columns: 1fr; } }

/* Client page v2: payment, feedback */
.suiviPay { border-left: 4px solid #e0a100; }
.suiviRib { margin: 8px 0; padding: 12px 14px; border-radius: 8px; background: #f6f8fb; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 14px; white-space: pre-line; }
.suiviFeedback { display: grid; gap: 12px; justify-items: start; margin-top: 12px; }
.suiviFeedback label { display: grid; gap: 6px; width: 100%; font-size: 14px; }
.suiviFeedback textarea { width: 100%; padding: 10px; border: 1px solid #ccd6e2; border-radius: 8px; font: inherit; }
.suiviStars { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; margin: 0; padding: 0; border: 0; }
.suiviStars legend { width: 100%; margin-bottom: 6px; font-size: 14px; }
.suiviStars label { display: inline-flex; width: auto; cursor: pointer; }
.suiviStars input { position: absolute; opacity: 0; pointer-events: none; }
.suiviStars span { color: #ccd6e2; font-size: 34px; line-height: 1; transition: color .1s; }
.suiviStars label:hover span, .suiviStars label:hover ~ label span, .suiviStars input:checked + span, .suiviStars label:has(input:checked) ~ label span { color: #f5b301; }
.suiviStars input:focus-visible + span { outline: 2px solid #0b5cff; outline-offset: 2px; }

/* ---- Demandes: trainers matched by the AI ---- */
.leadMatches { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; padding: 8px 12px 10px 64px; border-bottom: 1px solid #eef2f7; background: #fbfcfe; font-size: 12px; }
.leadMatchesLabel { color: #566478; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.leadMatchesEmpty { color: #8290a3; }
.matchChip { position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 3px 4px 3px 10px; border: 1px solid #cfdcf0; border-radius: 999px; background: white; color: #0b2a55; outline: 0; }
.matchChip:focus-visible, .matchChip:hover { border-color: var(--blue); }
.matchChip.fromPage { border-color: #0eb368; }
.matchChip b { font-weight: 700; }
.matchChip em { padding: 1px 6px; border-radius: 999px; background: #e6efff; color: #1d4fc4; font-style: normal; font-weight: 800; }
.matchChip i { padding: 1px 6px; border-radius: 999px; background: #dcf7ea; color: #0b7a4b; font-size: 10.5px; font-style: normal; font-weight: 700; }
.matchChip i.warn { background: #fff2cc; color: #8a6500; }
.matchChip .actionResult { gap: 4px; }
.matchChip .actionResult small { position: absolute; top: calc(100% + 4px); left: 0; z-index: 31; min-width: 220px; padding: 6px 8px; border-radius: 6px; background: white; box-shadow: 0 6px 18px rgba(11, 42, 85, .15); }
.matchPropose { height: 24px; padding: 0 10px; border: 0; border-radius: 999px; background: var(--blue); color: white; font-size: 11px; font-weight: 800; cursor: pointer; }
.matchPropose:disabled { opacity: .6; }
.matchSent { padding: 2px 8px; color: #0b7a4b; font-weight: 700; }
.matchTip { position: absolute; top: calc(100% + 8px); left: 0; z-index: 30; display: none; width: min(420px, 80vw); padding: 12px 14px; border: 1px solid #dce3eb; border-radius: 10px; background: white; box-shadow: 0 12px 32px rgba(11, 42, 85, .18); color: #23324a; font-size: 12.5px; line-height: 1.5; white-space: normal; }
.matchTip::before { content: ""; position: absolute; top: -12px; left: 0; right: 0; height: 12px; }
.matchChip:hover .matchTip, .matchChip:focus-within .matchTip { display: grid; gap: 4px; }
.matchTip strong { margin-top: 4px; color: #0b2a55; font-size: 10.5px; letter-spacing: .05em; text-transform: uppercase; }
.matchTip strong:first-child { margin-top: 0; }
.matchTip small { margin-top: 4px; color: #8a6500; }
.matchOthers { color: #566478; }
.matchOthers summary { cursor: pointer; font-weight: 700; }
.matchOthers ul { display: grid; gap: 4px; margin: 6px 0 0; padding-left: 16px; max-width: 760px; }
.matchMission { color: var(--blue); font-weight: 800; }
.matchRematch { height: 24px; padding: 0 8px; border: 1px solid #dce3eb; border-radius: 999px; background: white; color: #566478; font-size: 11px; font-weight: 700; cursor: pointer; }
.missionBadge { display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: 999px; background: #e6efff; color: #1d4fc4; font-size: 10.5px; font-style: normal; font-weight: 800; vertical-align: middle; }
.missionBadge.ok { background: #dcf7ea; color: #0b7a4b; }
.missionBadge.muted { background: #eef2f7; color: #6b7889; }
.missionBadge.warn { background: #fff2cc; color: #8a6500; }
.missionAiReason { margin: 4px 0 2px; color: #23324a; font-size: 13px; line-height: 1.45; }
.missionAiMessage { margin: 0 0 4px; color: #52606d; font-size: 12.5px; font-style: italic; line-height: 1.45; }
@media (max-width: 760px) { .leadMatches { padding-left: 12px; } }

/* Prices of the offers (trainer's form, public pages, cards) */
.fxPriceGrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 14px; }
.fxPriceGrid fieldset { align-content: start; }
.fxPriceGrid legend small { color: var(--fx-muted, #62717f); font-weight: 500; }
.fxPriceFields { display: grid; gap: 12px; }
.fxPriceWhere { margin: -2px 0 2px; color: var(--fx-muted, #62717f); font-size: 12.5px; }
.fxPriceLine { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 6px 14px; }
.fxPriceField { display: grid; gap: 6px; }
.fxPriceField > span:first-child { color: #34445a; font-size: 13px; font-weight: 600; }
.fxMoney { position: relative; display: inline-flex; align-items: center; width: 190px; max-width: 100%; }
.tsForm .fxMoney input, .fx .tsForm .fxMoney input { width: 100%; height: 44px; padding: 0 76px 0 12px; border: 1px solid #cfd8e3; border-radius: 10px; background: #fff; font: inherit; font-size: 15px; font-weight: 600; color: var(--fx-text, #0f1f38); }
.fxMoney input:focus { border-color: var(--fx-accent, #0b5cff); outline: none; box-shadow: 0 0 0 3px rgba(11, 92, 255, .12); }
.fxMoney input::placeholder { color: #a3aebb; font-weight: 400; }
.fxMoney b { position: absolute; right: 12px; color: #6b7a8c; font-size: 13.5px; font-weight: 600; pointer-events: none; }
.fxReceive { margin: 0 0 11px; color: #8a96a6; font-size: 13.5px; }
.fxReceive.on { color: #13875a; }
.fxReceive strong { font-size: 15px; font-weight: 700; }
.fxPriceHint { margin: 0 0 12px; color: #6b7a8c; font-size: 13px; }
.fxPriceNote { margin: 0; }
.trainerEditPrices .fxPriceGrid { grid-template-columns: 1fr; }
.trainerEditPrices .tsForm fieldset { padding: 12px; }
.priceBox { display: grid; gap: 4px; padding: 20px 22px; border: 1px solid #cfe0f5; border-top: 4px solid var(--yellow, #ffd226); background: #fff; color: var(--navy); }
.priceBox > small { color: #5b6b7f; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.priceBox > strong { font-size: 30px; font-weight: 850; line-height: 1.15; }
.priceBox > strong span { color: #5b6b7f; font-size: 15px; font-weight: 700; }
.priceBox p { margin: 0; color: #3c4d61; font-size: 14px; line-height: 1.5; }
.priceBox .priceBoxAlt { padding-top: 6px; border-top: 1px dashed #dce5ef; margin-top: 6px; }
.priceBox .priceBoxAlt a { color: var(--blue); font-weight: 800; text-decoration: none; }
.priceBox .priceBoxNote { display: flex; gap: 6px; align-items: flex-start; margin-top: 6px; color: #6b7a8c; font-size: 12px; }
.priceBox .priceBoxNote .offerIcon { flex: none; width: 14px; height: 14px; margin-top: 2px; }
.offerHeroFacts .offerHeroPrice { background: var(--yellow, #ffd226); border-color: #f2c200; color: #0b2a55; font-weight: 850; }
.offerHeroFacts .offerHeroPrice .offerIcon { color: #0b2a55; }
.svPrice { position: absolute; left: 12px; top: 12px; padding: 5px 11px; border-radius: 999px; background: var(--yellow, #ffd226); color: #0b2a55; font-size: 13px; font-weight: 850; box-shadow: 0 4px 12px rgba(0, 0, 0, .18); }
.svPrice small { font-size: 11px; font-weight: 700; }
.formationCardPhoto { position: absolute; top: 10px; right: 10px; z-index: 2; width: 52px; height: 52px; overflow: hidden; border: 3px solid #fff; border-radius: 50%; box-shadow: 0 6px 16px rgba(0, 0, 0, .28); }
.formationCardPhoto img { width: 100%; height: 100%; object-fit: cover; }
.offerCardFoot .cardPrice { display: grid; justify-items: end; gap: 0; color: var(--navy); line-height: 1.15; }
.offerCardFoot .cardPrice small { color: var(--muted); font-size: 11px; font-weight: 600; }
.offerCardFoot .cardPrice b { font-size: 17px; font-weight: 850; }
.fmTrainer .fmTrainerPrice { color: #0b7a4b; font-weight: 800; }
.fmTrainer > span:only-child { grid-column: 1 / -1; }

/* ---- Site header with search, home, search results ---- */
.nhHeader { position: sticky; top: 0; z-index: 60; background: #fff; border-bottom: 1px solid var(--line); }
.nhHeader .container { width: min(1360px, calc(100% - 40px)); }
.nhBar { position: relative; display: flex; align-items: center; gap: 22px; min-height: 76px; }
.nhBrand { flex: none; }
.nhBrand img { width: auto; height: 42px; }
.nhMenus { display: flex; align-items: center; margin-left: auto; }
.nhNav { display: flex; align-items: center; gap: 4px; }
.nhNavLink, .nhDrop > button { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 12px; border-radius: 8px; color: #1f2d3d; font-size: 15px; font-weight: 500; white-space: nowrap; }
.nhNavLink:hover, .nhDrop > button:hover, .nhDrop.isOpen > button { background: #f1f5fb; color: var(--blue); }
.nhDrop { position: static; }
.nhMega, .nhMenu { position: absolute; z-index: 70; display: none; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: 0 24px 50px rgba(7, 26, 51, .16); }
.nhDrop > button { position: relative; }
.nhDrop.isOpen > button::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 24px; }
.nhDrop.isOpen > .nhMega { display: grid; }
.nhDrop.isOpen > .nhMenu { display: grid; }
.nhMega { top: calc(100% - 6px); left: 0; right: 0; grid-template-columns: 250px minmax(0, 1fr) 220px; overflow: hidden; }
.nhMega > section { display: grid; align-content: start; gap: 10px; padding: 22px 24px; }
.nhMega p { margin: 4px 0 0; color: #7a8798; font-size: 11.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.nhLinks { display: grid; gap: 2px; }
.nhLinks a { padding: 5px 0; color: #1f2d3d; font-size: 14px; }
.nhLinks a:hover { color: var(--blue); }
.nhAll { display: inline-block; color: var(--blue); font-size: 13.5px; font-weight: 600; }
.nhDropSmall { position: relative; }
.nhMenu { top: calc(100% + 8px); right: 0; width: 300px; padding: 8px; }
.nhMenu a { display: grid; gap: 2px; padding: 10px 12px; border-radius: 10px; }
.nhMenu a:hover { background: #f1f5fb; }
.nhMenu b { color: #0b2a55; font-size: 14px; font-weight: 600; }
.nhMenu small { color: #6b7a8c; font-size: 12.5px; }
.nhCta { display: inline-flex; align-items: center; height: 42px; margin-left: 8px; padding: 0 18px; border-radius: 8px; background: var(--yellow); color: var(--navy); font-size: 14.5px; font-weight: 600; white-space: nowrap; }
.nhCta:hover { background: var(--yellow-deep); }
.nhBurger { display: none; width: 42px; height: 42px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; }
.nhBurger span { display: block; height: 2px; margin: 4px 0; background: var(--navy); }
.nhMobile { display: none; }
.nhThemes { border-top: 1px solid #eef1f5; }
.nhThemes .container { display: flex; align-items: center; gap: 22px; min-height: 42px; overflow-x: auto; scrollbar-width: none; }
.nhThemes .container::-webkit-scrollbar { display: none; }
.nhThemes a { flex: none; color: #4a5a6d; font-size: 14px; font-weight: 500; white-space: nowrap; }
.nhThemes a:hover { color: var(--blue); }
.nhThemes .nhThemesPhone { margin-left: auto; color: #0e8a4f; font-weight: 600; }

.nhDomainList { border-right: 1px solid #eef1f5; background: #fafbfd; }
.nhDomainList ul { display: grid; gap: 1px; margin: 0 -10px; }
.nhDomainList li a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 10px; border-left: 3px solid transparent; border-radius: 0 8px 8px 0; color: #1f2d3d; font-size: 14px; }
.nhDomainList li a small { color: #8a96a6; font-size: 12px; }
.nhDomainList li a.active { border-left-color: var(--blue); background: #fff; color: var(--blue); box-shadow: 0 1px 4px rgba(7, 26, 51, .07); }
.nhDomainList li a.active small { color: var(--blue); }
.nhDomainList .nhAll { margin-top: 6px; }
.nhDomainPanel { gap: 12px !important; }
.nhDomainHead { display: grid; gap: 3px; padding-bottom: 12px; border-bottom: 1px solid #eef1f5; }
.nhDomainHead strong { color: var(--navy); font-size: 19px; font-weight: 600; }
.nhDomainHead small { color: #5f6c7d; font-size: 13.5px; line-height: 1.45; }
.nhTechGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(215px, 1fr)); gap: 8px; }
.nhTechGrid a { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 8px 10px; border: 1px solid #e9eef5; border-radius: 10px; background: #fff; }
.nhTechGrid a:hover { border-color: #b9cdf5; background: #f6f9ff; }
.nhTechGrid b { display: grid; flex: none; place-items: center; width: 36px; height: 36px; border-radius: 9px; background: var(--navy); color: var(--yellow); font-size: 12px; font-weight: 600; }
.nhTechGrid span { display: grid; min-width: 0; }
.nhTechGrid strong { overflow: hidden; color: #0b2a55; font-size: 14px; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; }
.nhTechGrid small { overflow: hidden; color: #6b7a8c; font-size: 12px; white-space: nowrap; text-overflow: ellipsis; }
.nhDomainFormations { display: grid; gap: 2px; }
.nhDomainFormations a { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 5px 0; color: #1f2d3d; font-size: 14px; }
.nhDomainFormations a:hover span { color: var(--blue); }
.nhDomainFormations small { flex: none; color: #8a96a6; font-size: 12px; }
.nhPanelFoot { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 4px; padding-top: 12px; border-top: 1px solid #eef1f5; }
.nhMegaSide { border-left: 1px solid #eef1f5; }
.nhMegaSide p:not(:first-child) { margin-top: 14px; }

.searchBox { position: relative; display: flex; flex: 1; max-width: 560px; min-width: 0; }
.searchBox input { flex: 1; min-width: 0; height: 46px; padding: 0 16px; border: 1px solid #c9d3df; border-right: 0; border-radius: 10px 0 0 10px; background: #fff; color: var(--ink); font-size: 15px; outline: 0; }
.searchBox input::-webkit-search-cancel-button { cursor: pointer; }
.searchBox input:focus { border-color: var(--blue); box-shadow: inset 0 0 0 1px var(--blue); }
.searchBoxButton { display: inline-flex; flex: none; align-items: center; justify-content: center; gap: 8px; min-width: 52px; height: 46px; padding: 0 14px; border-radius: 0 10px 10px 0; background: var(--navy); color: #fff; font-weight: 600; }
.searchBoxButton:hover { background: var(--blue); }
.searchBoxButton svg { width: 20px; height: 20px; }
.searchBox-hero { max-width: 760px; width: 100%; }
.searchBox-hero input { height: 62px; padding: 0 22px; border: 0; border-radius: 12px 0 0 12px; font-size: 17px; }
.searchBox-hero input:focus { box-shadow: inset 0 0 0 2px var(--yellow); }
.searchBox-hero .searchBoxButton { height: 62px; padding: 0 26px; border-radius: 0 12px 12px 0; background: var(--yellow); color: var(--navy); font-size: 16px; }
.searchBox-hero .searchBoxButton:hover { background: var(--yellow-deep); }
.searchPanel { position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 80; display: grid; gap: 4px; max-height: min(70vh, 560px); overflow-y: auto; padding: 8px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: 0 24px 50px rgba(7, 26, 51, .18); color: var(--ink); text-align: left; }
.searchGroup { display: grid; }
.searchGroup > p { display: flex; justify-content: space-between; margin: 6px 10px 4px; color: #7a8798; font-size: 11.5px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }
.searchGroup > p small { letter-spacing: 0; text-transform: none; font-weight: 500; }
.searchGroup a { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 7px 10px; border-radius: 10px; }
.searchGroup a.active, .searchGroup a:hover { background: #f1f5fb; }
.searchIcon { display: grid; place-items: center; width: 36px; height: 36px; overflow: hidden; border-radius: 9px; background: #eef3fa; color: #3d5a80; }
.searchIcon-formateur { border-radius: 50%; }
.searchIcon-formation { background: #e8f0ff; color: var(--blue); }
.searchIcon-technologie { background: #fff4d1; color: #8a6500; }
.searchIcon img { width: 100%; height: 100%; object-fit: cover; }
.searchIcon svg { width: 19px; height: 19px; }
.searchText { display: grid; min-width: 0; }
.searchText b { overflow: hidden; color: #0b2a55; font-size: 14.5px; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; }
.searchText small { overflow: hidden; color: #6b7a8c; font-size: 12.5px; white-space: nowrap; text-overflow: ellipsis; }
.searchPrice { color: #0b7a4b; font-size: 13.5px; font-weight: 600; white-space: nowrap; }
.searchAll { margin-top: 4px; padding: 11px 12px; border-top: 1px solid #eef1f5; color: var(--blue); font-size: 14px; font-weight: 600; text-align: left; }
.searchAll:hover { background: #f7f9fc; }
.searchEmpty { margin: 0; padding: 14px 12px; color: #4a5a6d; font-size: 14px; line-height: 1.5; }
.searchEmpty a { color: var(--blue); font-weight: 600; }
.searchPopular { padding: 8px 10px 10px; }
.searchPopular p { margin: 0 0 8px; color: #7a8798; font-size: 11.5px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }
.searchPopular div { display: flex; flex-wrap: wrap; gap: 8px; }
.searchPopular a { padding: 6px 12px; border: 1px solid #d6dee8; border-radius: 999px; color: #1f2d3d; font-size: 13.5px; }
.searchPopular a:hover { border-color: var(--blue); color: var(--blue); }

.nhKicker { margin: 0 0 8px; color: var(--blue); font-size: 12.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.nhHero { position: relative; background: radial-gradient(circle at 85% 20%, rgba(11, 92, 255, .35), transparent 45%), linear-gradient(135deg, #071a33 0%, #0b2a55 60%, #0d3b8c 100%); color: #fff; }
.nhHeroInner { display: grid; justify-items: center; gap: 18px; padding: 72px 0 56px; text-align: center; }
.nhHero .nhKicker { color: #9fc0ff; }
.nhHero h1 { max-width: 900px; margin: 0; font-size: clamp(34px, 5vw, 58px); font-weight: 600; line-height: 1.1; letter-spacing: -.02em; }
.nhHero h1 mark { background: none; color: var(--yellow); }
.nhHeroIntro { max-width: 680px; margin: 0; color: #c8d6ea; font-size: 18px; line-height: 1.55; }
.nhPopular { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; }
.nhPopular span { color: #9fb4ca; font-size: 13.5px; }
.nhPopular a { padding: 6px 13px; border: 1px solid rgba(255, 255, 255, .28); border-radius: 999px; color: #fff; font-size: 14px; font-weight: 500; }
.nhPopular a:hover { background: rgba(255, 255, 255, .12); }
.nhPopular a.own { border-color: var(--yellow); background: rgba(255, 210, 38, .16); }
.nhFigures { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; width: min(760px, 100%); margin: 14px 0 0; }
.nhFigures div { padding: 12px; border-radius: 12px; background: rgba(255, 255, 255, .07); }
.nhFigures dt { color: #9fb4ca; font-size: 12.5px; }
.nhFigures dd { margin: 0; font-size: 26px; font-weight: 600; }
.nhSection { padding: 64px 0; }
.nhSectionTight { padding: 40px 0; }
.nhSectionPale { background: var(--pale); border-top: 1px solid #e2e8f0; border-bottom: 1px solid #e2e8f0; }
.nhSectionHead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin-bottom: 26px; }
.nhSectionHead h2 { margin: 0; color: var(--navy); font-size: clamp(26px, 3vw, 36px); font-weight: 600; line-height: 1.15; letter-spacing: -.015em; }
.nhSectionHead h2 small { color: #7a8798; font-size: 16px; font-weight: 500; letter-spacing: 0; }
.nhSectionHead > a { color: var(--blue); font-size: 15px; font-weight: 600; }
.nhCards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.nhCards .formationCard { min-height: 0; }
.nhCards .formationCard h3 { margin: 14px 0 8px; font-size: 18px; font-weight: 500; }
.nhCards .formationCard p { display: -webkit-box; overflow: hidden; margin-bottom: 16px; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.homeTabs { display: grid; gap: 22px; }
.homeTabList { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
.homeTabList button { flex: none; padding: 9px 16px; border: 1px solid #d6dee8; border-radius: 999px; background: #fff; color: #1f2d3d; font-size: 14.5px; font-weight: 500; }
.homeTabList button small { color: #7a8798; font-weight: 500; }
.homeTabList button[aria-selected="true"] { border-color: var(--navy); background: var(--navy); color: #fff; }
.homeTabList button[aria-selected="true"] small { color: #9fb4ca; }
.homeTabPanel { display: grid; gap: 18px; }
.homeMore { justify-self: start; color: var(--blue); font-weight: 600; }
.nhTechChips { display: flex; flex-wrap: wrap; gap: 10px; }
.nhTechChips a { display: inline-flex; align-items: center; gap: 8px; padding: 9px 15px; border: 1px solid #d6dee8; border-radius: 999px; background: #fff; color: #1f2d3d; font-size: 14.5px; font-weight: 500; }
.nhTechChips a small { color: #7a8798; font-weight: 400; }
.nhTechChips a:hover { border-color: var(--blue); color: var(--blue); }
.nhSteps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.nhSteps li { display: grid; gap: 8px; align-content: start; padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.nhSteps b { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--yellow); color: var(--navy); font-weight: 600; }
.nhSteps strong { color: var(--navy); font-size: 18px; font-weight: 600; }
.nhSteps p { margin: 0; color: var(--muted); line-height: 1.55; }
.nhDomains { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.nhDomains a { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.nhDomains a:hover { border-color: var(--blue); }
.nhDomains b { display: grid; flex: none; place-items: center; width: 42px; height: 42px; border-radius: 10px; background: var(--navy); color: var(--yellow); font-size: 13px; font-weight: 600; }
.nhDomains span { display: grid; min-width: 0; }
.nhDomains strong { color: var(--navy); font-size: 15px; font-weight: 600; }
.nhDomains small { color: #7a8798; }
.nhCatalogueLinks { display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 22px 0 0; }
.nhCatalogueLinks a { color: var(--blue); font-weight: 600; }

.nhResultsHead { padding: 36px 0 26px; background: linear-gradient(135deg, #071a33 0%, #0b2a55 100%); color: #fff; }
.nhResultsHead .container { display: grid; gap: 18px; }
.nhResultsHead h1 { margin: 0; font-size: clamp(24px, 3vw, 34px); font-weight: 600; letter-spacing: -.01em; }
.nhResultsHead .nhPopular { justify-content: flex-start; }
.nhFilters { display: flex; flex-wrap: wrap; gap: 8px; }
.nhFilters a { padding: 7px 14px; border: 1px solid rgba(255, 255, 255, .3); border-radius: 999px; color: #fff; font-size: 14px; font-weight: 500; }
.nhFilters a small { color: #9fb4ca; }
.nhFilters a[aria-current="page"] { border-color: var(--yellow); background: var(--yellow); color: var(--navy); }
.nhFilters a[aria-current="page"] small { color: #5c4600; }
.nhResultsBody { display: grid; gap: 44px; padding: 40px 0 70px; }
.nhResultGroup .nhSectionHead { margin-bottom: 18px; }
.nhResultGroup .nhSectionHead h2 { font-size: 24px; }
.nhCatalogueHits { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; }
.nhCatalogueHits a { display: grid; gap: 2px; padding: 13px 16px; border: 1px solid var(--line); border-left: 4px solid var(--blue); border-radius: 10px; background: #fff; }
.nhCatalogueHits a:hover { border-color: var(--blue); }
.nhCatalogueHits strong { color: var(--navy); font-size: 15px; font-weight: 600; }
.nhCatalogueHits small { color: #6b7a8c; }
.nhNoResult { display: grid; justify-items: start; gap: 14px; max-width: 720px; }
.nhNoResult h2 { margin: 0; color: var(--navy); font-size: 26px; font-weight: 600; }
.nhNoResult p { margin: 0; color: var(--muted); line-height: 1.6; }
.nhNoResult .nhPopular { justify-content: flex-start; }
.nhNoResult .nhPopular span { color: var(--muted); }
.nhNoResult .nhPopular a { border-color: #d6dee8; color: #1f2d3d; }

@media (max-width: 1240px) {
  .nhNav { display: none; }
  .nhBurger { display: block; }
  .nhMenus { margin-left: 0; }
  .nhMobile.isOpen { position: absolute; top: 100%; left: -20px; right: -20px; z-index: 70; display: grid; max-height: calc(100vh - 90px); overflow-y: auto; padding: 10px 20px 20px; border-bottom: 1px solid var(--line); background: #fff; box-shadow: 0 20px 30px rgba(7, 26, 51, .12); }
  .nhMobile a, .nhMobile summary { display: block; padding: 12px 0; border-bottom: 1px solid #eef1f5; color: #1f2d3d; font-weight: 500; }
  .nhMobile summary { list-style: none; color: var(--navy); font-weight: 600; }
  .nhMobile summary::-webkit-details-marker { display: none; }
  .nhMobile details a { padding-left: 14px; font-weight: 400; }
  .nhMobile .nhMobileMain { color: var(--navy); font-size: 16px; font-weight: 600; }
  .nhMobile .nhCta { display: flex; justify-content: center; margin: 14px 0 0; border-bottom: 0; }
  .searchBox { max-width: none; }
}
@media (max-width: 720px) {
  .nhBar { flex-wrap: wrap; gap: 10px 14px; padding: 10px 0 12px; }
  .nhBrand img { height: 36px; }
  .nhMenus { margin-left: auto; }
  .nhBar > .searchBox { order: 3; flex-basis: 100%; }
  .nhHeroInner { padding: 44px 0 36px; }
  .nhHeroIntro { font-size: 16px; }
  .searchBox-hero input { height: 54px; font-size: 16px; }
  .searchBox-hero .searchBoxButton { height: 54px; padding: 0 16px; }
  .searchBox-hero .searchBoxButton span { display: none; }
  .nhFigures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nhSteps { grid-template-columns: 1fr; }
  .nhSection { padding: 44px 0; }
}


/* ---- Trainer space: sign-in pages (login, activation link) ---- */
.fxAuth { --auth-navy: #0b2a55; --auth-yellow: #ffd226; --auth-blue: #0b5cff; --auth-blue-dark: #0846c4; --auth-text: #0f1f38; --auth-muted: #5b6b7f; --auth-line: #dde3ec; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 100vh; background: #f2f4f8; color: var(--auth-text); }
.fxAuthPanel { display: flex; flex-direction: column; gap: 40px; padding: 40px clamp(28px, 5vw, 84px) 30px; background: radial-gradient(circle at 8% 4%, rgba(11, 92, 255, .42), transparent 44%), radial-gradient(circle at 100% 100%, rgba(255, 210, 38, .10), transparent 42%), var(--auth-navy); color: #fff; }
.fxAuthBrand { align-self: flex-start; }
.fxAuthBrand img { display: block; width: 138px; height: auto; padding: 8px 12px; border-radius: 10px; background: #fff; }
.fxAuthHead { display: grid; justify-items: start; gap: 14px; }
.fxAuthKicker { display: inline-flex; align-items: center; gap: 10px; margin: 26px 0 0; color: var(--auth-yellow); font-size: 12.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.fxAuthKicker::before { content: ""; width: 22px; height: 3px; border-radius: 2px; background: var(--auth-yellow); }
.fxAuthHead h1 { max-width: 540px; margin: 0; font-size: clamp(28px, 3vw, 40px); font-weight: 600; line-height: 1.18; letter-spacing: -.015em; }
.fxAuthIntro { max-width: 500px; margin: 0; color: #c8d6ea; font-size: 16.5px; line-height: 1.55; }
.fxAuthBenefits { display: flex; flex: 1; flex-direction: column; gap: 28px; }
.fxAuthBenefits ul { display: grid; gap: 18px; max-width: 540px; margin: 0; padding: 0; list-style: none; }
.fxAuthBenefits li { display: flex; align-items: flex-start; gap: 14px; }
.fxAuthIcon { display: grid; flex: none; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: rgba(255, 210, 38, .14); color: var(--auth-yellow); }
.fxAuthBenefits strong { display: block; font-size: 15.5px; font-weight: 600; }
.fxAuthBenefits small { display: block; margin-top: 2px; color: #b8c6d8; font-size: 14px; line-height: 1.5; }
.fxAuthHelp { margin: auto 0 0; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .14); color: #b8c6d8; font-size: 13.5px; }
.fxAuthHelp a { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.fxAuthPhone { white-space: nowrap; }
.fxAuthMain { display: grid; place-items: center; padding: 48px 24px; }
.fxAuthCard { display: grid; gap: 18px; width: min(460px, 100%); padding: 34px 34px 28px; border: 1px solid var(--auth-line); border-radius: 18px; background: #fff; box-shadow: 0 24px 60px rgba(11, 42, 85, .10); }
.fxAuthStep { display: inline-flex; align-items: center; gap: 10px; margin: 0; color: var(--auth-blue); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.fxAuthStep::before { content: ""; width: 18px; height: 3px; border-radius: 2px; background: var(--auth-yellow); }
.fxAuthCard h2 { margin: -6px 0 0; color: var(--auth-text); font-size: 24px; font-weight: 600; line-height: 1.25; letter-spacing: -.01em; }
.fxAuthIdentity { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid #d9e5ff; border-radius: 12px; background: #f4f8ff; }
.fxAuthIdentityIcon { display: grid; flex: none; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--auth-blue); color: #fff; }
.fxAuthIdentity > span:last-child { display: grid; min-width: 0; }
.fxAuthIdentity small { color: var(--auth-muted); font-size: 12px; }
.fxAuthIdentity strong { overflow-wrap: anywhere; font-size: 15px; font-weight: 600; }
.fxAuthForm { display: grid; gap: 14px; }
.fxAuthField { display: grid; gap: 6px; }
.fxAuthField > span:first-child { color: #34445a; font-size: 13.5px; font-weight: 600; }
.fxAuthField input { width: 100%; height: 48px; padding: 0 14px; border: 1px solid #cfd8e3; border-radius: 10px; background: #fff; color: var(--auth-text); font: inherit; font-size: 15px; transition: border-color .15s, box-shadow .15s; }
.fxAuthField input::placeholder { color: #9aa6b5; }
.fxAuthField input:focus { border-color: var(--auth-blue); outline: none; box-shadow: 0 0 0 3px rgba(11, 92, 255, .14); }
.fxAuthPassword { position: relative; display: block; }
.fxAuthPassword input { padding-right: 52px; }
.fxAuthPassword button { position: absolute; top: 50%; right: 6px; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 8px; color: var(--auth-muted); transform: translateY(-50%); }
.fxAuthPassword button:hover, .fxAuthPassword button:focus-visible { background: #f1f5fb; color: var(--auth-text); outline: none; }
.fxAuthRules { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; color: #7a8798; font-size: 13px; }
.fxAuthRules li { display: flex; align-items: center; gap: 8px; transition: color .15s; }
.fxAuthRules svg { flex: none; width: 18px; height: 18px; padding: 2px; border-radius: 50%; background: #e9edf3; color: #9aa6b5; transition: background .15s, color .15s; }
.fxAuthRules li.ok { color: #13875a; }
.fxAuthRules li.ok svg { background: #dcf5e9; color: #13875a; }
.fxAuthCheck { display: flex; align-items: center; gap: 8px; color: #52606d; font-size: 14px; }
.fxAuthCheck input { width: 16px; height: 16px; accent-color: var(--auth-blue); }
.fxAuthError, .fxAuthOk { margin: 0; padding: 10px 12px; border-radius: 10px; font-size: 14px; line-height: 1.5; }
.fxAuthError { background: #fff1f0; color: #b42318; }
.fxAuthOk { background: #eafaf2; color: #0b6e45; }
.fxAuthSubmit { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 50px; margin-top: 4px; border: 0; border-radius: 10px; background: var(--auth-blue); color: #fff; font: inherit; font-size: 15.5px; font-weight: 600; cursor: pointer; transition: background .15s; }
.fxAuthSubmit:hover { background: var(--auth-blue-dark); color: #fff; }
.fxAuthSubmit:disabled { opacity: .7; cursor: wait; }
.fxAuthSecondary { display: inline-flex; align-items: center; justify-content: center; width: 100%; height: 46px; border: 1px solid #cfd8e3; border-radius: 10px; background: #fff; color: var(--auth-text); font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; transition: border-color .15s, color .15s; }
.fxAuthSecondary:hover { border-color: var(--auth-blue); color: var(--auth-blue); }
.fxAuthNote { display: flex; align-items: flex-start; gap: 8px; margin: 0; padding-top: 14px; border-top: 1px solid #eef1f5; color: #6b7a8c; font-size: 12.5px; line-height: 1.5; }
.fxAuthNote svg { flex: none; margin-top: 2px; }
.fxAuthLink { padding-top: 14px; border-top: 1px solid #eef1f5; }
.fxAuthLink summary { color: var(--auth-blue); font-size: 14px; font-weight: 600; list-style: none; cursor: pointer; }
.fxAuthLink summary::-webkit-details-marker { display: none; }
.fxAuthLink summary::after { content: " ▾"; font-size: 11px; }
.fxAuthLink[open] summary::after { content: " ▴"; }
.fxAuthLink[open] summary { margin-bottom: 12px; }
.fxAuthLink .fxAuthOk { margin-bottom: 12px; }
.fxAuthExpired { display: grid; justify-items: center; gap: 12px; text-align: center; }
.fxAuthExpired h2 { margin: 0; }
.fxAuthExpired p { margin: 0 0 6px; color: var(--auth-muted); font-size: 14.5px; line-height: 1.55; }
.fxAuthExpiredIcon { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: #fff4d1; color: #8a6500; }
@media (max-width: 900px) {
  .fxAuth { grid-template-columns: 1fr; align-content: start; }
  .fxAuthPanel { display: contents; }
  .fxAuthHead { order: 1; padding: 20px 20px 44px; background: radial-gradient(circle at 8% 4%, rgba(11, 92, 255, .42), transparent 50%), var(--auth-navy); color: #fff; }
  .fxAuthBrand img { width: 118px; }
  .fxAuthKicker { margin-top: 12px; }
  .fxAuthHead h1 { font-size: 25px; }
  .fxAuthIntro { font-size: 15px; }
  .fxAuthMain { order: 2; display: block; margin-top: -26px; padding: 0 14px 28px; }
  .fxAuthCard { width: 100%; padding: 24px 20px 20px; border-radius: 16px; }
  .fxAuthCard h2 { font-size: 21px; }
  .fxAuthBenefits { order: 3; padding: 28px 20px 32px; background: var(--auth-navy); color: #fff; }
}


/* Trainer space: « describe it in a few words », the assistant writes the offer / the profile */
.fxAiBrief { display: grid; gap: 12px; border: 1px solid #cfdcf7; border-left: 4px solid var(--fx-accent, #0b5cff); background: linear-gradient(135deg, #f5f8ff 0%, #ffffff 70%); }
.fxAiBrief textarea { width: 100%; min-height: 92px; padding: 12px 14px; border: 1px solid #cfd8e3; border-radius: 10px; background: #fff; font: inherit; font-size: 15px; line-height: 1.5; color: var(--fx-text, #0f1f38); resize: vertical; }
.fxAiBrief textarea:focus { border-color: var(--fx-accent, #0b5cff); outline: none; box-shadow: 0 0 0 3px rgba(11, 92, 255, .12); }
.fxAiBriefActions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.fxAiBriefInline { margin-bottom: 6px; padding: 16px 18px; border-radius: 12px; }
.fxAiBriefInline > strong { color: var(--fx-text, #0f1f38); font-size: 16px; font-weight: 600; }

/* Trainer space: offer and service pages (tabs, what to fill first, days of the sessions) */
.fxPageTabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 4px 0 18px; }
.fxPageTabs a { display: grid; gap: 2px; padding: 14px 18px; border: 1px solid var(--fx-line, #dfe4ec); border-radius: 12px; background: #fff; color: var(--fx-text, #0f1f38); }
.fxPageTabs a strong { font-size: 16px; font-weight: 600; }
.fxPageTabs a small { color: var(--fx-muted, #56657a); font-size: 13px; }
.fxPageTabs a:hover { border-color: #b9cdf5; }
.fxPageTabs a[aria-current="page"] { border-color: var(--fx-accent, #0b5cff); box-shadow: inset 0 -3px 0 var(--fx-accent, #0b5cff); background: #f5f8ff; }
.fxPageTabs a[aria-current="page"] strong { color: var(--fx-accent, #0b5cff); }
.fxSectionTitle { margin: 10px 0 -4px; color: var(--fx-text, #0f1f38); font-size: 18px; font-weight: 600; }
.fxSetupForm { gap: 18px; }
.fxSetupStep { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 14px; align-items: start; padding-bottom: 18px; border-bottom: 1px solid #eef1f5; }
.fxSetupStep > b { display: grid; place-items: center; width: 30px; height: 30px; margin-top: 22px; border-radius: 50%; background: var(--fx-navy, #0b2a55); color: var(--fx-yellow, #ffd226); font-size: 13px; font-weight: 600; }
.fxSetupStep .fxPriceField small.fxPriceWhere { margin: 2px 0 0; }
.fxDays { display: grid; gap: 12px; }
.fxDaysRow { display: grid; gap: 8px; }
.fxDaysTitle { color: #34445a; font-size: 13px; font-weight: 600; }
.fxDayChips { display: flex; flex-wrap: wrap; gap: 8px; }
.fxDayChips label { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 52px; height: 40px; padding: 0 12px; border: 1px solid #cfd8e3; border-radius: 10px; background: #fff; color: #34445a; font-size: 14px; font-weight: 500; cursor: pointer; transition: border-color .15s, background .15s, color .15s; }
.fxDayChips label:hover { border-color: #9db8ef; }
.fxDayChips label.on { border-color: var(--fx-accent, #0b5cff); background: var(--fx-accent, #0b5cff); color: #fff; }
.fxDayChips label:focus-within { box-shadow: 0 0 0 3px rgba(11, 92, 255, .18); }
.fxDayChips input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.tsForm .fxDayChips label > span { color: inherit; font-size: inherit; font-weight: inherit; }
.fxSlotChips label { min-width: 104px; }
.fxDayPresets { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.fxDayPresets button { padding: 0; border: 0; background: none; color: var(--fx-accent, #0b5cff); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.fxDayPresets button:hover { text-decoration: underline; }
.fxDaysLabel { margin: 0; color: #8a96a6; font-size: 13.5px; }
.fxDaysLabel.on { color: #13875a; font-weight: 600; }
.fxServiceHead { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 26px; align-items: center; margin-bottom: 18px; padding: 20px; border: 1px solid var(--fx-line, #dfe4ec); border-radius: 14px; background: #fff; }
.fxServiceHead h1 { margin: 8px 0 6px; font-size: 24px; font-weight: 600; line-height: 1.25; }
.fxServiceHead p { margin: 0 0 10px; color: var(--fx-muted, #56657a); }
.fxServiceHead .fxServiceColors { margin-top: 12px; }
.fxProgrammeSummary ol { display: grid; gap: 4px; margin: 8px 0 16px; padding-left: 20px; list-style: decimal; color: var(--fx-text, #0f1f38); }
@media (max-width: 800px) {
  .fxPageTabs, .fxServiceHead { grid-template-columns: 1fr; }
  .fxSetupStep { grid-template-columns: 1fr; }
  .fxSetupStep > b { margin-top: 0; }
}

/* Home: hero photos, companies and trainers sections */
.nhHero { overflow: hidden; }
.nhHeroBackdrop { position: absolute; inset: 0; z-index: 0; }
.nhHeroBackdrop span { position: absolute; inset: 0; background-position: center; background-size: cover; opacity: 0; transform: scale(1.06); transition: opacity 1.4s ease, transform 9s ease-out; }
.nhHeroBackdrop span.on { opacity: 1; transform: scale(1); }
.nhHero.hasPhoto::after { content: ""; position: absolute; inset: 0; z-index: 1; background: radial-gradient(circle at 85% 15%, rgba(11, 92, 255, .35), transparent 50%), linear-gradient(135deg, rgba(7, 26, 51, .92) 0%, rgba(11, 42, 85, .84) 55%, rgba(13, 59, 140, .72) 100%); }
.nhHeroInner { position: relative; z-index: 2; }
.nhHeroCredit { position: absolute; right: 14px; bottom: 12px; z-index: 3; display: flex; align-items: center; gap: 8px; }
.nhHeroCreditIcon { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(255, 255, 255, .1); color: rgba(255, 255, 255, .65); }
.nhHeroCreditIcon:hover, .nhHeroCreditIcon:focus-visible { background: rgba(255, 255, 255, .2); color: #fff; outline: none; }
.nhHeroCreditIcon svg { width: 16px; height: 16px; }
.nhHeroCreditTip { display: none; padding: 5px 10px; border-radius: 8px; background: rgba(7, 26, 51, .85); }
.nhHeroCredit:hover .nhHeroCreditTip, .nhHeroCredit:focus-within .nhHeroCreditTip { display: block; }
.nhHeroCreditTip .cvCredit { position: static; color: #fff; font-size: 11.5px; }
.nhSplit { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.nhSplitMedia { position: relative; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 22px; background: linear-gradient(135deg, #0b2a55, #0b5cff); box-shadow: 0 24px 60px rgba(7, 26, 51, .16); }
.nhSplitMedia img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nhSplitMedia .cvCredit { position: absolute; right: 12px; bottom: 8px; color: rgba(255, 255, 255, .9); text-shadow: 0 1px 4px rgba(0, 0, 0, .6); }
.nhSplitFallback { position: absolute; inset: 0; background: radial-gradient(circle at 30% 30%, rgba(255, 210, 38, .35), transparent 50%), linear-gradient(135deg, #0b2a55, #0b5cff); }
.nhSplitBadge { position: absolute; left: 18px; top: 18px; display: grid; gap: 2px; padding: 12px 16px; border-radius: 14px; background: #fff; box-shadow: 0 12px 30px rgba(7, 26, 51, .2); }
.nhSplitBadge b { color: var(--navy); font-size: 15px; font-weight: 600; }
.nhSplitBadge small { color: #5b6b7f; font-size: 12.5px; }
.nhSplitText h2 { margin: 0 0 14px; color: var(--navy); font-size: clamp(26px, 3vw, 36px); font-weight: 600; line-height: 1.15; letter-spacing: -.015em; }
.nhLead { margin: 0 0 20px; color: #3c4d61; font-size: 17px; line-height: 1.6; }
.nhChecks { display: grid; gap: 12px; margin: 0 0 26px; padding: 0; list-style: none; }
.nhChecks li { position: relative; padding-left: 34px; color: #3c4d61; line-height: 1.5; }
.nhChecks li::before { content: "✓"; position: absolute; top: 0; left: 0; display: grid; place-items: center; width: 23px; height: 23px; border-radius: 50%; background: #e3f6ec; color: #13875a; font-size: 13px; font-weight: 700; }
.nhChecks b { color: var(--navy); font-weight: 600; }
.nhActions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.nhTextLink { color: var(--blue); font-weight: 600; }
.nhTextLink:hover { text-decoration: underline; }
.nhCompanies { background: #fff; }
.nhTrainerBand { background: linear-gradient(135deg, #fff6d6 0%, #fffaf0 55%, #ffffff 100%); border-top: 1px solid #f2e3ad; }
.nhTrainerBand .nhKicker { color: #9a6d00; }
.nhTrainerBand .nhSplitMedia { box-shadow: 0 24px 60px rgba(154, 109, 0, .18); }
@media (max-width: 900px) {
  .nhSplit { grid-template-columns: 1fr; gap: 28px; }
}

/* Technology logos (src/lib/technologyLogos.ts) instead of the initials; WhatsApp and LinkedIn links */
b.techLogo { display: grid !important; place-items: center; padding: 6px !important; border: 1px solid #e3e9f1; background: #fff !important; }
b.techLogo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.nhTechChips a img { flex: none; width: 22px; height: 22px; object-fit: contain; }
.searchIcon img.searchLogo { padding: 5px; background: #fff; object-fit: contain; }
.nhWhatsapp { display: grid; flex: none; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: #25d366; color: #fff; box-shadow: 0 4px 12px rgba(37, 211, 102, .35); }
.nhWhatsapp:hover { background: #1fbd59; }
.nhWhatsapp .offerIcon { width: 22px; height: 22px; }
.nhThemes .nhThemesPhone { display: inline-flex; align-items: center; gap: 6px; }
.nhThemes .nhThemesPhone .offerIcon { width: 16px; height: 16px; }
.footerContactItem .footerLinkedin { display: inline-flex; align-items: center; gap: 8px; }
.footerLinkedin svg { width: 16px; height: 16px; }
@media (max-width: 720px) {
  .nhWhatsapp { width: 38px; height: 38px; }
  .nhBar > .nhWhatsapp { order: 2; margin-left: auto; }
  .nhBar > .nhMenus { order: 2; margin-left: 0; }
}

/* Trainer space: Performance (src/lib/pageStats.ts) */
.fxPeriods { display: inline-flex; gap: 4px; padding: 4px; border: 1px solid var(--fx-line, #dfe4ec); border-radius: 10px; background: #fff; }
.fxPeriods a { padding: 7px 12px; border-radius: 7px; color: var(--fx-muted, #56657a); font-size: 14px; font-weight: 600; }
.fxPeriods a[aria-current="page"] { background: var(--fx-navy, #0b2a55); color: #fff; }
.fxStatCards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.fxStatCard { display: grid; gap: 4px; padding: 18px; border: 1px solid var(--fx-line, #dfe4ec); border-radius: 12px; background: #fff; }
.fxStatCard small { color: var(--fx-muted, #56657a); font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.fxStatCard strong { color: var(--fx-text, #0f1f38); font-size: 30px; font-weight: 600; line-height: 1.1; }
.fxStatCard span { color: var(--fx-muted, #56657a); font-size: 13px; }
.fxStatCardStrong { border-color: #b9e8cf; background: #f2fbf6; }
.fxStatCardStrong strong { color: #13875a; }
.fxChart { display: flex; align-items: flex-end; gap: 3px; height: 160px; padding: 8px 0 0; border-bottom: 1px solid var(--fx-line, #dfe4ec); }
.fxChart span { display: flex; flex: 1; align-items: flex-end; height: 100%; }
.fxChart i { display: block; width: 100%; min-height: 2px; border-radius: 3px 3px 0 0; background: var(--fx-accent, #0b5cff); opacity: .85; }
.fxChart span:hover i { opacity: 1; background: var(--fx-navy, #0b2a55); }
.fxStatTableWrap { overflow-x: auto; }
.fxStatTable { width: 100%; border-collapse: collapse; font-size: 14px; }
.fxStatTable th, .fxStatTable td { padding: 10px 12px; border-bottom: 1px solid #eef1f5; text-align: right; white-space: nowrap; }
.fxStatTable thead th { color: var(--fx-muted, #56657a); font-size: 12.5px; font-weight: 600; }
.fxStatTable th[scope="row"], .fxStatTable thead th:first-child { text-align: left; white-space: normal; }
.fxStatTable th[scope="row"] a { color: var(--fx-text, #0f1f38); font-weight: 600; }
.fxStatTable th[scope="row"] a:hover { color: var(--fx-accent, #0b5cff); }
.fxStatTable .fxStatOpen { margin-left: 6px; color: var(--fx-muted, #56657a) !important; font-weight: 400 !important; }
.fxStatTable td strong { color: #13875a; }
.fxStatHow ul { display: grid; gap: 8px; margin: 10px 0 0; padding-left: 18px; list-style: disc; color: var(--fx-muted, #56657a); font-size: 14px; line-height: 1.5; }
.fxStatHow b { color: var(--fx-text, #0f1f38); }
@media (max-width: 900px) {
  .fxStatCards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Catalogue formation icons (src/lib/formationIcons.ts) */
.formationIcon { display: block; flex: none; object-fit: contain; }
.catalogueRow { grid-template-columns: 80px 1fr 190px 145px; }
.catalogueNumber .formationIcon { width: 56px; height: 56px; }
.formationCardIcon { width: 52px; height: 52px; margin: -6px 0 10px -6px; }
.formationHeroIcon { width: 84px; height: 84px; margin: 0 0 10px -8px; }
.formationLinkIcon { width: 28px; height: 28px; }
.localLinks a:has(.formationLinkIcon), .megaSimpleLinks a:has(.formationLinkIcon) { justify-content: flex-start; gap: 10px; }
.localLinks a:has(.formationLinkIcon) > span:last-child, .megaSimpleLinks a:has(.formationLinkIcon) > span:last-child { margin-left: auto; }
.megaSimpleLinks .formationLinkIcon { width: 24px; height: 24px; }
.nhDomainFormations a { align-items: center; justify-content: flex-start; }
.nhDomainFormations a img { flex: none; width: 26px; height: 26px; }
.nhDomainFormations a small { margin-left: auto; }
.nhCatalogueHits a:has(.formationLinkIcon) { grid-template-columns: 40px minmax(0, 1fr); column-gap: 12px; align-items: center; }
.nhCatalogueHits a .formationLinkIcon { grid-row: span 2; width: 40px; height: 40px; }
@media (max-width: 1080px) {
  .catalogueRow { grid-template-columns: 64px 1fr 150px 130px; }
  .catalogueNumber .formationIcon { width: 46px; height: 46px; }
}
@media (max-width: 820px) {
  .catalogueRow { grid-template-columns: 56px 1fr; }
  .catalogueNumber .formationIcon { width: 42px; height: 42px; }
}
@media (max-width: 560px) {
  .catalogueRow { grid-template-columns: 48px 1fr; }
  .catalogueNumber .formationIcon { width: 36px; height: 36px; }
}

/* Missions, contacts after the payment: the trainer's proposal, the team's steps, the client's trainer card */
.fxOfferActions > .fxProposalForm, .fxOfferActions > .fxNotice { justify-self: stretch; }

/* LinkedIn onboarding and trainer sharing */
.fxLinkedinCard { border-left: 4px solid #0a66c2; }
.fxLinkedinCard .fxMuted { margin: 0 0 16px; }
.fxLinkedinTrigger { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.fxLinkedinTrigger .offerIcon, .fxSocialWelcomeActions .offerIcon { width: 18px; height: 18px; }
.fxLinkedinPending { margin: 0; color: var(--fx-muted); font-size: 14px; }
.fxSocialBackdrop { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 18px; background: rgba(8, 23, 46, .76); }
.fxSocialWelcome, .fxSocialDialog { width: min(100%, 1100px); max-height: calc(100dvh - 36px); overflow-y: auto; border-radius: 18px; background: #fff; box-shadow: 0 22px 70px rgba(0, 0, 0, .25); color: var(--fx-text); }
.fxSocialWelcome { width: min(100%, 560px); padding: clamp(28px, 5vw, 50px); text-align: center; }
.fxSocialWelcomeIcon { display: inline-grid; place-items: center; width: 64px; height: 64px; margin-bottom: 20px; border-radius: 16px; background: #eaf4ff; color: #0a66c2; }
.fxSocialWelcomeIcon .offerIcon { width: 34px; height: 34px; }
.fxSocialEyebrow { margin: 0 0 8px; color: #0a66c2; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.fxSocialWelcome h2 { margin: 0 0 14px; font-size: clamp(27px, 4vw, 36px); line-height: 1.18; }
.fxSocialWelcome > p:not(.fxSocialEyebrow) { margin: 0; color: var(--fx-muted); line-height: 1.6; }
.fxSocialWelcomeActions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 28px; }
.fxSocialWelcomeActions .fxBtn { display: inline-flex; align-items: center; gap: 8px; }
.fx .fxSocialSecondary, .fx .fxSocialSecondary:hover { border: 1px solid var(--fx-line); background: #fff; color: var(--fx-text); }
.fx .fxSocialSecondary:hover { background: #f2f5f9; }
.fxSocialLater { padding: 9px 12px; border: 0; background: transparent; color: var(--fx-muted); font: inherit; font-size: 13px; text-decoration: underline; cursor: pointer; }
.fxSocialWelcome > .fxSocialLater { margin-top: 15px; }
.fxSocialDialog { padding: clamp(18px, 3vw, 32px); }
.fxSocialDialogHead { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.fxSocialDialogHead h2 { margin: 0 0 10px; font-size: clamp(22px, 3vw, 30px); }
.fxSocialClose { width: 36px; height: 36px; border: 1px solid var(--fx-line); border-radius: 50%; background: #fff; color: var(--fx-text); font-size: 27px; line-height: 1; cursor: pointer; }
.fxSocialDialog > .fxMuted { margin: 0 0 20px; line-height: 1.5; }
.fxSocialLinkDialog { width: min(100%, 930px); }
.fxSocialLinkPreview { display: grid; grid-template-columns: minmax(210px, 42%) minmax(0, 1fr); gap: 18px; overflow: hidden; align-items: center; border: 1px solid var(--fx-line); border-radius: 12px; background: #f8fafc; }
.fxSocialLinkPreview img, .fxSocialPreviewEmpty { display: block; width: 100%; height: 210px; object-fit: cover; background: var(--fx-navy); }
.fxSocialPreviewEmpty { display: grid; place-items: center; color: #fff; font-size: 28px; font-weight: 700; }
.fxSocialLinkPreview > div { display: grid; gap: 8px; min-width: 0; padding: 14px 18px 14px 0; }
.fxSocialLinkPreview strong { font-size: 19px; line-height: 1.3; }
.fxSocialLinkPreview small { display: -webkit-box; overflow: hidden; color: var(--fx-muted); font-size: 13px; line-height: 1.45; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.fxSocialLinkPreview span:last-child { overflow: hidden; color: #0a66c2; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.fxSocialTextChoices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.fxSocialTextChoice { display: grid; gap: 9px; align-content: start; min-width: 0; padding: 12px; border: 2px solid var(--fx-line); border-radius: 10px; background: #f8fafc; cursor: pointer; }
.fxSocialTextChoice.selected { border-color: #0a66c2; background: #f1f7ff; }
.fxSocialTextChoice > span { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; }
.fxSocialTextChoice input { accent-color: #0a66c2; }
.fxSocialTextChoice textarea { width: 100%; min-height: 132px; resize: vertical; padding: 10px; border: 1px solid var(--fx-line); border-radius: 7px; background: #fff; color: var(--fx-text); font: inherit; font-size: 13px; line-height: 1.45; }
.fxSocialShareOptions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 20px; }
.fxSocialShareOptions .fxBtn { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 8px 12px; font-size: 13px; }
.fxSocialHint { margin: 13px 0 0; color: var(--fx-muted); font-size: 13px; line-height: 1.5; }
.fxSocialStatus { margin: 10px 0 0; color: #0a66c2; font-size: 13px; font-weight: 600; }
.fxSocialDialogFoot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--fx-line); }
@media (max-width: 800px) { .fxSocialTextChoices { grid-template-columns: 1fr; } .fxSocialTextChoice textarea { min-height: 92px; } }
@media (max-width: 540px) { .fxSocialLinkPreview { grid-template-columns: 1fr; } .fxSocialLinkPreview > div { padding: 4px 14px 14px; } .fxSocialWelcomeActions, .fxSocialWelcomeActions .fxBtn, .fxSocialDialogFoot .fxBtn { width: 100%; } .fxSocialDialogFoot { flex-direction: column-reverse; } }
.fxProposalForm .fxFormGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.fxProposalForm .fxReceive { margin: 0; }
.fxProposalForm .fxRateHint { margin: 0; }
#proposition .fxDecline { margin-top: 14px; }
#proposition .fxDecline .fxProposalForm { margin-top: 12px; }
.missionSideSteps { margin: 10px 0 14px; padding-left: 18px; color: #52606d; font-size: 13.5px; line-height: 1.55; }
.missionSideSteps li + li { margin-top: 5px; }
.suiviWhatsapp { display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; padding: 10px 16px; border-radius: 8px; background: #25d366; color: #fff !important; font-weight: 700; text-decoration: none !important; }
.suiviWhatsapp:hover { background: #1fbd59; }
@media (max-width: 640px) {
  .fxProposalForm .fxFormGrid { grid-template-columns: 1fr; }
}
.fxCard > .fxFactList + p.fxMuted { margin-top: 12px; }

/* ===== Site design v2: the whole public site in the style of the home =====
   IBM Plex Sans (root layout) with medium weights (500 links, 600 titles and buttons),
   rounded cards (14px) and buttons (10px), dark page heads with a light pattern like the
   home and the search, pale alternate sections, labels of 12px at least. Overrides the
   first version of the public styles above. */
:root { --font: var(--fx-font), "Segoe UI", system-ui, Arial, Helvetica, sans-serif; --head-bg: radial-gradient(circle at 88% 10%, rgba(11, 92, 255, .38), transparent 46%), repeating-linear-gradient(135deg, rgba(255, 255, 255, .035) 0 2px, transparent 2px 18px), linear-gradient(135deg, #071a33 0%, #0b2a55 62%, #0d3b8c 100%); }

/* Buttons and links */
.button { min-height: 48px; gap: 10px; padding: 0 22px; border-radius: 10px; font-size: 15px; font-weight: 600; transition: background .18s ease, border-color .18s ease, box-shadow .18s ease, color .18s ease; }
.button:hover, .button:focus-visible { transform: none; box-shadow: 0 8px 20px rgba(11, 92, 255, .22); }
.buttonSmall { min-height: 40px; padding-inline: 16px; border-radius: 8px; font-size: 14px; }
.buttonYellow:hover, .buttonYellow:focus-visible { box-shadow: 0 8px 20px rgba(240, 188, 0, .28); }
.textLink { gap: 8px; font-size: 15px; font-weight: 600; }
.textLink span { font-size: 17px; }
.eyebrow { gap: 0; margin: 0 0 12px; font-size: 12.5px; font-weight: 600; letter-spacing: .1em; }
.eyebrow > span, .eyebrow > i { display: none; }
.breadcrumbs { gap: 6px; margin-bottom: 24px; font-size: 13px; }
.breadcrumbs b { font-weight: 500; }

/* Page heads: dark band with the light pattern (like the home and the search) */
.pageHero, .detailHero, .localHero, .legalHero, .enterpriseHero, .partnerHero { position: relative; overflow: hidden; padding-block: 30px 56px; border-bottom: 0; background: var(--head-bg); color: #fff; }
.detailHero::after, .localHero::after { display: none; }
.pageHero h1, .detailHero h1, .localHero h1, .legalHero h1, .partnerHero h1, .enterpriseHero h1 { max-width: 900px; color: #fff; font-size: clamp(32px, 4.2vw, 50px); font-weight: 600; line-height: 1.12; letter-spacing: -.02em; }
.pageHero .eyebrow, .detailHero .eyebrow, .localHero .eyebrow, .legalHero .eyebrow, .enterpriseHero .eyebrow, .partnerHero .eyebrow { color: #9fc0ff; }
.pageHero .breadcrumbs, .detailHero .breadcrumbs, .localHero .breadcrumbs, .legalHero .breadcrumbs, .enterpriseHero .breadcrumbs, .partnerHero .breadcrumbs { color: #9fb4ca; }
.pageHero .breadcrumbs b, .detailHero .breadcrumbs b, .localHero .breadcrumbs b, .legalHero .breadcrumbs b, .enterpriseHero .breadcrumbs b, .partnerHero .breadcrumbs b { color: #dbe6f3; }
.pageHero .breadcrumbs i, .detailHero .breadcrumbs i, .localHero .breadcrumbs i, .legalHero .breadcrumbs i, .enterpriseHero .breadcrumbs i, .partnerHero .breadcrumbs i { color: #6f88a6; }
.pageHero .breadcrumbs a:hover, .detailHero .breadcrumbs a:hover, .localHero .breadcrumbs a:hover, .legalHero .breadcrumbs a:hover, .enterpriseHero .breadcrumbs a:hover, .partnerHero .breadcrumbs a:hover { color: #fff; }
.pageHeroGrid, .detailHeroGrid, .localHeroGrid, .enterpriseGrid, .partnerHeroGrid { gap: 48px; align-items: center; }
.pageHeroGrid > div:first-child > p:not(.eyebrow), .detailHeroGrid > div > p:not(.eyebrow), .localHeroGrid > div > p:not(.eyebrow), .enterpriseGrid > div:first-child > p:not(.eyebrow), .partnerHeroGrid > div:first-child > p:not(.eyebrow), .legalHero p { max-width: 760px; margin-top: 16px; color: #c8d6ea; font-size: 17px; line-height: 1.6; }
.detailActions { gap: 14px 24px; margin-top: 26px; }
.pageHero .textLink, .detailHero .textLink, .localHero .textLink, .enterpriseHero .textLink, .partnerHero .textLink { color: #fff; }
.pageHero .textLink:hover, .detailHero .textLink:hover, .localHero .textLink:hover { color: var(--yellow); }
.detailHero .technologyTags a, .localHero .technologyTags a, .pageHero .technologyTags a { border-color: rgba(255, 255, 255, .28); background: rgba(255, 255, 255, .08); color: #fff; }
.detailHero .technologyTags a:hover, .localHero .technologyTags a:hover, .pageHero .technologyTags a:hover { border-color: var(--yellow); background: var(--yellow); color: var(--navy); }
.detailHero .formationHeroIcon, .localHero .formationHeroIcon { padding: 10px; border-radius: 16px; background: #fff; box-shadow: 0 12px 30px rgba(0, 0, 0, .25); }
/* Panels beside the titles: translucent cards */
.heroMetric, .factPanel, .technologyIdentity, .localSignal, .citySectorPanel, .trainerDirectoryMetric, .trainerProfileIdentity { min-height: 0; overflow: hidden; border: 1px solid rgba(255, 255, 255, .16); border-radius: 16px; background: rgba(255, 255, 255, .07); box-shadow: none; color: #fff; backdrop-filter: blur(6px); }
.heroMetric { padding: 24px; }
.heroMetric strong { font-size: 48px; font-weight: 600; letter-spacing: -.03em; }
.heroMetric span { color: #c8d6ea; font-size: 14px; }
.heroMetric b { border-top-color: rgba(255, 255, 255, .16); color: var(--yellow); font-size: 13.5px; font-weight: 600; }
.factPanel > div { padding: 15px 20px; border-bottom-color: rgba(255, 255, 255, .12); }
.factPanel > div:last-child { border-bottom: 0; }
.factPanel span, .technologyIdentity > span, .trainerProfileIdentity > span, .localSignal > span, .citySectorPanel > span, .trainerDirectoryMetric > span { color: #9fb4ca; font-size: 12px; font-weight: 500; letter-spacing: .06em; }
.factPanel strong { font-size: 15px; font-weight: 600; }
.technologyIdentity, .trainerProfileIdentity { padding: 24px; }
.technologyIdentity > b, .trainerProfileIdentity > b { border-radius: 14px; font-weight: 600; }
.technologyIdentity > strong, .trainerProfileIdentity > strong { border-bottom-color: rgba(255, 255, 255, .14); font-size: 15px; font-weight: 600; }
.trainerProfileIdentity small { color: #c8d6ea; font-size: 12.5px; }
.localSignal { padding: 24px; }
.localSignal > strong { font-size: 30px; font-weight: 600; }
.localSignal > p { color: #9fb4ca; font-size: 13px; }
.localSignal > b { font-size: 18px; font-weight: 600; }
.localSignal i { border-radius: 4px; background: rgba(255, 255, 255, .14); }
.localSignal i:nth-child(-n+4) { background: var(--yellow); }
.localSignal small { border-top-color: rgba(255, 255, 255, .14); color: #c8d6ea; font-size: 12.5px; }
.citySectorPanel { padding: 24px; }
.citySectorPanel h2 { font-size: 22px; font-weight: 600; }
.citySectorPanel div { border-top-color: rgba(255, 255, 255, .14); }
.citySectorPanel b { color: var(--yellow); font-size: 12px; }
.citySectorPanel strong { font-size: 14px; font-weight: 500; }
.trainerDirectoryMetric { padding: 24px; }
.trainerDirectoryMetric strong { font-size: 26px; font-weight: 600; }
.trainerDirectoryMetric b { font-weight: 600; }
.trainerDirectoryMetric p { border-top-color: rgba(255, 255, 255, .14); color: #c8d6ea; font-size: 13px; }
/* White cards beside the titles (entreprises, partenaires, contact) */
.enterpriseBrief, .partnerCriteria, .contactPromise { overflow: hidden; border: 0; border-radius: 16px; box-shadow: 0 24px 50px rgba(0, 0, 0, .25); }
.enterpriseBrief > span, .partnerCriteria > span, .contactPromise span { font-size: 12px; font-weight: 600; letter-spacing: .08em; }
.enterpriseBrief b, .partnerCriteria b { font-size: 12px; font-weight: 600; }
.enterpriseBrief strong { font-size: 14.5px; font-weight: 600; }
.enterpriseBrief p { font-size: 13px; }
.partnerCriteria h2 { font-size: 22px; font-weight: 600; }
.partnerCriteria > div { font-size: 14px; }
.contactPromise strong { margin-top: 24px; font-size: 19px; font-weight: 600; }
.contactPromise p { font-size: 13.5px; }

/* Sections and headings */
.section { padding-block: 64px; }
.sectionHeading { margin-bottom: 28px; }
.sectionHeading h2, .proseBlock h2, .trainerMethodGrid > div:first-child h2, .localEditorial h2, .processTimeline h2, .trustGrid h2 { color: var(--navy); font-size: clamp(26px, 3vw, 36px); font-weight: 600; line-height: 1.15; letter-spacing: -.015em; }
.proseBlock h2 { margin: 48px 0 18px; }
.splitHeading { gap: 40px; }
.splitHeading > p, .proseBlock > p:not(.eyebrow), .localEditorial > div:last-child { color: var(--muted); font-size: 16px; line-height: 1.65; }
.paleSection { background: var(--pale); }
.nearbyStrip { background: var(--head-bg); }
.eyebrow.light { color: #9fc0ff; }
.requestStrip { background: radial-gradient(circle at 85% 20%, rgba(255, 210, 38, .30), transparent 30%), repeating-linear-gradient(135deg, rgba(255, 255, 255, .05) 0 2px, transparent 2px 16px), linear-gradient(120deg, #0b5cff 0%, #0a44b8 55%, #0b2a55 100%); }
.requestStrip > .container { min-height: 0; padding-block: 56px; }
.requestStrip h2, .footerLead h2 { font-size: clamp(26px, 3.2vw, 38px); font-weight: 600; line-height: 1.15; letter-spacing: -.015em; }
.requestStrip .eyebrow, .businessGrid .eyebrow { color: var(--yellow); }

/* Cards: separate rounded cards instead of bordered tables */
.technologyGrid, .homeTechnologyGrid, .localLinks, .regionCities, .useCaseGrid, .trustItems, .trainerSubjectGrid, .otherTrainerGrid, .similarTrainerGrid, .trainerExpertiseList { gap: 14px; border: 0; }
.technologyCard, .homeTechnologyGrid > a, .localLinks a, .regionCities a, .useCaseGrid article, .trustItems article, .trainerSubjectGrid article, .otherTrainerGrid > a, .similarTrainerGrid > a, .trainerExpertiseList > div { border: 1px solid var(--line); border-radius: 14px; background: #fff; transition: border-color .18s ease, box-shadow .18s ease; }
.technologyCard:hover, .homeTechnologyGrid > a:hover, .localLinks a:hover, .regionCities a:hover, .otherTrainerGrid > a:hover, .similarTrainerGrid > a:hover { transform: none; border-color: #b9cdf5; background: #fff; box-shadow: 0 12px 28px rgba(7, 26, 51, .08); }
.formationCard { border-top-width: 1px; border-radius: 14px; overflow: hidden; }
.formationCard:hover { transform: none; border-color: #b9cdf5; box-shadow: 0 12px 28px rgba(7, 26, 51, .08); }
.formationMeta { font-size: 12px; }
.formationMeta span:first-child { font-weight: 600; }
.formationCard h3 { margin: 16px 0 10px; font-size: 18px; font-weight: 600; }
.formationCard p { font-size: 14px; line-height: 1.6; }
.formationFoot { font-size: 13px; }
.formationFoot a { font-size: 14px; font-weight: 600; }
.homeTechnologyGrid > a { min-height: 0; padding: 16px 18px; }
.homeTechnologyGrid > a > b, .technologyCard > b, .otherTrainerGrid > a > b, .similarTrainerGrid > a > b, .trainerSubjectGrid article > b { border-radius: 10px; font-weight: 600; }
.homeTechnologyGrid > a > div > span, .technologyCard > div > span, .trainerSubjectGrid article > span { font-size: 12px; font-weight: 600; }
.homeTechnologyGrid h3 { font-size: 16px; font-weight: 600; }
.homeTechnologyGrid p { font-size: 13px; }
.technologyFamilies { gap: 52px; }
.technologyFamilyHead { padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.technologyFamilyHead h2 { font-size: 26px; font-weight: 600; }
.technologyFamilyHead span { font-size: 12.5px; font-weight: 600; }
.technologyCard { min-height: 0; padding: 20px; }
.technologyCard h3 { font-size: 18px; font-weight: 600; }
.technologyCard p { font-size: 14px; }
.technologyCard strong { font-size: 13.5px; font-weight: 600; }
.technologyCourseGrid { gap: 18px; }
.technologyCourseCard { min-height: 0; border-top-width: 1px; border-radius: 14px; background: #fff; }
.technologyCourseCard > div { font-size: 12px; font-weight: 600; }
.technologyCourseCard h2 { margin: 16px 0 10px; font-size: 20px; font-weight: 600; }
.technologyCourseCard > p, .technologyCourseCard li { font-size: 14px; }
.technologyCourseCard li::before { border-radius: 50%; }
.technologyCourseCard footer { font-size: 13px; }
.technologyCourseCard footer a { font-size: 14px; font-weight: 600; }
.localLinks { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.localLinks a { min-height: 54px; padding: 12px 16px; color: #1f2d3d; font-size: 14.5px; font-weight: 500; }
.localLinks a:hover { color: var(--blue); }
.localLinks a:hover span { color: var(--blue); }
.regionGroups { gap: 40px; }
.regionTitle { padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.regionTitle span { font-size: 22px; font-weight: 600; }
.regionTitle b { font-size: 12.5px; font-weight: 600; }
.regionCities { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); margin-top: 16px; }
.regionCities a { min-height: 0; }
.regionCities a strong { font-size: 16px; font-weight: 600; }
.regionCities a > span { font-size: 13px; }
.useCaseGrid article, .trustItems article { min-height: 0; padding: 22px; }
.useCaseGrid article > span, .partnerBenefits article > span { font-size: 12.5px; font-weight: 600; }
.useCaseGrid h3, .partnerBenefits h3 { margin: 28px 0 8px; font-size: 19px; font-weight: 600; }
.useCaseGrid p, .trustItems p, .partnerBenefits p { font-size: 14px; }
.trustItems h3 { font-size: 17px; font-weight: 600; }
.partnerBenefits { gap: 14px; }
.partnerBenefits article { min-height: 0; border: 1px solid var(--line); border-top-width: 1px; border-radius: 14px; background: #fff; }
.trainerSubjectGrid article { min-height: 0; }
.trainerSubjectGrid h2 { font-size: 19px; font-weight: 600; }
.trainerSubjectGrid p { font-size: 14px; }
.trainerSubjectGrid article > div a { min-height: 38px; font-size: 13.5px; font-weight: 500; }
.otherTrainerGrid > a, .similarTrainerGrid > a { min-height: 0; padding: 14px; }
.otherTrainerGrid strong, .similarTrainerGrid strong { font-size: 14px; font-weight: 600; }
.otherTrainerGrid small, .similarTrainerGrid small { font-size: 12px; }
.trainerExpertiseList > div { min-height: 0; padding: 12px 16px; }
.trainerExpertiseList b { font-size: 12px; }
.trainerExpertiseList strong { font-size: 14.5px; font-weight: 600; }
.trainerGrid { gap: 18px; }
.trainerCard { min-height: 0; border-top-width: 1px; border-radius: 14px; }
.trainerCardTop span { font-size: 12px; font-weight: 600; }
.trainerCardTop strong { font-size: 13px; font-weight: 500; }
.trainerCard h3 { font-size: 19px; font-weight: 600; }
.trainerCard > p { font-size: 14px; }
.trainerSkills span { border-radius: 999px; font-size: 12.5px; font-weight: 500; }
.trainerProfileLink { font-size: 14px; font-weight: 600; }
.buttonTrainer { border-radius: 10px; font-size: 14px; font-weight: 600; }
.trainerDisclosure { border-left: 0; border-radius: 14px; background: var(--head-bg); }
.trainerDisclosure b { font-size: 15px; font-weight: 600; }
.trainerDisclosure p { color: #c8d6ea; font-size: 14px; }
.trainerPrefill { border-left: 0; border-radius: 12px; }
.trainerPrefill b { font-size: 12px; font-weight: 600; }
.trainerPrefill span { font-size: 14.5px; font-weight: 600; }
.trainerPrefill small { font-size: 12.5px; }
.trainerMethodSteps b, .processTimeline li > b, .outcomeList b { font-size: 13px; font-weight: 600; }
.trainerMethodSteps h3, .processTimeline li strong { font-size: 17px; font-weight: 600; }
.trainerMethodSteps p, .processTimeline li span { font-size: 14px; }
.trainerProfileAside { border-top: 0; border-radius: 16px; background: var(--head-bg); }
.trainerProfileAside > span { font-size: 12px; font-weight: 600; }
.trainerProfileAside h2 { font-size: 22px; font-weight: 600; }
.trainerProfileAside > p, .trainerProfileAside > div strong { color: #c8d6ea; font-size: 14px; }
.trainerProfileAside > div b { font-size: 11.5px; font-weight: 600; }
.trainerProfileAside .button { font-size: 14.5px; }
.trainerProfileAside .textLink { font-size: 14px; }

/* Detail pages: content, modules, outcomes, facts, questions */
.outcomeList > div { min-height: 60px; }
.outcomeList span { font-weight: 500; }
.moduleList { gap: 12px; border: 0; background: none; }
.moduleList article { border: 1px solid var(--line); border-radius: 14px; }
.moduleList article > span { font-size: 12px; font-weight: 600; }
.moduleList h3 { font-size: 18px; font-weight: 600; }
.moduleList p { font-size: 14.5px; }
.localFactGrid { overflow: hidden; border-radius: 14px; }
.localFactGrid span { font-size: 12px; font-weight: 600; }
.localFactGrid strong { font-weight: 600; }
.localFactGrid p { font-size: 13.5px; }
.faqList summary { min-height: 64px; font-size: 16.5px; font-weight: 600; }
.faqList summary span { font-weight: 400; transition: transform .18s ease; }
.splitLocalSections h2 { font-size: 24px; font-weight: 600; }
.splitLocalSections a { font-size: 14.5px; }
.processSteps article > b { font-size: 36px; font-weight: 600; }
.processSteps h2 { font-size: 26px; font-weight: 600; }
.processFormula { border-radius: 16px; background: var(--head-bg); }
.processFormula span { border-radius: 10px; font-size: 13px; font-weight: 600; }
.processFormula strong { border-radius: 10px; font-weight: 600; }
.nearbyStrip strong { font-size: 12.5px; font-weight: 600; }
.nearbyStrip a { font-size: 14px; }

/* Catalogue (/formations): controls, pills, rows */
.catalogueControls { gap: 10px; padding: 14px; border-radius: 16px; background: var(--head-bg); }
.catalogueControls label { border-radius: 10px; }
.catalogueControls label > span { font-size: 11.5px; font-weight: 600; }
.catalogueControls input, .catalogueControls select { font-weight: 500; }
.resultCount { border-radius: 10px; }
.resultCount strong { font-weight: 600; }
.resultCount span { font-size: 12px; font-weight: 600; }
.categoryPills { gap: 8px; }
.categoryPills button { min-height: 38px; padding: 0 15px; border-color: #d6dee8; border-radius: 999px; color: #1f2d3d; font-size: 14px; font-weight: 500; }
.categoryPills button:hover { border-color: var(--blue); background: #fff; color: var(--blue); }
.categoryPills button.active { border-color: var(--navy); background: var(--navy); color: #fff; }
.catalogueList { display: grid; gap: 12px; border-top: 0; }
.catalogueRow { min-height: 0; padding: 18px 20px 18px 0; border: 1px solid var(--line); border-radius: 14px; background: #fff; transition: border-color .18s ease, box-shadow .18s ease; }
.catalogueRow:hover { border-color: #b9cdf5; background: #fff; box-shadow: 0 12px 28px rgba(7, 26, 51, .08); }
.catalogueNumber { border-right: 0; }
.catalogueContent > p { font-size: 12px; font-weight: 600; }
.catalogueContent h2 { font-size: 19px; font-weight: 600; }
.catalogueContent > span { font-size: 14px; }
.catalogueFacts { font-size: 13px; }
.catalogueAction { font-size: 14px; font-weight: 600; }
.inlineTechLinks a, .technologyTags a { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px; font-size: 12.5px; font-weight: 500; }
.emptyState { border-radius: 16px; }
.emptyState h2 { font-weight: 600; }

/* Offer pages (Nos formations, Nos formateurs, offres formateurs): head without cover photo */
.tpHero:not(.hasCover) h1, .tpHero:not(.hasCover) .offerHeroSummary { color: #fff; }
.tpHero:not(.hasCover) .offerHeroFacts span { border-color: rgba(255, 255, 255, .28); background: rgba(255, 255, 255, .1); color: #fff; }
.tpHero:not(.hasCover) .offerHeroFacts .offerIcon { color: var(--yellow); }
.tpHero:not(.hasCover) .tpHeroPortrait figcaption { color: #fff; }
.pageHero .offerHeroActions > small, .pageHero .offerHeroActions > small .offerIcon { color: #c8d6ea; }
.pageHero .button.tpGhost { color: #fff; }
.offerHeroFacts span { font-weight: 500; }
.offerHeroFacts .offerHeroPrice { font-weight: 600; }
.tpFormationLink, .fmTrainer { border-radius: 14px; }
.tpFormationLink small { font-size: 12px; font-weight: 600; }
.tpFormationLink b { font-size: 14px; font-weight: 600; }
.cvTag, .svTag { font-weight: 600; }
.cvTitle, .svTitle, .formationCardPlaceholder { font-weight: 600; letter-spacing: -.005em; }
.svPrice, .offerCardFoot .cardPrice b { font-weight: 600; }
.offerCard .offerCardMeta span { font-weight: 500; }
.offerCardFoot a { font-weight: 600; }

/* Forms */
.leadForm { border-top-width: 1px; border-radius: 16px; box-shadow: 0 20px 50px rgba(7, 26, 51, .09); }
.leadForm .eyebrow { margin-bottom: 8px; }
.formTitle h2 { font-size: 25px; font-weight: 600; letter-spacing: -.015em; }
.leadFormCompact .formTitle h2 { font-size: 22px; }
.formTitle > p:not(.eyebrow) { font-size: 14px; }
.formGrid label > span { margin-bottom: 6px; color: #3c4d61; font-size: 13px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.formChoice legend { margin-bottom: 6px; color: #3c4d61; font-size: 13px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.formGrid input, .formGrid select, .formGrid textarea, .searchableSelectInput { border-radius: 10px; font-size: 15px; }
.formGrid input, .formGrid select, .searchableSelectInput { height: 46px; }
.searchableSelectList { border-radius: 12px; }
.searchableSelectOption { font-size: 14px; }
.searchableSelectOption.selected { font-weight: 600; }
.consent { font-size: 13px; }
.formPrivacy { font-size: 12px; }
.formError { border-left: 0; border-radius: 10px; font-size: 14px; }
.formSuccess { border-top-width: 1px; border-radius: 16px; }
.formSuccess > span { border-radius: 50%; }
.formSuccess h3 { font-size: 24px; font-weight: 600; }
.trainerPrefill + .formGrid, .formGrid + .consent { margin-top: 16px; }

/* Legal pages, not found */
.legalHero { padding-block: 30px 48px; }
.legalContent h2 { font-size: 24px; font-weight: 600; }
.legalContent li::before { border-radius: 50%; }
.notFound > div > span { font-weight: 600; }
.notFound h1 { font-weight: 600; }

/* Footer: call to action on the blue pattern, lighter weights */
.siteFooter { overflow-x: clip; }
.siteFooter .footerLead { position: relative; isolation: isolate; padding-block: 64px; border-bottom: 0; }
.siteFooter .footerLead::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; z-index: -1; width: 100vw; transform: translateX(-50%); background: radial-gradient(circle at 85% 20%, rgba(255, 210, 38, .30), transparent 30%), radial-gradient(circle at 8% 120%, rgba(255, 255, 255, .14), transparent 38%), repeating-linear-gradient(135deg, rgba(255, 255, 255, .05) 0 2px, transparent 2px 16px), linear-gradient(120deg, #0b5cff 0%, #0a44b8 55%, #0b2a55 100%); }
.siteFooter .footerLead .eyebrow { color: var(--yellow); }
.footerGrid h3 { font-size: 13px; font-weight: 600; }
.footerGrid > div > a:not(.brand) { font-size: 14px; }
.footerContactItem span { font-size: 12px; }
.footerContactItem a { font-weight: 600; }
.footerBottom { font-size: 12.5px; }
.footerCookieManage { font-size: 12.5px; }

/* Cookie banner, form popup */
.cookieBannerReject, .cookieBannerAccept { border-radius: 10px; font-size: 14px; font-weight: 600; }
.cookieBannerInner p { font-size: 14px; }
.formPopupPanel { border-radius: 18px; }
.formPopupChoices h2 { font-weight: 600; }
.formPopupOption { border-radius: 14px; }
.formPopupOption:hover, .formPopupOption:focus-visible { transform: none; }
.formPopupOptionText strong { font-weight: 600; }
.formPopupBack { font-size: 14px; font-weight: 600; }

@media (max-width: 720px) {
  .section { padding-block: 44px; }
  .pageHero, .detailHero, .localHero, .legalHero, .enterpriseHero, .partnerHero { padding-block: 22px 40px; }
  .catalogueRow { padding: 16px; }
  .siteFooter .footerLead { padding-block: 44px; }
}

/* Headings: 600 unless a component sets its own weight */
h1, h2, h3, h4 { font-weight: 600; }

/* Offer pages (Nos formations, Nos formateurs, offres formateurs): body and aside */
.offerDetail h2 { font-size: clamp(22px, 2.6vw, 28px); letter-spacing: -.01em; }
.offerCard { border-color: var(--line); border-radius: 14px; }
.offerCard:hover { transform: none; border-color: #b9cdf5; box-shadow: 0 12px 28px rgba(7, 26, 51, .08); }
.offerCardTop span, .offerSkills span, .offerCard .offerCardMeta span { border-radius: 999px; font-weight: 500; }
.offerCard h3 { font-size: 19px; }
.offerCardFoot a, .offerCardArrow { font-weight: 600; }
.offerFilters { border-radius: 14px; }
.offerFilters label, .offerCount { font-weight: 600; }
.offerFilters select { border-radius: 10px; }
.offerQuickFacts { overflow: hidden; border-radius: 14px; }
.offerHighlights { border-radius: 14px; }
.offerSteps li { border-radius: 12px; }
.offerStepNumber { font-weight: 600; }
.offerModules > div { border-top-width: 1px; border-radius: 12px; }
.offerModules small { font-size: 12px; font-weight: 600; }
.offerModules strong { font-weight: 600; }
.offerOutcomes, .offerTwoCards > div { border-radius: 12px; }
.offerCallout { border-radius: 14px; }
.offerTags span { font-weight: 500; }
.offerCriteria dl { border-radius: 12px; }
.offerCriteria dt { font-weight: 600; }
.offerClosing { border-radius: 14px; background: var(--head-bg); font-weight: 500; }
.offerEssentials { border-radius: 16px; background: var(--head-bg); }
.offerEssentials > strong, .offerEssentials dd { font-weight: 600; }
.offerShare { border-radius: 14px; }
.jobApplication { border-radius: 16px; }
.offerFormKicker, .offerForm label { font-weight: 600; }
.offerForm input:not([type=checkbox]), .offerForm select, .offerForm textarea { border-radius: 10px; }

/* Comment ça marche: the steps as cards, like the home */
.processSteps { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; max-width: none; }
.processSteps article { min-height: 0; display: grid; grid-template-columns: 1fr; align-content: start; gap: 10px; padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.processSteps article > b { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--yellow); color: var(--navy); font-size: 15px; letter-spacing: 0; }
.processSteps h2 { margin: 6px 0 6px; font-size: 19px; }
.processSteps p { font-size: 15px; line-height: 1.6; }

/* Site header on laptop widths: a more compact menu, so that the search keeps room */
@media (min-width: 1241px) and (max-width: 1400px) {
  .nhBar { gap: 14px; }
  .nhNav { gap: 0; }
  .nhNavLink, .nhDrop > button { padding: 0 9px; font-size: 14.5px; }
  .nhCta { margin-left: 4px; padding: 0 14px; font-size: 14px; }
  .nhBar > .searchBox { min-width: 230px; }
}
@media (max-width: 1240px) and (min-width: 721px) {
  .nhBar > .searchBox { max-width: 620px; }
}

/* Home hero: bold title and search on the left, the featured groups card (Groupes vedettes) on the right */
.nhHeroInner { display: block; }
.nhHeroMain { display: grid; justify-items: center; gap: 18px; min-width: 0; }
.nhHeroInner.hasAside { display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, 410px); gap: 64px; align-items: center; padding: 64px 0 72px; text-align: left; }
.hasAside .nhHeroMain { justify-items: start; }
.hasAside .nhPopular { justify-content: flex-start; }
.hasAside .nhHeroIntro { max-width: 620px; }
.hasAside .searchBox-hero { max-width: 680px; }
.nhHero h1 { max-width: 780px; font-size: clamp(40px, 5.2vw, 66px); font-weight: 700; line-height: 1.03; letter-spacing: -.03em; }
.nhHero h1 mark { color: var(--yellow); }
.groupCard { position: relative; border-radius: 18px; background: var(--navy); color: #fff; box-shadow: 16px 16px 0 var(--yellow), 0 30px 60px rgba(0, 0, 0, .35); }
.groupCard::before { content: ""; position: absolute; top: 44px; left: -12px; width: 12px; height: 84px; border-radius: 6px 0 0 6px; background: var(--blue); }
.groupCardHead { display: flex; align-items: center; justify-content: space-between; height: 52px; padding: 0 22px; border-bottom: 1px solid #27405e; color: #9eb1c8; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.groupCardHead i { position: relative; width: 8px; height: 8px; border-radius: 50%; background: #2ae68b; box-shadow: 0 0 0 5px rgba(42, 230, 139, .13); }
.groupCardHead i::before, .groupCardHead i::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: #2ae68b; animation: groupPulse 2.4s cubic-bezier(0, 0, .2, 1) infinite; }
.groupCardHead i::after { animation-delay: 1.2s; }
@keyframes groupPulse {
  0% { transform: scale(1); opacity: .55; }
  100% { transform: scale(4.5); opacity: 0; }
}
.groupCardBody { padding: 26px 26px 22px; }
.cardKicker { margin: 0 0 8px; color: var(--yellow); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.groupCard h2 { margin: 0; color: #fff; font-size: 28px; font-weight: 700; line-height: 1.12; letter-spacing: -.02em; }
.locationLine { margin-top: 16px; color: #b7c6d7; font-size: 14px; }
.locationLine span { margin-right: 8px; color: var(--yellow); }
.groupTarget { display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: center; margin-top: 22px; padding: 18px 0; border-top: 1px solid #28415e; border-bottom: 1px solid #28415e; }
.groupTarget strong, .groupTarget span { display: block; }
.groupTarget strong { color: #fff; font-size: 26px; font-weight: 700; }
.groupTarget span { color: #8fa7c2; font-size: 12.5px; }
.targetVisual { display: grid; grid-template-columns: repeat(8, 1fr); gap: 4px; }
.targetVisual i { height: 28px; border-radius: 4px; background: #263f5d; }
.targetVisual i.active { background: var(--blue); }
.groupSteps { display: grid; gap: 10px; margin-top: 18px; color: #c6d2df; font-size: 14px; }
.groupSteps span { display: flex; align-items: center; gap: 10px; }
.groupSteps b { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #193859; color: var(--yellow); font-size: 12px; font-weight: 600; }
.groupCardLink { display: flex; align-items: center; justify-content: space-between; height: 54px; padding: 0 26px; background: var(--blue); color: #fff; font-size: 15px; font-weight: 600; transition: background .18s ease; }
.groupCardLink:hover, .groupCardLink:focus-visible { background: var(--blue-dark); }
.groupCardLink span { font-size: 19px; }
.groupSlider { display: flex; flex-direction: column; }
.groupSlides { position: relative; }
.groupSlide { display: flex; flex-direction: column; animation: groupSlideIn .35s ease; }
@keyframes groupSlideIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
.groupSliderProgress { height: 3px; overflow: hidden; background: #16304c; }
.groupSliderProgress i { display: block; width: 0%; height: 100%; background: var(--yellow); }
.groupSliderProgress i.running { transition: width linear; }
.groupSliderNav { display: flex; align-items: center; justify-content: space-between; height: 54px; padding: 0 22px; border-top: 1px solid #1c3654; }
.groupSliderDots { display: flex; align-items: center; gap: 11px; }
.groupSliderDots button { width: 13px; height: 13px; padding: 0; border: 2px solid rgba(255, 255, 255, .4); border-radius: 50%; background: rgba(255, 255, 255, .12); transition: transform .15s ease, background .15s ease, border-color .15s ease; }
.groupSliderDots button.active { width: 15px; height: 15px; border-color: var(--yellow); background: var(--yellow); box-shadow: 0 0 0 3px rgba(255, 210, 38, .25); }
.groupSliderDots button:hover, .groupSliderDots button:focus-visible { border-color: #fff; background: rgba(255, 255, 255, .35); transform: scale(1.15); outline: 0; }
.groupSliderDots button.active:hover, .groupSliderDots button.active:focus-visible { border-color: var(--yellow); background: var(--yellow); }
.groupSliderCount { color: #93aac2; font-size: 12.5px; font-weight: 600; letter-spacing: .04em; }
.groupSliderCount b { color: #fff; font-weight: 700; }
@media (max-width: 1080px) {
  .nhHeroInner.hasAside { grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; }
  .groupCard h2 { font-size: 24px; }
}
@media (max-width: 900px) {
  .nhHeroInner.hasAside { grid-template-columns: 1fr; gap: 44px; padding: 48px 0 60px; }
  .groupCard { width: min(470px, calc(100% - 16px)); }
}
@media (max-width: 720px) {
  .nhHero h1 { font-size: 38px; }
  .groupCard { box-shadow: 12px 12px 0 var(--yellow), 0 24px 50px rgba(0, 0, 0, .3); }
  .groupCard::before { display: none; }
}

/* Trainers without a photo yet (no trainer space, or no photo in it): their initials in the circle */
.trainerAvatar.trainerInitials, .formationCardPhoto.isInitials, .svPhoto.isInitials { display: grid; place-items: center; background: linear-gradient(135deg, #0b5cff 0%, #0b2a55 100%); color: #fff; font-weight: 600; letter-spacing: .02em; line-height: 1; }
.formationCardPhoto.isInitials { font-size: 18px; }
.svPhoto.isInitials { font-size: 20px; }

/* Site header: visible arrows on the menu buttons; strip of technologies (scrolls) with the contact links on the right */
.nhDrop > button .nhChevron { width: 17px; height: 17px; flex: none; color: #1f2d3d; transition: transform .2s ease, color .2s ease; }
.nhDrop > button:hover .nhChevron, .nhDrop.isOpen > button .nhChevron { color: var(--blue); }
.nhDrop.isOpen > button .nhChevron { transform: rotate(180deg); }
.nhThemes .container { gap: 18px; overflow: visible; }
.nhThemesList { display: flex; flex: 1; align-items: center; gap: 22px; min-width: 0; overflow-x: auto; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 90%, transparent); mask-image: linear-gradient(90deg, #000 90%, transparent); }
.nhThemesList::-webkit-scrollbar { display: none; }
.nhThemesList a.own { color: var(--blue); }
.nhThemes .nhThemesPhone { flex: none; margin-left: 0; }
.nhThemes .nhThemesLinkedin { display: inline-flex; flex: none; align-items: center; gap: 7px; color: #0a66c2; font-weight: 600; }
.nhThemes .nhThemesLinkedin:hover { color: #004182; }
.nhThemesLinkedin .offerIcon { width: 18px; height: 18px; }
@media (max-width: 900px) {
  .nhThemesLinkedin span { display: none; }
}
@media (max-width: 560px) {
  .nhThemes .nhThemesPhone { display: none; }
}

/* Round trainer photo: one cell, the photo centred in the circle */
.trainerAvatar { grid-template-columns: 1fr; }

/* Trainer space: framing of the profile photo (PhotoCropper) */
.fxCropOverlay { position: fixed; inset: 0; z-index: 950; display: grid; place-items: center; padding: 20px; background: rgba(7, 26, 51, .6); }
.fxCropPanel { display: grid; justify-items: center; gap: 14px; width: min(440px, 100%); max-height: calc(100vh - 40px); overflow-y: auto; padding: 24px; border-radius: 18px; background: #fff; box-shadow: 0 30px 80px rgba(7, 26, 51, .35); text-align: center; }
.fxCropPanel h2 { margin: 0; color: var(--navy); font-size: 21px; }
.fxCropPanel > p { margin: 0; font-size: 14px; line-height: 1.5; }
.fxCropFrame { position: relative; overflow: hidden; border-radius: 14px; background: #0b2a55; cursor: grab; touch-action: none; user-select: none; outline: none; }
.fxCropFrame:active { cursor: grabbing; }
.fxCropFrame:focus-visible { box-shadow: 0 0 0 3px rgba(11, 92, 255, .45); }
.fxCropFrame img { position: absolute; top: 0; left: 0; max-width: none; transform-origin: 0 0; pointer-events: none; user-select: none; }
.fxCropMask { position: absolute; inset: 0; border-radius: 50%; box-shadow: 0 0 0 9999px rgba(7, 26, 51, .55); outline: 2px solid rgba(255, 255, 255, .9); outline-offset: -2px; pointer-events: none; }
.fxCropZoom { display: flex; align-items: center; gap: 12px; width: 100%; max-width: 320px; }
.fxCropZoom input { flex: 1; accent-color: var(--blue); }
.fxCropZoom button { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 50%; color: var(--navy); font-size: 18px; line-height: 1; }
.fxCropZoom button:hover { border-color: var(--blue); color: var(--blue); }
.fxCropActions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }

/* Search without result: the request form beside the explanation; under the results, the strip to ask for another formation */
.nhNoResult { grid-template-columns: minmax(0, 1fr) minmax(320px, 470px); gap: 40px; align-items: start; max-width: none; }
.nhNoResult > div { display: grid; justify-items: start; gap: 14px; }
.nhNoResult .nhChecks { margin: 2px 0 4px; }
.nhAskStrip { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; padding: 20px 24px; border: 1px solid #f2e3ad; border-radius: 16px; background: linear-gradient(135deg, #fff6d6 0%, #fffaf0 60%, #fff 100%); }
.nhAskStrip p { margin: 0; color: #3c4d61; line-height: 1.5; }
.nhAskStrip b { color: var(--navy); }
.searchEmpty { display: grid; gap: 10px; }
.searchEmpty p { margin: 0; }
.searchAsk { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 14px; border-radius: 10px; background: var(--yellow); color: var(--navy); font-weight: 600; }
.searchAsk:hover, .searchAsk:focus-visible { background: var(--yellow-deep); }
@media (max-width: 900px) {
  .nhNoResult { grid-template-columns: 1fr; }
}

/* Catalogue domains with their icon (src/lib/categoryIcons.ts): home, « Technologies » menu, catalogue filters */
.nhDomains .nhDomainIcon { flex: none; width: 44px; height: 44px; }
.nhDomainList li a > span { display: inline-flex; align-items: center; gap: 9px; min-width: 0; }
.nhDomainList li a img { flex: none; width: 24px; height: 24px; }
.nhMobile a.nhMobileDomain { display: flex; align-items: center; gap: 10px; }
.nhMobileDomain img { flex: none; width: 22px; height: 22px; }
.categoryPills button { display: inline-flex; align-items: center; gap: 7px; }
.categoryPills button img { flex: none; width: 22px; height: 22px; }
.categoryPills button.active img { filter: brightness(0) invert(1); }

/* Strip under the header: « Populaire » + 8 technologies; hovering one opens its panel in columns (ThemeStrip) */
.nhThemes { position: relative; }
.nhThemesList { gap: 2px; -webkit-mask-image: none; mask-image: none; }
.nhThemesList a { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 10px; border-radius: 8px; }
.nhThemesList a:hover, .nhThemesList a.active { background: #f1f5fb; color: var(--blue); }
.nhThemesList a.nhStripPopular { color: var(--navy); font-weight: 600; }
.nhStripPopular svg { width: 16px; height: 16px; color: #f97316; }
.nhStripPanel { position: absolute; top: 100%; right: 0; left: 0; z-index: 65; border-top: 1px solid #eef1f5; border-bottom: 1px solid var(--line); background: #fff; box-shadow: 0 24px 50px rgba(7, 26, 51, .16); }
.nhStripPanel > .container { display: block; min-height: 0; padding: 20px 0 24px; overflow: visible; }
.nhStripHead { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid #eef1f5; }
.nhStripHead > img { width: 40px; height: 40px; object-fit: contain; }
.nhStripHead > span:not(.nhStripFlame) { display: grid; gap: 2px; }
.nhStripHead strong { color: var(--navy); font-size: 18px; font-weight: 600; }
.nhStripHead small { color: #6b7a8c; font-size: 13px; }
.nhStripHead > a { margin-left: auto; color: var(--blue); font-weight: 600; white-space: nowrap; }
.nhStripFlame { display: grid; flex: none; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: #fff3e0; color: #f97316; }
.nhStripFlame svg { width: 22px; height: 22px; }
.nhStripCols { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1.25fr) minmax(0, .8fr); gap: 28px; }
.nhStripCols > section > p:first-child { margin: 0 0 10px; color: #7a8798; font-size: 11.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.nhStripFormations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 16px; margin: 0; padding: 0; list-style: none; }
.nhStripFormations a, .nhStripOffers a { display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 10px; }
.nhStripFormations a:hover, .nhStripOffers a:hover { background: #f1f5fb; }
.nhStripFormations img { flex: none; width: 30px; height: 30px; }
.nhStripFormations span, .nhStripOffers a > span:last-child { display: grid; min-width: 0; }
.nhStripFormations b, .nhStripOffers b { overflow: hidden; color: #1f2d3d; font-size: 14px; font-weight: 500; white-space: nowrap; text-overflow: ellipsis; }
.nhStripFormations a:hover b, .nhStripOffers a:hover b { color: var(--blue); }
.nhStripFormations small, .nhStripOffers small { color: #7a8798; font-size: 12px; }
.nhStripOffers { display: grid; gap: 2px; }
.nhStripOffers em { color: #0b7a4b; font-style: normal; font-weight: 600; }
.nhStripAvatar { display: grid; flex: none; place-items: center; width: 38px; height: 38px; overflow: hidden; border-radius: 50%; background: linear-gradient(135deg, #0b5cff 0%, #0b2a55 100%); color: #fff; font-size: 13px; font-weight: 600; }
.nhStripAvatar img { width: 100%; height: 100%; object-fit: cover; }
.nhStripCities { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; }
.nhStripCities a, .nhStripTechs a { padding: 6px 0; color: #1f2d3d; font-size: 14px; }
.nhStripCities a:hover, .nhStripTechs a:hover { color: var(--blue); }
.nhStripTechs { display: grid; }
.nhStripTechs a { display: flex; align-items: center; gap: 8px; }
.nhStripTechs img { width: 22px; height: 22px; object-fit: contain; }
.nhStripTechs small { margin-left: auto; color: #8a96a6; font-size: 12px; }
.nhStripEmpty { margin: 0; color: #4a5a6d; font-size: 14px; line-height: 1.55; }
.nhStripEmpty a { color: var(--blue); font-weight: 600; }
.nhStripLoading { margin: 0; color: #7a8798; font-size: 14px; }
@media (max-width: 1100px) {
  .nhStripCols { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
  .nhStripCols > section:last-child:not(:nth-child(2)) { display: none; }
}
@media (hover: none), (max-width: 900px) {
  .nhStripPanel { display: none; }
}

/* Strip on a page of a domain (ThemeStrip): the domain first, the entry of the page, the formations with their title cut; on a wide screen only whole entries show */
.nhThemesList a.nhStripLead { color: var(--navy); font-weight: 600; }
.nhStripLead img { flex: none; width: 18px; height: 18px; }
.nhThemesList a.current { background: #eaf1ff; color: var(--blue); font-weight: 600; }
.nhThemesList a.isFormation { max-width: 210px; }
.nhThemesList a.isFormation span { overflow: hidden; text-overflow: ellipsis; }
.nhThemesList.isLate { animation: nhStripIn .25s ease-out; }
@keyframes nhStripIn { from { opacity: 0; transform: translateY(-3px); } }
@media (min-width: 901px) {
  .nhThemesList { flex-wrap: wrap; height: 32px; overflow: hidden; }
}
.nhStripSummary { margin: 0 0 12px; color: #4a5a6d; font-size: 14px; line-height: 1.55; }
.nhStripModules { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.nhStripModules li { display: flex; align-items: baseline; gap: 10px; color: #1f2d3d; font-size: 14px; line-height: 1.45; }
.nhStripModules b { flex: none; color: var(--blue); font-size: 12px; font-weight: 600; }
.nhStripChips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.nhStripChips a, .nhStripChips span { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border: 1px solid #e3e9f1; border-radius: 999px; color: #1f2d3d; font-size: 13px; }
.nhStripChips span { border-color: #f2e3ad; background: #fffaf0; color: #6b5310; }
.nhStripChips img { width: 18px; height: 18px; object-fit: contain; }
.nhStripChips a:hover { border-color: var(--blue); color: var(--blue); }

/* Strip panels: the trainers' formations load when the panel opens (ThemeStrip) */
.nhStripSkeleton { display: grid; gap: 10px; padding: 6px 8px; }
.nhStripSkeleton span { display: block; height: 38px; border-radius: 10px; background: linear-gradient(90deg, #eef2f7 0%, #f6f8fb 50%, #eef2f7 100%); background-size: 200% 100%; animation: nhStripPulse 1.2s ease-in-out infinite; }
@keyframes nhStripPulse { from { background-position: 100% 0; } to { background-position: -100% 0; } }
@media (prefers-reduced-motion: reduce) {
  .nhStripSkeleton span { animation: none; }
}

/* Pilotage « Audience » (Google Analytics): real time, key figures, conclusions, tables with share bars, dashboard card */
.gaPeriods { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 24px; }
.gaPeriods small { margin-left: auto; color: var(--muted); font-size: 12px; }
.gaKpis { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.gaKpis span { font-size: 12px; }
.gaUp { color: #0b8a50; font-style: normal; font-weight: 700; }
.gaDown { color: #c2410c; font-style: normal; font-weight: 700; }
.gaInsights { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.gaInsights li { padding: 13px 16px 13px 44px; border: 1px solid #e3e9f1; border-radius: 12px; background: #fbfdff no-repeat 15px 14px / 18px 18px; color: #1f2d3d; font-size: 14.5px; line-height: 1.55; }
.gaInsights .ga-good { border-color: #cdebd9; background-color: #f3fbf6; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b8a50' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }
.gaInsights .ga-watch { border-color: #f6dfc0; background-color: #fff8ef; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c2410c' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 8v5M12 17h.01'/%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3C/svg%3E"); }
.gaInsights .ga-info { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b5cff' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 11v6M12 7h.01'/%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3C/svg%3E"); }
.gaChart svg { display: block; width: 100%; height: 180px; }
.gaChart rect { fill: #0b5cff; opacity: .85; }
.gaChart rect:hover { opacity: 1; fill: #0846c4; }
.gaChartAxis { display: flex; justify-content: space-between; gap: 10px; margin-top: 8px; color: #7a8798; font-size: 12px; }
.gaTable { display: grid; overflow-x: auto; }
.gaTableHead, .gaTableRow { display: grid; grid-template-columns: minmax(220px, 2.2fr) repeat(5, minmax(90px, 1fr)); gap: 12px; align-items: center; min-width: 760px; padding: 11px 12px; }
.gaTableHead { border-bottom: 1px solid #dce3eb; color: #6b7889; font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.gaTableRow { border-bottom: 1px solid #eef1f5; font-size: 14px; font-variant-numeric: tabular-nums; }
.gaTableRow:last-child { border-bottom: 0; }
.gaTableRow > a, .gaPage a { overflow: hidden; color: var(--blue); font-weight: 600; white-space: nowrap; text-overflow: ellipsis; }
.gaTableRow strong { color: var(--navy); font-weight: 600; }
.gaHighlight { border-radius: 10px; background: #f1f6ff; }
.gaPage { display: grid; min-width: 0; }
.gaPage small { overflow: hidden; color: #7a8798; font-size: 12px; white-space: nowrap; text-overflow: ellipsis; }
.gaShare { display: flex; align-items: center; gap: 8px; }
.gaGood { color: #0b8a50; font-weight: 700; }
.gaWarn { color: #b45309; font-weight: 700; }
.gaBad { color: #c2410c; font-weight: 700; }
.gaBar { display: block; flex: 1; min-width: 50px; height: 8px; overflow: hidden; border-radius: 99px; background: #edf1f6; }
.gaBar > span { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, #0b5cff, #4f8bff); }
.gaCounts { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.gaCounts li { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(60px, 1fr) auto; gap: 4px 12px; align-items: center; font-size: 14px; }
.gaCountLabel { overflow: hidden; color: #1f2d3d; white-space: nowrap; text-overflow: ellipsis; }
.gaCounts b { color: var(--navy); font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.gaCounts b small, .gaCountExtra { color: #7a8798; font-size: 12px; font-weight: 500; }
.gaCountExtra { grid-column: 1 / -1; margin-top: -6px; }
.gaSubTitle, .gaLive h3 { margin: 24px 0 12px; color: var(--navy); font-size: 15px; font-weight: 600; }
.gaLive h3 { margin-top: 0; }
.gaGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.gaGrid .adminSection h2 { font-size: 21px; }
.gaEmpty { margin: 0; color: var(--muted); font-size: 14px; }
.gaFootnote { margin-top: 18px; }
.gaLive { display: grid; grid-template-columns: minmax(260px, 1.1fr) minmax(0, 1.2fr) minmax(0, .8fr); gap: 32px; }
.gaLiveNow strong { display: flex; align-items: center; color: var(--navy); font-size: 56px; font-weight: 700; line-height: 1; }
.gaLiveNow p { margin: 6px 0 16px; color: #4a5a6d; font-size: 14px; }
.gaPulse { display: inline-block; width: 12px; height: 12px; margin-right: 10px; border-radius: 50%; background: #10b981; box-shadow: 0 0 0 0 rgba(16, 185, 129, .5); animation: gaPulse 1.8s ease-out infinite; vertical-align: middle; }
@keyframes gaPulse { 70% { box-shadow: 0 0 0 10px rgba(16, 185, 129, 0); } 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); } }
.gaMinutes { display: flex; align-items: flex-end; gap: 3px; height: 70px; padding: 6px; border-radius: 10px; background: #f4f7fb; }
.gaMinutes span { flex: 1; border-radius: 3px 3px 0 0; background: #d6deea; }
.gaMinutes span.on { background: #10b981; }
.gaSetup ol { display: grid; gap: 10px; margin: 0 0 14px; padding-left: 22px; color: #1f2d3d; font-size: 14.5px; line-height: 1.55; }
.gaSetup a { color: var(--blue); font-weight: 600; }
.gaCard { display: grid; grid-template-columns: 1.1fr repeat(4, minmax(0, 1fr)); gap: 18px 24px; align-items: start; color: inherit; }
a.gaCard:hover { border-color: var(--blue); }
.gaCard strong { display: flex; align-items: center; gap: 6px; margin-top: 8px; color: var(--navy); font-size: 28px; line-height: 1; font-variant-numeric: tabular-nums; }
.gaCard strong em { font-size: 13px; }
.gaCard p { margin: 6px 0 0; color: var(--muted); font-size: 12.5px; }
.gaCardEyebrow { color: var(--blue); font-size: 9.5px; font-weight: 850; letter-spacing: .1em; }
.gaCardLive strong { font-size: 40px; }
.gaCardMore { grid-column: 1 / -1; justify-self: end; color: var(--blue); font-size: 13px; font-weight: 700; }
.gaCardOff { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
@media (prefers-reduced-motion: reduce) {
  .gaPulse { animation: none; }
}
@media (max-width: 1000px) {
  .gaLive, .gaGrid { grid-template-columns: 1fr; }
  .gaCard { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gaCardLive { grid-column: 1 / -1; }
}

/* Trainer space: own formations and profiles as a list (OwnPageList): completion ring, actions on hover, add row, limit */
.fxOwnList { display: grid; gap: 12px; }
.fxOwnRow { position: relative; display: grid; grid-template-columns: 132px minmax(0, 1fr) 150px; gap: 20px; align-items: center; padding: 14px; border: 1px solid var(--fx-line); border-radius: 14px; background: var(--fx-card); transition: border-color .15s, box-shadow .15s; }
.fxOwnRow:hover, .fxOwnRow:focus-within { border-color: #c9d4e3; box-shadow: 0 10px 26px rgba(7, 26, 51, .08); }
.fxOwnVisual { display: block; overflow: hidden; aspect-ratio: 4 / 3; border-radius: 10px; background: linear-gradient(135deg, #0b5cff, #0b2a55); }
.fxOwnVisual img { width: 100%; height: 100%; object-fit: cover; }
.fxOwnVisual .coverVisual { height: 100%; font-size: 13px; }
.fxOwnPlaceholder { display: grid; place-items: center; height: 100%; padding: 10px; color: #fff; font-size: 15px; font-weight: 700; line-height: 1.25; text-align: center; }
.fxOwnPlaceholder1 { background: #b4532a; }
.fxOwnPlaceholder2 { background: #0b2a55; }
.fxOwnPlaceholder3 { background: #0f766e; }
.fxOwnMain { display: grid; gap: 6px; min-width: 0; justify-items: start; }
.fxOwnMain h2 { margin: 0; font-size: 18px; line-height: 1.3; }
.fxOwnMain h2 a { color: var(--fx-text); }
.fxOwnMain h2 a:hover { color: var(--fx-accent); }
.fxOwnMain p { display: -webkit-box; margin: 0; overflow: hidden; color: var(--fx-muted); font-size: 14px; line-height: 1.5; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.fxOwnTags { display: flex; flex-wrap: wrap; gap: 6px; }
.fxOwnTags span { padding: 3px 9px; border-radius: 999px; background: #f1f3f6; color: #4a5562; font-size: 12px; font-weight: 600; }
.fxOwnProgress { display: grid; justify-items: center; gap: 8px; text-align: center; }
.fxOwnProgress small { color: var(--fx-muted); font-size: 12px; line-height: 1.4; }
.fxOwnRing { --p: 0; display: grid; place-items: center; width: 74px; height: 74px; border-radius: 50%; background: conic-gradient(var(--fx-green) calc(var(--p) * 1%), #e8ebe6 0); }
.fxOwnRing b { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: #fff; color: var(--fx-text); font-size: 15px; }
.fxOwnActions { position: absolute; top: 12px; right: 12px; display: flex; gap: 8px; opacity: 0; transform: translateY(-4px); pointer-events: none; transition: opacity .15s, transform .15s; }
.fxOwnRow:hover .fxOwnActions, .fxOwnRow:focus-within .fxOwnActions { opacity: 1; transform: none; pointer-events: auto; }
.fxOwnActions .fxBtn { padding: 8px 14px; font-size: 13px; }
.fxOwnRow:hover .fxOwnProgress, .fxOwnRow:focus-within .fxOwnProgress { visibility: hidden; }
.fxOwnAddForm { margin: 0; }
.fxOwnAdd { display: flex; align-items: center; gap: 16px; width: 100%; padding: 18px; border: 1.5px dashed #c8cfd8; border-radius: 14px; background: #fbfcfd; color: var(--fx-text); font: inherit; text-align: left; cursor: pointer; }
.fxOwnAdd:hover { border-color: var(--fx-accent); background: #f4f7fd; }
.fxOwnAdd > span:last-child { display: grid; gap: 3px; }
.fxOwnAdd small { color: var(--fx-muted); font-size: 13px; }
.fxOwnAdd .fxGigPlus { flex: none; }
.fxOwnLimit { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; padding: 18px 20px; border: 1px solid #f2e3ad; border-radius: 14px; background: #fffaf0; }
.fxOwnLimit strong { color: var(--fx-text); }
.fxOwnLimit p { margin: 4px 0 0; color: var(--fx-muted); font-size: 14px; line-height: 1.5; }
.fxProfileFormations { display: grid; gap: 8px; margin: 0 0 4px; padding: 0; list-style: none; }
.fxProfileFormations li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid var(--fx-line); border-radius: 10px; }
.fxProfileFormations a { color: var(--fx-text); font-weight: 600; }
@media (hover: none), (max-width: 760px) {
  .fxOwnActions { position: static; grid-column: 1 / -1; opacity: 1; transform: none; pointer-events: auto; }
  .fxOwnRow:hover .fxOwnProgress, .fxOwnRow:focus-within .fxOwnProgress { visibility: visible; }
}
@media (max-width: 760px) {
  .fxOwnRow { grid-template-columns: 96px minmax(0, 1fr); }
  .fxOwnProgress { grid-column: 1 / -1; grid-template-columns: auto 1fr; justify-items: start; text-align: left; }
  .fxOwnRing { width: 52px; height: 52px; }
  .fxOwnRing b { width: 40px; height: 40px; font-size: 12px; }
}

/* Everything written by the AI (trainer space): Gemini-like gradient buttons, blocks and the fields it filled */
:root { --ai-gradient: linear-gradient(90deg, #4285f4 0%, #9b72cb 55%, #d96570 100%); --ai-soft: linear-gradient(135deg, #eef3ff 0%, #f5efff 55%, #fff1f1 100%); }
.aiButton { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 18px; border: 0; border-radius: 999px; background: var(--ai-gradient); background-size: 200% 100%; color: #fff; font: inherit; font-size: 14px; font-weight: 650; cursor: pointer; box-shadow: 0 6px 18px rgba(155, 114, 203, .28); transition: background-position .4s, box-shadow .2s, transform .15s; }
.aiButton:hover { background-position: 100% 0; box-shadow: 0 8px 24px rgba(155, 114, 203, .38); }
.aiButton:active { transform: translateY(1px); }
.aiButton:disabled { opacity: .7; cursor: wait; }
.aiButton.isWorking { animation: aiShimmer 1.4s linear infinite; }
.aiButton svg { flex: none; }
@keyframes aiShimmer { from { background-position: 0 0; } to { background-position: 200% 0; } }
.aiBlock { border: 1.5px solid transparent !important; background: linear-gradient(var(--ai-soft-bg, #fbf9ff), var(--ai-soft-bg, #fbf9ff)) padding-box, var(--ai-gradient) border-box !important; }
.aiBadge { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 999px; background: var(--ai-soft); color: #6b4fb0; font-size: 12px; font-weight: 700; white-space: nowrap; }
.aiBadge svg { color: #9b72cb; }
.fxAiBriefInline.aiBlock strong { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.aiFilled :is(input[type="text"], input:not([type]), textarea):is([name="title"], [name="headline"], [name="summary"], [name="expertise"], [name="format"], [name="audience"], [name="objectives"], [name="prerequisites"], [name="evaluation"], [name="duration"], [name="bio"], [name="languages"], [name="script"]),
.aiFilled textarea[name^="module"], .aiFilled input[name^="module"] { border: 1.5px solid transparent; background: linear-gradient(#fdfcff, #fdfcff) padding-box, var(--ai-gradient) border-box; }
.aiNotice { border: 1.5px solid transparent; background: linear-gradient(#fbf9ff, #fbf9ff) padding-box, var(--ai-gradient) border-box; }
.fxOwnChips { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }
@media (prefers-reduced-motion: reduce) {
  .aiButton.isWorking { animation: none; }
}

/* Pilotage, trainer account: limits of his space and the anonymous pages generated from his CV */
.tsLimits { display: flex; flex-wrap: wrap; align-items: end; gap: 10px 16px; margin: 16px 0 6px; padding: 14px 16px; border: 1px solid #dce3eb; background: #fbfdff; }
.tsLimits strong { flex-basis: 100%; color: var(--navy); font-size: 14px; }
.tsLimits label { display: grid; gap: 4px; font-size: 12px; font-weight: 700; color: #6b7889; }
.tsLimits input { width: 90px; padding: 8px 10px; border: 1px solid #c9d4e0; border-radius: 6px; font: inherit; }
.tsLimits small { flex-basis: 100%; color: var(--muted); font-size: 12px; }
.tsGenerated { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.tsGenerated li { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 9px 12px; border: 1px solid #e3e9f1; }
.tsGenerated li > a:first-child { flex: 1; min-width: 200px; color: var(--navy); font-weight: 600; }

/* Pilotage dashboard: publication of the public site (SnapshotCard) */
.snapCard { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px 28px; align-items: center; }
.snapCard strong { display: block; margin-top: 6px; color: var(--navy); font-size: 20px; }
.snapCard p { margin: 6px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.snapCard .snapPending { color: #b45309; font-weight: 600; }
@media (max-width: 760px) {
  .snapCard { grid-template-columns: 1fr; }
}

/* Pilotage, Candidatures: cards on the left, preview of the selected one (details and actions, CV) on the right */
.appsNotice { margin: 18px 0 0; }
.appsLayout { display: grid; grid-template-columns: minmax(300px, 400px) minmax(0, 1fr); gap: 20px; align-items: start; margin-top: 16px; }
.appsList { display: grid; gap: 10px; }
.appsListHead { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding: 4px 2px 6px; color: #6b7889; font-size: 12px; }
.appsListHead a { color: var(--navy); font-weight: 700; }
.appCard { position: relative; display: grid; gap: 6px; padding: 14px 16px; border: 1px solid #dce3eb; border-left: 4px solid #c9d4e0; background: #fff; transition: border-color .15s, box-shadow .15s, background .15s; }
.appCard:hover { border-color: #b8c7da; box-shadow: 0 8px 20px rgba(7, 26, 51, .07); }
.appCard.active { border-color: var(--blue); border-left-color: var(--blue); background: #f5f8ff; box-shadow: 0 8px 22px rgba(11, 92, 255, .12); }
.appCard[data-status="nouveau"] { border-left-color: #f2b705; }
.appCard[data-status="inscrit"] { border-left-color: #0eb368; }
.appCard[data-status="rejete"] { border-left-color: #c8ced6; opacity: .8; }
.appCardOpen { position: absolute; inset: 0; z-index: 1; }
.appCard .adminCheck, .appCard a:not(.appCardOpen) { position: relative; z-index: 2; }
.appCardTop { display: flex; align-items: center; gap: 10px; color: #6b7889; font-size: 12px; }
.appCardTop .appStatus { margin-left: auto; }
.appCard h3 { margin: 0; color: var(--navy); font-size: 16px; }
.appCardOffer { margin: 0; color: #4a5a6d; font-size: 13px; line-height: 1.4; }
.appCardContact { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0; font-size: 12.5px; }
.appCardContact a { color: var(--blue); }
.appCardBadges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
.appCardBadges span { padding: 3px 9px; border-radius: 999px; background: #eef2f7; color: #4a5a6d; font-size: 11.5px; font-weight: 700; }
.appCardBadges .ok { background: #e7f7ef; color: #0b7a4b; }
.appCardBadges .warn { background: #fff4d6; color: #8a6100; }
.appCardBadges .bad { background: #fdeceb; color: #b42318; }
.appCardBadges .muted { color: #8a96a6; }
.appCardBadges .org { background: #0b2a55; color: #ffd226; }
.leadCardCompany { color: #4a5a6d; font-size: 13px; font-weight: 600; }
.listViewOrganisations { background: #0b2a55 !important; color: #ffd226 !important; }
.candidatureMissions { display: grid; gap: 6px; padding: 10px 12px; border: 1px solid #d3dfec; border-radius: 9px; background: #f4f8fc; font-size: 12px; }
.candidatureMissions > b { color: #253b57; }
.candidatureMissions a { display: grid; gap: 3px; padding: 5px 0; color: #224f82; text-decoration: none; }
.candidatureMissions a + a { border-top: 1px solid #dce5ef; }
.candidatureMissions a:hover strong { text-decoration: underline; }
.candidatureMissions span { color: #526378; font-size: 11.5px; }
.emailConfirmDialog { box-sizing: border-box; margin: auto; width: min(1080px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 0; border: 1px solid #c9d5e3; border-radius: 16px; background: #fff; color: #20314b; box-shadow: 0 24px 100px #08172b66; text-align: left; font: 14px/1.5 var(--font-plex, Arial), sans-serif; overflow: auto; }
.emailConfirmDialog::backdrop { background: #09182eb3; }
.emailConfirmDialog > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 22px 24px 16px; background: #142a46; color: #fff; }
.emailConfirmDialog > header p { margin: 0 0 5px; color: #ffdc75; font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.emailConfirmDialog h2 { margin: 0; color: inherit; font-size: 23px; line-height: 1.25; }
.emailConfirmDialog > header button { padding: 5px 10px; border: 1px solid #ffffff55; border-radius: 7px; color: #fff; background: transparent; cursor: pointer; }
.emailConfirmSummary { margin: 0; padding: 14px 24px; border-bottom: 1px solid #dce4ed; }
.emailConfirmLayout { display: grid; grid-template-columns: 280px minmax(0, 1fr); }
.emailConfirmLayout nav { display: grid; align-content: start; gap: 8px; max-height: 55dvh; padding: 14px; overflow: auto; background: #f3f6fa; border-right: 1px solid #dce4ed; }
.emailConfirmLayout nav button { display: grid; gap: 5px; width: 100%; padding: 12px; border: 1px solid #d6e0ec; border-radius: 9px; background: white; text-align: left; font: inherit; font-size: 12px; color: #475971; cursor: pointer; overflow-wrap: anywhere; }
.emailConfirmLayout nav button.active { border-color: #38679e; box-shadow: 0 0 0 1px #38679e; background: #eaf2fc; }
.emailConfirmLayout nav strong { color: #183451; font-size: 13px; }
.emailConfirmLayout nav small { font-size: 11px; }
.emailConfirmLayout section { min-width: 0; padding: 16px; }
.emailConfirmLayout dl { display: grid; gap: 5px; margin: 0 0 12px; font-size: 13px; }
.emailConfirmLayout dl div { display: flex; gap: 12px; }
.emailConfirmLayout dt { flex: 0 0 40px; font-weight: 700; }
.emailConfirmLayout dd { margin: 0; overflow-wrap: anywhere; }
.emailConfirmTiming { padding: 10px 12px; border-radius: 7px; background: #fff5d7; color: #775a16; font-size: 12px; }
.emailConfirmLayout iframe { display: block; width: 100%; height: 38dvh; min-height: 230px; border: 1px solid #dce4ed; border-radius: 7px; background: #fff; }
.emailConfirmLayout details { margin-top: 10px; }
.emailConfirmLayout summary { cursor: pointer; font-size: 12px; }
.emailConfirmLayout pre { max-height: 250px; overflow: auto; white-space: pre-wrap; font-size: 12px; line-height: 1.6; }
.emailConfirmDialog > footer { position: sticky; bottom: 0; display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 10px; padding: 16px 24px; border-top: 1px solid #dce4ed; background: #fff; }
@media (max-width: 700px) {
  .emailConfirmDialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
  .emailConfirmDialog > header { padding: 16px; }
  .emailConfirmDialog h2 { font-size: 19px; }
  .emailConfirmSummary { padding: 12px 16px; }
  .emailConfirmLayout { grid-template-columns: minmax(0, 1fr); }
  .emailConfirmLayout nav { max-height: 160px; border-right: 0; border-bottom: 1px solid #dce4ed; }
  .emailConfirmLayout iframe { height: 35dvh; }
  .emailConfirmDialog > footer { padding: 12px; }
}
.appStatus { padding: 2px 9px; border-radius: 999px; background: #eef2f7; color: #4a5a6d; font-size: 11.5px; font-weight: 700; }
.appStatus-new { background: #fff4d6; color: #8a6100; }
.appStatus-contacted { background: #e8f0ff; color: #174e9e; }
.appStatus-validated { background: #e7f7ef; color: #0b7a4b; }
.appStatus-rejected { background: #f1f3f6; color: #6b7889; }
.appsPreview { position: sticky; top: 76px; display: grid; gap: 14px; max-height: calc(100vh - 92px); overflow: auto; padding: 20px 22px; border: 1px solid #dce3eb; background: #fff; }
.appPreviewHead { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px 20px; padding-bottom: 14px; border-bottom: 1px solid #e3e9f1; }
.appPreviewHead h2 { margin: 6px 0 2px; color: var(--navy); font-size: 24px; }
.appPreviewHead p { margin: 4px 0 0; font-size: 14px; }
.appPreviewHead p a { color: var(--blue); }
.appStatusLine { color: #6b7889; font-size: 12.5px; }
.appPreviewActions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.appPreviewActions form { margin: 0; }
.previewTabsBar { display: flex; gap: 4px; border-bottom: 1px solid #e3e9f1; }
.previewTabsBar button { padding: 10px 16px; border: 0; border-bottom: 3px solid transparent; background: none; color: #6b7889; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.previewTabsBar button.active { border-bottom-color: var(--blue); color: var(--navy); }
.previewTabsPanel { padding-top: 16px; }
.appDetails { display: grid; gap: 16px; }
.appFacts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; }
.appFacts > div, .appBlock { display: grid; gap: 4px; min-width: 0; }
.appFacts b, .appBlock > b { color: #8290a3; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.appFacts span { color: var(--navy); font-size: 14px; line-height: 1.5; word-break: break-word; }
.appBlock p { margin: 0; color: #1f2d3d; font-size: 14px; line-height: 1.55; }
.appCvFrame { display: block; width: 100%; height: calc(100vh - 300px); min-height: 520px; border: 1px solid #dce3eb; background: #f4f6f9; }
.appCvMissing { display: grid; justify-items: start; gap: 10px; padding: 24px; border: 1px dashed #c9d4e0; color: #4a5a6d; }
@media (max-width: 980px) {
  .appsLayout { grid-template-columns: 1fr; }
  .appsPreview { position: static; max-height: none; }
  .appFacts { grid-template-columns: 1fr; }
}

/* Candidatures workspace: fixed height under the admin bar — the toolbar stays visible, the cards and the preview scroll inside; wider cards with their status and publication */
.appsWorkspace { display: flex; flex-direction: column; height: calc(100vh - 84px); min-height: 560px; padding-bottom: 14px; scroll-margin-top: 70px; }
.appsWorkspace > .adminSectionTitle { display: none; }
.appsWorkspace .appsLayout { flex: 1; min-height: 0; grid-template-columns: minmax(420px, 560px) minmax(0, 1fr); margin-top: 12px; }
.appsWorkspace .appsList { height: 100%; overflow-y: auto; overscroll-behavior: contain; align-content: start; padding-right: 6px; }
.appsWorkspace .appsListHead { position: sticky; top: 0; z-index: 3; background: #fff; }
.appsWorkspace .appsPreview { position: static; height: 100%; max-height: none; overscroll-behavior: contain; }
.appsWorkspace .appCvFrame { height: calc(100vh - 360px); min-height: 420px; }
.appCardActions { position: relative; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 4px; }
.appCardActions form { margin: 0; }
.appCardActions select { padding: 6px 8px; border: 1px solid #c9d4e0; border-radius: 6px; background: #fff; font: inherit; font-size: 13px; }
.appCard .tsMsg, .appCardActions small { position: relative; z-index: 2; }
@media (max-width: 980px) {
  .appsWorkspace { height: auto; min-height: 0; }
  .appsWorkspace .appsLayout { grid-template-columns: 1fr; }
  .appsWorkspace .appsList, .appsWorkspace .appsPreview { height: auto; overflow: visible; }
}

/* Shared card/detail workspace: selection changes the right pane without moving the list. */
.appsWorkspace .detailWorkspace { grid-template-columns: minmax(300px, 37%) minmax(0, 1fr); gap: 16px; align-items: stretch; }
.detailWorkspace > .appsList { overflow-anchor: none; scrollbar-gutter: stable; min-width: 0; }
.workspaceDetailShell { position: relative; min-width: 0; min-height: 0; height: 100%; }
.workspaceDetail { height: 100%; overflow-y: auto; overflow-anchor: none; overscroll-behavior: contain; scrollbar-gutter: stable; border: 1px solid #dce3eb; background: #fff; }
.appsWorkspace .workspaceDetail .appsPreview { border: 0; height: auto; min-height: 100%; overflow: visible; align-content: start; }
.workspaceLoading { position: absolute; z-index: 5; inset: 0 0 auto; padding: 10px 16px; background: #e8f0ff; border-bottom: 2px solid var(--blue); color: var(--navy); font-size: 13px; font-weight: 700; }
.workspaceDetail[inert] { opacity: .55; }
.missionsWorkspace .adminFilterBar { grid-template-columns: minmax(0, 1fr) auto; }
.missionsWorkspace .adminFilterBar .span2 { grid-column: auto; }
.missionsWorkspace .missionPager { flex-shrink: 0; margin-bottom: 0; font-size: 13px; }
.missionCard .appCardTop { justify-content: space-between; }
.missionCard > .pubDot { white-space: normal; line-height: 1.5; }
.missionSelectedNotice { padding: 12px; background: #fff4d6; color: #806023; font-size: 12px; line-height: 1.5; }
.missionPreview { grid-template-columns: minmax(0, 1fr); }
.missionPreview > *, .missionPreview .appPreviewHead > div { min-width: 0; }
.missionPreview .appPreviewHead h2 { font-size: 22px; overflow-wrap: anywhere; }
.missionPreview .detailTabsBar { position: sticky; top: -20px; z-index: 4; background: #fff; }
.missionProgress { font-size: 12px; color: #52606d; }
.missionProgress summary { cursor: pointer; font-weight: 700; }
.missionProgress .missionSteps { margin: 12px 0 0; }
.missionTabContent { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; min-width: 0; overflow-wrap: anywhere; }
.missionTabContent > .adminSection { min-width: 0; margin: 0; padding: 18px; }
.missionTabContent .adminSectionTitle { gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.missionTabContent .adminSectionTitle h2 { font-size: 19px; overflow-wrap: anywhere; }
.missionPreview .missionOffers .pubTableHead { display: none; }
.missionPreview .missionOffers .pubTableRow { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 14px 0; overflow-wrap: anywhere; }
.missionPreview .missionSuggestion { grid-template-columns: 30px minmax(0, 1fr); padding: 12px; }
.missionPreview .missionSuggestionActions { grid-column: 2; display: flex; flex-wrap: wrap; justify-content: flex-start; }
.missionPreview .missionOtherForm select { min-width: 0; max-width: 100%; }
.missionPreview .missionOther { grid-template-columns: minmax(0, 1fr); }
.missionPreview .missionRateForm > * { min-width: 0; max-width: 100%; }
.missionPreview .missionTimeline { max-height: none; overflow: visible; }
@media (max-width: 600px) {
  .missionsWorkspace .adminFilterBar, .missionPreview .missionFacts, .missionPreview .missionOffers .pubTableRow { grid-template-columns: 1fr; }
  .missionTabContent > .adminSection { padding: 12px; }
}
.appCardOpen:focus-visible { outline: 3px solid var(--blue); outline-offset: -3px; }
.detailTabsBar { flex-wrap: wrap; gap: 0 4px; }
.detailTabsBar a { padding: 11px 12px; border-bottom: 3px solid transparent; color: #64748b; font-size: 13px; font-weight: 700; text-decoration: none; }
.detailTabsBar a.active { border-color: var(--blue); color: var(--navy); background: #f5f8ff; }
.detailTabsBar a:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; }
.detailTabsBar.detailSubTabsBar { margin: 0 0 12px; padding-left: 12px; border-left: 3px solid var(--blue); background: #f8fbff; }
.detailSubTabsBar a { padding: 8px 10px; font-size: 12.5px; }
.matchOfferMode.ok { border-left: 3px solid #16a34a; }
.matchOfferMode.warn { border-left: 3px solid #d97706; }
.leadQuotesSection { margin: 18px 0 0; }
.leadQuotesSection > h3 { margin: 0 0 10px; color: var(--navy); font-size: 15px; }
.leadQuoteCard { margin: 0 0 12px; padding: 14px; border: 1px solid #dbe4ef; border-radius: 12px; background: #fff; }
.leadQuoteCard h4 { margin: 0 0 2px; font-size: 15px; }
.leadQuoteCard h4 a { color: var(--navy); text-decoration: none; }
.leadQuoteCard .leadMatchCardHead { gap: 10px; flex-wrap: wrap; }
/* Demandes → Propositions: the quotes, their programme written by FormaGroup, what the client sees */
.leadPropositions .proposition.isHidden { opacity: .6; border-style: dashed; }
.propositionPrice { margin: 8px 0 0; font-size: 13px; color: #334155; }
.propositionPrice b { color: var(--navy); font-size: 15px; }
.propositionFiles { margin: 6px 0 0; font-size: 13px; color: #475569; overflow-wrap: anywhere; }
.propositionProgramme { display: grid; gap: 8px; margin: 10px 0; padding: 12px; border-radius: 10px; background: #f8fafc; border: 1px solid #e2e8f0; min-width: 0; }
.propositionProgrammeHead { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.propositionProgrammeHead b { color: var(--navy); }
.propositionEditor { display: grid; gap: 10px; padding: 10px; border-radius: 10px; background: #fff; border: 1px solid #dbe4ef; }
/* « Fiche de formation » (client /fiche-formation, trainer's space, Pilotage) */
.sheetPage .sheetIntro { max-width: 820px; margin: 6px 0 0; color: inherit; opacity: .9; line-height: 1.6; }
.sheetDoc { display: grid; gap: 18px; }
.sheetBanner { display: grid; gap: 6px; padding: 16px 18px; border-radius: 14px; border: 1px solid; }
.sheetBanner b { font-size: 17px; }
.sheetBanner p { margin: 0; line-height: 1.55; }
.sheetBanner.pending { background: #fffbea; border-color: #f5d76e; color: #6b4e00; }
.sheetBanner.pending b { color: #8a6100; }
.sheetBanner.ok { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.sheetPaymentInfo { padding: 10px 12px; border-radius: 10px; background: #fff; color: #334155; font-size: 14px; }
.sheetGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.sheetCard { display: grid; gap: 10px; padding: 20px; border: 1px solid #e2e8f0; border-radius: 16px; background: #fff; box-shadow: 0 6px 18px rgba(7,26,51,.05); min-width: 0; }
.sheetWide { grid-column: 1 / -1; }
.sheetCard h2 { margin: 0; color: #0b2a55; font-size: 19px; }
.sheetCard dl { display: grid; gap: 8px; margin: 0; }
.sheetCard dl div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 10px; }
.sheetCard dt { color: #64748b; font-size: 13px; font-weight: 700; }
.sheetCard dd { margin: 0; color: #0f172a; overflow-wrap: anywhere; }
.sheetFacts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sheetCard p { margin: 0; color: #334155; line-height: 1.6; }
.sheetMoney { background: linear-gradient(135deg, #071a33, #0b2a55); border-color: #0b2a55; }
.sheetMoney h2, .sheetMoney p { color: #fff; }
.sheetAmount strong { color: #ffd226; font-size: 28px; margin-right: 6px; }
.sheetProcess { margin: 0; padding-left: 22px; display: grid; gap: 10px; }
.sheetProcess li { display: grid; gap: 2px; color: #334155; line-height: 1.55; }
.sheetProcess b { color: #0b2a55; }
.sheetTerms { font-size: 14px; }
.sheetMilestones { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sheetMilestone { display: grid; gap: 6px; padding: 14px; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc; }
.sheetMilestoneHead { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; }
.sheetMilestoneHead b { color: #0b2a55; }
.sheetMilestoneHead span { color: #334155; font-weight: 700; }
.sheetMilestoneHead em { margin-left: auto; padding: 2px 10px; border-radius: 99px; background: #e2e8f0; color: #334155; font-style: normal; font-size: 12px; font-weight: 700; }
.sheetMilestone-submitted .sheetMilestoneHead em { background: #fff6cc; color: #8a6100; }
.sheetMilestone-validated .sheetMilestoneHead em, .sheetMilestone-paid .sheetMilestoneHead em { background: #e7f6ee; color: #0b7a4b; }
.sheetMilestone-contested .sheetMilestoneHead em { background: #fef2f2; color: #b42318; }
.sheetNote { font-size: 14px; padding: 8px 10px; border-radius: 8px; background: #fff; border: 1px solid #e2e8f0; }
.sheetConfirmations { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.sheetConfirmations li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; padding: 10px 12px; border-radius: 10px; background: #f8fafc; border: 1px solid #e2e8f0; }
.sheetConfirmations li.ok { background: #f0fdf4; border-color: #bbf7d0; }
.sheetConfirmations li.ok span { color: #166534; font-weight: 700; }
.sheetConfirmForm, .sheetDecision, .sheetMilestonesEditor { display: grid; gap: 10px; }
.sheetField { display: grid; gap: 4px; font-size: 13px; color: #334155; font-weight: 600; }
.sheetField input, .sheetField textarea, .sheetInlineNote { min-height: 40px; padding: 8px 10px; border: 1px solid #cbd5e1; border-radius: 8px; font: inherit; font-weight: 400; }
.sheetCheck { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: #334155; line-height: 1.5; }
.sheetCheck input { margin-top: 4px; width: 18px; height: 18px; flex-shrink: 0; }
.sheetButtons { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.sheetGhost { background: #fff; color: #0b2a55; border: 1px solid #0b2a55; }
.sheetGhost:hover, .sheetGhost:focus-visible { background: #f1f5f9; }
.sheetMilestoneDraft { display: grid; gap: 8px; padding: 12px; border: 1px dashed #cbd5e1; border-radius: 12px; margin: 0; min-width: 0; }
.sheetMilestoneDraft legend { font-weight: 800; color: #0b2a55; padding: 0 4px; }
.sheetRow { display: grid; grid-template-columns: 140px 180px minmax(0, 1fr); gap: 10px; align-items: end; }
.sheetDraftAmount { color: #0b7a4b; font-weight: 700; padding-bottom: 10px; }
.sheetInlineNote { flex: 1 1 240px; }
.sheetTotal { font-weight: 700; }
.sheetTotal.ok { color: #0b7a4b; } .sheetTotal.error { color: #b42318; }
.sheetHint { font-size: 13px; color: #64748b; }
.sheetStatus { margin: 0; padding: 9px 12px; border-radius: 10px; font-size: 14px; }
.sheetStatus.ok { background: #f0fdf4; color: #166534; } .sheetStatus.error { background: #fef2f2; color: #991b1b; }
.sheetHelp { margin-top: 18px; color: #475569; }
.trackSheetLink { justify-self: start; margin-top: 6px; }
.fxSheetLink { margin: 0; }
.leadSheetMilestones { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.leadSheetMilestones li { display: grid; gap: 4px; padding: 10px; border: 1px solid #dbe4ef; border-radius: 10px; background: #fff; justify-items: start; }
.sheetEditor summary { cursor: pointer; }
.sheetEditorGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; margin: 10px 0; }
.sheetEditorGrid .span2 { grid-column: 1 / -1; }
@media (max-width: 760px) {
  .sheetGrid, .sheetFacts, .sheetEditorGrid { grid-template-columns: 1fr; }
  .sheetCard dl div { grid-template-columns: 1fr; gap: 2px; }
  .sheetRow { grid-template-columns: 1fr 1fr; }
  .sheetDraftAmount { grid-column: 1 / -1; padding: 0; }
  .sheetCard { padding: 16px; }
}
.propositionPricing { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; margin: 10px 0; padding: 12px; border-radius: 10px; border: 1px solid #dbe4ef; background: #fff; }
.propositionPricing label { display: grid; gap: 4px; font-size: 13px; color: #334155; }
.propositionPricing input { min-height: 38px; padding: 6px 10px; border: 1px solid #cbd5e1; border-radius: 8px; font: inherit; }
.propositionPricing small, .propositionPricing .matchActions { grid-column: 1 / -1; }
.propositionPricing small { color: #64748b; font-size: 12px; }
@media (max-width: 640px) { .propositionPricing { grid-template-columns: 1fr; } }
.createProposition summary { cursor: pointer; }
.createProposition .propositionPricing select, .createProposition .propositionPricing textarea, .propositionEdit select, .propositionEdit textarea { min-height: 38px; padding: 6px 10px; border: 1px solid #cbd5e1; border-radius: 8px; font: inherit; }
.createProposition .propositionPricing .span2, .propositionEdit .span2 { grid-column: 1 / -1; }
.leadQuote-quoted, .leadQuote-submitted { border-left: 3px solid #d97706; }
.leadQuote-accepted { border-left: 3px solid #16a34a; background: #f6fdf8; }
.leadQuoteWaiting { background: #f8fafc; }
.leadQuoteMeta, .leadQuoteHint { margin: 6px 0 8px; color: #64748b; font-size: 12.5px; line-height: 1.5; }
.leadQuoteKind { margin: 8px 0 0; padding: 10px 0 0; border-top: 1px solid #eef2f7; }
.leadQuoteKind .matchActions { margin-top: 8px; flex-wrap: wrap; }
.leadQuoteMails { margin: 0; padding-left: 18px; color: #334155; font-size: 13px; line-height: 1.6; }
.leadMaterials { display: grid; gap: 14px; min-width: 0; }
.appCard .leadCardActions { position: relative; z-index: 2; display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.leadCardButton { padding: 4px 10px; font-size: 12px; }
.leadOffersHint { color: #64748b; font-size: 12.5px; align-self: center; }
.leadOffersDialog .listDialogBody { display: grid; gap: 12px; }
.leadOffersBlock { display: grid; gap: 8px; }
.leadOffersList { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.leadOffersList li { display: grid; gap: 3px; border-left: 3px solid #cbd5e1; padding: 4px 0 4px 10px; }
.leadOffersList li.leadOffer-published { border-color: #16a34a; }
.leadOffersList li.leadOffer-failed { border-color: #dc2626; }
.leadOffersList li .appStatus { justify-self: start; }
.leadOffersList small { color: #64748b; font-size: 12px; }
.materialClient { border: 1px solid #dbe4ef; border-radius: 14px; background: #fff; }
.materialClient > summary { display: flex; align-items: center; gap: 14px; padding: 14px 16px; cursor: pointer; color: var(--navy); }
.materialClient > summary img { max-height: 42px; max-width: 140px; object-fit: contain; }
.materialClient > summary small { display: block; color: #64748b; font-size: 12px; }
.materialClient > .materialWorkspace { padding: 0 16px 16px; }
.materialWorkspace { display: grid; gap: 14px; min-width: 0; }
.materialConfig { border: 1px dashed #c7d3e3; border-radius: 12px; background: #f8fafc; padding: 0 14px; }
.materialConfig > summary { padding: 11px 0; cursor: pointer; color: var(--navy); font-weight: 700; font-size: 13.5px; }
.materialConfig > summary small { font-weight: 400; color: #64748b; }
.materialConfig[open] { padding-bottom: 14px; }
.materialConfig textarea { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12.5px; line-height: 1.5; }
.materialSection { border: 1px solid #dbe4ef; border-radius: 14px; background: #fff; padding: 16px; display: grid; gap: 12px; min-width: 0; }
.materialSection > h4 { margin: 0; color: var(--navy); font-size: 15px; }
.materialSection > h4 small { font-weight: 400; color: #64748b; }
.materialHint { margin: 0; color: #475569; font-size: 13px; line-height: 1.55; }
.materialFields { display: grid; gap: 10px; min-width: 0; }
.materialFieldsGrid { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.materialField { display: grid; gap: 5px; min-width: 0; }
.materialField > span { color: #334155; font-size: 12.5px; font-weight: 700; }
.materialField > span small { font-weight: 400; color: #64748b; }
.materialField input[type=text], .materialField input[type=number], .materialField input:not([type]), .materialField textarea, .materialField select { width: 100%; box-sizing: border-box; border: 1px solid #cbd5e1; border-radius: 9px; padding: 8px 10px; font: inherit; font-size: 13.5px; background: #fff; }
.materialField textarea { resize: vertical; line-height: 1.5; }
.materialField-boolean { grid-template-columns: auto 1fr; align-items: center; }
.materialField-boolean > span { order: 2; }
.materialInline { max-width: 320px; }
.materialItems { border: 1px solid #e2e8f0; border-radius: 12px; padding: 10px 12px; display: grid; gap: 10px; min-width: 0; }
.materialItems > legend { padding: 0 6px; color: var(--navy); font-weight: 700; font-size: 13px; }
.materialItem { border-left: 3px solid var(--blue); padding: 4px 0 8px 12px; display: grid; gap: 8px; }
.materialItemHead { display: flex; justify-content: space-between; align-items: center; gap: 8px; color: var(--navy); font-size: 13px; }
.materialItemHead span { display: flex; gap: 6px; }
.materialTrainers { display: grid; gap: 8px; }
.materialTrainer { display: grid; grid-template-columns: auto auto 1fr; gap: 12px; align-items: flex-start; border: 1px solid #e2e8f0; border-radius: 12px; padding: 10px 12px; cursor: pointer; }
.materialTrainer.checked { border-color: var(--blue); background: #f5f8ff; }
.materialTrainer small { display: block; color: #64748b; font-size: 12px; line-height: 1.45; margin-top: 3px; }
.materialStatus { margin: 0; padding: 9px 12px; border-radius: 10px; font-size: 13px; line-height: 1.5; background: #f1f5f9; color: #334155; }
.materialStatus.running { background: #eef4ff; color: #1e3a8a; }
.materialStatus.warn { background: #fff7e6; color: #92400e; }
.materialStatus.error { background: #fef2f2; color: #991b1b; }
.materialStatus.ok { background: #f0fdf4; color: #166534; }
.materialMeta { margin: 0; color: #94a3b8; font-size: 12px; }
.materialLogo { display: flex; align-items: center; gap: 12px; }
.materialLogo img { max-height: 64px; max-width: 220px; object-fit: contain; border: 1px solid #e2e8f0; border-radius: 10px; padding: 8px; background: #fff; }
.materialLogo small { color: #64748b; }
.matchSettings { border: 1px dashed #c7d3e3; border-radius: 12px; background: #f8fafc; padding: 0 14px; margin: 0 0 12px; }
.matchSettings > summary { padding: 11px 0; cursor: pointer; color: var(--navy); font-weight: 700; font-size: 13.5px; }
.matchSettings > summary small { font-weight: 400; color: #64748b; }
.matchSettings[open] { padding-bottom: 14px; display: grid; gap: 10px; }
.matchSettingsChecks { display: grid; gap: 6px; font-size: 13px; color: #334155; }
.matchSettingsChecks label { display: flex; gap: 8px; align-items: center; }
.matchSettings .matchActions small { color: #64748b; font-size: 12px; align-self: center; }
.matchScoreButton { border: 0; cursor: pointer; font: inherit; position: relative; }
.matchScoreButton:hover { outline: 2px solid var(--blue); outline-offset: 2px; }
.matchScoreButton.manual { outline: 2px dashed #f59e0b; outline-offset: 2px; }
.matchScoreButton em { position: absolute; bottom: -16px; left: 50%; transform: translateX(-50%); font-size: 10px; font-style: normal; color: #b45309; white-space: nowrap; }
.matchScoreEdit { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.matchScoreEdit input { width: 64px; border: 1px solid #cbd5e1; border-radius: 8px; padding: 6px 8px; font: inherit; }
.matchScoreEdit small.error { color: #b91c1c; }
.materialFinancial { display: grid; gap: 12px; }
.materialExtra { display: grid; grid-template-columns: minmax(160px, 2fr) minmax(100px, 1fr) auto; gap: 10px; align-items: end; }
.materialTotals { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 12px 14px; border-radius: 12px; background: #0b2a55; color: #fff; font-size: 13.5px; }
.materialTotals b { color: #ffd226; }
.materialTotals .ttc { font-size: 15px; }
.materialTotals.incomplete { background: #64748b; }
.materialVisuals { display: grid; gap: 12px; border-top: 1px solid #e2e8f0; padding-top: 14px; }
.materialVisuals > h5 { margin: 0; color: var(--navy); font-size: 14px; }
.materialVisuals > h5 small { font-weight: 400; color: #64748b; }
.materialToolLogo.missing { border-color: #f59e0b; background: #fffbeb; }
.materialLogo.dark img { background: #0b2a55; border-color: #0b2a55; }
.materialTools { display: grid; gap: 10px; }
.materialTool { display: grid; grid-template-columns: 64px minmax(120px, 1fr) minmax(160px, 2fr) auto; gap: 10px; align-items: end; }
.materialToolLogo { width: 64px; height: 52px; display: flex; align-items: center; justify-content: center; border: 1px solid #e2e8f0; border-radius: 10px; background: #fff; }
.materialToolLogo img { max-width: 52px; max-height: 40px; object-fit: contain; }
.materialToolLogo em { font-size: 10px; color: #94a3b8; text-align: center; font-style: normal; }
.materialPhoto { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; }
.materialPhotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.materialPhotos button { padding: 0; border: 2px solid transparent; border-radius: 10px; overflow: hidden; cursor: pointer; background: none; }
.materialPhotos button.selected { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(11, 92, 255, 0.2); }
.materialPhotos img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
@media (max-width: 700px) { .materialTool { grid-template-columns: 52px 1fr; } }
.materialPreviews { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.materialPreviews a { position: relative; display: block; border-radius: 10px; overflow: hidden; border: 1px solid #dbe4ef; box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06); }
.materialPreviews img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.materialPreviews small { position: absolute; right: 6px; bottom: 6px; background: rgba(7, 26, 51, 0.75); color: #fff; font-size: 11px; padding: 1px 7px; border-radius: 999px; }
.leadCardLocation { margin: 0; font-size: 12px; color: #64748b; line-height: 1.5; }
.appStatus-nouveau { background: #fff4d6; color: #8a6100; }
.appStatus-contacte, .appStatus-qualifie { background: #e8f0ff; color: #174e9e; }
.appStatus-inscrit { background: #e7f7ef; color: #0b7a4b; }
.appStatus-perdu { background: #f1f3f6; color: #6b7889; }
.leadPreview .appPreviewActions select { max-width: 100%; padding: 7px 10px; border: 1px solid #c9d4e0; border-radius: 6px; background: white; font: inherit; font-size: 13px; }
.leadDetailContent, .leadMatchingPanel, .matchedTrainerPanel { min-width: 0; }
.leadMatchingPanel, .matchedTrainerPanel { display: grid; gap: 18px; }
.requestMatchingSummary { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; padding: 16px; background: #f2f7ff; border: 1px solid #d5e3fa; border-radius: 8px; }
.requestMatchingSummary > div { display: flex; gap: 10px; align-items: center; color: var(--navy); font-size: 13px; }
.requestMatchingSummary strong { font-size: 28px; line-height: 1; }
.matchingOverview, .leadMatchCardHead { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.matchingOverview { flex-wrap: wrap; }
.matchingButtons { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; }
.matchingOverview p.matchingUpdated { color: var(--navy); font-weight: 600; }
.matchingRunning { border-left: 3px solid var(--blue); }
.matchingRunning p { margin: 0; }
.matchQuotes { margin: 2px 0 10px; border: 1px solid #dbe4ef; border-radius: 10px; background: #f8fbff; }
.matchQuotes > summary { cursor: pointer; padding: 9px 12px; color: var(--navy); font-size: 13px; font-weight: 700; }
.matchQuote { padding: 4px 12px 10px; border-top: 1px solid #e5edf6; }
.matchQuoteSources { margin: 6px 0 0; color: #64748b; font-size: 12px; line-height: 1.5; }
.matchingOverview h3, .leadMatchCardHead h3 { margin: 0 0 6px; color: var(--navy); font-size: 17px; }
.matchingOverview p, .leadMatchCardHead p { margin: 4px 0 0; color: #64748b; font-size: 12.5px; line-height: 1.5; }
.leadMatchCardHead > div { min-width: 0; }
.leadMatchCardHead h3 a { color: var(--navy); text-decoration: none; }
.leadMatchList { display: grid; gap: 12px; }
.leadMatchCard { padding: 16px; border: 1px solid #dbe4ef; border-radius: 9px; background: #fff; }
.leadMatchCard.selected { border-color: var(--blue); box-shadow: 0 0 0 1px var(--blue); }
.matchScore { flex: 0 0 auto; display: grid; place-items: center; gap: 1px; min-width: 52px; padding: 7px; border-radius: 8px; color: #526175; background: #f0f3f7; font-size: 21px; font-weight: 800; line-height: 1.1; }
.matchScore.pertinent { color: #0b7a4b; background: #e7f7ef; }
.matchScore small { font-size: 10px; font-weight: 600; opacity: .8; }
.matchReason { margin: 12px 0; font-size: 13px; color: #3e5065; line-height: 1.6; white-space: pre-line; }
.matchActions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.matchActions .actionResult { max-width: 100%; }
.matchActions .actionResult small { white-space: normal; overflow-wrap: anywhere; }
.matchingSummary, .matchingNotice { margin: 0; padding: 13px 15px; border-radius: 7px; background: #f5f8fc; color: #465970; font-size: 13px; line-height: 1.6; white-space: pre-line; overflow-wrap: anywhere; }
.matchingSummary b { display: block; color: var(--navy); margin-bottom: 5px; }
.matchingSummary p { margin: 0; }
.matchingNotice { background: #fffae9; color: #806023; }
.otherMatches > summary { margin-bottom: 14px; color: #64748b; cursor: pointer; font-size: 13px; font-weight: 700; }
.matchedPages { display: grid; gap: 8px; margin: 5px 0 0; padding: 0; list-style: none; }
.matchedPages li { display: flex; justify-content: space-between; gap: 10px; padding: 10px 12px; background: #f5f8fc; font-size: 13px; }
.matchedPages a { color: var(--blue); }
.matchedPages span { font-size: 11px; color: #64748b; white-space: nowrap; }
.preserveLines { white-space: pre-wrap; overflow-wrap: anywhere; }
@media (min-width: 981px) and (max-width: 1200px) { .appsWorkspace .detailWorkspace { grid-template-columns: minmax(280px, 34%) minmax(0, 1fr); } }
@media (max-width: 980px) {
  .appsWorkspace .detailWorkspace { grid-template-columns: 1fr; }
  .appsWorkspace .detailWorkspace > .appsList { height: 38vh; min-height: 230px; overflow-y: auto; }
  .workspaceDetailShell { height: 72vh; min-height: 400px; }
  .appsWorkspace .workspaceDetail .appsPreview { padding: 16px; }
  .leadPreview .appPreviewHead h2 { font-size: 21px; }
}

/* Audience: « Analyser une page » */
.gaPageSearch { display: flex; flex-wrap: wrap; align-items: end; gap: 10px 14px; margin-top: 24px; padding: 16px 18px; border: 1px solid #dce3eb; background: #fff; }
.gaPageSearch label { display: grid; flex: 1; gap: 5px; min-width: 260px; }
.gaPageSearch label span { color: var(--navy); font-size: 13px; font-weight: 700; }
.gaPageSearch input[type="text"] { padding: 10px 12px; border: 1px solid #c9d4e0; border-radius: 8px; font: inherit; font-size: 14px; }
.gaPageTitle { font-size: 22px; }
.trainerGaMetric a { color: var(--blue); font-size: 10.5px; font-weight: 700; }

/* Candidature workflow: explicit status changes and independent delivery channels. */
.candidatureStatusForm,.workflowMessages{display:grid;gap:12px;padding:18px;border:1px solid #dce2e8;border-radius:12px;background:#fff;min-width:0}
.candidatureStatusForm label,.workflowDraftDialog label{display:grid;gap:6px;font-size:13px;font-weight:600;color:#344457;min-width:0}
.candidatureStatusForm select,.candidatureStatusForm input,.candidatureStatusForm textarea,.workflowMessages select,.workflowBulk select,.workflowDraftDialog input,.workflowDraftDialog textarea{width:100%;min-width:0;max-width:100%;border:1px solid #c5ced9;border-radius:7px;padding:10px 11px;font:inherit;background:#fff;color:#162638}
.candidatureStatusForm.compact{position:relative;z-index:2;width:100%;padding:0;border:0;background:transparent}
.candidatureStatusForm.compact>label>span{font-size:11px;color:#576a7f}
.candidatureStatusForm .adminToolButton{justify-self:start;white-space:normal}
.workflowMessages h3,.workflowMessages p{margin:0}.workflowMessages>p{font-size:13px;color:#607085}
.workflowChannels{display:flex;flex-wrap:wrap;gap:8px}.workflowChannels button{white-space:normal}
.workflowChannels button:disabled,.workflowBulk button:disabled{opacity:.5;cursor:not-allowed}
.workflowProposal{border:1px solid #dce2e8;display:grid;gap:12px;padding:14px;min-width:0;border-radius:8px}
.workflowChecks{display:flex;gap:10px;flex-wrap:wrap}.workflowChecks label{display:flex;align-items:center;gap:5px}.workflowChecks input{width:auto}
.workflowTextPreview{background:#f5f7fa;border-radius:8px;padding:14px}.workflowTextPreview pre{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.7 inherit}
.workflowDraftDialog{margin:auto;width:min(1120px,95vw);max-height:90dvh;border:0;border-radius:16px;padding:24px;color:#162638;box-shadow:0 22px 90px #1021354d}
.workflowDraftDialog::backdrop{background:#102135a6}.workflowDraftDialog header,.workflowDraftDialog footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.workflowDraftDialog header h2{font-size:20px;margin:0}.workflowDraftDialog header>button{border:0;background:#edf1f5;border-radius:6px;padding:8px 12px}.workflowDraftDialog footer{justify-content:flex-end;margin-top:18px}
.workflowDraftColumns{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1.25fr);gap:20px;align-items:center;margin:24px 0}.workflowDraftColumns textarea{min-height:320px;resize:vertical;line-height:1.6}.workflowDraftColumns>div{display:grid;gap:12px}
/* « Tout faire » popup: steps, then the candidatures to tick or untick. */
.processDialog{width:min(860px,95vw)}.processDialog > p{margin:12px 0}.processIntro{color:#4a5a6d;font-size:14px}
.processSteps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:0 0 14px;padding:12px 14px;border:1px solid #dce4ed;border-radius:10px}.processSteps legend{padding:0 6px;font-weight:700}.processDialog .processSteps label,.processDialog .processList label{display:flex;align-items:flex-start;gap:8px;font-weight:500}.processDialog input[type=checkbox]{width:auto;margin-top:3px;flex:none}
.processTools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}.processTools b{margin-right:auto}
.processList{list-style:none;margin:0;padding:0;max-height:46dvh;overflow:auto;border:1px solid #dce4ed;border-radius:10px}.processList li{padding:9px 12px;border-bottom:1px solid #edf1f5}.processList li:last-child{border-bottom:0}.processList li.on{background:#f4f8fd}
.processList label span{display:grid;gap:2px;flex:1;min-width:0}.processList small{color:#5d6b7c;font-weight:400}.processList em{font-style:normal;font-size:12px;color:#1f5d99;text-align:right;max-width:40%}
.processEmpty{padding:18px;text-align:center;background:#f5f7fa;border-radius:10px}.processResult{white-space:pre-line;padding:10px 12px;border-radius:8px;background:#f5f7fa}.processResult.ok{background:#eaf7ef}.processResult.error{background:#fdeeee}
.processButton{display:inline-flex;flex-direction:column;gap:3px;vertical-align:middle}.processMeter{display:block;height:4px;border-radius:4px;background:#dce4ed;overflow:hidden}.processMeter i{display:block;height:100%;background:#1f8a4c;transition:width .4s}.processMeter.large{height:10px;flex-basis:100%}
.processProgress{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:6px 0 12px}.processProgress span:not(.processMeter){color:#4a5a6d}
.processLast{padding:10px 12px;border-radius:8px;background:#f5f7fa}.processHeading{margin:14px 0 6px;font-size:15px}.processFailures{margin-top:12px}.processFailures summary{cursor:pointer;font-weight:700;color:#a12a2a}
.processList li > span{display:grid;gap:2px}
@media(max-width:640px){.processSteps{grid-template-columns:minmax(0,1fr)}.processList label{flex-wrap:wrap}.processList em{max-width:none;text-align:left;flex-basis:100%;padding-left:24px}}
.workflowBulk{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px;background:#f5f7fa;border-bottom:1px solid #dce2e8}.workflowBulk select{width:auto;max-width:290px}.workflowBulk p{flex-basis:100%;margin:0}
.appStatus-pages_created,.appStatus-space_created{background:#e5f2ef;color:#226454}.appStatus-offer_matched,.appStatus-client_agreed{background:#e8edf9;color:#304b85}.appStatus-offer_accepted,.appStatus-client_paid,.appStatus-training_started,.appStatus-training_finished{background:#dbf3e7;color:#16603c}.appStatus-needs_info,.appStatus-unanswered_1d,.appStatus-unanswered_2d{background:#fff0cc;color:#745006}.appStatus-offer_declined,.appStatus-training_cancelled{background:#f7e3e4;color:#983f46}
.bankDetailsForm{max-width:950px}.bankDetailsForm fieldset{padding:0;border:0;min-width:0}.bankDetailsForm legend{font-weight:650;margin-bottom:10px}.bankChoices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:330px;overflow:auto;padding:3px}.bankDetailsForm .bankChoice{display:flex;align-items:center;gap:10px;position:relative;border:1px solid #d7dfe7;border-radius:9px;padding:11px;cursor:pointer;background:#fff;min-width:0}.bankChoice.selected{border:2px solid #b28800;background:#fffaf0}.bankChoice:focus-within{outline:2px solid #1865a0;outline-offset:1px}.bankChoice input{width:16px;min-width:16px;height:16px;accent-color:#a77800}.bankChoice img{object-fit:contain;width:42px;height:42px;flex-shrink:0}.bankChoice span{font-size:12px;line-height:1.4}.bankAdminDetails dl{display:grid;gap:12px}.bankAdminDetails dl>div{display:grid;grid-template-columns:100px 1fr;gap:12px}.bankAdminDetails dt{font-weight:650}.bankAdminDetails dd{margin:0;display:flex;align-items:center;gap:12px;overflow-wrap:anywhere}.bankAdminDetails code{white-space:normal}
@media(max-width:800px){.workflowDraftColumns{grid-template-columns:minmax(0,1fr)}.workflowDraftColumns textarea{min-height:180px}.workflowDraftColumns>button{justify-self:center}.bankChoices{grid-template-columns:repeat(2,minmax(0,1fr))}.workflowDraftDialog{padding:16px}}
@media(max-width:440px){.bankChoices{grid-template-columns:minmax(0,1fr)}.workflowChannels{flex-direction:column}.workflowChannels button{width:100%}.candidatureStatusForm,.workflowMessages{padding:12px}.candidatureStatusForm.compact{padding:0}}
/* Candidatures: persistent pagination, Excel-style filters and messages. */
.workspaceListShell{display:flex;flex-direction:column;min-height:0;min-width:0;height:100%}.appsWorkspace .workspaceListShell>.appsList{flex:1;height:auto;min-height:0;overflow:auto}.workspaceListFooter{flex-shrink:0;background:#fff;border-top:1px solid #dce3eb;padding:10px 2px 0;z-index:4}.workspaceListFooter .adminPagination{margin:0;padding:0;border:0;gap:8px}.workspaceListFooter .adminPerPage{margin-left:auto}.workspaceListFooter .adminPageLinks{width:100%;justify-content:center}.workspaceListFooter select{max-width:72px}
.candidatureFilters{display:grid;gap:18px}.savedFiltersBar,.excelSearchRow{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.candidatureFilters label,.broadcastDialog>label,.matchFilters label{display:grid;gap:6px;font-size:12px;font-weight:650}.candidatureFilters input:not([type=checkbox]),.candidatureFilters select,.broadcastDialog>label input,.broadcastDialog textarea,.matchFilters input,.matchFilters select{border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px;background:#fff;color:#17202b;font:inherit;width:100%;min-width:0}.savedFiltersBar{padding-bottom:16px;border-bottom:1px solid #e1e7ee}.savedFiltersBar>label{min-width:190px;max-width:320px}.excelSearchRow{margin-bottom:14px}.excelSearchText{flex:1;min-width:200px}.excelFilterColumns{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.excelFilter{position:relative;flex:1;min-width:130px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.excelFilter.active{border-color:#ad8700;background:#fffbea}.excelFilter summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;cursor:pointer;font-weight:650;font-size:12px}.excelFilter summary::-webkit-details-marker{display:none}.excelFilter summary>span{font-weight:400;font-size:11px;color:#536477}.excelFilterMenu{position:absolute;z-index:12;top:calc(100% + 5px);left:0;min-width:300px;width:min(380px,80vw);padding:14px;display:grid;gap:12px;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 10px 30px #12223a26}.excelFilter:nth-last-child(-n+2) .excelFilterMenu{left:auto;right:0}.excelFilterTools{display:flex;gap:10px}.excelFilterTools button{border:0;background:none;font:inherit;font-size:11px;color:#184c78;cursor:pointer}.excelFilterOptions{display:grid;gap:10px;max-height:240px;overflow:auto}.excelFilterOptions label{display:flex;align-items:flex-start;gap:9px;font-weight:400;line-height:1.5}.excelFilterOptions input{flex-shrink:0;margin-top:3px;width:16px;height:16px;accent-color:#987500}.candidatureFilters .adminFilterActions small{font-size:11px;color:#657589}
.candidatureBroadcast{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.broadcastDialog{margin:auto;width:min(760px,94vw);max-height:90vh;overflow:auto;border:1px solid #dce3eb;border-radius:14px;padding:24px;color:#17202b}.broadcastDialog::backdrop{background:#11253a99}.broadcastDialog header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.broadcastDialog header h2{font-size:20px}.broadcastDialog header button{border:0;background:#edf2f7;padding:9px;border-radius:7px}.broadcastDialog>label{margin:14px 0}.broadcastDialog footer{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.broadcastScope{display:grid;gap:10px;border:1px solid #dce3eb;border-radius:8px;padding:14px}.broadcastScope label{display:flex;align-items:center;gap:9px;font-size:13px}.broadcastDialog>p{font-size:13px;color:#52677d;margin:14px 0}.broadcastPreview{border:1px solid #dce3eb;border-radius:8px;padding:14px}.broadcastPreview ul{max-height:160px;overflow:auto;margin:10px 0}.broadcastPreview pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;margin:12px 0}.broadcastDialog progress{width:100%;accent-color:#987500}
.candidatureMatches{display:grid;gap:16px;min-width:0}.candidatureMatches>header{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.candidatureMatches h3{font-size:18px}.candidatureMatches p{font-size:13px;line-height:1.6}.matchFilters{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.matchFilters>label{flex:1;min-width:150px}.candidateMatchCard{display:grid;gap:12px;border:1px solid #d9e1ea;border-radius:12px;padding:18px;background:#fff}.candidateMatchHead{display:flex;gap:12px;align-items:flex-start}.candidateMatchHead h4{font-size:16px;line-height:1.4}.matchScore{padding:7px;background:#eef2f6;color:#344d68;border-radius:8px;font-weight:750;white-space:nowrap}.matchScore.pertinent{background:#e9f5ee;color:#17623a}.candidateMatchCard details{font-size:13px}.candidateMatchCard summary{font-weight:650;cursor:pointer}.candidateMatchCard details p,.candidateMatchCard blockquote{margin:10px 0;white-space:pre-wrap;overflow-wrap:anywhere}.candidateMatchCard blockquote{padding:12px;background:#f7f9fb;border-left:3px solid #e6c54c}.candidateMatchCard .workflowChannels{gap:8px}
@media(max-width:980px){.appsWorkspace .detailWorkspace>.workspaceListShell{height:46vh;min-height:310px}.appsWorkspace .workspaceListShell>.appsList{height:auto;min-height:0}.excelFilter{min-width:calc(50% - 8px)}.excelFilter:nth-child(even) .excelFilterMenu{left:auto;right:0}.excelFilter:nth-child(odd) .excelFilterMenu{left:0;right:auto}}
@media(max-width:540px){.savedFiltersBar>label,.excelSearchRow>label{min-width:0;max-width:none;width:100%}.excelFilterMenu{min-width:270px}.broadcastDialog{padding:16px}.candidateMatchCard{padding:12px}.candidateMatchCard .workflowChannels>button{width:100%}}
/* Assignment configuration and reusable trainer proposals. */
.assignmentDialog{margin:auto;border:0;border-radius:18px;padding:24px;width:min(660px,calc(100vw - 32px));max-height:90dvh;overflow:auto;color:#182330;box-shadow:0 24px 80px #10203140;background:#fff}
.assignmentDialog::backdrop{background:#0b182aaa}.assignmentDialog header{display:flex;align-items:center;justify-content:space-between;gap:16px}.assignmentDialog h2{margin:0;font-size:23px}.assignmentDialog header button{border:0;background:#f2f4f6;padding:9px 12px;border-radius:8px;cursor:pointer}.assignmentDialog p{line-height:1.6;color:#546171}.assignmentDialog fieldset{border:0;padding:0;margin:22px 0}.assignmentDialog legend{font-weight:700;margin-bottom:10px}.assignmentDialog fieldset label{display:flex;align-items:start;gap:12px;padding:14px;border:1px solid #dce2e8;border-radius:10px;margin:8px 0;cursor:pointer}.assignmentDialog fieldset label:has(input:checked){border-color:#d6a818;background:#fff9df}.assignmentDialog fieldset input{width:auto;margin-top:5px;accent-color:#b38c0c}.assignmentDialog small{display:block;font-size:13px;color:#596675;margin-top:4px;line-height:1.5}.assignmentDialog>label{display:grid;gap:8px;font-weight:600}.assignmentDialog textarea{width:100%;border:1px solid #cbd4de;border-radius:8px;padding:10px;font:inherit;resize:vertical}.assignmentDialog footer{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}
.matchingBatch{padding:16px 20px;background:#f5f8fc;border-block:1px solid #dfe6ef}.matchingBatch p{margin:6px 0;color:#526275;font-size:13px;line-height:1.5}.matchingBatch .workflowChannels{margin-top:10px}.quoteTabs{display:flex;gap:8px;border-bottom:1px solid #dce4eb;margin:18px 0;overflow-x:auto}.quoteTabs button{padding:12px 16px;border:0;border-bottom:3px solid transparent;background:transparent;font:inherit;color:#536272;cursor:pointer;white-space:nowrap}.quoteTabs button[aria-selected=true]{color:#172638;border-color:#d9ae26;font-weight:700}.quoteTabs button:focus-visible{outline:2px solid #496b9e;outline-offset:-2px}.quoteFields{border:0;margin:0;padding:0;min-width:0}.quoteTemplate{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:16px;background:#f2f6fa;border-radius:10px;margin-bottom:20px}.quoteTemplate label{flex:1;min-width:190px}.quoteTemplate small{flex-basis:100%;color:#596b7e}.missionQuoteForm label{display:grid;gap:7px;font-size:14px}.missionQuoteForm input:not([type=checkbox]),.missionQuoteForm textarea,.missionQuoteForm select{width:100%;border:1px solid #cbd6e0;border-radius:8px;padding:11px;font:inherit;background:#fff;color:#1b2938;box-sizing:border-box}.missionQuoteForm textarea{resize:vertical}.missionQuoteForm .fxFormGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.missionQuoteForm .span2{grid-column:1/-1}.quoteChoices{display:flex;flex-wrap:wrap;gap:10px 18px;border:1px solid #dce4eb;border-radius:8px;padding:12px}.quoteChoices legend{padding:0 5px;font-size:14px}.quoteChoices label{display:flex;align-items:center;gap:7px}.quoteChoices input{accent-color:#bd960f;width:17px;height:17px}.quoteTotal{background:#fff8d9;padding:12px;border-radius:8px;margin:0}.missionQuoteForm>button{margin-top:20px;white-space:normal}.quoteInstructions,.quoteDetails dd{white-space:pre-wrap;overflow-wrap:anywhere}.quoteDetails h3{margin:18px 0 12px}.quoteDetails dl>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;border-top:1px solid #e3e8ed;padding:12px 0}.quoteDetails dt{font-size:13px;color:#586777}.quoteDetails dd{margin:0;font-size:14px;line-height:1.6}.proposalReview>h2{font-size:20px}.missionQuoteForm [hidden],.proposalReview [hidden]{display:none}
@media(max-width:640px){.missionQuoteForm .fxFormGrid{grid-template-columns:1fr}.quoteDetails dl>div{grid-template-columns:1fr;gap:5px}.assignmentDialog{padding:18px}.assignmentDialog footer{flex-wrap:wrap}.quoteTemplate .fxBtn{width:100%}.quoteTabs button{padding:10px}}

/* Trainer spaces: review and communicate without leaving the selected account. */
.trainerSpaceSearch { grid-template-columns: minmax(200px, 1fr) auto; margin-bottom: 12px; }
.trainerSpaceFilters { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: 8px; flex-shrink: 0; padding-bottom: 6px; }
.trainerSpaceFilters a { flex-shrink: 0; white-space: nowrap; }
.trainerSpaceFilters a { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid #d6dfe9; border-radius: 8px; color: #42556c; font-size: 13px; font-weight: 600; }
.trainerSpaceFilters a.active { color: #fff; background: #183451; border-color: #183451; }
.trainerSpaceFilters small { padding: 1px 6px; border-radius: 6px; background: #edf2f8; color: #243e5d; }
.trainerSpaceCard { text-decoration: none; color: #4a5a6d; overflow-wrap: anywhere; }
.trainerSpaceCard > small { font-size: 11.5px; line-height: 1.5; }
.trainerCardCompletion { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 10px; margin: 4px 0; font-size: 12px; }
.trainerCardCompletion .tsStepBar { grid-column: 1 / -1; margin: 0; }
.trainerAccountTab { display: grid; gap: 18px; min-width: 0; }
.trainerAccountTab .adminSection { margin: 0; padding: 16px; min-width: 0; }
.trainerAccountTab .adminSectionTitle h2 { font-size: 19px; }
.trainerAccountTab .tsMediaItem { grid-template-columns: 120px minmax(0, 1fr); }
.trainerAccountTab .tsMediaItem > video, .trainerAccountTab .tsMediaItem > iframe { width: 120px !important; height: auto; }
.trainerAccountTab .tsMediaItem > div { min-width: 0; }
.trainerWorkspaceHint { color: #5c6d83; font-size: 13px; line-height: 1.6; }
.trainerDecision { padding: 14px; margin-top: 14px; background: #f5f8fc; border: 1px solid #d7e2ee; border-radius: 10px; min-width: 0; }
.trainerDecision fieldset { display: grid; gap: 12px; border: 0; padding: 0; min-width: 0; }
.trainerDecision legend { padding: 0 0 12px; color: #183451; font-size: 14px; font-weight: 700; }
.trainerDecision label, .trainerReplyComposer label { display: grid; gap: 6px; color: #42556c; font-size: 12px; font-weight: 600; }
.trainerDecision input:not([type=checkbox]), .trainerDecision textarea, .trainerDecision select,
.trainerReplyComposer input, .trainerReplyComposer textarea, .trainerReplyComposer select { width: 100%; min-width: 0; padding: 9px 10px; border: 1px solid #bdccdd; border-radius: 6px; background: #fff; font: inherit; font-size: 13px; line-height: 1.5; color: #20314b; }
.trainerDecision textarea, .trainerReplyComposer textarea { resize: vertical; }
.trainerDecisionFields { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.trainerDecision .trainerDecisionCheck, .trainerDecisionChannels label { display: flex; align-items: center; gap: 8px; }
.trainerDecision input[type=checkbox] { flex: 0 0 16px; width: 16px; height: 16px; accent-color: #174e9e; }
.trainerDecisionChannels { display: grid; gap: 8px; padding: 10px 0; border-top: 1px solid #dce4ed; }
.trainerDecision details { display: grid; gap: 10px; }
.trainerDecision details > label { margin: 10px 0; }
.trainerDecision summary, .trainerDecisionHistory summary { cursor: pointer; color: #244b7c; font-size: 13px; }
.trainerDecision fieldset > button { justify-self: start; }
.trainerDecisionHint { color: #6a7a8d; font-size: 11px; line-height: 1.5; }
.trainerDecisionHistory { display: grid; gap: 12px; }
.trainerDecisionHistory > article { padding: 14px; border: 1px solid #dce4ed; border-radius: 8px; display: grid; gap: 9px; }
.trainerDecisionHistory header, .trainerRequestItem > header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; font-size: 13px; }
.trainerDecisionHistory article > p, .trainerRequestItem time { color: #61748a; font-size: 12px; }
.trainerReviewText { white-space: pre-wrap; font-size: 13px; line-height: 1.7; padding-top: 10px; overflow-wrap: anywhere; }
.trainerRequestItem { border-top: 1px solid #dce4ed; margin-top: 18px; padding-top: 18px; }
.trainerRequestItem .msgThread { max-height: none; margin: 12px 0 0; padding: 0; }
.trainerReplyComposer { display: grid; gap: 12px; padding-top: 18px; margin: 18px 0; border-top: 1px solid #dce4ed; }
.trainerEmailHistory { list-style: none; display: grid; gap: 12px; padding: 12px 0; }
.trainerEmailHistory li { display: grid; gap: 4px; font-size: 12px; padding-bottom: 10px; border-bottom: 1px solid #dce4ed; overflow-wrap: anywhere; }
.trainerAccountTab .appsPreview { padding: 0; }
@media (max-width: 1250px) {
  .trainerAccountTab .tsMediaItem { grid-template-columns: minmax(0, 1fr); }
  .trainerAccountTab .tsCompare > div { grid-template-columns: minmax(65px, .7fr) repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .trainerSpaceSearch { grid-template-columns: 1fr; }
  .trainerAccountTab .adminSection { padding: 12px; }
  .trainerAccountTab .tsCompare > div { font-size: 11px; }
  .trainerDecision { padding: 10px; }
}

@media (min-width: 981px) {
  .trainerSpacesPage { display: flex; flex-direction: column; height: calc(100dvh - 60px); min-height: 580px; }
  .trainerSpacesPage > .adminHead { flex-shrink: 0; }
  .trainerSpacesPage > .adminBody { flex: 1; min-height: 0; width: 100%; padding-block: 14px; }
  .trainerSpacesPage .trainerSpacesWorkspace { height: 100%; min-height: 0; margin: 0; padding: 16px; }
}
.trainerAccountPreview > .detailTabsBar { position: sticky; top: 0; z-index: 3; background: #fff; }
/* Trainer follow-up categories, templates and reviewed paired deliveries. */
.trainerFollowupToolbar { display:flex; justify-content:space-between; align-items:center; gap:14px; flex-shrink:0; padding:10px 12px; border:1px solid #dde5ee; border-radius:9px; background:#f6f8fb; }
.trainerFollowupToolbar > div:first-child { min-width:0; }
.trainerFollowupToolbar p { margin:3px 0 0; font-size:12px; color:#53657a; max-width:720px; max-height:36px; overflow:auto; }
.followupSelectActions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.followupDialog { margin:auto; width:min(1100px,calc(100vw - 32px)); max-height:90dvh; padding:0; border:1px solid #dce3eb; border-radius:14px; color:#183451; box-shadow:0 24px 80px #09203944; }
.followupDialog[open] { display:flex; flex-direction:column; }
.followupDialog::backdrop { background:#0b1f37aa; }
.followupDialog > header { display:flex; justify-content:space-between; align-items:center; gap:16px; background:#152d47; color:white; padding:18px 24px; flex-shrink:0; }
.followupDialog > header p { color:#ffdb4b; font-size:11px; letter-spacing:.1em; }
.followupDialog > header h2 { font-size:23px; margin:5px 0 0; }
.followupDialog > header button { border:1px solid #6a7e91; background:transparent; color:white; border-radius:8px; padding:8px 12px; cursor:pointer; }
.followupDialog > form { display:flex; flex-direction:column; min-height:0; }
.followupDialogBody { padding:20px 24px; overflow:auto; min-height:0; overscroll-behavior:contain; }
.followupDialogBody > p { margin:0 0 16px; font-size:14px; }
.followupDialog footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:14px 24px; border-top:1px solid #dce3eb; flex-shrink:0; background:#f7f9fc; }
.followupDialog footer p { font-size:13px; max-width:65%; }
.followupDialogTabs { display:flex; gap:8px; padding:12px 24px; border-bottom:1px solid #e0e6ee; flex-shrink:0; }
.followupDialogTabs button { padding:9px 14px; background:white; color:#42556c; border:1px solid #dce3eb; border-radius:8px; cursor:pointer; }
.followupDialogTabs button.active { background:#fff4bc; border-color:#e9c83f; color:#453608; }
.followupFormFields,.followupTemplateFields { border:0; padding:0; margin:0; min-width:0; display:grid; gap:16px; }
.followupFormFields > legend,.followupTemplateFields > legend { font-size:15px; font-weight:700; padding:0 0 12px; }
.followupFormFields label:not(.followupCheck),.followupTemplateFields label { display:grid; gap:6px; font-size:13px; font-weight:600; min-width:0; }
.followupDialog input:not([type=checkbox]),.followupDialog select,.followupDialog textarea { width:100%; padding:10px 12px; font:inherit; font-weight:400; color:#243e5d; border:1px solid #cbd5e1; border-radius:7px; background:white; }
.followupDialog textarea { resize:vertical; line-height:1.6; }
.followupCategoryChoice,.followupRange { display:flex; gap:12px; align-items:end; }
.followupCategoryChoice > label { flex:1; }
.followupRange > label { flex:1; }
.followupFilterGrid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.followupFilterGrid fieldset { border:1px solid #dde5ee; border-radius:9px; padding:10px 12px; min-width:0; }
.followupFilterGrid legend { font-size:13px; font-weight:700; padding:0 5px; }
.followupCheck { display:flex; align-items:flex-start; gap:9px; font-size:13px; font-weight:400; padding:5px 0; cursor:pointer; }
.followupCheck input[type=checkbox] { flex-shrink:0; width:16px; height:16px; accent-color:#183451; margin-top:2px; }
.followupHelp { font-size:12px; line-height:1.6; color:#586b80; }
.followupHelp code { display:inline-block; margin:2px 4px; padding:1px 5px; background:#ecf1f7; border-radius:4px; font-size:11px; }
.followupTemplateColumns { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.followupAi { display:flex; gap:16px; align-items:center; }
.followupAi small { font-size:12px; color:#586b80; }
.followupVisibility { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.followupVisibility .followupCheck { padding:12px; border:1px solid #dde5ee; border-radius:8px; }
.followupCheck small { display:block; color:#586b80; font-size:12px; margin-top:3px; }
.followupRecipients { max-height:250px; overflow:auto; border:1px solid #dde5ee; border-radius:8px; }
.followupRecipients .followupCheck { padding:10px 12px; border-bottom:1px solid #e8edf3; align-items:center; }
.followupRecipients .followupCheck > span:first-of-type { flex:1; min-width:0; overflow-wrap:anywhere; }
.followupLastMail { font-size:11px; text-align:right; flex-shrink:0; }
.followupProgress { padding:12px; background:#fff4bc; border-radius:8px; margin:16px 0; }
.followupRuns { margin-top:20px; }
.followupRuns summary { cursor:pointer; font-weight:700; }
.followupRuns article { border:1px solid #dce3eb; border-radius:8px; padding:12px; margin-top:10px; font-size:13px; }
.followupRuns small { display:block; margin:5px 0; }
.emailPriorHistory,.emailAccountMessage { margin:12px 0; padding:12px; background:#f6f8fb; border:1px solid #dce3eb; border-radius:8px; }
.emailPriorHistory summary,.emailAccountMessage summary { font-weight:700; cursor:pointer; }
.emailPriorHistory ul { list-style:none; padding:0; max-height:160px; overflow:auto; margin:10px 0; }
.emailPriorHistory li { display:grid; grid-template-columns:135px 1fr auto; gap:10px; border-bottom:1px solid #e0e6ee; padding:7px 0; font-size:12px; }
.emailPriorHistory p { margin-top:8px; font-size:13px; }
.emailPriorHistory small { font-size:11px; color:#586b80; }
.emailAccountMessage pre { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:13px; max-height:200px; overflow:auto; margin-top:10px; }
@media(max-width:850px) {
  .trainerFollowupToolbar { align-items:flex-start; flex-direction:column; }
  .followupFilterGrid { grid-template-columns:1fr 1fr; }
  .followupTemplateColumns { grid-template-columns:1fr; }
  .followupDialog footer { flex-wrap:wrap; gap:10px; }
  .followupDialog footer p { max-width:100%; }
}
@media(max-width:560px) {
  .followupFilterGrid,.followupVisibility { grid-template-columns:1fr; }
  .followupDialogBody,.followupDialog > header,.followupDialog footer { padding:14px; }
  .followupCategoryChoice,.followupAi { flex-wrap:wrap; }
  .followupCategoryChoice > label { flex-basis:100%; }
  .followupLastMail { max-width:115px; }
  .emailPriorHistory li { grid-template-columns:1fr; gap:3px; }
}
.trainerSpaceTools { display:flex; gap:12px; align-items:end; flex-shrink:0; }
.trainerSpaceTools .trainerSpaceSearch { flex:1; margin:0; }
.trainerSpaceTools > button { margin-bottom:3px; }
@media(max-width:700px){.trainerSpaceTools{align-items:stretch;flex-direction:column;}.trainerSpaceTools>button{align-self:flex-start;}}
@media(min-width:981px){
  .trainerSpacesPage .adminHeadCompact .breadcrumbs{margin-bottom:8px;font-size:11px;}
  .trainerSpacesPage .adminHeadCompact{padding-block:10px;}
  .trainerSpacesPage .trainerSpacesWorkspace{padding:12px;}
  .trainerFollowupToolbar{padding:7px 10px;}
  .trainerFollowupToolbar>div:first-child{display:flex;gap:10px;align-items:center;}
  .trainerFollowupToolbar p{margin:0;}
  .trainerSpaceFilters{padding-top:8px;}
}

.trainerCardMain{display:grid;gap:8px;color:inherit;text-decoration:none}.trainerLastEmail{display:block;margin-top:10px;font-size:12px;color:var(--blue,#1552a5)}.followupProgramReason{display:block;max-width:260px;font-size:12px}.followupDialog table{width:100%;border-collapse:collapse}.followupDialog td,.followupDialog th{padding:10px;text-align:left;border-bottom:1px solid #dde3eb}.followupDialog td button{margin:4px;padding:6px;cursor:pointer}

/* Follow-up email previews and date ranges. */
.followupEmailPreview { margin:24px 0; }
.followupEmailPreview h3 { margin-bottom:16px; }
.followupEmailPreview .followupRange { margin-bottom:12px; flex-wrap:wrap; }
.followupEmailPreview .followupRange > label { min-width:140px; font-size:13px; font-weight:600; }
.followupEmailSubject { padding:16px 20px; border:1px solid #dce4ed; border-radius:10px 10px 0 0; display:flex; gap:14px; background:#fff; font-size:14px; }
.followupEmailSubject > span { color:#61728a; }
.followupEmailFrame { display:block; width:100%; height:720px; max-height:75dvh; border:1px solid #dce4ed; border-top:0; background:#eef2f6; border-radius:0 0 10px 10px; }
.followupPreviewFields { margin-top:14px; border:1px solid #dce4ed; border-radius:10px; padding:16px; background:#fafbfd; font-size:13px; }
.followupPreviewFields summary { cursor:pointer; font-weight:700; font-size:14px; }
.followupPreviewFields p { margin:12px 0; line-height:1.7; }
.followupPreviewFields table { table-layout:fixed; }
.followupPreviewFields td { overflow-wrap:anywhere; vertical-align:top; }
.followupPreviewFields h4 { margin:24px 0 8px; }
.followupPreviewFields pre { font:inherit; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.7; margin-top:16px; }
.followupPreviewRule { padding:12px 0; border-top:1px solid #dce4ed; }
.followupPreviewRule small { display:block; margin-top:4px; color:#61728a; }
.followupDateGrid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.followupDateGrid label { display:grid; gap:6px; font-size:13px; font-weight:600; }
.followupDateGrid input { min-width:0; width:100%; padding:9px 10px; border:1px solid #cbd5e1; border-radius:7px; font:inherit; color:#243e5d; background:white; }
.trainerSpaceDateFilters { flex-shrink:0; border:1px solid #dce4ed; border-radius:8px; padding:10px 14px; font-size:13px; }
.trainerSpaceDateFilters summary { cursor:pointer; font-weight:600; }
.trainerSpaceDateForm { display:grid; gap:12px; margin-top:14px; }
@media(max-width:700px){ .followupDateGrid{grid-template-columns:repeat(2,minmax(0,1fr));}.followupEmailSubject{flex-direction:column;gap:6px;}.followupEmailPreview .followupRange{align-items:stretch;}.followupPreviewFields{padding:10px;} }

/* Pilotage lists (Demandes, Candidatures, Espace formateurs): daily statistics, « Filtres » and « Trier » windows,
   workspace as tall as the screen (the cards and the details scroll inside, see WorkspaceDock.tsx). */
.listPage .listBody { padding-block: 18px 32px; }
.adminSection.listWorkspace { margin-top: 18px; }
.appsWorkspace.listWorkspace { height: calc(100dvh - 60px); min-height: 520px; padding: 12px 14px; scroll-margin-top: 60px; border-radius: 12px; }
.listWorkspace .appsLayout { margin-top: 10px; }
.listTopBar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; flex-shrink: 0; }
.listSearch { display: flex; align-items: center; gap: 8px; flex: 1 1 300px; max-width: 560px; margin: 0; }
.listSearch label { flex: 1; min-width: 0; }
.listSearch input { width: 100%; height: 36px; padding: 0 12px; border: 1px solid #c9d4e0; border-radius: 8px; background: #fff; color: #1d2f45; font: inherit; font-size: 14px; }
.listTopBar .adminToolbar { flex: 1 1 auto; justify-content: flex-end; margin: 0; gap: 8px 12px; }
.listTopBar .adminToolbarCount { display: none; }
.listTopBar .candidatureBroadcast { margin: 0; }
.adminToolButton.toolActive { background: #fff8dc; border-color: #d6a818; color: #4a3800; }
.toolBadge { margin-left: 6px; padding: 1px 7px; border-radius: 999px; background: #f5c518; color: #172338; font-size: 10.5px; }
.listViewAi { display: inline-flex; align-items: center; gap: 6px; max-width: 360px; padding: 6px 10px; border-radius: 999px; background: #fff4bc; color: #453608; font-size: 12px; font-weight: 600; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.listViewAi i { font-style: normal; opacity: .6; }
.listWorkspace .workflowBulk { flex-shrink: 0; margin-top: 8px; border-radius: 8px; }

/* « Filtres » / « Trier » above the cards (sticky head of the card list). */
.listWorkspace .appsListHead { gap: 8px 10px; padding: 8px 2px 10px; border-bottom: 1px solid #e3e9f0; margin-bottom: 4px; }
.listWorkspace .appsListHead > strong { color: var(--navy); font-size: 13px; }
.listView { display: contents; }
.listViewBar { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-left: auto; }
.listViewButton { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 11px; border: 1px solid #c9d4e0; border-radius: 8px; background: #fff; color: #233a57; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.listViewButton:hover { border-color: #8aa2bf; background: #f6f8fb; }
.listViewButton:focus-visible, .listViewChips button:focus-visible { outline: 2px solid #1d4f91; outline-offset: 2px; }
.listViewButton.active { border-color: #d6a818; background: #fff8dc; color: #4a3800; }
.listViewButton b { min-width: 18px; padding: 0 6px; border-radius: 999px; background: #172338; color: #fff; font-size: 11px; line-height: 18px; text-align: center; }
.listViewButton span { max-width: 170px; overflow: hidden; color: #4d5f74; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.listViewPending { color: #7a8798; font-size: 12px; }
.listViewChips { display: flex; flex-basis: 100%; flex-wrap: wrap; gap: 6px; }
.listViewChips button { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 4px 9px; border: 1px solid #e3cf86; border-radius: 999px; background: #fffaf0; color: #4a3800; font: inherit; font-size: 12px; text-align: left; cursor: pointer; }
.listViewChips button:hover { border-color: #c9a227; }
.listViewChips button i { font-style: normal; opacity: .6; }
.listViewChips .listViewClear { border-color: transparent; background: none; color: #1d4f91; text-decoration: underline; }

/* Windows: filters, sort, statistics settings, list tools. */
.listDialog { width: min(880px, calc(100vw - 32px)); max-height: 90dvh; margin: auto; padding: 0; border: 1px solid #dce3eb; border-radius: 14px; color: #183451; box-shadow: 0 24px 80px #09203944; }
.listDialog[open] { display: flex; flex-direction: column; }
.listDialog::backdrop { background: #0b1f37aa; }
.listDialog > header { display: flex; flex-shrink: 0; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 22px; background: #152d47; color: #fff; }
.listDialog > header p { margin: 0; color: #ffdb4b; font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.listDialog > header h2 { margin: 4px 0 0; color: #fff; font-size: 21px; }
.listDialog > header button { padding: 7px 11px; border: 1px solid #6a7e91; border-radius: 8px; background: transparent; color: #fff; cursor: pointer; }
.listDialogBody { min-height: 0; padding: 18px 22px; overflow: auto; overscroll-behavior: contain; }
.listDialogHelp { margin: 0 0 14px; color: #586b80; font-size: 13px; line-height: 1.6; }
.listDialog > footer { display: flex; flex-shrink: 0; align-items: center; gap: 10px; padding: 12px 22px; border-top: 1px solid #dce3eb; background: #f7f9fc; }
.listDialog > footer p { flex: 1; margin: 0; color: #586b80; font-size: 12px; }
.listDialogSort { width: min(640px, calc(100vw - 32px)); }
.toolDialog { width: min(940px, calc(100vw - 32px)); }
.toolDialog .matchingBatch { border: 0; padding: 0; background: none; }

.ruleEditor { display: grid; gap: 12px; }
.ruleList { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.ruleRow { display: grid; grid-template-columns: 34px minmax(150px, 1.1fr) minmax(130px, .9fr) minmax(200px, 1.6fr) 32px; align-items: start; gap: 8px; padding: 10px; border: 1px solid #dde5ee; border-radius: 10px; background: #fff; }
.ruleRow.incomplete { border-style: dashed; background: #fffdf5; }
.ruleJoin { padding-top: 9px; color: #8a6a00; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.ruleRow select, .ruleRow input:not([type=checkbox]), .ruleAdd select, .listSavedRow input, .listSavedRow select, .statsConfigRow select, .statsCustomTools select { width: 100%; min-width: 0; height: 36px; padding: 0 10px; border: 1px solid #c9d4e0; border-radius: 7px; background: #fff; color: #1d2f45; font: inherit; font-size: 13px; }
.ruleValue { min-width: 0; }
.ruleRange, .ruleDays { display: flex; align-items: center; gap: 6px; }
.ruleRange span, .ruleDays span { flex-shrink: 0; color: #586b80; font-size: 12px; }
.ruleRemove { width: 32px; height: 36px; border: 1px solid #e0e6ee; border-radius: 7px; background: #f6f8fb; color: #7a2b2b; cursor: pointer; }
.ruleRemove:hover { background: #fbe9e9; }
.ruleHint { grid-column: 2 / -1; color: #8a6a00; font-size: 11px; }
.ruleChoices { display: grid; gap: 6px; }
.ruleChoiceTools { display: flex; align-items: center; gap: 10px; font-size: 11px; }
.ruleChoiceTools button { padding: 0; border: 0; background: none; color: #1d4f91; font: inherit; cursor: pointer; }
.ruleChoiceTools span { margin-left: auto; color: #586b80; }
.ruleChoiceList { display: grid; gap: 4px; max-height: 190px; padding: 6px 8px; overflow: auto; border: 1px solid #e3e9f0; border-radius: 7px; overscroll-behavior: contain; }
.ruleChoiceList label { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; line-height: 1.4; cursor: pointer; }
.ruleChoiceList input { flex-shrink: 0; width: 15px; height: 15px; margin-top: 2px; accent-color: #183451; }
.ruleChoiceList p { margin: 0; color: #7a8798; font-size: 12px; }
.ruleEmpty { margin: 0; padding: 14px; border: 1px dashed #cfd9e4; border-radius: 10px; color: #586b80; font-size: 13px; text-align: center; }
.ruleAdd { display: grid; gap: 6px; max-width: 380px; color: #344457; font-size: 12px; font-weight: 700; }

.listSavedViews { margin-top: 18px; padding-top: 14px; border-top: 1px solid #e3e9f0; }
.listSavedViews h3 { margin: 0 0 10px; font-size: 14px; }
.listSavedRow { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 10px; margin-bottom: 10px; }
.listSavedRow label { display: grid; flex: 1 1 240px; gap: 5px; color: #344457; font-size: 12px; font-weight: 600; }
.listSavedViews p { margin: 0; color: #17663b; font-size: 12px; }

.sortColumns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin: 0 0 16px; padding: 0; border: 0; }
.sortColumns legend, .sortDirection legend, .statsSource legend, .statsConfigRow legend { margin-bottom: 8px; padding: 0; font-size: 13px; font-weight: 700; }
.sortColumns label, .sortDirection label { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid #e0e6ee; border-radius: 8px; font-size: 13px; cursor: pointer; }
.sortColumns label.active, .sortDirection label.active { border-color: #d6a818; background: #fff8dc; }
.sortColumns input, .sortDirection input, .statsConfigRow input, .statsSource input { accent-color: #183451; }
.sortDirection { display: flex; gap: 8px; margin: 0; padding: 0; border: 0; }
.sortDirection label { flex: 1; }

.statsConfigRow { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 14px 28px; margin-bottom: 16px; }
.statsConfigRow > label { display: grid; gap: 6px; min-width: 200px; font-size: 13px; font-weight: 700; }
.statsConfigRow fieldset { display: grid; gap: 6px; margin: 0; padding: 0; border: 0; font-size: 13px; }
.statsConfigRow fieldset label { display: flex; align-items: center; gap: 8px; }
.statsSource { display: grid; gap: 8px; margin: 0 0 16px; padding: 0; border: 0; }
.statsSource label { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border: 1px solid #e0e6ee; border-radius: 9px; cursor: pointer; }
.statsSource label.active { border-color: #d6a818; background: #fff8dc; }
.statsSource input { margin-top: 3px; }
.statsSource b { display: block; font-size: 13px; }
.statsSource small { display: block; margin-top: 2px; color: #586b80; font-size: 12px; line-height: 1.5; }
.statsCustom { display: grid; gap: 12px; }
.statsCustomTools { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
.statsCustomTools label { display: grid; gap: 5px; font-size: 12px; font-weight: 600; }

/* Daily statistics above the list. */
.listStats { padding: 16px 20px 14px; border: 1px solid #dce3eb; border-radius: 12px; background: #fff; }
.listStatsHead { display: grid; grid-template-columns: minmax(220px, 1fr) auto auto; align-items: center; gap: 14px 22px; }
.listStatsTitle p { margin: 0 0 4px; color: #8a6a00; font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.listStatsTitle h2 { margin: 0; color: var(--navy); font-size: 18px; }
.listStatsTitle span { display: block; margin-top: 4px; color: #5b6b7f; font-size: 12px; line-height: 1.5; }
.listStatsKpis { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.listStatsKpis div { min-width: 108px; padding: 8px 12px; border: 1px solid #e3e9f0; border-radius: 10px; background: #f8fafc; }
.listStatsKpis dt { color: #637489; font-size: 11px; font-weight: 600; }
.listStatsKpis dd { display: flex; align-items: baseline; gap: 6px; margin: 2px 0 0; color: var(--navy); font-size: 20px; font-weight: 800; }
.listStatsKpis small { padding: 1px 6px; border-radius: 999px; font-size: 11px; font-weight: 700; }
.listStatsKpis small.up { background: #e3f4ea; color: #17663b; }
.listStatsKpis small.down { background: #fbe9e9; color: #9b2c2c; }
.listStatsActions { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.listStatsActions .adminToolButton { display: inline-flex; align-items: center; gap: 6px; }
.listStatsChart { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 8px; margin-top: 14px; }
.listStatsAxis { display: flex; flex-direction: column; justify-content: space-between; align-items: flex-end; padding: 0 0 2px; color: #7a8798; font-size: 11px; }
.listStatsPlot { position: relative; height: 170px; border-bottom: 1px solid #d5dde7; }
.listStatsPlot svg { display: block; width: 100%; height: 100%; overflow: visible; }
.listStatsPlot .grid { stroke: #edf1f5; stroke-width: 1; }
.listStatsPlot .bar { fill: #f5c518; opacity: .6; }
.listStatsPlot .bar.active { opacity: 1; }
.listStatsPlot .area { fill: #1d4f91; opacity: .08; }
.listStatsPlot .line { fill: none; stroke: #1d4f91; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.listStatsHover { position: absolute; inset: 0; display: grid; }
.listStatsCursor { position: absolute; top: 0; bottom: 0; width: 1px; background: #1d4f9166; pointer-events: none; }
.listStatsDot { position: absolute; width: 10px; height: 10px; margin: -5px 0 0 -5px; border: 2px solid #fff; border-radius: 50%; background: #1d4f91; box-shadow: 0 0 0 1px #1d4f91; pointer-events: none; }
.listStatsTip { position: absolute; top: 6px; z-index: 2; display: grid; gap: 2px; min-width: 170px; padding: 8px 10px; transform: translateX(12px); border-radius: 8px; background: #172338; color: #fff; font-size: 12px; box-shadow: 0 8px 20px #0b182a40; pointer-events: none; }
.listStatsTip.left { transform: translateX(calc(-100% - 12px)); }
.listStatsTip b { font-size: 12px; }
.listStatsTip b::first-letter { text-transform: uppercase; }
.listStatsDates, .listStatsLegend { grid-column: 2; }
.listStatsDates { display: flex; justify-content: space-between; margin-top: 4px; color: #7a8798; font-size: 11px; }
.listStatsLegend { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 6px 18px; margin-top: 8px; color: #536477; font-size: 12px; }
.listStatsLegend i { display: inline-block; margin-right: 6px; vertical-align: middle; }
.legendBar { width: 10px; height: 10px; border-radius: 2px; background: #f5c518; }
.legendLine { width: 18px; height: 3px; border-radius: 2px; background: #1d4f91; }
.listStatsLegend details { margin-left: auto; }
.listStatsLegend summary { color: #1d4f91; font-weight: 600; cursor: pointer; }
.listStatsLegend table { display: block; max-height: 240px; margin-top: 8px; overflow: auto; border-collapse: collapse; font-size: 12px; }
.listStatsLegend th, .listStatsLegend td { padding: 4px 14px 4px 0; border-bottom: 1px solid #edf1f5; text-align: right; }
.listStatsLegend th:first-child, .listStatsLegend td:first-child { text-align: left; }

/* Candidature cards: e-mail of the status (preview then confirmation) and the lock after « Espace créé ». */
.cardEmail { position: relative; z-index: 2; display: grid; gap: 6px; width: 100%; }
.cardEmail .adminToolButton { justify-self: start; height: auto; min-height: 34px; padding: 7px 12px; text-align: left; white-space: normal; }
.cardEmail p, .cardEmail small { margin: 0; font-size: 12px; }
.cardEmail .ok { color: #17663b; }
.cardEmail .error { color: #9b2c2c; }
.cardEmailState { position: relative; z-index: 2; width: 100%; margin: 0; color: #4d5f74; font-size: 12px; }
.cardEmailState.ok { color: #17663b; }
.cardEmailState.ok::before { content: "✓ "; }
.cardEmailState.warn { color: #7a5300; }
.appCardBadges .lock { background: #e8edf9; color: #304b85; }
.workflowLock { margin: 0; padding: 8px 10px; border-radius: 8px; background: #eef2fb; color: #304b85; font-size: 12px; line-height: 1.5; }
.candidatureStatusForm.compact .workflowLock { padding: 6px 8px; font-size: 11px; }

@media (min-width: 981px) {
  .trainerSpacesPage.listPage { display: block; height: auto; min-height: 0; }
  .trainerSpacesPage.listPage > .adminBody { flex: none; padding-block: 18px 32px; }
  .trainerSpacesPage.listPage .trainerSpacesWorkspace { height: calc(100dvh - 60px); min-height: 520px; margin: 18px 0 0; padding: 12px 14px; }
}
@media (max-width: 980px) {
  .appsWorkspace.listWorkspace { height: auto; min-height: 0; }
  .listStatsHead { grid-template-columns: 1fr; }
  .listStatsActions { flex-direction: row; align-items: center; }
  .ruleRow { grid-template-columns: minmax(0, 1fr) 32px; }
  .ruleRow > .ruleJoin { grid-column: 1 / -1; padding: 0; }
  .ruleRow > select, .ruleRow > .ruleValue { grid-column: 1; }
  .ruleRow > .ruleRemove { grid-column: 2; grid-row: 2; }
  .ruleHint { grid-column: 1 / -1; }
  .sortColumns { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .listStats { padding: 12px; }
  .listStatsKpis div { flex: 1; min-width: calc(50% - 4px); }
  .listStatsLegend details { margin-left: 0; }
  .listDialogBody, .listDialog > header, .listDialog > footer { padding-inline: 14px; }
  .listDialog > footer { flex-wrap: wrap; }
  .listDialog > footer p { flex-basis: 100%; }
  .sortDirection { flex-direction: column; }
  .listViewButton span { max-width: 110px; }
  .listSearch { flex-basis: 100%; max-width: none; }
}

/* Trainer opportunity selections and quotation review. */
.opportunityToolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0}
.opportunityToolbar label{display:flex;align-items:center;gap:7px}
.opportunityViews{display:flex;flex-wrap:wrap;gap:6px;flex-shrink:0}
.opportunityViews a{padding:7px 10px;border:1px solid #dce3eb;border-radius:7px;color:#334967;text-decoration:none;font-size:13px}
.opportunityViews a.active{background:#173557;border-color:#173557;color:#fff}
.opportunitiesWorkspace>.opportunityToolbar{flex-shrink:0;margin:0 0 10px}
.opportunitiesWorkspace .appDetail{padding:20px}
.opportunitiesWorkspace .trainerCardMain{color:inherit;text-decoration:none}
.opportunityQuoteDialog{width:min(1000px,95vw);max-height:90dvh;overflow:auto;border:0;border-radius:20px;padding:28px;box-shadow:0 30px 90px #081b3b55;color:#132542}
.opportunityQuoteDialog::backdrop{background:#071831ad}
.opportunityDialogHead{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.opportunityDialogHead h2{margin:0;font-size:1.35rem}
.opportunityDialogHead>button{border:0;border-radius:50%;background:#eef2f8;color:#132542;width:38px;height:38px;font-size:26px;cursor:pointer}
.opportunityMailText{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:14px;padding:16px;background:#f5f7fb;border-radius:10px;max-height:460px;overflow:auto}
.quoteDecision{display:grid;gap:12px;margin-top:20px;padding:20px;background:#f5f7fb;border-radius:14px}
.quoteDecision>label{display:grid;gap:8px}
.quoteDecision textarea,.quoteDecision select{width:100%;padding:10px;border:1px solid #d9e1eb;border-radius:8px;background:#fff}
@media(max-width:600px){.opportunityQuoteDialog{padding:18px;width:96vw}.opportunityToolbar{align-items:stretch}.opportunityToolbar>.button,.opportunityToolbar>.adminToolButton{width:100%}}
/* Devis formateurs → Envois: each e-mail as sent, or as it will leave. */
.opportunityMailFrame { display: block; width: 100%; height: 640px; max-height: 75vh; margin: 8px 0 12px; border: 1px solid #dce3eb; border-radius: 10px; background: #edf1f6; }
.msgLink { color: inherit; font-weight: 600; text-decoration: underline; overflow-wrap: anywhere; }

/* Trainer proposal (selections and missions): recap, numbered steps, formulas, files, audio, sticky summary. */
.opportunityQuoteDialog { width: min(980px, 96vw); margin: auto; padding: 0 28px 0; }
.opportunityQuoteDialog .opportunityDialogHead { position: sticky; top: 0; z-index: 4; margin: 0 -28px 18px; padding: 18px 28px 14px; background: #ffffff; border-bottom: 1px solid #e6ebf2; }
.qfRequest { padding: 18px 20px; border-radius: 14px; background: linear-gradient(135deg, #0b2a55 0%, #0d3b8c 100%); color: #ffffff; }
.qfEyebrow { margin: 0 0 6px; color: #ffd226; font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.qfRequest h3 { margin: 0 0 10px; color: #ffffff; font-size: 1.25rem; }
.qfRequest ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; padding: 0; list-style: none; }
.qfRequest li { padding: 4px 11px; border: 1px solid #ffffff40; border-radius: 999px; background: #ffffff1a; font-size: 13px; font-weight: 600; }
.qfRequest li.qfScore { border-color: #ffd226; background: #ffd226; color: #0b2a55; }
.qfRequest .quoteInstructions { margin: 0; color: #dbe6f5; font-size: 14px; line-height: 1.6; }
.qfHow { margin: 14px 0 18px; padding: 12px 14px; border-left: 4px solid #f0bc00; border-radius: 8px; background: #fff7d6; color: #4a3d05; font-size: 14px; line-height: 1.55; }
.qf { display: grid; gap: 18px; }
.qfSteps { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.qfSteps li { border: 1px solid #dde4ee; border-radius: 999px; background: #ffffff; color: #42566e; }
.qfSteps li button { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border: 0; border-radius: 999px; background: none; color: inherit; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.qfSteps li:hover { border-color: #0d3b8c; }
.qfSteps li b { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #eef2f8; color: #0b2a55; font-size: 12px; }
.qfSteps li.done { border-color: #b9e2c9; background: #effaf3; color: #17663b; }
.qfSteps li.done b { background: #2f8a5c; color: #ffffff; }
.qfSteps small { color: #8a96a6; font-weight: 600; }
.qfSection { display: grid; gap: 14px; scroll-margin-top: 90px; padding: 18px; border: 1px solid #e3e9f1; border-radius: 14px; background: #ffffff; }
.qfSection > header { display: flex; align-items: flex-start; gap: 12px; }
.qfSection > header > b { display: inline-grid; flex-shrink: 0; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #ffd226; color: #0b2a55; font-size: 15px; }
.qfSection > header h3 { margin: 2px 0 4px; color: #0b2a55; font-size: 1.05rem; }
.qfSection > header h3 small { color: #8a96a6; font-size: 12px; font-weight: 600; }
.qfSection > header p { margin: 0; color: #5f6f84; font-size: 13.5px; line-height: 1.55; }
.qfFormulas { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.qfFormula { display: grid; gap: 12px; padding: 14px; border: 1.5px solid #dde4ee; border-radius: 12px; background: #f8fafc; }
.qfFormula.on { border-color: #0d3b8c; background: #ffffff; box-shadow: 0 6px 18px #0b2a5512; }
.qfFormula > header { display: grid; gap: 2px; }
.qfFormula > header strong, .qfToggle span { color: #0b2a55; font-size: 15px; font-weight: 800; }
.qfFormula > header small { color: #5f6f84; font-size: 12.5px; }
.qf .qfToggle { display: flex; align-items: center; gap: 9px; cursor: pointer; }
.qfToggle input { width: 18px; height: 18px; accent-color: #0d3b8c; }
.qfPrices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; gap: 10px; }
.qf .qfNumber { display: grid; gap: 5px; font-size: 12.5px; font-weight: 700; color: #344457; }
.qfInput { display: flex; align-items: center; border: 1px solid #cbd6e0; border-radius: 8px; background: #ffffff; overflow: hidden; }
.qfInput:focus-within { border-color: #0d3b8c; box-shadow: 0 0 0 3px #0d3b8c22; }
.qf .qfInput input { width: 100%; min-width: 0; padding: 10px; border: 0; outline: 0; font: inherit; font-size: 15px; font-weight: 700; color: #0b2a55; }
.qfInput em { padding: 0 10px; color: #5f6f84; font-size: 12px; font-style: normal; font-weight: 600; white-space: nowrap; }
.qfNet { grid-column: 1 / -1; margin: 0; padding: 10px 12px; border-radius: 8px; background: #eef8f2; color: #285c40; font-size: 13px; line-height: 1.55; }
.qfNet strong { color: #17663b; }
.qfOff { margin: 0; color: #8a96a6; font-size: 13px; }
.qfFormats { display: flex; flex-wrap: wrap; gap: 8px; }
.qfFormats label, .qfChips label { position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border: 1.5px solid #dde4ee; border-radius: 999px; background: #ffffff; color: #344457; font-size: 13.5px; font-weight: 700; cursor: pointer; }
.qfFormats label.on, .qfChips label.on { border-color: #0d3b8c; background: #e8f0ff; color: #0b2a55; }
.qf .qfFormats input, .qf .qfChips input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.qfFormats label:focus-within, .qfChips label:focus-within { outline: 2px solid #0d3b8c; outline-offset: 2px; }
.qfChips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; }
.qfChips legend { width: 100%; margin-bottom: 8px; padding: 0; color: #344457; font-size: 13px; font-weight: 700; }
.qf .qfFrom { display: grid; gap: 5px; max-width: 240px; font-size: 12.5px; font-weight: 700; color: #344457; }
.qfFiles { display: grid; gap: 10px; }
.qf .qfDrop { position: relative; display: grid; justify-items: center; gap: 4px; padding: 22px 16px; border: 2px dashed #b9c8da; border-radius: 12px; background: #f8fafc; color: #5f6f84; text-align: center; cursor: pointer; transition: border-color .15s, background .15s; }
.qfDrop:hover, .qfDrop.over { border-color: #0d3b8c; background: #eef4ff; }
.qfDrop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.qfDrop strong { color: #0b2a55; font-size: 15px; }
.qfDrop span { font-size: 12.5px; }
.qfDropIcon { display: inline-grid; place-items: center; width: 40px; height: 40px; margin-bottom: 4px; border-radius: 50%; background: #ffd226; color: #0b2a55; font-size: 20px; font-weight: 800; }
.qfFileList { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.qfFileList li { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border: 1px solid #e3e9f1; border-radius: 9px; background: #ffffff; font-size: 13.5px; }
.qfFileList li a { flex: 1; min-width: 0; overflow: hidden; color: #0b2a55; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.qfFileList li small { color: #8a96a6; }
.qfFileList li button { border: 0; background: none; color: #9b2c2c; font: inherit; font-size: 12.5px; font-weight: 700; cursor: pointer; }
.qfFileList li.pending { color: #5f6f84; font-style: italic; }
.qfVoice { display: grid; gap: 12px; padding: 14px 16px; border: 1px solid #f0d77c; border-radius: 12px; background: #fffbea; }
.qfVoice.recording { border-color: #e05252; background: #fff1f1; }
.qfVoiceHead { display: flex; gap: 12px; align-items: flex-start; }
.qfVoiceIcon { display: inline-grid; flex-shrink: 0; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #ffffff; color: #0d3b8c; box-shadow: 0 2px 8px #0b2a5514; }
.qfVoice.recording .qfVoiceIcon { color: #c53030; }
.qfVoiceHead strong { color: #0b2a55; font-size: 15px; }
.qfVoiceHead strong small { margin-left: 6px; padding: 2px 8px; border-radius: 999px; background: #ffd226; color: #4a3d05; font-size: 11px; }
.qfVoiceHead p { margin: 4px 0 0; color: #5f5021; font-size: 13px; line-height: 1.55; }
.qfVoiceActions, .qfVoicePlayer { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.qfVoicePlayer audio { flex: 1; min-width: 220px; height: 40px; }
.fx .qfStop { background: #c53030; }
.fx .qfStop:hover { background: #9b2c2c; }
.qfRec { color: #c53030; font-size: 13px; font-weight: 700; }
.qfLink { border: 0; background: none; padding: 0; color: #1455a3; font: inherit; font-size: 13.5px; font-weight: 700; text-decoration: underline; cursor: pointer; justify-self: start; }
.qfDescribe { padding-top: 4px; }
.qfFooter { position: sticky; bottom: 0; z-index: 3; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 6px 20px; margin: 0 -28px; padding: 14px 28px 16px; border-top: 1px solid #e3e9f1; background: #ffffffee; backdrop-filter: blur(6px); }
.qfFooter > * { grid-column: 1; }
.qfFooter > .qfSubmit { grid-column: 2; grid-row: 1 / span 3; }
.qfSummary { display: flex; flex-wrap: wrap; gap: 6px 16px; color: #42566e; font-size: 13px; }
.qfSummary b { color: #0b2a55; }
.qfSubmit { justify-self: start; min-width: 240px; padding: 13px 22px; font-weight: 800; }
.qfSaved { color: #8a96a6; font-size: 12px; }
.qfOk { color: #17663b; font-weight: 700; }
.qfThanks { display: grid; gap: 12px; justify-items: start; padding-bottom: 24px; line-height: 1.6; }
.qfCard { display: grid; gap: 8px; }
.qfCardTop { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.qfCardStatus { color: #5f6f84; font-size: 12.5px; font-weight: 700; }
.qfCardStatus.is-submitted { color: #1455a3; }
.qfCardStatus.is-accepted { color: #17663b; }
.qfCardFacts { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.qfCardFacts li { padding: 3px 10px; border-radius: 999px; background: #eef2f8; color: #344457; font-size: 12.5px; font-weight: 600; }
.qfCard .fxBtn { justify-self: start; }
.quoteMedia { display: grid; gap: 12px; margin: 10px 0; padding: 12px 14px; border: 1px solid #f0d77c; border-radius: 10px; background: #fffbea; }
.quoteMedia ul { margin: 6px 0 0; padding-left: 18px; }
.quoteMedia audio { display: block; width: 100%; max-width: 420px; margin: 6px 0; }
@media (max-width: 640px) {
  .opportunityQuoteDialog { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; padding: 0 14px; border-radius: 0; }
  .opportunityQuoteDialog .opportunityDialogHead, .qfFooter { margin-inline: -14px; padding-inline: 14px; }
  .opportunityQuoteDialog .opportunityDialogHead { padding-block: 12px 10px; }
  .opportunityQuoteDialog .opportunityDialogHead h2 { font-size: 1.15rem; }
  .qfRequest { padding: 14px 16px; }
  .qfPrices { gap: 8px; }
  .qf .qfInput input { padding: 9px 8px; }
  .qfInput em { padding: 0 8px 0 0; }
  .qfSection { padding: 14px; }
  .qfFooter { grid-template-columns: 1fr; padding-block: 10px 12px; }
  .qfFooter > .qfSubmit { grid-column: 1; grid-row: auto; width: 100%; }
  .qfSummary { font-size: 12px; }
  .qfSaved { display: none; }
}


/* Tâches n8n (Pilotage → Tâches n8n): task cards, facts, executions, produced offers, connection steps, settings. */
.autoCreate { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.autoCreate input, .autoCreate select { min-height: 38px; padding: 7px 10px; border: 1px solid #cbd6e0; border-radius: 8px; background: #ffffff; font: inherit; font-size: 14px; }
.autoCreate input { min-width: 220px; }
.autoTopHint { margin: 0; color: #5f6f84; font-size: 13px; }
.autoFacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; margin: 4px 0 12px; }
.autoFacts > div { display: grid; gap: 2px; padding: 10px 12px; border: 1px solid #e3e9f1; border-radius: 10px; background: #f8fafc; }
.autoFacts b { color: #5f6f84; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.autoFacts span { color: #0b2a55; font-size: 15px; font-weight: 700; }
.autoNotice { margin: 0 0 12px; padding: 10px 12px; border-left: 4px solid #f0bc00; border-radius: 8px; background: #fff7d6; color: #4a3d05; font-size: 14px; }
.autoPill { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; background: #eef2f8; color: #344457; font-size: 12px; font-weight: 700; white-space: nowrap; }
.autoPill-ok { background: #e3f5ea; color: #17663b; }
.autoPill-warn { background: #fff3cd; color: #7a5b00; }
.autoPill-bad { background: #fde2e2; color: #9b2c2c; }
.autoPill-info { background: #e3edff; color: #1455a3; }
.autoRuns { display: grid; gap: 8px; }
.autoRun { margin: 0; padding: 0; border-radius: 10px; }
.autoRun > summary { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 12px 14px; cursor: pointer; font-size: 14px; color: #344457; }
.autoRun > summary strong { color: #0b2a55; }
.autoRun[open] > summary { border-bottom: 1px solid #e3e9f1; }
.autoRun > :not(summary) { margin-inline: 14px; }
.autoRunMeta { color: #5f6f84; font-size: 13px; }
.autoOutputs { display: grid; gap: 6px; margin: 10px 0 14px; padding: 0; list-style: none; }
.autoOutput { display: flex; align-items: flex-start; gap: 10px; padding: 9px 12px; border: 1px solid #e3e9f1; border-radius: 10px; background: #ffffff; }
.autoOutput > div { display: grid; flex: 1; gap: 2px; min-width: 0; }
.autoOutput strong { color: #0b2a55; font-size: 14px; }
.autoOutput small { color: #5f6f84; font-size: 12.5px; }
.autoOutput small.error { color: #9b2c2c; }
/* LinkedIn posts: the first page of the visual, the text as read on LinkedIn. */
.autoLinkedin { align-items: stretch; }
.autoLinkedinThumb { position: relative; flex: 0 0 96px; display: block; border-radius: 8px; overflow: hidden; border: 1px solid #e3e9f1; background: #f2f5fa; align-self: flex-start; }
.autoLinkedinThumb img { display: block; width: 96px; height: 120px; object-fit: cover; }
.autoLinkedinThumb span { position: absolute; right: 4px; bottom: 4px; padding: 1px 6px; border-radius: 6px; background: rgba(11, 42, 85, 0.85); color: #ffffff; font-size: 11px; font-weight: 700; }
.autoLinkedin > div > .autoPill { justify-self: start; white-space: normal; }
.autoLinkedin strong, .autoLinkedin small, .autoLinkedinText { overflow-wrap: anywhere; }
.autoLinkedin .autoOutputActions { align-self: flex-start; }
.autoLinkedin details summary { cursor: pointer; color: #1f5fbf; font-size: 12.5px; font-weight: 600; }
.autoLinkedinText { margin: 6px 0 0; white-space: pre-wrap; color: #22324a; font-size: 13px; line-height: 1.5; max-width: 72ch; }
@media (max-width: 640px) { .autoLinkedin { flex-wrap: wrap; } .autoLinkedin > div { flex: 1 1 calc(100% - 110px); } .autoLinkedin .autoOutputActions { width: 100%; } }
/* LinkedIn campaigns: the ZIP of an execution, the posts per weekday. */
.autoCampaignZip { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 8px 0 12px; padding: 10px 12px; border: 1px solid #dbe5f2; border-radius: 10px; background: #f6f9fd; color: #22324a; font-size: 13.5px; }
.autoCampaignZip > span:nth-child(2) { flex: 1; min-width: 180px; }
.autoForm .autoWeekPosts { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.autoWeekPosts legend { grid-column: 1 / -1; margin-bottom: 6px; color: #344457; font-size: 13px; font-weight: 700; }
.autoWeekPosts label { display: grid; gap: 4px; justify-items: center; padding: 6px 4px; border: 1px solid #e3e9f1; border-radius: 10px; background: #ffffff; }
.autoWeekPosts label span { font-size: 12.5px; font-weight: 700; color: #22324a; }
.autoForm .autoWeekPosts input { width: 100%; max-width: 64px; min-width: 0; padding: 6px 4px; text-align: center; }
@media (max-width: 640px) { .autoForm .autoWeekPosts { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.autoOutputActions { display: flex; flex-wrap: wrap; gap: 6px; }
.autoConnect ol { display: grid; gap: 14px; margin: 0; padding-left: 20px; }
.autoConnect li > strong { color: #0b2a55; }
.autoConnect li p { margin: 4px 0 8px; color: #42566e; font-size: 14px; line-height: 1.55; }
.autoConnect code { padding: 1px 6px; border-radius: 6px; background: #eef2f8; font-size: 12.5px; overflow-wrap: anywhere; }
.autoExport { display: flex; flex-wrap: wrap; gap: 8px; }
.autoForm fieldset { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; border: 0; }
.autoForm label { display: grid; gap: 5px; color: #344457; font-size: 13px; font-weight: 700; }
.autoForm input, .autoForm select { padding: 9px 10px; border: 1px solid #cbd6e0; border-radius: 8px; background: #ffffff; font: inherit; font-size: 14px; font-weight: 500; }
.autoForm .span2 { grid-column: 1 / -1; }
.autoForm .autoDays { display: flex; flex-wrap: wrap; gap: 6px; }
.autoDays legend { width: 100%; margin-bottom: 6px; color: #344457; font-size: 13px; font-weight: 700; }
.autoForm .autoDays label { position: relative; display: inline-flex; padding: 6px 12px; border: 1.5px solid #dde4ee; border-radius: 999px; cursor: pointer; }
.autoForm .autoDays label.on { border-color: #0d3b8c; background: #e8f0ff; color: #0b2a55; }
.autoForm .autoDays input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.autoHint { margin: 0; padding: 10px 12px; border-radius: 8px; background: #eef8f2; color: #285c40; font-size: 13px; line-height: 1.55; }
@media (max-width: 640px) { .autoForm fieldset { grid-template-columns: 1fr; } }

/* Devis et opportunités on the list layout: toolbar on the checked spaces, help, tab hints, card checkbox. */
.opportunityBar { display: grid; gap: 6px; flex: 1 1 100%; }
.opportunityBar .opportunityToolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.opportunitySelected { color: #42566e; font-size: 13.5px; font-weight: 600; }
.opportunityGlobal { display: inline-flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
.linkButton { margin-left: 4px; padding: 0; border: 0; background: none; color: #1455a3; font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }
.opportunityHelp { flex: 1 1 100%; color: #42566e; font-size: 13.5px; }
.opportunityHelp summary { cursor: pointer; font-weight: 700; color: #1455a3; }
.opportunityHelp p { margin: 6px 0 0; line-height: 1.55; }
.opportunityHint { margin: 0 0 10px; padding: 9px 12px; border-radius: 8px; background: #f3f6fb; color: #42566e; font-size: 13.5px; }
.opportunityCard { position: relative; }
.opportunityCard > .adminCheck { position: absolute; z-index: 2; top: 14px; left: 14px; }
.opportunityCard .appCardTop { padding-left: 28px; }

/* « Parcours du formateur »: candidature → CV → space → selections and quotations → missions, on every trainer panel. */
.journeyStrip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; margin: 4px 0 14px; border: 1px solid #dde4ee; border-radius: 12px; background: #ffffff; overflow: hidden; }
.journeyStep { position: relative; display: grid; align-content: start; gap: 2px; padding: 10px 12px 10px 14px; border-right: 1px solid #e6ebf2; color: #344457; text-decoration: none; }
.journeyStep:last-child { border-right: 0; }
.journeyStep small { color: #8a96a6; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.journeyStep b { color: #0b2a55; font-size: 14px; overflow-wrap: anywhere; }
.journeyStep span { color: #5f6f84; font-size: 12px; line-height: 1.4; }
a.journeyStep:hover { background: #f3f7ff; }
a.journeyStep:hover b { color: #1455a3; text-decoration: underline; }
.journeyStep.current { background: #0b2a55; }
.journeyStep.current small { color: #ffd226; }
.journeyStep.current b { color: #ffffff; }
.journeyStep.current span { color: #c9d6ea; }
.journeyStep.empty b { color: #8a96a6; }
.journeyDossier { display: grid; gap: 10px; }
.journeyApplication > summary { display: flex; flex-wrap: wrap; gap: 6px 12px; padding: 12px 14px; cursor: pointer; color: #42566e; font-size: 14px; }
.journeyApplication > summary strong { color: #0b2a55; }
.journeyApplication > :not(summary) { margin-inline: 14px; }
.journeyApplication[open] > summary { border-bottom: 1px solid #e3e9f1; margin-bottom: 10px; }
.journeyOffer { color: #42566e; font-size: 13.5px; }
.journeyCv { width: calc(100% - 28px); min-height: 70vh; margin-bottom: 14px; }
.journeyCvLink { display: inline-block; margin-bottom: 14px; font-weight: 700; }
@media (max-width: 900px) {
  .journeyStrip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .journeyStep { border-bottom: 1px solid #e6ebf2; }
}

/* Tâches n8n: pages produced, Google indexing and visits. */
.autoReport { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 12px; }
.autoReport .adminSection { display: grid; gap: 10px; align-content: start; padding: 14px 16px; }
.autoReport h3 { margin: 0; color: #0b2a55; font-size: 15px; }
.autoIndexCounts { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 0; padding: 0; list-style: none; }
.autoIndexCounts li { display: inline-flex; align-items: center; gap: 6px; color: #42566e; font-size: 13px; }
.autoIndexCounts b { color: #0b2a55; font-size: 16px; }
.autoTop { margin: 0; padding-left: 18px; font-size: 13.5px; line-height: 1.6; }
.autoTop small { color: #5f6f84; }
.autoFilters { flex-wrap: wrap; overflow-x: visible; margin-bottom: 10px; }
.autoDetail { min-width: 0; }
.autoVisits { color: #285c40 !important; font-weight: 600; }
@media (max-width: 900px) { .autoReport { grid-template-columns: 1fr; } }

/* Guides carrière et formation (/guides). */
.guideFilters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.guideFilters a { padding: 8px 14px; border: 1.5px solid var(--line); border-radius: 999px; background: var(--white); color: var(--navy); font-size: 14px; font-weight: 700; text-decoration: none; }
.guideFilters a:hover { border-color: var(--navy); }
.guideFilters a.active { border-color: var(--navy); background: var(--navy); color: var(--white); }
.guideTechFilters { margin-bottom: 26px; }
.guideTechFilters a { padding: 6px 12px; font-size: 13px; }
.guideCardKind { margin: 0 0 8px; color: var(--blue-dark); font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.guideMore { margin: 22px 0 0; }
.guideDetail section + section { margin-top: 8px; }
.guideProgrammes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.guideProgramme { display: grid; gap: 8px; align-content: start; padding: 18px; border: 1px solid var(--line); background: var(--white); box-shadow: 0 8px 22px rgba(13, 51, 72, .04); }
.guideProgramme.isFormaGroup { border: 2px solid var(--yellow); background: #fffbea; }
.guideProgramme header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.guideProgramme strong { color: var(--navy); font-size: 16px; line-height: 1.35; }
.guideProgramme p { margin: 0; color: var(--ink); line-height: 1.6; }
.guideProgramme .offerTags { margin: 0; }
.guideBadge { flex-shrink: 0; padding: 3px 10px; border-radius: 999px; background: var(--yellow); color: var(--navy); font-size: 12px; font-weight: 800; }
.guideProgramme p.guideProvider { color: var(--muted); font-size: 14px; font-weight: 700; }
.guideFormaGroup { padding: 26px; border: 1px solid #d8e4fb; background: #f3f7ff; }
.guideOurFormations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 16px 0; }
.guideOurFormation { display: grid; gap: 4px; padding: 14px 16px; border: 1px solid var(--line); background: var(--white); color: var(--navy); text-decoration: none; transition: transform .15s, box-shadow .15s; }
.guideOurFormation:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(13, 51, 72, .08); }
.guideOurFormation strong { font-size: 15px; }
.guideOurFormation span { color: var(--blue-dark); font-size: 13px; font-weight: 700; }
.guideOurFormation small { color: var(--muted); font-size: 13px; line-height: 1.5; }
.guideTrainers { margin: 18px 0; }
.guideFaq details { padding: 14px 0; border-bottom: 1px solid var(--line); }
.guideFaq summary { color: var(--navy); font-size: 16px; font-weight: 800; cursor: pointer; }
.guideFaq p { margin: 10px 0 0; line-height: 1.7; }
.guideSources { margin: 0; padding-left: 20px; line-height: 1.9; }
.guideSources a { color: var(--blue-dark); font-weight: 600; }
.guideSources small { color: var(--muted); }
.guideAside .offerEssentials p { margin: 8px 0 14px; color: #c9d6ea; font-size: 14px; line-height: 1.6; }
.guideToc ol, .guideRelatedList { margin: 10px 0 0; padding-left: 18px; font-size: 14px; line-height: 1.65; }
.guideToc a, .guideRelatedList a { color: #dbe6f5; text-decoration: none; }
.guideToc a:hover, .guideRelatedList a:hover { color: var(--yellow); text-decoration: underline; }
.guideCta .button { width: 100%; justify-content: center; }
.guideCta .textLink { display: inline-block; margin-top: 12px; color: var(--yellow); }
@media (max-width: 760px) {
  .guideProgrammes, .guideOurFormations { grid-template-columns: 1fr; }
  .guideFormaGroup { padding: 18px; }
}

/* Vérification de l’indexation (Tâches n8n): live indicator, summary, sections, pages with their issues. */
.autoLive { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: #e3f5ea; color: #17663b; font-size: 12px; font-weight: 700; white-space: nowrap; }
.autoLive i { width: 8px; height: 8px; border-radius: 50%; background: #2f8a5c; animation: autoPulse 1.6s ease-in-out infinite; }
@keyframes autoPulse { 0%, 100% { opacity: 1; } 50% { opacity: .3; } }
@media (prefers-reduced-motion: reduce) { .autoLive i { animation: none; } }
.autoKpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 6px 0 14px; }
.autoKpi { display: grid; align-content: start; gap: 4px; padding: 12px 14px; border: 1px solid #e3e9f1; border-radius: 12px; background: #f8fafc; color: #0b2a55; text-decoration: none; }
a.autoKpi:hover { border-color: #0d3b8c; box-shadow: 0 6px 16px #0b2a5512; }
.autoKpi.wide { grid-column: span 2; }
.autoKpi b { color: #5f6f84; font-size: 11.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.autoKpi strong { font-size: 24px; line-height: 1.1; }
.autoKpi small { color: #5f6f84; font-size: 12.5px; }
.autoKpi.tone-ok strong { color: #17663b; }
.autoKpi.tone-warn strong { color: #7a5b00; }
.autoKpi.tone-bad strong { color: #9b2c2c; }
.autoKpi.tone-info strong { color: #1455a3; }
.autoStateBar { display: flex; height: 10px; overflow: hidden; border-radius: 999px; background: #eef2f8; }
.autoStateBar span { display: block; height: 100%; }
.autoStateBar-indexed { background: #2f8a5c; }
.autoStateBar-watch { background: #5b8def; }
.autoStateBar-not_indexed { background: #f0bc00; }
.autoStateBar-problem { background: #d64545; }
.autoStateBar-unchecked { background: #c8d2df; }
.autoSectionsHead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.autoSectionGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.autoSection { display: grid; align-content: start; gap: 8px; padding: 14px 16px; border: 1px solid #e3e9f1; border-radius: 12px; background: #ffffff; }
.autoSection.off { opacity: .6; }
.autoSection header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.autoSection h3 { margin: 0; color: #0b2a55; font-size: 15px; }
.autoSection header span { color: #5f6f84; font-size: 13px; font-weight: 700; }
.autoSection p { margin: 0; color: #5f6f84; font-size: 12.5px; }
.autoSectionCounts { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.autoSectionCounts a { text-decoration: none; }
.autoPagesBar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 6px; }
.autoIndexSearch { flex: 1 1 320px; }
.autoIndexRows { display: grid; gap: 8px; margin: 8px 0; padding: 0; list-style: none; }
.autoIndexRow { display: grid; gap: 5px; padding: 10px 14px; border: 1px solid #e3e9f1; border-left: 4px solid #c8d2df; border-radius: 10px; background: #ffffff; }
.autoIndexRow.state-indexed { border-left-color: #2f8a5c; }
.autoIndexRow.state-watch { border-left-color: #5b8def; }
.autoIndexRow.state-not_indexed { border-left-color: #f0bc00; }
.autoIndexRow.state-problem { border-left-color: #d64545; }
.autoIndexRow small { color: #5f6f84; font-size: 12.5px; line-height: 1.5; }
.autoIndexIssues, .pubIndexIssues { display: flex; flex-wrap: wrap; gap: 6px; }
.autoIndexMain { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.autoIndexMain a { color: #0b2a55; font-weight: 700; overflow-wrap: anywhere; }
.pubIndexIssue { padding: 3px 9px; border-radius: 6px; font-size: 12px; font-weight: 700; line-height: 1.35; }
.pubIndexIssue-bad { background: #fde2e2; color: #9b2c2c; }
.pubIndexIssue-warn { background: #fff3cd; color: #7a5b00; }
.pubIndexIssue-info { background: #e3edff; color: #1455a3; }
.pubIndexIssue-ok { background: #e3f5ea; color: #17663b; }
.pubIndexIssue-muted { background: #eef2f8; color: #5f6f84; }
.pubIndex .pubIndexIssues { margin-bottom: 4px; }
.autoRunPaths { display: grid; gap: 4px; margin: 8px 0 14px; padding: 0; list-style: none; font-size: 13px; }
.autoRunPaths li { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.autoRunPaths a { color: #0b2a55; overflow-wrap: anywhere; }
.autoPager { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 10px 0; color: #42566e; font-size: 13.5px; }
@media (max-width: 1100px) { .autoKpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .autoKpis { grid-template-columns: 1fr; } .autoKpi.wide { grid-column: auto; } }

/* Tâches n8n · thèmes des guides */
.autoThemes { display: grid; gap: 14px; }
.autoThemesHead { display: grid; gap: 10px; justify-items: start; }
.autoThemesHead .autoKpis { width: 100%; margin: 0; }
.autoThemeList { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.autoTheme { display: grid; gap: 8px; padding: 14px 16px; border: 1px solid #e3e9f1; border-radius: 12px; background: #ffffff; }
.autoTheme.off { background: #f8fafc; opacity: .8; }
.autoTheme header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.autoTheme h3 { margin: 0; color: #0b2a55; font-size: 15px; }
.autoTheme header p { margin: 3px 0 0; color: #5f6f84; font-size: 13px; line-height: 1.5; }
.autoTheme details { font-size: 13px; color: #344457; }
.autoTheme details summary { cursor: pointer; color: #1455a3; font-weight: 700; }
.autoTheme details p { margin: 6px 0 0; line-height: 1.5; }
.autoTheme details a { color: #1455a3; }
.autoThemeOutline { margin: 8px 0 0; padding-left: 20px; line-height: 1.5; }
.autoTheme footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.autoTheme footer small { color: #5f6f84; font-size: 12.5px; }

/* Tâches n8n · nouvelles formations et technologies */
.autoRebuild { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 14px; padding: 12px 14px; border: 1px solid #cfe0f7; border-radius: 10px; background: #f3f7ff; color: #24405f; font-size: 13.5px; }
.autoRebuild p { margin: 0; flex: 1 1 320px; line-height: 1.5; }
.autoRebuild.warn { border-color: #f0bc00; background: #fff8e1; color: #6b5000; }
.autoRebuild a { color: #1455a3; font-weight: 700; }
.autoProposals { display: grid; gap: 12px; margin: 8px 0; padding: 0; list-style: none; }
.autoProposal { display: grid; gap: 8px; padding: 14px 16px; border: 1px solid #e3e9f1; border-left: 4px solid #f0bc00; border-radius: 10px; background: #ffffff; }
.autoProposal.state-approved { border-left-color: #2f8a5c; }
.autoProposal.state-rejected { border-left-color: #c8d2df; background: #f8fafc; }
.autoProposal header { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.autoProposal h3 { flex: 1 1 220px; margin: 0; color: #0b2a55; font-size: 16px; }
.autoProposal p { margin: 0; color: #344457; font-size: 13.5px; line-height: 1.55; }
.autoProposal p.autoProposalScope { color: #5f6f84; font-size: 13px; font-weight: 700; }
.autoProposalGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; padding: 10px 12px; border-radius: 8px; background: #f8fafc; }
.autoProposalGrid b { color: #0b2a55; font-size: 12.5px; text-transform: uppercase; letter-spacing: .04em; }
.autoProposalGrid ul { margin: 4px 0 0; padding-left: 18px; color: #344457; font-size: 13px; line-height: 1.5; }
.autoProposalGrid p { margin: 2px 0 6px; }
.autoChips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.autoChips li { padding: 3px 9px; border-radius: 999px; background: #eef2f8; color: #24405f; font-size: 12.5px; font-weight: 600; }
.autoProposalSources a { color: #1455a3; }
.autoProposal footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.autoProposal footer small { color: #5f6f84; font-size: 12.5px; }
@media (max-width: 640px) { .autoProposalGrid { grid-template-columns: 1fr; } }

/* Guides · tableau comparatif et certificat FormaGroup */
.guideTableWrap { overflow-x: auto; border: 1px solid var(--line); background: var(--white); }
.guideTable { width: 100%; min-width: 520px; border-collapse: collapse; font-size: 15px; line-height: 1.5; }
.guideTable th, .guideTable td { padding: 11px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.guideTable thead th { background: var(--navy); color: var(--white); font-size: 14px; }
.guideTable tbody th { color: var(--navy); }
.guideTable tbody tr:nth-child(even) { background: #f7f9fc; }
.guideCertificate { display: flex; gap: 14px; align-items: flex-start; margin: 16px 0; padding: 16px 18px; border: 2px solid var(--yellow); background: #fffbea; }
.guideCertificate svg { flex-shrink: 0; width: 28px; height: 28px; color: var(--navy); }
.guideCertificate strong { color: var(--navy); font-size: 16px; }
.guideCertificate p { margin: 4px 0 0; color: var(--ink); line-height: 1.6; }
/* The task kinds have long names: the selector never pushes the page sideways. */
.autoCreate select { min-width: 0; max-width: 100%; text-overflow: ellipsis; }
@media (max-width: 640px) { .autoCreate input, .autoCreate select { width: 100%; min-width: 0; } }

/* Tâches n8n · logo d'une technologie proposée */
.autoProposalLogo { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 8px; background: #f8fafc; }
.autoProposalLogo .techLogo { display: inline-grid; place-items: center; flex-shrink: 0; width: 56px; height: 56px; border: 1px solid #e3e9f1; border-radius: 10px; background: #ffffff; }
.autoProposalLogo .techLogo img { width: 44px; height: 44px; object-fit: contain; }
.autoProposalLogo .techLogo b { color: #0b2a55; font-size: 16px; }
.autoProposalLogo > div { display: grid; gap: 6px; flex: 1; min-width: 0; }
.autoProposalLogo small { color: #5f6f84; font-size: 12.5px; }
.autoLogoForm { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.autoLogoForm input { flex: 1 1 220px; min-width: 0; padding: 6px 9px; border: 1px solid #cbd6e0; border-radius: 7px; font: inherit; font-size: 13px; }

/* Présentation tab of a demande (builder): the plan, then its sections. */
.deckBuilder { display: grid; gap: 16px; }
.deckStep { display: grid; gap: 12px; padding: 16px; border: 1px solid #e2e8f0; border-radius: 14px; background: #fff; }
.deckStep > header { display: flex; align-items: center; gap: 12px; }
.deckStep > header div { display: grid; gap: 2px; }
.deckStep > header small { color: #64748b; font-size: 12.5px; }
.deckStepNumber { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #0b2a55; color: #ffd226; font-weight: 800; }
.deckPlan, .deckSections { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.deckPlanItem details { border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc; }
.deckPlanItem summary { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 10px 12px; cursor: pointer; }
.deckPlanItem summary small { color: #64748b; font-size: 12px; }
.deckPlanIndex { display: inline-grid; place-items: center; min-width: 24px; height: 24px; border-radius: 8px; background: #e7eefb; color: #0b2a55; font-size: 12px; font-weight: 800; }
.deckPlanFields { display: grid; gap: 10px; padding: 0 12px 12px; }
.deckPlanItemActions { display: flex; flex-wrap: wrap; gap: 8px; }
.deckLinks { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0; font-size: 12.5px; }
.deckLinks a { color: var(--blue); overflow-wrap: anywhere; }
.deckSections li { border: 1px solid #e2e8f0; border-radius: 12px; }
.deckSections li.active { border-color: var(--blue); box-shadow: 0 0 0 2px #e8f0ff; }
.deckSections li > button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border: 0; background: none; text-align: left; font: inherit; cursor: pointer; }
.deckSections li > button > div { display: grid; gap: 2px; flex: 1; min-width: 0; }
.deckSections li > div { display: grid; gap: 2px; flex: 1; min-width: 0; }
.deckSections li small { color: #64748b; font-size: 12px; }
.deckSectionStatus-slides { background: #e7f7ef !important; color: #0b7a4b !important; }
.deckSectionStatus-content { background: #fff4d6 !important; color: #8a6100 !important; }
.deckSectionStatus-working { background: #eef4ff !important; color: #1e3a8a !important; }
.deckSection { display: grid; gap: 12px; padding: 14px; border: 1px solid #cbd5e1; border-radius: 14px; background: #f8fafc; }
.deckSectionHead { display: flex; align-items: center; gap: 10px; }
.deckSectionHead div { display: grid; gap: 2px; }
.deckSectionHead small { color: #64748b; font-size: 12.5px; }
.deckSectionObjective { margin: 0; font-size: 13px; color: #334155; }
.deckSectionTabs { display: flex; gap: 6px; border-bottom: 1px solid #e2e8f0; }
.deckSectionTabs button { padding: 8px 14px; border: 0; border-bottom: 3px solid transparent; background: none; font: inherit; font-size: 13px; font-weight: 700; color: #64748b; cursor: pointer; }
.deckSectionTabs button.active { color: #0b2a55; border-bottom-color: #ffd226; }
.deckSectionStep { display: grid; gap: 12px; }
.deckSectionStep .materialActions small a { margin-left: 8px; color: var(--blue); }
.deckPair { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(220px, 2fr) auto; gap: 10px; align-items: end; }
.deckImageRow { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: start; }
.deckImage { display: grid; gap: 8px; padding: 10px; border: 1px dashed #cbd5e1; border-radius: 12px; background: #fff; }
.deckImageCurrent { display: grid; grid-template-columns: 160px 1fr; gap: 12px; align-items: start; }
.deckImageCurrent img, .deckImageEmpty { width: 160px; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 8px; background: #eef2f7; }
.deckImageEmpty { display: grid; place-items: center; color: #8a96a6; font-size: 12px; }
.deckImageCurrent > div { display: grid; gap: 6px; }
.deckImageCurrent small { color: #64748b; font-size: 11.5px; }
.deckImageActions { display: flex; flex-wrap: wrap; gap: 8px; }
.deckImagePanel { display: grid; gap: 8px; padding-top: 8px; border-top: 1px solid #e2e8f0; }
.deckImageSearch { display: flex; gap: 8px; }
.deckImageSearch input { flex: 1; min-width: 0; border: 1px solid #cbd5e1; border-radius: 9px; padding: 7px 10px; font: inherit; font-size: 13px; }
.deckImageResults, .deckImageChoices { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 6px; align-items: center; }
.deckImageChoices > span { grid-column: 1 / -1; font-size: 12px; font-weight: 700; color: #334155; }
.deckImageResults button, .deckImageChoices button { padding: 0; border: 2px solid transparent; border-radius: 8px; background: none; cursor: pointer; overflow: hidden; }
.deckImageResults button:hover, .deckImageChoices button:hover { border-color: var(--blue); }
.deckImageResults img, .deckImageChoices img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.deckImageFile { display: grid; gap: 4px; font-size: 12.5px; color: #334155; }
.deckSlides { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.deckSlides li.editing { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(280px, 1.2fr) minmax(280px, 1fr); gap: 14px; align-items: start; }
.deckSlideThumb { display: block; width: 100%; padding: 0; border: 2px solid transparent; border-radius: 10px; background: none; cursor: pointer; }
.deckSlides li.editing .deckSlideThumb, .deckSlideThumb:hover { border-color: var(--blue); }
.deckSlideEdit { display: grid; gap: 10px; }
.deckAddLayout { height: 34px; border: 1px solid var(--blue); border-radius: 0; padding: 0 10px; font: inherit; font-size: 12px; font-weight: 700; color: var(--blue); background: #fff; }
@media (max-width: 900px) { .deckSlides li.editing, .deckPair, .deckImageCurrent { grid-template-columns: 1fr; } }
/* A slide at 16:9: every size in container units (the same slide at any width). */
.dsl { container-type: inline-size; position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 8px; background: #fff; color: #23324a; font-family: Poppins, system-ui, sans-serif; text-align: left; box-shadow: 0 1px 3px rgba(7, 26, 51, .18); }
.dslBody { position: absolute; inset: 6cqw 6cqw 8cqw; display: flex; flex-direction: column; gap: 1.6cqw; }
.dsl h3 { margin: 0; color: #0b2a55; font-size: 4.2cqw; line-height: 1.15; font-weight: 700; }
.dsl p { margin: 0; font-size: 2.1cqw; line-height: 1.45; }
.dsl ul, .dsl ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 1.1cqw; font-size: 2.1cqw; line-height: 1.35; }
.dsl ul li { position: relative; padding-left: 2.6cqw; }
.dsl ul li::before { content: ""; position: absolute; left: 0; top: .55em; width: 1.1cqw; height: 1.1cqw; background: #ffd226; }
.dslLead { color: #5f6f84; }
.dslFooter { position: absolute; left: 6cqw; right: 6cqw; bottom: 2.6cqw; display: flex; justify-content: space-between; font-size: 1.35cqw; color: #5f6f84; }
.dslSplit { flex-direction: row; gap: 4cqw; }
.dslSplit .dslText { flex: 1.1; display: flex; flex-direction: column; gap: 1.6cqw; min-width: 0; }
.dslSplit figure { flex: 1; margin: 0; display: flex; flex-direction: column; gap: .8cqw; min-width: 0; }
.dslSplit figure img, .dslNoImage { width: 100%; flex: 1; min-height: 0; object-fit: cover; border-radius: 1.2cqw; background: #f4f7fb; }
.dslNoImage { display: grid; place-items: center; color: #8a96a6; font-size: 1.8cqw; border: .2cqw dashed #cbd5e1; }
.dslSplit figcaption { font-size: 1.2cqw; color: #5f6f84; }
.dslCaption { font-size: 1.8cqw !important; color: #0b5cff; font-style: italic; }
.dsl-title { background: #0b2a55; color: #fff; }
.dsl-title .dslBody { justify-content: center; }
.dsl-title h3 { color: #fff; font-size: 5.6cqw; max-width: 70%; }
.dsl-title p { color: #dbe6f7; max-width: 62%; font-size: 2.3cqw; }
.dsl-title .dslEyebrow { color: #ffd226; font-size: 1.9cqw; font-weight: 700; letter-spacing: .2cqw; text-transform: uppercase; }
.dsl-title .dslCover { position: absolute; right: -6cqw; top: -6cqw; bottom: -8cqw; width: 34cqw; height: auto; object-fit: cover; opacity: .9; clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%); }
.dsl-title .dslFooter { color: rgba(255, 255, 255, .7); }
.dsl-message { background: #ffd226; }
.dsl-message .dslFooter { color: #0b2a55; }
.dsl-message .dslBody { justify-content: center; }
.dsl-message h3 { font-size: 5cqw; max-width: 85%; }
.dsl-message p { font-size: 2.3cqw; max-width: 75%; color: #0b2a55; }
.dslQuote { color: #0b2a55; font-size: 12cqw; line-height: .6; font-weight: 700; }
.dslSteps { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); grid-auto-flow: column; gap: 2cqw !important; margin-top: 1cqw !important; }
.dslSteps li { display: flex; flex-direction: column; gap: .8cqw; padding: 2cqw; border-radius: 1.2cqw; background: #f4f7fb; border-top: .5cqw solid #0b5cff; }
.dslSteps b { display: inline-grid; place-items: center; width: 4cqw; height: 4cqw; border-radius: 50%; background: #0b2a55; color: #ffd226; font-size: 2cqw; }
.dslSteps strong { color: #0b2a55; font-size: 2.1cqw; }
.dslSteps span { font-size: 1.75cqw; color: #5f6f84; }
.dslColumns { display: grid; grid-template-columns: 1fr 1fr; gap: 3cqw; flex: 1; }
.dslColumns > div { display: flex; flex-direction: column; gap: 1.4cqw; padding: 2.4cqw; border-radius: 1.4cqw; background: #f4f7fb; }
.dslColumns > div:last-child { background: #e8f0ff; }
.dslColumns strong { color: #0b2a55; font-size: 2.5cqw; }

/* « Rejoindre FormaGroup » (/recrutement): tabs of the listing. */
.recruitTabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.recruitTab { padding: 8px 16px; border: 1px solid #cbd5e1; border-radius: 999px; color: var(--navy); font-weight: 700; font-size: 14px; text-decoration: none; background: #fff; }
.recruitTab:hover { border-color: var(--blue); }
.recruitTab.active { background: var(--navy); border-color: var(--navy); color: #ffd226; }

/* Pilotage → Recrutement FormaGroup. */
.recruitFilters { margin-top: 4px; }
.recruitFilters .recruitTab { padding: 5px 12px; font-size: 12.5px; }
.recruitList { display: grid; gap: 12px; }
.recruitCard { display: grid; gap: 8px; padding: 14px 16px; border: 1px solid #e2e8f0; border-left: 4px solid #cbd5e1; border-radius: 12px; background: #fff; }
.recruitCard.recruitStatus-new { border-left-color: #0b5cff; }
.recruitCard.recruitStatus-interview { border-left-color: #ffd226; }
.recruitCard.recruitStatus-hired { border-left-color: #0b7a4b; }
.recruitCard.recruitStatus-rejected { opacity: .7; }
.recruitCard header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.recruitCard header div { display: grid; gap: 2px; }
.recruitCard header b { color: var(--navy); font-size: 15px; }
.recruitCard header small { color: #64748b; font-size: 12px; }
.recruitOffer, .recruitMessage { margin: 0; font-size: 13.5px; color: #334155; }
.recruitOffer a { color: var(--blue); font-weight: 600; }
.recruitContact { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0; font-size: 13px; }
.recruitContact a { color: var(--blue); }
.recruitActions { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.recruitNote { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: end; }
.recruitNote textarea { width: 100%; box-sizing: border-box; border: 1px solid #cbd5e1; border-radius: 9px; padding: 7px 10px; font: inherit; font-size: 13px; }
.recruitOffers { display: grid; border-top: 1px solid #e2e8f0; }
.recruitOfferRow { display: grid; grid-template-columns: minmax(220px, 2.2fr) 70px 120px 1.3fr 1fr 80px 200px; gap: 10px; align-items: center; padding: 10px 6px; border-bottom: 1px solid #e2e8f0; font-size: 13px; }
.recruitOfferRow a { color: var(--navy); font-weight: 600; }
.recruitVisual { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }

.recruitVisual .adminToolButton { height: 28px; padding: 0 10px; }
.recruitOfferHead { font-size: 11.5px; font-weight: 800; color: #64748b; text-transform: uppercase; letter-spacing: .04em; }
.recruitOfferStatus-published { background: #e7f7ef !important; color: #0b7a4b !important; }
.recruitOfferStatus-expired { background: #f1f5f9 !important; color: #64748b !important; }
@media (max-width: 900px) { .recruitOfferRow { grid-template-columns: 1fr 1fr; } .recruitOfferHead { display: none; } .recruitNote { grid-template-columns: 1fr; } }

/* Publication kit of a recruitment offer. */
.recruitKit { display: grid; grid-template-columns: minmax(280px, 420px) 1fr; gap: 24px; align-items: start; }
.recruitKitVisuals { position: sticky; top: 16px; display: grid; gap: 12px; padding: 16px; border: 1px solid #e2e8f0; border-radius: 14px; background: #fff; }
.recruitKitVisuals h2 { margin: 0; font-size: 16px; color: var(--navy); }
.recruitKitVisuals img { display: block; width: 100%; border-radius: 10px; box-shadow: 0 2px 10px rgba(7, 26, 51, .15); }
.recruitKitVisuals small { color: #64748b; font-size: 12px; }
.recruitKitButtons { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.recruitKitLink { margin: 0; font-size: 12.5px; overflow-wrap: anywhere; }
.recruitKitLink a { color: var(--blue); }
.recruitKitTexts { display: grid; gap: 16px; }
.copyField { display: grid; gap: 8px; padding: 14px 16px; border: 1px solid #e2e8f0; border-radius: 14px; background: #fff; }
.copyFieldHead { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.copyFieldHead b { color: var(--navy); font-size: 14px; }
.copyFieldHead small { color: #64748b; font-size: 12px; }
.copyField textarea { width: 100%; box-sizing: border-box; border: 1px solid #cbd5e1; border-radius: 9px; padding: 10px 12px; font: inherit; font-size: 13.5px; line-height: 1.5; resize: vertical; background: #f8fafc; }
.copyFieldCount { color: #94a3b8; font-size: 11.5px; text-align: right; }
@media (max-width: 900px) { .recruitKit { grid-template-columns: 1fr; } .recruitKitVisuals { position: static; } }

/* Tracking page of a demande (/suivi-demande/<code>). */
.trackHero { padding: 42px 0 30px; background: linear-gradient(135deg, #071a33, #0b2a55); color: #fff; }
.trackHero h1 { margin: 10px 0 18px; font-size: clamp(24px, 3.6vw, 36px); line-height: 1.2; color: #fff; }
.trackHero .eyebrow { color: #ffd226; }
.trackFacts { display: flex; flex-wrap: wrap; gap: 10px; }
.trackFacts span { display: grid; gap: 2px; padding: 10px 14px; border-radius: 12px; background: rgba(255,255,255,.08); font-size: 14px; }
.trackFacts b { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: #ffd226; }
.trackProgress { height: 8px; margin-top: 20px; border-radius: 99px; background: rgba(255,255,255,.15); overflow: hidden; }
.trackProgress span { display: block; height: 100%; border-radius: 99px; background: #ffd226; }
.trackGrid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; align-items: start; }
.trackSteps { list-style: none; margin: 0; padding: 0; position: relative; }
.trackSteps::before { content: ""; position: absolute; left: 19px; top: 10px; bottom: 10px; width: 3px; background: #e2e8f0; }
.trackStep { position: relative; display: flex; gap: 16px; padding: 0 0 26px; }
.trackDot { position: relative; z-index: 1; flex-shrink: 0; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 3px solid #e2e8f0; background: #fff; color: #94a3b8; font-weight: 800; }
.trackStep-done .trackDot { background: #0b7a4b; border-color: #0b7a4b; color: #fff; }
.trackStep-current .trackDot { background: #ffd226; border-color: #ffd226; color: #0b2a55; box-shadow: 0 0 0 6px rgba(255,210,38,.25); }
.trackStep > div { display: grid; gap: 4px; padding-top: 6px; min-width: 0; }
.trackStep strong { color: #0b2a55; font-size: 17px; }
.trackStep-todo strong { color: #64748b; }
.trackStep small { color: #64748b; font-size: 12.5px; font-weight: 600; }
.trackStep-current small { color: #8a6100; }
.trackStep-done small { color: #0b7a4b; }
.trackStep-pending .trackDot { background: #fff6cc; border-color: #ffd226; color: #8a6100; }
.trackStep-pending strong { color: #0b2a55; }
.trackStep-pending small { color: #8a6100; }
.trackStep p { margin: 2px 0 0; color: #475569; font-size: 14px; line-height: 1.55; }
.trackProfiles { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 8px; }
.trackProfiles li { display: grid; gap: 2px; padding: 10px 12px; border: 1px solid #e2e8f0; border-radius: 10px; background: #f8fafc; font-size: 13.5px; }
.trackProfiles b { color: #0b2a55; }
.trackAside { position: sticky; top: 90px; display: grid; gap: 10px; padding: 20px; border-radius: 16px; background: #fff; border: 1px solid #e2e8f0; box-shadow: 0 6px 20px rgba(7,26,51,.06); }
.trackAside strong { color: #0b2a55; }
.trackAside p { margin: 0; font-size: 14px; color: #475569; }
.trackAside small { color: #64748b; }
@media (max-width: 860px) { .trackGrid { grid-template-columns: 1fr; } .trackAside { position: static; } }
/* « Proposition à valider » (suivi de demande) */
.trackProposals { display: grid; gap: 14px; margin-top: 10px; }
.trackProposal { display: grid; gap: 10px; padding: 18px; border: 1px solid #e2e8f0; border-radius: 16px; background: #fff; box-shadow: 0 6px 18px rgba(7,26,51,.06); }
.trackProposal.isChosen { border-color: #0b7a4b; box-shadow: 0 0 0 3px rgba(11,122,75,.12); }
.trackProposal header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
.trackProposalTag { padding: 4px 10px; border-radius: 99px; background: #fff6cc; color: #8a6100; font-size: 12px; font-weight: 800; letter-spacing: .02em; }
.trackProposalChosen { padding: 4px 10px; border-radius: 99px; background: #e7f6ee; color: #0b7a4b; font-size: 12px; font-weight: 800; }
.trackProposal h3 { margin: 0; color: #0b2a55; font-size: 19px; line-height: 1.3; }
.trackProposalTrainer { display: grid; gap: 2px; }
.trackProposalTrainer b { color: #0b2a55; font-size: 14px; }
.trackProposalTrainer span { color: #64748b; font-size: 13px; }
.trackProposalFacts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.trackProposalFacts li { display: grid; gap: 2px; padding: 8px 10px; border-radius: 10px; background: #f8fafc; color: #334155; font-size: 13.5px; }
.trackProposalFacts b { font-size: 11px; letter-spacing: .05em; text-transform: uppercase; color: #64748b; }
.trackProposalPrice { display: grid; gap: 2px; padding: 12px 14px; border-radius: 12px; background: linear-gradient(135deg, #071a33, #0b2a55); color: #fff; }
.trackStep .trackProposalPrice strong { color: #ffd226; font-size: 26px; line-height: 1.1; }
.trackProposalPrice span { font-size: 13px; font-weight: 700; }
.trackStep .trackProposalPrice small { color: rgba(255,255,255,.75); font-weight: 500; }
.trackProposalActions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.trackProposalPending { color: #8a6100; font-size: 13px; font-weight: 600; }
.trackAnswer { display: grid; gap: 6px; justify-items: start; }
.trackStep .trackAnswer .ok { color: #0b7a4b; }
.trackStep .trackAnswer .error { color: #b42318; }
.trackAnother .button { background: #fff; color: #0b2a55; border: 1px solid #0b2a55; }
.trackAnother .button:hover, .trackAnother .button:focus-visible { background: #f1f5f9; }
.trackAdvance { display: grid; gap: 8px; padding: 16px; border-radius: 14px; border: 1px dashed #d4a300; background: #fffbea; }
.trackAdvance strong { color: #0b2a55; }
.trackAdvance .button { justify-self: start; }
.trackStep .trackProposalNote { color: #64748b; font-size: 13px; }
@media (max-width: 560px) { .trackProposal { padding: 14px; } .trackProposalActions { align-items: stretch; } .trackProposalActions .trackAnswer, .trackProposalActions .button { width: 100%; } }
/* « Suivi client » block of a demande (Pilotage). */
.leadTracking { display: grid; gap: 8px; }
.leadTrackingLink { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; font-size: 13px; }
.leadTrackingLink a { color: var(--blue); overflow-wrap: anywhere; }
.leadTrackingRule { margin: 0; font-size: 12.5px; color: #475569; }
.leadTrackingSent { margin: 0; padding-left: 18px; font-size: 12.5px; color: #64748b; }
.leadTrackingSent .ok { color: #0b7a4b; }
.leadTrackingSent .bad { color: #b42318; }
.leadTrackingButtons { display: flex; flex-wrap: wrap; gap: 8px; }
.leadTrackingPayments { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; align-items: end; margin: 4px 0 0; padding: 10px 12px; border: 1px solid #e2e8f0; border-radius: 10px; }
.leadTrackingPayments legend { padding: 0 6px; font-size: 12px; font-weight: 700; color: #334155; }
.leadTrackingPayments label { display: grid; gap: 4px; font-size: 12.5px; color: #334155; }
.leadTrackingPayments input[inputmode] { border: 1px solid #cbd5e1; border-radius: 8px; padding: 6px 8px; font: inherit; }
.leadTrackingCheck { display: flex !important; align-items: center; gap: 6px; }

/* Demandes list: tracking page and its sending from the card. */
.leadTrackingQuick { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; position: relative; z-index: 2; }
.leadTrackingQuickResult { flex-basis: 100%; font-size: 11.5px; line-height: 1.4; }
.leadTrackingQuickResult.ok { color: #0b7a4b; }
.leadTrackingQuickResult.bad { color: #b42318; }
.leadTrackingQuick .isDisabled { opacity: .45; cursor: not-allowed; display: inline-flex; align-items: center; }
/* Pilotage → Problèmes signalés */
.issueNew summary { cursor: pointer; }
.issueNew textarea, .issueDetail .propositionPricing textarea { min-height: 38px; padding: 6px 10px; border: 1px solid #cbd5e1; border-radius: 8px; font: inherit; }
.issueNew .propositionPricing .span2, .issueDetail .propositionPricing .span2 { grid-column: 1 / -1; }
.issueSearch, .globalSearch { display: flex; gap: 8px; margin: 12px 0; }
.issueSearch input, .globalSearch input { flex: 1 1 auto; min-width: 0; min-height: 40px; padding: 8px 12px; border: 1px solid #cbd5e1; border-radius: 10px; font: inherit; }
.issueLayout { display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: 16px; align-items: start; }
.issueList { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.issueList a { display: grid; gap: 4px; padding: 10px 12px; border: 1px solid #dbe4ef; border-radius: 10px; background: #fff; color: #0f172a; text-decoration: none; justify-items: start; }
.issueList li.isActive a { border-color: #0b2a55; box-shadow: inset 3px 0 0 #0b2a55; }
.issueList small { color: #64748b; font-size: 12px; }
.issueEmpty { padding: 12px; color: #64748b; }
.issueStatus-nouveau { background: #fff4d6; color: #8a6100; }
.issueStatus-en_cours { background: #e8f0ff; color: #174e9e; }
.issueStatus-resolu { background: #e7f7ef; color: #0b7a4b; }
.issueDetail select { min-height: 34px; padding: 4px 8px; border: 1px solid #cbd5e1; border-radius: 8px; font: inherit; }
@media (max-width: 860px) { .issueLayout { grid-template-columns: 1fr; } }
/* Pilotage → Recherche */
.globalSearch input { font-size: 16px; min-height: 46px; }
.globalSearchGroup { margin: 18px 0 0; }
.globalSearchGroup h2 { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 16px; color: #0b2a55; }
.globalSearchGroup ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.globalSearchGroup li > a, .globalSearchGroup li > div { display: grid; gap: 3px; padding: 10px 12px; border: 1px solid #dbe4ef; border-radius: 10px; background: #fff; color: #0f172a; text-decoration: none; }
.globalSearchGroup li > a:hover, .globalSearchGroup li > a:focus-visible { border-color: #0b2a55; }
.globalSearchGroup li span { color: #334155; font-size: 13px; overflow-wrap: anywhere; }
.globalSearchGroup li small { color: #64748b; font-size: 12px; overflow-wrap: anywhere; }
.processDialog .processSteps label.processNotes{grid-column:1/-1;display:grid;gap:4px}.processDialog .processSteps select{width:auto;margin-left:8px}.processDialog .processSteps textarea{width:100%;font:inherit}.processPace{margin-right:auto;color:#5b6b7f}.processPingError{color:#a12a2a}
/* Propositions tab: the steps followed with the client, the advance block. */
.propositionFollow { margin-top: 10px; display: grid; gap: 3px; }
.propositionFollow .ok::marker { content: "✓ "; }
.propositionAdvance .propositionPricing { margin-bottom: 0; }
