:root {
    --forest-950: #17251d;
    --forest-900: #22382c;
    --forest-800: #304d3a;
    --forest-700: #4c6950;
    --sage-100: #e3e6d9;
    --sage-50: #eff0e7;
    --cream: #f3eee2;
    --paper: #fffaf0;
    --orange: #b86432;
    --orange-dark: #914620;
    --gold: #caa760;
    --ink: #30342d;
    --muted: #6b7065;
    --line: #d9d4c6;
    --danger: #99483f;
    --bark: #5a4432;
    --bark-dark: #3c2f25;
    --moss: #6b7652;
    --sand: #dfcfaa;
    --white: #fff;
    --shadow-sm: 0 8px 24px rgba(36, 42, 32, .08);
    --shadow-lg: 0 24px 70px rgba(23, 37, 29, .17);
    --radius-sm: 9px;
    --radius: 15px;
    --radius-lg: 24px;
    --container: 1180px;
}

* { box-sizing: border-box; }
html { overflow-x: hidden; scroll-behavior: smooth; }
body {
    margin: 0;
    min-width: 320px;
    overflow-x: hidden;
    background: var(--cream);
    color: var(--ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    opacity: .32;
    background-image:
        linear-gradient(90deg, rgba(90, 68, 50, .025) 1px, transparent 1px),
        linear-gradient(rgba(90, 68, 50, .018) 1px, transparent 1px),
        radial-gradient(rgba(34, 56, 44, .09) .45px, transparent .55px);
    background-size: 28px 28px, 28px 28px, 6px 6px;
    z-index: -1;
}
img { display: block; max-width: 100%; }
a { color: var(--forest-800); text-underline-offset: 3px; }
a:hover { color: var(--orange-dark); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, h4 {
    margin: 0 0 .55em;
    color: var(--forest-950);
    font-family: Georgia, "Times New Roman", serif;
    line-height: 1.12;
    text-wrap: balance;
}
h1 { font-size: clamp(2.45rem, 6vw, 5.15rem); letter-spacing: -.045em; }
h2 { font-size: clamp(1.8rem, 3.2vw, 3rem); letter-spacing: -.025em; }
h3 { font-size: 1.3rem; }
p { margin: 0 0 1rem; }
.container { width: min(calc(100% - 32px), var(--container)); margin-inline: auto; }
.narrow { width: min(calc(100% - 32px), 760px); margin-inline: auto; }
.section { padding: clamp(64px, 9vw, 112px) 0; }
.section--compact { padding: 48px 0; }
.section--white { border-block: 1px solid rgba(90,68,50,.08); background: rgba(255, 250, 240, .84); }
.section--sage { background: var(--sage-100); }
.section-heading { max-width: 720px; margin-bottom: 36px; }
.section-heading p { color: var(--muted); font-size: 1.08rem; }
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
    color: var(--bark);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 8px; height: 8px; border: 1px solid currentColor; background: transparent; transform: rotate(45deg); }
.muted { color: var(--muted); }
.small { font-size: .875rem; }
.sr-only {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0);
    white-space: nowrap; border: 0;
}
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 100; transform: translateY(-150%); background: white; padding: 10px 14px; border-radius: 8px; }
.skip-link:focus { transform: none; }

.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    border-bottom: 1px solid rgba(111, 101, 82, .25);
    box-shadow: inset 0 -2px 0 rgba(202, 167, 96, .15);
    background: rgba(255, 250, 240, .95);
    backdrop-filter: blur(14px);
}
.header-inner { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 12px; color: var(--forest-950); text-decoration: none; }
.brand:hover { color: var(--forest-950); }
.brand-mark {
    position: relative;
    display: grid;
    width: 46px; height: 46px;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(202,167,96,.7);
    border-radius: 11px 11px 16px 16px;
    background: linear-gradient(145deg, var(--forest-800), var(--forest-950));
    color: white;
    box-shadow: inset 0 0 0 3px rgba(255,255,255,.045), 0 5px 14px rgba(23,37,29,.16);
}
.brand-mark::before { content: ""; position: absolute; left: 8px; right: 8px; bottom: 7px; height: 1px; background: rgba(202,167,96,.7); }
.brand-mark::after { content: ""; position: absolute; width: 8px; height: 8px; right: 6px; top: 6px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 3px rgba(202,167,96,.14); }
.brand-mark span { font: 700 24px/1 Georgia, serif; }
.brand-copy { display: grid; line-height: 1.12; }
.brand-copy strong { font-family: Georgia, serif; font-size: 1.03rem; }
.brand-copy small { margin-top: 4px; color: var(--muted); font-size: .7rem; letter-spacing: .025em; }
.main-nav { display: flex; align-items: center; gap: 22px; }
.main-nav > a, .link-button { position: relative; border: 0; background: none; color: var(--ink); font-size: .92rem; font-weight: 700; text-decoration: none; cursor: pointer; }
.main-nav > a:not(.button)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 2px; background: var(--orange); transition: right .2s ease; }
.main-nav > a:hover::after, .main-nav > a.is-active::after { right: 0; }
.nav-logout { margin: 0; }
.link-button { padding: 0; color: var(--muted); }
.link-button:hover { color: var(--orange-dark); }
.nav-toggle { display: none; width: 44px; height: 44px; flex: 0 0 44px; border: 1px solid var(--line); border-radius: 11px; background: var(--paper); cursor: pointer; }
.nav-toggle > span:not(.sr-only) { display: block; width: 20px; height: 2px; margin: 4px auto; background: var(--forest-900); transition: transform .18s ease, opacity .18s ease; }
.nav-toggle[aria-expanded="true"] > span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] > span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] > span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.button {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 12px 20px;
    border: 1px solid var(--forest-900);
    border-radius: 10px;
    background: var(--forest-900);
    color: white;
    font-weight: 800;
    line-height: 1.15;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
    transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.button:hover { transform: translateY(-2px); background: var(--forest-800); color: white; box-shadow: var(--shadow-sm); }
.button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible, a:focus-visible { outline: 3px solid rgba(233, 185, 92, .75); outline-offset: 3px; }
.button--accent { border-color: var(--orange); background: linear-gradient(180deg, #c4733f, var(--orange)); }
.button--accent:hover { background: var(--orange-dark); }
.button--outline { background: transparent; color: var(--forest-900); }
.button--outline:hover { background: var(--forest-900); color: white; }
.button--ghost { border-color: var(--line); background: var(--paper); color: var(--ink); }
.button--ghost:hover { border-color: var(--forest-700); background: white; color: var(--forest-900); }
.button--danger { border-color: var(--danger); background: var(--danger); }
.button--small { min-height: 40px; padding: 9px 16px; font-size: .85rem; }
.button[disabled] { opacity: .55; transform: none; box-shadow: none; cursor: not-allowed; }
.button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }

.hero { position: relative; min-height: 700px; display: grid; align-items: end; overflow: hidden; background: #091416; }
.hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7, 18, 20, .52) 0%, rgba(12, 28, 27, .27) 45%, rgba(12, 22, 23, .04) 72%), linear-gradient(0deg, rgba(7,16,17,.42), transparent 45%), url('../images/hero-debitage-pro-v3.png') center/cover no-repeat; filter: saturate(.82) contrast(1.06); }
.hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 7px; background: linear-gradient(90deg, var(--gold) 0 22%, var(--cream) 22% 100%); }
.hero-content { position: relative; z-index: 1; max-width: 670px; padding: 112px 0 118px; color: white; }
.hero .eyebrow { color: #e6c783; }
.hero h1 { color: white; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-weight: 850; letter-spacing: -.06em; }
.hero h1 em { color: #e6c783; font-style: normal; font-weight: 750; }
.hero-lead { max-width: 620px; margin: 24px 0 32px; color: rgba(255,255,255,.84); font-size: clamp(1.04rem, 2vw, 1.28rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero .button--outline { border-color: rgba(255,255,255,.62); color: white; }
.hero .button--outline:hover { background: white; color: var(--forest-900); }
.hero-note { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 30px; color: rgba(255,255,255,.74); font-size: .88rem; }
.hero-note span::before { content: "◆"; margin-right: 7px; color: #d9b76f; font-size: .62rem; }
.hero-territory { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 20px; }
.hero-territory span { padding: 6px 10px; border: 1px solid rgba(214,224,219,.3); border-radius: 4px; background: rgba(7,18,20,.46); color: rgba(255,255,255,.86); font-size: .7rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; backdrop-filter: blur(5px); }

.feature-grid, .steps-grid, .stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.card { border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow-sm), inset 0 3px 0 rgba(202,167,96,.07); }
.feature-card { padding: 28px; }
.feature-card, .step-card { transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.feature-card:hover, .step-card:hover { transform: translateY(-3px); border-color: rgba(90,68,50,.3); box-shadow: 0 14px 34px rgba(36,42,32,.11); }
.feature-icon, .step-number { display: grid; width: 48px; height: 48px; margin-bottom: 22px; place-items: center; border: 1px solid rgba(90,68,50,.16); border-radius: 10px; background: linear-gradient(145deg, var(--sage-50), var(--sage-100)); color: var(--forest-800); font-weight: 900; }
.feature-card p { color: var(--muted); }
.steps-grid { counter-reset: steps; }
.step-card { position: relative; padding: 30px; border-top: 3px solid var(--moss); }
.step-number { border-color: rgba(202,167,96,.4); border-radius: 9px 9px 13px 13px; background: var(--forest-900); color: white; font-family: Georgia, serif; }
.trust-strip { position: relative; z-index: 2; margin-top: -24px; }
.trust-strip-inner { display: grid; grid-template-columns: repeat(3, 1fr); overflow: hidden; border: 1px solid rgba(202,167,96,.32); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow-lg); }
.trust-item { position: relative; padding: 24px 28px 24px 42px; border-right: 1px solid var(--line); }
.trust-item::before { content: ""; position: absolute; left: 23px; top: 31px; width: 7px; height: 7px; border: 1px solid var(--gold); transform: rotate(45deg); }
.trust-item:last-child { border: 0; }
.trust-item strong { display: block; color: var(--forest-950); font-family: Georgia, serif; font-size: 1.18rem; }
.trust-item span { color: var(--muted); font-size: .88rem; }
.territory-section { padding: 48px 0 0; }
.territory-panel { display: grid; grid-template-columns: minmax(280px, .85fr) minmax(0, 1.15fr); gap: clamp(30px, 6vw, 80px); align-items: center; padding: clamp(30px, 5vw, 52px); border: 1px solid rgba(90,68,50,.18); border-left: 5px solid var(--bark); border-radius: var(--radius); background: linear-gradient(118deg, rgba(255,250,240,.92), rgba(227,230,217,.72)); box-shadow: var(--shadow-sm); }
.territory-panel h2 { margin-bottom: 0; font-size: clamp(1.9rem, 3vw, 3rem); }
.territory-panel p { color: var(--muted); font-size: 1.02rem; }
.territory-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.territory-tags span { padding: 7px 10px; border: 1px solid rgba(76,105,80,.22); border-radius: 5px; background: rgba(255,250,240,.8); color: var(--forest-800); font-size: .72rem; font-weight: 850; letter-spacing: .055em; text-transform: uppercase; }
.cta-panel { position: relative; display: grid; grid-template-columns: 1.35fr .65fr; gap: 24px; align-items: center; overflow: hidden; padding: clamp(36px, 6vw, 70px); border: 1px solid rgba(202,167,96,.38); border-radius: var(--radius-lg); background: linear-gradient(125deg, var(--forest-950), var(--forest-800) 72%, #4d5439); color: white; box-shadow: var(--shadow-lg); }
.cta-panel::after { content: ""; position: absolute; width: 270px; height: 270px; right: -75px; bottom: -130px; border: 42px double rgba(202,167,96,.18); border-radius: 50%; }
.cta-panel h2 { color: white; }
.cta-panel p { max-width: 650px; color: rgba(255,255,255,.75); }
.cta-panel .button-row { position: relative; z-index: 1; justify-content: flex-end; }

.page-hero { position: relative; overflow: hidden; padding: 74px 0 52px; border-bottom: 1px solid var(--line); background: linear-gradient(115deg, var(--sage-100), #eee5d4 72%); }
.page-hero::after { content: ""; position: absolute; right: -90px; bottom: -95px; width: 300px; height: 210px; border: 1px solid rgba(76,105,80,.13); border-radius: 50%; box-shadow: 0 0 0 28px rgba(76,105,80,.045), 0 0 0 58px rgba(90,68,50,.035); }
.page-hero .container { position: relative; z-index: 1; }
.page-hero .container { display: grid; gap: 10px; }
.page-hero h1 { font-size: clamp(2.3rem, 5vw, 4.1rem); }
.page-hero p { max-width: 690px; color: var(--muted); font-size: 1.08rem; }
.breadcrumbs { display: flex; gap: 8px; color: var(--muted); font-size: .85rem; }
.breadcrumbs a { color: inherit; }

.form-shell { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 28px; align-items: start; }
.form-card { position: relative; padding: clamp(24px, 4vw, 40px); }
.form-card::before { content: ""; position: absolute; left: 24px; right: 24px; top: 0; height: 3px; border-radius: 0 0 4px 4px; background: linear-gradient(90deg, var(--bark), var(--gold), transparent); opacity: .55; }
.form-section + .form-section { margin-top: 34px; padding-top: 30px; border-top: 1px solid var(--line); }
.form-section-heading { margin-bottom: 22px; }
.form-section-heading h2, .form-section-heading h3 { margin-bottom: 6px; }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.field-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.field { display: grid; gap: 7px; min-width: 0; }
.field--full { grid-column: 1 / -1; }
.field label, .field-label { color: var(--forest-950); font-size: .88rem; font-weight: 800; }
.required { color: var(--danger); }
.field small { color: var(--muted); font-size: .78rem; }
.field input, .field select, .field textarea, .filter-bar input, .filter-bar select {
    width: 100%;
    min-height: 50px;
    padding: 11px 13px;
    border: 1px solid #c9c4b7;
    border-radius: var(--radius-sm);
    background: #fffdf7;
    color: var(--ink);
    transition: border .15s ease, box-shadow .15s ease;
}
.field textarea { min-height: 115px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--forest-700); box-shadow: 0 0 0 4px rgba(76,105,80,.11); outline: 0; }
.field input[aria-invalid="true"], .field select[aria-invalid="true"] { border-color: var(--danger); }
.checkbox { display: inline-flex; align-items: flex-start; gap: 10px; }
.checkbox input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--forest-800); }
.form-help { padding: 18px; border-left: 3px solid var(--moss); border-radius: 4px 10px 10px 4px; background: var(--sage-50); color: var(--muted); font-size: .9rem; }
.sticky-card { position: sticky; top: 106px; padding: 24px; border-top: 4px solid var(--bark); }
.summary-list { margin: 0; }
.summary-list > div { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.summary-list dt { color: var(--muted); }
.summary-list dd { margin: 0; color: var(--forest-950); font-weight: 800; text-align: right; }
.summary-total { margin-top: 18px; padding: 18px; border: 1px solid rgba(202,167,96,.36); border-radius: 10px; background: linear-gradient(120deg, var(--forest-950), var(--forest-800)); color: white; }
.summary-total strong { display: block; font: 700 1.8rem Georgia, serif; }
.auth-wrap { display: grid; grid-template-columns: minmax(0, 590px) 1fr; min-height: calc(100vh - 78px); }
.auth-panel { display: grid; min-width: 0; align-content: center; padding: clamp(35px, 7vw, 90px); background-color: var(--paper); background-image: linear-gradient(90deg, rgba(90,68,50,.025) 1px, transparent 1px), linear-gradient(rgba(90,68,50,.02) 1px, transparent 1px); background-size: 26px 26px; }
.auth-panel .form-card, .auth-panel form, .auth-panel .field-grid { min-width: 0; }
.auth-panel .form-card { width: min(100%, 540px); margin-inline: auto; border: 0; box-shadow: none; }
.auth-visual { position: relative; min-height: 520px; background: linear-gradient(180deg, rgba(9,20,22,.02) 0%, rgba(9,20,22,.12) 55%, rgba(9,20,22,.72) 100%), url('../images/hero-debitage-pro-v3.png') center 48%/cover no-repeat; background-color: var(--forest-950); filter: saturate(.82) contrast(1.04); }
.auth-visual--login { background-image: linear-gradient(180deg, rgba(9,20,22,.02) 0%, rgba(9,20,22,.12) 55%, rgba(9,20,22,.72) 100%), url('../images/connexion-centre-pro-v1.png'); }
.auth-business-link { margin-top: 22px; }
.auth-quote { position: absolute; left: 8%; right: 8%; bottom: 8%; padding: 26px; border: 1px solid rgba(202,167,96,.4); border-radius: var(--radius); background: rgba(23,37,29,.78); color: white; backdrop-filter: blur(8px); }
.auth-quote blockquote { margin: 0; font: italic 1.55rem/1.35 Georgia, serif; }
.auth-quote-label { display: block; margin-bottom: 10px; color: #e6c783; font-size: .68rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }

.account-kind-switch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 8px; margin-bottom: 34px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.92); }
.account-kind-switch a { display: grid; gap: 2px; padding: 14px 16px; border-radius: 11px; color: var(--forest-900); text-decoration: none; }
.account-kind-switch a:hover { background: var(--sage-50); }
.account-kind-switch a.is-active { background: var(--forest-900); color: #fff; box-shadow: 0 8px 20px rgba(24,48,38,.18); }
.account-kind-switch span { font-weight: 800; }
.account-kind-switch small { color: inherit; opacity: .72; }
.account-kind-switch--compact { margin: 0 0 32px; }

.business-signup { background: var(--paper); }
.business-signup__intro { padding: clamp(54px, 8vw, 108px) 0 clamp(110px, 13vw, 170px); color: #fff; background: linear-gradient(115deg, rgba(17,43,33,.98), rgba(31,75,58,.9)), url('../images/hero-terroir-foret-v2.png') center/cover no-repeat; }
.business-signup__intro-inner { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(330px, .9fr); align-items: center; gap: clamp(44px, 8vw, 100px); }
.business-signup__intro h1 { max-width: 720px; margin-bottom: 20px; color: #fff; font-size: clamp(2.7rem, 6vw, 5.5rem); line-height: .98; }
.business-signup__intro p { max-width: 650px; color: rgba(255,255,255,.8); font-size: 1.08rem; }
.signup-benefits { display: grid; gap: 1px; padding: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.2); border-radius: 18px; list-style: none; background: rgba(255,255,255,.13); backdrop-filter: blur(8px); }
.signup-benefits li { display: grid; gap: 4px; padding: 21px 24px; background: rgba(12,31,25,.55); }
.signup-benefits strong { color: #fff; }
.signup-benefits span { color: rgba(255,255,255,.72); font-size: .92rem; }
.signup-form-shell { position: relative; z-index: 2; margin-top: -74px; padding-bottom: clamp(60px, 9vw, 110px); }
.signup-form-shell > .account-kind-switch { width: min(100%, 640px); margin-inline: auto; background: #fff; box-shadow: var(--shadow); }
.business-form { max-width: 940px; margin: 22px auto 0; padding: clamp(26px, 5vw, 56px); box-shadow: var(--shadow); }
.business-form .form-section-heading { display: flex; align-items: flex-start; gap: 15px; }
.step-number { display: grid; flex: 0 0 36px; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: var(--forest-900); color: #fff; font-weight: 900; }
.password-row { display: flex; gap: 8px; }
.password-row input { flex: 1 1 0; width: 0; min-width: 0; }
.password-row .button { flex: 0 0 auto; }
.signup-confirmation { display: grid; gap: 26px; margin-top: 34px; padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: var(--sage-50); }
.subscription-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .7fr); gap: 24px; align-items: start; }
.subscription-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 26px; }
.subscription-heading h2 { margin: 6px 0 0; }
.subscription-summary-card { margin-bottom: 24px; }
.subscription-access-details { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.subscription-portal-form { margin-top: 20px; }
.subscription-plan-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 24px 0; }
.subscription-plan-card { position: relative; display: flex; min-height: 100%; flex-direction: column; padding: 30px; overflow: hidden; border-top: 5px solid var(--forest); }
.subscription-plan-card--seasonal { border-top-color: var(--orange); background: linear-gradient(155deg, #fffdf8, #fff4df); }
.subscription-plan-card--annual { border-top-color: var(--forest); background: linear-gradient(155deg, #fff, #edf4ef); }
.subscription-plan-card__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.subscription-plan-card h2 { margin: 8px 0 10px; }
.subscription-plan-duration { display: inline-flex; align-items: baseline; gap: 5px; color: var(--forest); font-family: var(--font-display); font-size: 2rem; font-weight: 800; }
.subscription-plan-duration small { font-family: var(--font-body); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.subscription-plan-card .check-list { flex: 1; margin: 22px 0; }
.subscription-plan-card__action { min-height: 46px; margin-top: auto; }
.subscription-rule-callout { margin-top: 20px; }
.merchant-cta { padding: 44px 0; border-top: 1px solid rgba(202,167,96,.35); background: linear-gradient(110deg, var(--forest-950), var(--bark-dark)); color: rgba(255,255,255,.76); }
.merchant-cta__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 34px; }
.merchant-cta h2 { margin: 6px 0 8px; color: #fff; font-size: clamp(1.8rem, 4vw, 3rem); }
.merchant-cta p { max-width: 760px; margin: 0; }

.calendar-shell { padding: clamp(20px, 4vw, 34px); }
.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 20px; }
.calendar-toolbar h2 { margin: 0; font-size: 1.55rem; }
.icon-button { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid var(--line); border-radius: 9px; background: #fffdf7; color: var(--forest-900); font-size: 1.3rem; cursor: pointer; }
.icon-button:hover { border-color: var(--forest-700); background: var(--sage-50); }
.calendar-weekdays, .calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; }
.calendar-weekdays span { padding: 8px 4px; color: var(--muted); font-size: .72rem; font-weight: 800; text-align: center; text-transform: uppercase; }
.calendar-day {
    position: relative;
    display: grid;
    min-height: 72px;
    place-items: center;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fffdf7;
    color: var(--ink);
    font-weight: 800;
    cursor: pointer;
}
.calendar-day:hover:not([disabled]) { border-color: var(--forest-700); transform: translateY(-1px); }
.calendar-day[disabled], .calendar-day.is-outside { opacity: .42; cursor: not-allowed; }
.calendar-day.is-available::after, .calendar-day.is-full::after { content: ""; position: absolute; bottom: 8px; width: 6px; height: 6px; border-radius: 50%; background: #55a36f; }
.calendar-day.is-full::after { background: var(--danger); }
.calendar-day.is-selected { border-color: var(--forest-900); background: var(--forest-900); color: white; }
.slots { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; }
.slot { min-width: 78px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 8px; background: #fffdf7; color: var(--forest-900); font-weight: 800; cursor: pointer; }
.slot:hover, .slot.is-selected { border-color: var(--orange); background: var(--orange); color: white; }
.calendar-legend { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 18px; color: var(--muted); font-size: .78rem; }
.legend-dot { display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: #55a36f; }
.legend-dot--full { background: var(--danger); }
.loading { opacity: .55; pointer-events: none; }
.empty-state { padding: 36px; border: 1px dashed #bec9c0; border-radius: var(--radius); color: var(--muted); text-align: center; }

.flash-stack { position: fixed; z-index: 70; top: 92px; left: 50%; display: grid; gap: 8px; transform: translateX(-50%); }
.flash { display: flex; min-width: min(520px, calc(100vw - 32px)); align-items: center; justify-content: space-between; gap: 20px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: var(--shadow-lg); }
.flash--success { border-left: 5px solid #4d9565; }
.flash--error { border-left: 5px solid var(--danger); }
.flash--info { border-left: 5px solid #4e7ca0; }
.flash button { border: 0; background: transparent; color: var(--muted); font-size: 1.4rem; cursor: pointer; }
.security-notice { padding: 10px 0; background: #fff0c7; color: #624a16; font-size: .9rem; }
.access-history-notice { border-bottom: 1px solid #d7b76c; background: #fff4d8; color: #594215; }
.access-history-notice .container { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-top: 12px; padding-bottom: 12px; }
.access-history-notice .button { flex: 0 0 auto; }

.admin-body { background: #eeeee6; }
.admin-nav { position: sticky; z-index: 40; top: 78px; overflow-x: auto; border-bottom: 2px solid rgba(202,167,96,.42); background: linear-gradient(90deg, var(--forest-950), var(--bark-dark)); scrollbar-color: var(--gold) transparent; scrollbar-width: thin; }
.admin-nav-inner { display: flex; min-width: max-content; gap: 4px; }
.admin-nav a { padding: 13px 17px; border-bottom: 3px solid transparent; color: rgba(255,255,255,.72); font-size: .86rem; font-weight: 750; text-decoration: none; scroll-margin-inline: 16px; scroll-snap-align: center; }
.admin-nav a:hover, .admin-nav a.is-active { border-color: var(--gold); color: white; }
.admin-page { padding: 42px 0 80px; }
.admin-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 28px; padding-bottom: 18px; border-bottom: 1px solid rgba(90,68,50,.12); }
.admin-heading h1 { font-size: clamp(2rem, 4vw, 3.2rem); }
.stats-grid { grid-template-columns: repeat(4, 1fr); margin-bottom: 26px; }
.stat-card { position: relative; overflow: hidden; padding: 23px; border-top: 3px solid var(--moss); }
.stat-card::after { content: ""; position: absolute; right: -28px; bottom: -38px; width: 92px; height: 92px; border: 14px double rgba(202,167,96,.09); border-radius: 50%; }
.stat-card span { color: var(--muted); font-size: .82rem; font-weight: 800; text-transform: uppercase; }
.stat-card strong { display: block; margin-top: 6px; color: var(--forest-950); font: 700 2.35rem Georgia, serif; }
.admin-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .7fr); gap: 22px; align-items: start; }
.panel { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow-sm), inset 0 3px 0 rgba(202,167,96,.055); }
.panel-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 22px; border-bottom: 1px solid var(--line); background: linear-gradient(90deg, rgba(227,230,217,.52), rgba(255,250,240,.24)); }
.panel-header h2, .panel-header h3 { margin: 0; font-size: 1.2rem; }
.panel-body { padding: 22px; }
.table-wrap { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-color: var(--forest-700) var(--sage-100); scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 14px 16px; border-bottom: 1px solid var(--line); vertical-align: middle; text-align: left; }
th { background: rgba(227,230,217,.42); color: var(--muted); font-size: .73rem; letter-spacing: .065em; text-transform: uppercase; }
tbody tr:hover { background: var(--sage-50); }
tbody tr:last-child td { border-bottom: 0; }
.table-link { color: var(--forest-900); font-weight: 850; text-decoration: none; }
.badge { display: inline-flex; align-items: center; padding: 5px 9px; border: 1px solid rgba(90,68,50,.08); border-radius: 6px; background: #f4e3df; color: #873d35; font-size: .73rem; font-weight: 850; white-space: nowrap; }
.badge--blue { background: #e0edf5; color: #315d78; }
.badge--amber { background: #fff0c7; color: #745719; }
.badge--green { background: #dfefe2; color: #326a43; }
.badge--muted { background: #e8e9e6; color: #626760; }
.badge--rose { background: #f4e3df; color: #873d35; }
.filter-bar { display: grid; grid-template-columns: minmax(220px, 1fr) repeat(2, minmax(140px, 220px)) auto; gap: 10px; margin-bottom: 20px; }
.filter-bar .button { min-height: 48px; }
.actions { display: flex; flex-wrap: wrap; gap: 7px; }
.text-button { padding: 5px 0; border: 0; background: transparent; color: var(--forest-800); font-weight: 800; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.text-button--danger { color: var(--danger); }
.detail-list { margin: 0; }
.detail-list > div { display: grid; grid-template-columns: 145px 1fr; gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.detail-list dt { color: var(--muted); }
.detail-list dd { margin: 0; font-weight: 700; }
.catalog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.catalog-grid .panel--wide { grid-column: 1 / -1; }
.catalog-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.catalog-item:last-child { border: 0; }
.catalog-item p { margin: 2px 0 0; color: var(--muted); font-size: .84rem; }
.status-dot { display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: #5ba36e; }
.status-dot--off { background: #a9aea9; }
.schedule-row { display: grid; grid-template-columns: 130px 90px 1fr 1fr; gap: 14px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--line); }
.schedule-row:last-child { border-bottom: 0; }
.schedule-row strong { color: var(--forest-950); }
.inline-form { display: inline; }
.pagination { display: flex; justify-content: center; gap: 7px; padding: 20px; }
.pagination a, .pagination span { display: grid; min-width: 38px; height: 38px; place-items: center; border: 1px solid var(--line); border-radius: 9px; text-decoration: none; }
.pagination .is-current { border-color: var(--forest-900); background: var(--forest-900); color: white; }

.site-footer { position: relative; padding: 60px 0 24px; border-top: 3px solid var(--gold); background: linear-gradient(110deg, var(--forest-950) 0%, #1e3025 58%, var(--bark-dark) 100%); color: rgba(255,255,255,.7); }
.footer-grid { display: grid; grid-template-columns: 1.4fr .8fr .7fr; gap: 50px; }
.site-footer h2 { color: white; font: 700 .8rem/1.2 Inter, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.site-footer a { color: rgba(255,255,255,.82); }
.brand--footer { margin-bottom: 18px; color: white; }
.brand--footer:hover { color: white; }
.brand--footer .brand-copy small { color: rgba(255,255,255,.55); }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 42px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.12); font-size: .76rem; }

@media (max-width: 980px) {
    .nav-toggle { display: block; }
    body.nav-is-open { overflow: hidden; }
    .main-nav { position: absolute; top: calc(100% + 1px); left: 0; right: 0; display: none; max-height: calc(100dvh - 78px); align-items: stretch; overflow-y: auto; padding: 14px max(16px, calc((100% - var(--container)) / 2)) calc(18px + env(safe-area-inset-bottom)); border-bottom: 1px solid var(--line); background: var(--paper); box-shadow: 0 20px 45px rgba(23,37,29,.18); overscroll-behavior: contain; }
    .main-nav.is-open { display: grid; }
    .main-nav > a, .main-nav .link-button { min-height: 46px; padding: 12px 14px; border-radius: 9px; text-align: left; }
    .main-nav > a.is-active { background: var(--sage-100); color: var(--forest-950); }
    .main-nav .button { width: 100%; justify-content: flex-start; background: var(--forest-900); color: white; }
    .main-nav .nav-logout, .main-nav .nav-logout button { width: 100%; }
    .main-nav > a::after { display: none; }
    .hero { min-height: 640px; }
    .hero::before { background: linear-gradient(90deg, rgba(7,18,20,.92), rgba(9,22,23,.64), rgba(9,20,22,.18)), url('../images/hero-debitage-pro-v3.png') 63% center/cover; }
    .form-shell, .admin-grid { grid-template-columns: 1fr; }
    .sticky-card { position: static; }
    .stats-grid { grid-template-columns: repeat(2, 1fr); }
    .auth-wrap { grid-template-columns: 1fr; }
    .auth-visual { min-height: 360px; }
    .business-signup__intro-inner, .subscription-layout, .subscription-plan-grid, .merchant-cta__inner { grid-template-columns: 1fr; }
    .subscription-access-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .filter-bar { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
    .container, .narrow { width: min(calc(100% - 24px), var(--container)); }
    .section { padding: 58px 0; }
    .section--compact { padding: 38px 0; }
    .brand-copy small { display: none; }
    .access-history-notice .container { align-items: stretch; flex-direction: column; }
    .access-history-notice .button { width: 100%; }
    .subscription-plan-card { padding: 23px 18px; }
    .subscription-access-details { grid-template-columns: 1fr; }
    .hero { min-height: max(610px, calc(100svh - 70px)); }
    .hero::before { background: linear-gradient(90deg, rgba(7,18,20,.96), rgba(9,22,23,.76), rgba(9,20,22,.45)), url('../images/hero-debitage-pro-v3.png') 68% center/cover; }
    .hero-content { max-width: 560px; padding: 72px 0 88px; }
    .hero h1 { font-size: clamp(2.55rem, 12vw, 4.15rem); line-height: 1.02; }
    .hero-lead { margin: 18px 0 25px; font-size: 1.02rem; line-height: 1.55; }
    .page-hero { padding: 52px 0 38px; }
    .page-hero h1 { font-size: clamp(2.15rem, 10vw, 3.2rem); }
    .territory-panel { grid-template-columns: 1fr; gap: 18px; }
    .trust-strip-inner, .feature-grid, .steps-grid, .footer-grid, .catalog-grid { grid-template-columns: 1fr; }
    .trust-item { border-right: 0; border-bottom: 1px solid var(--line); }
    .trust-item:last-child { border-bottom: 0; }
    .cta-panel { grid-template-columns: 1fr; }
    .cta-panel .button-row { justify-content: flex-start; }
    .field-grid, .field-grid--3 { grid-template-columns: 1fr; }
    .auth-panel { padding: 30px 12px; }
    .business-signup__intro { padding-top: 44px; }
    .business-signup__intro-inner { gap: 30px; }
    .signup-form-shell { margin-top: -56px; }
    .account-kind-switch { grid-template-columns: 1fr; }
    .business-form { padding: 24px 18px; }
    .calendar-shell { padding: 16px 12px 20px; }
    .calendar-toolbar { margin-bottom: 12px; }
    .calendar-toolbar h2 { font-size: clamp(1.1rem, 5.2vw, 1.4rem); text-align: center; }
    .calendar-weekdays, .calendar-grid { gap: 4px; }
    .calendar-day { min-height: 50px; padding: 5px; border-radius: 9px; }
    .calendar-weekdays span { font-size: .62rem; }
    .slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .slot { min-width: 0; min-height: 44px; padding-inline: 8px; }
    .admin-nav { top: 70px; scroll-snap-type: inline proximity; }
    .admin-nav a { min-height: 46px; padding: 12px 15px; }
    .admin-page { padding: 28px 0 58px; }
    .admin-heading { align-items: stretch; flex-direction: column; gap: 14px; margin-bottom: 20px; }
    .admin-heading h1 { font-size: clamp(2rem, 10vw, 2.65rem); }
    .admin-heading > .button-row { display: grid; grid-template-columns: 1fr; }
    .admin-heading > .button-row .button { width: 100%; }
    .stats-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .stat-card { padding: 18px; }
    .stat-card strong { font-size: 1.9rem; }
    .panel-header { align-items: flex-start; flex-direction: column; padding: 17px 16px; }
    .panel-header > .button, .panel-header > .button-row { width: 100%; }
    .panel-header > .button-row { display: grid; grid-template-columns: 1fr; }
    .panel-header > .button-row .button { width: 100%; }
    .panel-body { padding: 17px 16px; }
    .form-card { padding: 22px 17px; }
    .field input, .field select, .field textarea, .filter-bar input, .filter-bar select { font-size: 16px; }
    .filter-bar { grid-template-columns: 1fr; }
    .filter-bar .button { width: 100%; }
    .detail-list > div { grid-template-columns: 1fr; gap: 3px; }
    .table-wrap { box-shadow: inset -14px 0 16px -18px rgba(23,37,29,.65); }
    .table-wrap > table { min-width: 650px; }
    .schedule-row { grid-template-columns: 1fr 80px 1fr 1fr; gap: 8px; }
    .footer-grid { gap: 30px; }
    .footer-bottom { flex-direction: column; }
}

@media (max-width: 430px) {
    .header-inner { min-height: 70px; }
    .brand-mark { width: 40px; height: 40px; }
    .brand-copy strong { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .hero-actions .button { width: 100%; }
    .hero-content { padding: 62px 0 76px; }
    .hero h1 { font-size: clamp(2.35rem, 13vw, 3.2rem); }
    .hero-note { display: grid; gap: 7px; }
    .hero-territory { gap: 5px; }
    .stats-grid { grid-template-columns: 1fr; }
    .schedule-row { grid-template-columns: 1fr 70px; }
    .schedule-row .field { grid-column: span 1; }
    .calendar-day { min-height: 46px; font-size: .82rem; }
    .calendar-day.is-available::after, .calendar-day.is-full::after { bottom: 5px; width: 5px; height: 5px; }
    th, td { padding: 12px; }
}

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

/* Historique, liste d’attente et analyse */
.nav-count {
    display: inline-grid;
    min-width: 22px;
    height: 22px;
    margin-left: 4px;
    place-items: center;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--gold);
    color: var(--forest-950);
    font-size: .68rem;
    font-weight: 900;
}

.history-filter { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin-bottom: 26px; }
.history-filter .field { min-width: 190px; }
.history-list { display: grid; gap: 14px; }
.history-card { overflow: hidden; }
.history-card > summary,
.client-history-item > summary {
    display: grid;
    grid-template-columns: minmax(170px, .8fr) minmax(220px, 1fr) auto;
    gap: 22px;
    align-items: center;
    padding: 20px 22px;
    cursor: pointer;
    list-style: none;
}
.history-card > summary::-webkit-details-marker,
.client-history-item > summary::-webkit-details-marker { display: none; }
.history-card > summary::after,
.client-history-item > summary::after { content: "+"; grid-column: 4; color: var(--forest-700); font-size: 1.3rem; font-weight: 900; }
.history-card[open] > summary::after,
.client-history-item[open] > summary::after { content: "−"; }
.history-card summary span:not(.badge),
.client-history-item summary span:not(.badge) { display: grid; }
.history-card summary small,
.client-history-item summary small { color: var(--muted); font-size: .78rem; }
.history-card-body,
.client-history-content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .8fr); gap: 28px; padding: 22px; border-top: 1px solid var(--line); background: var(--sage-50); }
.timeline h3 { margin-bottom: 16px; font-size: 1.05rem; }
.timeline-item { position: relative; display: grid; grid-template-columns: 14px 1fr; gap: 10px; padding-bottom: 17px; }
.timeline-item::before { content: ""; position: absolute; left: 5px; top: 12px; bottom: -3px; width: 2px; background: var(--line); }
.timeline-item:last-child::before { display: none; }
.timeline-dot { position: relative; z-index: 1; width: 12px; height: 12px; margin-top: 5px; border: 3px solid var(--sage-100); border-radius: 50%; background: var(--forest-700); }
.timeline-item div { display: grid; }
.timeline-item small { color: var(--muted); }
.timeline-item p { margin: 5px 0 0; font-size: .86rem; }

.plain-steps { display: grid; gap: 20px; margin: 24px 0 28px; padding: 0; counter-reset: waitlist-step; list-style: none; }
.plain-steps li { display: grid; grid-template-columns: 34px 1fr; gap: 3px 12px; counter-increment: waitlist-step; }
.plain-steps li::before { content: counter(waitlist-step); grid-row: span 2; display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: var(--forest-900); color: white; font-weight: 900; }
.plain-steps span { color: var(--muted); font-size: .85rem; }

.dashboard-alerts { display: grid; gap: 12px; margin-bottom: 24px; }
.dashboard-alert { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 18px 20px; border: 1px solid #d7dfd8; border-left: 5px solid var(--forest-700); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow-sm); }
.dashboard-alert--important { border-color: #e4b262; border-left-color: var(--orange); background: #fff9e9; }
.dashboard-alert-mark { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: var(--forest-900); color: white; font: 900 1.2rem Georgia, serif; }
.dashboard-alert--important .dashboard-alert-mark { background: var(--orange); }
.dashboard-alert .eyebrow { margin: 0 0 3px; font-size: .65rem; }
.dashboard-alert h2 { margin: 0 0 4px; font-size: 1.2rem; }
.dashboard-alert p { margin: 0; color: var(--muted); }
.dashboard-alert small { color: var(--muted); }
.dashboard-alert-actions { display: grid; justify-items: center; gap: 7px; }
.dashboard-stats { grid-template-columns: repeat(4, 1fr); }
.dashboard-stats .stat-card { padding: 19px; }
.dashboard-stats .stat-card strong { font-size: 2rem; }

.filter-bar--clients,
.filter-bar--waitlist { grid-template-columns: minmax(260px, 1fr) minmax(160px, 220px) auto auto; }
.client-overview { margin-bottom: 22px; }
.client-history-panel,
.client-waitlist-panel { margin-top: 22px; }
.client-history-list { display: grid; }
.client-history-item { border-bottom: 1px solid var(--line); }
.client-history-item:last-child { border-bottom: 0; }
.client-history-item[open] { background: var(--sage-50); }

.waitlist-heading { margin-top: 42px; }
.released-events-panel { margin-top: 24px; }
.row-needs-action { background: #fffaf0; }
.important-alert {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) minmax(230px, 300px);
    gap: 22px;
    align-items: start;
    padding: 26px;
    border: 2px solid #e3aa50;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, #fff8df, #fffdf8);
    box-shadow: 0 18px 50px rgba(136, 81, 20, .12);
}
.important-alert--resolved { border-color: #9ac2a5; background: linear-gradient(135deg, #edf7ef, #fffdf8); }
.important-alert-icon { display: grid; width: 54px; height: 54px; place-items: center; border-radius: 50%; background: var(--orange); color: white; font: 900 1.8rem Georgia, serif; }
.important-alert--resolved .important-alert-icon { background: #4d9565; }
.important-alert .eyebrow { margin-bottom: 5px; }
.important-alert h2 { margin-bottom: 8px; font-size: clamp(1.55rem, 3vw, 2.25rem); }
.candidate-card { display: grid; grid-template-columns: minmax(200px, 1fr) minmax(190px, auto) auto; gap: 18px; align-items: center; margin: 18px 0 12px; padding: 18px; border: 1px solid rgba(201,109,53,.3); border-radius: 14px; background: white; }
.candidate-card > div { display: grid; gap: 2px; }
.candidate-card > div:last-child { justify-items: end; }
.candidate-card span:not(.badge), .candidate-card small { color: var(--muted); font-size: .78rem; }
.candidate-card strong { color: var(--forest-950); font-size: 1.15rem; }
.email-delivery-note { margin-bottom: 0; }
.important-alert-actions { display: grid; gap: 16px; }
.important-alert-actions .button { width: 100%; }
.recovery-form { display: grid; gap: 7px; padding: 15px; border: 1px solid rgba(23,63,50,.14); border-radius: 13px; background: rgba(255,255,255,.7); }
.recovery-form label { font-size: .77rem; font-weight: 800; }
.recovery-form input { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; background: white; }
.resolved-note { padding: 15px; border-radius: 12px; background: #dfefe2; color: #326a43; font-weight: 750; }
.compact-status-form { display: grid; gap: 5px; margin-top: 8px; }
.compact-status-form select { max-width: 170px; min-height: 36px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; background: white; font-size: .78rem; }
.compact-status-form .text-button { justify-self: start; font-size: .78rem; }

.analysis-error { position: static; min-width: 0; margin-bottom: 18px; }
.analysis-filter { display: flex; flex-wrap: wrap; align-items: end; gap: 14px; padding: 18px 20px; }
.analysis-filter .field { min-width: 175px; }
.analysis-presets { display: flex; flex-wrap: wrap; gap: 12px; margin-left: auto; font-size: .82rem; font-weight: 750; }
.analysis-context { margin: 16px 0 24px; color: var(--muted); font-size: .88rem; }
.analysis-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.metric-card { display: grid; align-content: start; min-height: 185px; padding: 21px; border-top: 4px solid var(--forest-700); }
.metric-card--primary { border-top-color: var(--forest-900); background: var(--forest-900); }
.metric-card--loss { border-top-color: var(--danger); }
.metric-card--warning { border-top-color: var(--orange); }
.metric-card--success { border-top-color: #4d9565; }
.metric-card > span { color: var(--muted); font-size: .74rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.metric-card > strong { margin: 8px 0 4px; color: var(--forest-950); font: 700 clamp(1.55rem, 2.8vw, 2.25rem) Georgia, serif; }
.metric-card small { margin-top: auto; color: var(--muted); line-height: 1.45; }
.metric-card--primary > span, .metric-card--primary small { color: rgba(255,255,255,.72); }
.metric-card--primary > strong { color: white; }
.metric-progress { height: 7px; margin: 8px 0 13px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.16); }
.metric-progress i { display: block; height: 100%; border-radius: inherit; background: var(--gold); }
.analysis-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, .62fr); gap: 22px; align-items: start; }
.analysis-daily { max-height: 650px; overflow: auto; }
.analysis-daily thead { position: sticky; top: 0; z-index: 2; background: var(--paper); }
.loss-value { color: var(--danger); font-weight: 800; }
.success-value { color: #367448; font-weight: 800; }
.occupancy-cell { display: grid; grid-template-columns: minmax(80px, 1fr) 42px; gap: 8px; align-items: center; }
.occupancy-cell > span { height: 8px; overflow: hidden; border-radius: 999px; background: var(--sage-100); }
.occupancy-cell i { display: block; height: 100%; border-radius: inherit; background: var(--forest-700); }
.occupancy-cell strong { font-size: .75rem; text-align: right; }
.analysis-sidebar { display: grid; gap: 18px; }
.data-list { display: grid; }
.data-list > div { display: flex; justify-content: space-between; gap: 14px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.data-list > div:last-child { border-bottom: 0; }
.data-list span { color: var(--muted); }
.data-list strong { color: var(--forest-950); }
.panel-action { width: 100%; margin-top: 16px; }
.analysis-breakdowns { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 22px; }
.analysis-note { margin-top: 22px; padding: 18px 20px; border-left: 4px solid var(--forest-700); border-radius: 0 12px 12px 0; background: var(--sage-100); color: var(--muted); font-size: .88rem; }

@media (max-width: 1180px) {
    .dashboard-stats { grid-template-columns: repeat(3, 1fr); }
    .analysis-kpis { grid-template-columns: repeat(2, 1fr); }
    .important-alert { grid-template-columns: 50px minmax(0, 1fr); }
    .important-alert-actions { grid-column: 2; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .analysis-grid, .analysis-breakdowns { grid-template-columns: 1fr; }
    .candidate-card { grid-template-columns: 1fr 1fr; }
    .candidate-card > div:last-child { grid-column: 1 / -1; justify-items: start; }
    .history-card-body, .client-history-content { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
    .dashboard-alert { grid-template-columns: 36px 1fr; }
    .dashboard-alert-actions { grid-column: 2; justify-items: start; }
    .dashboard-alert-actions .button { width: 100%; }
    .dashboard-stats { grid-template-columns: 1fr 1fr; }
    .history-card > summary, .client-history-item > summary { grid-template-columns: 1fr auto; gap: 10px; }
    .history-card > summary > span:nth-child(2), .client-history-item > summary > span:nth-child(2) { grid-column: 1; }
    .history-card > summary .badge, .client-history-item > summary .badge { grid-column: 1; justify-self: start; }
    .history-card > summary::after, .client-history-item > summary::after { grid-column: 2; grid-row: 1 / span 3; }
    .important-alert { grid-template-columns: 1fr; padding: 20px; }
    .important-alert-icon { width: 46px; height: 46px; font-size: 1.45rem; }
    .important-alert-actions { grid-column: 1; grid-template-columns: 1fr; }
    .candidate-card { grid-template-columns: 1fr; }
    .candidate-card > div:last-child { grid-column: auto; }
    .analysis-filter { align-items: stretch; }
    .analysis-filter .field, .analysis-filter .button { width: 100%; }
    .analysis-presets { width: 100%; margin-left: 0; }
    .analysis-presets a { min-height: 44px; display: inline-flex; align-items: center; }
}

@media (max-width: 500px) {
    .analysis-kpis, .dashboard-stats { grid-template-columns: 1fr; }
    .metric-card { min-height: 165px; }
}

/* Clients locaux, soumissions et factures */
.callout { padding: 15px 17px; border: 1px solid var(--line); border-left: 4px solid var(--forest-700); border-radius: 4px 11px 11px 4px; background: var(--sage-50); color: var(--ink); }
.callout--wide { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-bottom: 22px; }
.callout--warning { border-color: #e4b262; border-left-color: var(--orange); background: #fff8df; color: #684814; }
.callout--success { border-color: #91b99b; border-left-color: #4d9565; background: #eaf5ec; color: #2f643e; }
.check-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.check-list li { position: relative; padding-left: 24px; color: var(--muted); }
.check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--forest-700); font-weight: 900; }
.local-client-summary { border-top: 4px solid var(--gold); }

.confirm-dialog { width: min(calc(100% - 28px), 560px); max-height: calc(100dvh - 28px); margin: auto; padding: 30px; overflow-y: auto; border: 1px solid #dba960; border-radius: var(--radius-lg); background: var(--paper); color: var(--ink); box-shadow: 0 26px 90px rgba(9, 20, 16, .35); overscroll-behavior: contain; }
.confirm-dialog::backdrop { background: rgba(9, 20, 16, .7); backdrop-filter: blur(3px); }
.confirm-dialog h2 { margin: 8px 0 12px; font-size: 1.9rem; }
.dialog-icon { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; background: var(--orange); color: white; font-size: 1.35rem; font-weight: 900; }
.dialog-actions { margin-top: 22px; }
.ready-call-banner form { flex: 0 0 auto; }
.client-documents-panel { margin: 22px 0 0; }
.portal-documents-panel { margin-bottom: 24px; }

.filter-bar--clients { grid-template-columns: minmax(230px, 1fr) repeat(2, minmax(150px, 200px)) auto auto; }
.document-stats .stat-card small { display: block; margin-top: 6px; color: var(--muted); }
.document-editor { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
.document-editor-main { display: grid; gap: 22px; }
.document-items { display: grid; gap: 12px; }
.document-item { display: grid; grid-template-columns: minmax(220px, 1.7fr) 95px 100px 125px 105px 42px; gap: 10px; align-items: end; padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: #fffdf7; }
.document-line-total { display: grid; align-content: center; min-height: 50px; }
.document-line-total span { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.document-line-total strong { color: var(--forest-950); }
.document-item-remove { margin-bottom: 3px; color: var(--danger); font-size: 1.25rem; }
.tax-choice { align-self: end; min-height: 50px; align-items: center; padding: 11px 13px; border: 1px solid var(--line); border-radius: 9px; background: var(--sage-50); }
.client-delivery-preview { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 18px; padding: 13px 15px; border-left: 4px solid var(--forest-700); border-radius: 4px 10px 10px 4px; background: var(--sage-50); }
.client-delivery-preview span { color: var(--muted); font-size: .85rem; }
.client-delivery-preview--call { border-left-color: var(--orange); background: #fff8df; }
.client-delivery-preview--call strong { color: #684814; }
.document-total-card { border-top-color: var(--gold); }

.document-preview { overflow: hidden; }
.document-preview-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 28px 30px; background: var(--forest-950); color: white; }
.document-preview-head span { color: #e6c783; font-size: .78rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.document-preview-head h2 { margin: 5px 0 0; color: white; font-family: Inter, sans-serif; font-size: 2rem; }
.document-preview-head > strong { font-size: 1.05rem; }
.document-parties { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; margin-bottom: 25px; }
.document-parties h3 { margin: 4px 0 8px; }
.document-parties p { color: var(--muted); }
.document-totals { width: min(100%, 340px); margin: 22px 0 0 auto; }
.document-totals > div { display: flex; justify-content: space-between; gap: 20px; padding: 9px 12px; border-bottom: 1px solid var(--line); }
.document-totals .document-grand-total { margin-top: 7px; padding: 15px 12px; border: 0; background: var(--forest-900); color: white; font-size: 1.2rem; }
.document-notes { margin-top: 26px; padding: 16px; border-left: 3px solid var(--gold); background: var(--sage-50); }
.document-notes p { margin: 5px 0 0; color: var(--muted); }

@media (max-width: 1120px) {
    .document-editor { grid-template-columns: 1fr; }
    .document-editor > .sticky-card { position: static; }
    .document-item { grid-template-columns: minmax(220px, 1fr) repeat(3, 100px) 100px 42px; }
}

@media (max-width: 860px) {
    .document-item { grid-template-columns: 1fr 1fr; }
    .document-item-description { grid-column: 1 / -1; }
    .document-item-remove { justify-self: end; }
    .filter-bar--clients { grid-template-columns: 1fr 1fr; }
    .callout--wide { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 620px) {
    .document-item, .document-parties { grid-template-columns: 1fr; }
    .document-item-description { grid-column: auto; }
    .document-item-remove { justify-self: stretch; width: 100%; }
    .client-delivery-preview { align-items: flex-start; flex-direction: column; }
    .document-preview-head { align-items: flex-start; flex-direction: column; padding: 22px 18px; }
    .document-preview-head h2 { font-size: 1.55rem; overflow-wrap: anywhere; }
    .document-totals { width: 100%; }
    .confirm-dialog { width: min(calc(100% - 20px), 560px); max-height: calc(100dvh - 20px); padding: 22px 18px calc(22px + env(safe-area-inset-bottom)); }
    .confirm-dialog h2 { font-size: 1.55rem; }
    .dialog-actions .button { width: 100%; }
}

/* Super administration de la plateforme */
.platform-body {
    background:
        radial-gradient(circle at 92% 4%, rgba(68, 121, 91, .13), transparent 28rem),
        #e9ede9;
}
.platform-header {
    border-bottom-color: rgba(202, 167, 96, .34);
    background: rgba(18, 39, 30, .97);
    box-shadow: 0 8px 28px rgba(15, 31, 24, .16);
}
.platform-header .brand, .platform-header .brand:hover,
.platform-header .main-nav > a, .platform-header .link-button { color: #fff; }
.platform-header .brand-copy small { color: #d8bd7b; }
.platform-brand-mark { border-color: rgba(232, 198, 122, .72); background: linear-gradient(145deg, #b86432, #733b23); }
.platform-header .main-nav > a:not(.button)::after { background: var(--gold); }
.platform-footer { padding: 22px 0; border-top: 1px solid rgba(202,167,96,.35); background: var(--forest-950); color: rgba(255,255,255,.64); font-size: .78rem; }
.platform-footer-inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; }

.platform-login-shell {
    position: relative;
    display: grid;
    min-height: calc(100dvh - 78px);
    place-items: center;
    overflow: hidden;
    padding: 52px 16px;
    background:
        linear-gradient(132deg, rgba(17, 38, 29, .96), rgba(36, 70, 53, .9)),
        url('../images/hero-terroir-foret-v2.png') center/cover no-repeat;
}
.platform-login-shell::before,
.platform-login-shell::after { content: ""; position: absolute; border: 1px solid rgba(202,167,96,.2); border-radius: 50%; }
.platform-login-shell::before { width: 420px; height: 420px; top: -230px; right: -90px; box-shadow: 0 0 0 48px rgba(202,167,96,.045); }
.platform-login-shell::after { width: 280px; height: 280px; bottom: -185px; left: -50px; box-shadow: 0 0 0 34px rgba(255,255,255,.025); }
.platform-login-card { position: relative; z-index: 1; width: min(100%, 570px); padding: clamp(28px, 6vw, 54px); border-color: rgba(202,167,96,.55); box-shadow: 0 28px 90px rgba(5,18,12,.36); }
.platform-login-card h1 { margin-bottom: 14px; font-size: clamp(2.25rem, 7vw, 4rem); }
.platform-login-form { display: grid; gap: 18px; margin-top: 32px; }
.platform-security-points { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.platform-security-points span { padding: 6px 9px; border: 1px solid rgba(76,105,80,.2); border-radius: 6px; background: var(--sage-50); color: var(--forest-800); font-size: .7rem; font-weight: 800; }
.platform-login-note { margin: 18px 0 0; }

.platform-heading { align-items: center; }
.platform-live-state { display: inline-flex; align-items: center; gap: 8px; padding: 9px 12px; border: 1px solid #b9c9bc; border-radius: 999px; background: rgba(255,255,255,.65); color: var(--forest-800); font-size: .78rem; font-weight: 800; }
.platform-live-state .status-dot { margin: 0; box-shadow: 0 0 0 4px rgba(91,163,110,.14); }
.platform-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.platform-kpi-grid--compact { margin-bottom: 24px; }
.platform-kpi { position: relative; display: grid; min-height: 178px; align-content: start; overflow: hidden; padding: 21px; border-top: 4px solid var(--forest-700); }
.platform-kpi::after { content: ""; position: absolute; right: -32px; bottom: -45px; width: 105px; height: 105px; border: 18px double rgba(202,167,96,.1); border-radius: 50%; }
.platform-kpi > span { color: var(--muted); font-size: .72rem; font-weight: 850; letter-spacing: .055em; text-transform: uppercase; }
.platform-kpi > strong { position: relative; z-index: 1; margin: 8px 0 5px; color: var(--forest-950); font: 700 clamp(1.65rem, 3vw, 2.4rem) Georgia, serif; line-height: 1.05; }
.platform-kpi > small { position: relative; z-index: 1; margin-top: auto; color: var(--muted); font-size: .76rem; line-height: 1.45; }
.platform-kpi--primary { border-top-color: var(--gold); background: linear-gradient(135deg, var(--forest-950), var(--forest-800)); }
.platform-kpi--primary > span, .platform-kpi--primary > small { color: rgba(255,255,255,.7); }
.platform-kpi--primary > strong { color: #fff; }
.platform-kpi--warning { border-top-color: var(--orange); background: #fff9e9; }
.platform-kpi--danger { border-top-color: var(--danger); background: #fff5f2; }
.platform-dashboard-grid, .platform-detail-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .7fr); gap: 22px; align-items: start; }
.platform-dashboard-grid { margin-bottom: 22px; }
.platform-chart-legend { display: flex; justify-content: flex-end; gap: 18px; margin-bottom: 16px; color: var(--muted); font-size: .76rem; }
.platform-chart-legend span { display: inline-flex; align-items: center; gap: 6px; }
.platform-chart-dot { display: inline-block; width: 9px; height: 9px; border-radius: 3px; }
.platform-chart-dot--organizations { background: var(--orange); }
.platform-chart-dot--clients { background: var(--forest-700); }
.platform-growth-chart { display: grid; grid-template-columns: repeat(6, minmax(55px, 1fr)); height: 265px; align-items: end; gap: 14px; padding: 16px 8px 0; border-bottom: 1px solid var(--line); background: repeating-linear-gradient(to top, transparent 0 54px, rgba(90,68,50,.07) 55px); }
.platform-growth-column { display: grid; height: 100%; grid-template-rows: 1fr 30px; align-items: end; gap: 8px; text-align: center; }
.platform-growth-bars { display: flex; height: 100%; align-items: end; justify-content: center; gap: 5px; }
.platform-growth-bar { position: relative; width: min(20px, 40%); min-height: 4px; border-radius: 5px 5px 0 0; }
.platform-growth-bar span { position: absolute; left: 50%; top: -22px; transform: translateX(-50%); color: var(--muted); font-size: .67rem; font-style: normal; font-weight: 800; }
.platform-growth-bar--organizations { background: linear-gradient(#c87a49, var(--orange)); }
.platform-growth-bar--clients { background: linear-gradient(#739078, var(--forest-700)); }
.platform-growth-column small { color: var(--muted); font-size: .68rem; white-space: nowrap; }
.platform-attention-list { display: grid; gap: 9px; }
.platform-attention-list a { display: grid; grid-template-columns: 34px 1fr; gap: 11px; align-items: center; padding: 11px; border: 1px solid #ead29e; border-radius: 10px; background: #fffaf0; color: var(--ink); text-decoration: none; }
.platform-attention-list a:hover { border-color: var(--orange); }
.platform-attention-list span:last-child { display: grid; min-width: 0; }
.platform-attention-list strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.platform-attention-list small { color: var(--muted); }
.platform-attention-icon { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; background: var(--orange); color: white; font-weight: 900; }
.platform-recent-panel { margin-top: 22px; }
.platform-config-warning { display: flex; align-items: center; gap: 18px; margin-top: 22px; }
.platform-filter { grid-template-columns: minmax(260px, 1fr) repeat(2, minmax(165px, 220px)) auto auto; }
.platform-subscription-filter { grid-template-columns: repeat(2, minmax(180px, 230px)) auto auto; justify-content: start; }

.platform-detail-grid { margin-bottom: 22px; }
.platform-detail-list > div { grid-template-columns: 155px 1fr; }
.platform-subheading { margin: 28px 0 14px; font-size: 1.1rem; }
.platform-person { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); }
.platform-person-avatar { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 10px; background: var(--forest-900); color: #fff; font-size: .78rem; font-weight: 900; }
.platform-person > span:nth-child(2) { display: grid; min-width: 0; }
.platform-person small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.platform-control-form { display: grid; gap: 14px; margin: 20px 0; }
.platform-control-form .button { width: 100%; }
.platform-control-form + .callout { display: grid; gap: 5px; }
.platform-subscription-editor { margin-bottom: 22px; scroll-margin-top: 100px; }
.platform-subscription-form { display: grid; grid-template-columns: repeat(4, minmax(145px, 1fr)); gap: 14px; align-items: end; }
.platform-subscription-submit .button { width: 100%; }
.platform-reminder-panel { margin: 24px 0; scroll-margin-top: 100px; }
.platform-reminder-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.platform-reminder-grid article { display: grid; grid-template-columns: 1fr auto; gap: 4px 14px; align-items: center; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: #faf8f1; }
.platform-reminder-grid article > span, .platform-reminder-grid article > small { grid-column: 1; }
.platform-reminder-grid article > strong { grid-column: 2; grid-row: 1 / span 2; color: var(--forest); font-size: 2rem; }
.platform-reminder-grid article > form { grid-column: 1 / -1; margin-top: 10px; }
.platform-stripe-details { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--line); }
.platform-stripe-details > div { display: grid; grid-template-columns: 1fr; gap: 3px; border: 0; }
.platform-stripe-details code { overflow-wrap: anywhere; }
.platform-operation-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.platform-activity-panel { margin-top: 22px; }
.platform-timeline { display: grid; }
.platform-timeline > div { display: grid; grid-template-columns: 14px 1fr; gap: 12px; padding: 10px 0; }
.platform-timeline i { width: 10px; height: 10px; margin-top: 7px; border: 2px solid var(--sage-100); border-radius: 50%; background: var(--forest-700); box-shadow: 0 0 0 3px var(--paper); }
.platform-timeline span { display: grid; }
.platform-timeline small { color: var(--muted); }
.platform-audit-details { min-width: 260px; }
.platform-audit-details span { display: block; font-size: .76rem; }
.platform-password-panel { margin-top: 22px; scroll-margin-top: 100px; }

@media (max-width: 1180px) {
    .platform-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .platform-subscription-form { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
}

@media (max-width: 980px) {
    .platform-header .main-nav { background: var(--forest-950); }
    .platform-header .main-nav > a.is-active { background: rgba(255,255,255,.1); color: #fff; }
    .platform-dashboard-grid, .platform-detail-grid, .platform-operation-grid { grid-template-columns: 1fr; }
    .platform-filter { grid-template-columns: 1fr 1fr; }
    .platform-subscription-form { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 680px) {
    .platform-heading { align-items: flex-start; flex-direction: column; }
    .platform-heading > .button, .platform-heading > .button-row { width: 100%; }
    .platform-heading > .button-row { display: grid; }
    .platform-kpi-grid, .platform-filter, .platform-subscription-filter, .platform-subscription-form, .platform-stripe-details { grid-template-columns: 1fr; }
    .platform-kpi { min-height: 150px; }
    .platform-growth-chart { gap: 6px; padding-inline: 0; }
    .platform-growth-bar { width: 12px; }
    .platform-growth-column small { font-size: .58rem; transform: rotate(-24deg); }
    .platform-config-warning { align-items: flex-start; flex-direction: column; }
    .platform-person { grid-template-columns: 38px 1fr; }
    .platform-person > .badge { grid-column: 2; justify-self: start; }
    .platform-detail-list > div { grid-template-columns: 1fr; gap: 3px; }
    .platform-footer-inner { flex-direction: column; }
    .platform-security-points { display: grid; }
}

/* Atelier de débitage — version 1.6 */
.container--wide { width: min(calc(100% - 32px), 1640px); }
.button--block { width: 100%; margin-top: 12px; }
.badge--forest { background: var(--forest-900); color: #fff; }
.workshop-page { overflow: hidden; }
.workshop-heading { align-items: end; }
.workshop-alert-strip { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 14px; margin-bottom: 22px; }
.workshop-alert-strip__intro { display: grid; align-content: center; padding: 18px; border-radius: var(--radius); background: var(--forest-950); color: #fff; }
.workshop-alert-strip__intro .eyebrow { margin-bottom: 4px; color: var(--gold); }
.workshop-alert-strip__intro strong { font: 700 1.35rem Georgia, serif; }
.workshop-alert-list { display: flex; gap: 10px; overflow-x: auto; padding: 2px 2px 8px; scrollbar-width: thin; }
.workshop-alert-card { display: grid; min-width: 265px; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; align-items: center; padding: 12px 14px; border: 1px solid #e2c998; border-radius: 12px; background: #fff9e9; color: var(--ink); text-decoration: none; box-shadow: var(--shadow-sm); }
.workshop-alert-card > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: var(--orange); color: #fff; font-weight: 900; }
.workshop-alert-card div { display: grid; min-width: 0; }
.workshop-alert-card small { overflow: hidden; color: var(--muted); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.workshop-alert-card--danger { border-color: #dca9a2; background: #fff3f0; }
.workshop-alert-card--danger > span { background: var(--danger); }
.workshop-board { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(285px, 1fr); gap: 14px; max-width: 100%; overflow-x: auto; padding: 2px 2px 18px; scroll-snap-type: x proximity; scrollbar-color: var(--forest-700) var(--sage-100); scrollbar-width: thin; }
.workshop-column { min-height: 530px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,250,240,.48); scroll-snap-align: start; }
.workshop-column > header { display: flex; min-height: 116px; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 17px; border-bottom: 1px solid var(--line); background: linear-gradient(145deg, var(--forest-900), var(--forest-800)); color: #fff; }
.workshop-column > header h2 { margin: 0 0 4px; color: #fff; font-size: 1.15rem; }
.workshop-column > header p { margin: 0; color: rgba(255,255,255,.67); font-size: .72rem; line-height: 1.4; }
.workshop-column > header > span { display: grid; flex: 0 0 auto; width: 30px; height: 30px; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; color: #fff; font-weight: 900; }
.workshop-column--completed > header { background: linear-gradient(145deg, #64472f, #806044); }
.workshop-column--notified > header, .workshop-column--picked_up > header { background: linear-gradient(145deg, #476148, #647b5e); }
.workshop-column__cards { display: grid; align-content: start; gap: 10px; padding: 10px; }
.workshop-empty { padding: 44px 14px; border: 1px dashed var(--line); border-radius: 10px; color: var(--muted); text-align: center; }
.workshop-card { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); box-shadow: 0 4px 14px rgba(23,37,29,.06); }
.workshop-card.is-running { border-color: #6d9b72; box-shadow: 0 0 0 2px rgba(76,105,80,.14), var(--shadow-sm); }
.workshop-card__main { display: grid; gap: 8px; padding: 14px; color: var(--ink); text-decoration: none; }
.workshop-card__main:hover { color: var(--ink); background: rgba(227,230,217,.32); }
.workshop-card__top, .workshop-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.workshop-card h3 { margin: 0; font-size: 1.12rem; }
.workshop-card p { margin: 0; color: var(--muted); font-size: .78rem; }
.workshop-card__meta { align-items: flex-start; flex-direction: column; color: var(--muted); font-size: .72rem; }
.lot-chip { display: inline-flex; max-width: 150px; overflow: hidden; padding: 3px 7px; border: 1px solid #cbbf9f; border-radius: 5px; background: #fff8e8; color: var(--bark-dark); font-family: ui-monospace, monospace; font-size: .68rem; font-weight: 900; text-overflow: ellipsis; white-space: nowrap; }
.workshop-timer { display: grid; grid-template-columns: 1fr auto; gap: 1px 8px; align-items: center; margin-top: 3px; padding: 9px; border-radius: 8px; background: var(--sage-50); }
.workshop-timer span { color: var(--muted); font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.workshop-timer strong { color: var(--forest-950); font-size: .83rem; }
.workshop-timer small { grid-column: 1 / -1; color: var(--muted); font-size: .65rem; }
.workshop-timer.is-live { background: #e4f1e3; }
.workshop-timer.is-live span { color: #326a43; }
.assignee-line { color: var(--forest-700); font-weight: 750; }
.workshop-card__actions { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 14px 14px; border-top: 1px solid var(--line); }
.workshop-card__actions .inline-form { flex: 1 1 auto; }
.workshop-card__actions .button { width: 100%; }

.workflow-stepper { display: grid; grid-template-columns: repeat(7, 1fr); margin: 0 0 22px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); list-style: none; box-shadow: var(--shadow-sm); }
.workflow-stepper li { position: relative; display: grid; gap: 7px; justify-items: center; color: var(--muted); text-align: center; }
.workflow-stepper li::before { content: ""; position: absolute; z-index: 0; top: 15px; right: 50%; width: 100%; height: 2px; background: var(--line); }
.workflow-stepper li:first-child::before { display: none; }
.workflow-stepper li > span { z-index: 1; display: grid; width: 31px; height: 31px; place-items: center; border: 2px solid var(--line); border-radius: 50%; background: var(--paper); font-size: .73rem; font-weight: 900; }
.workflow-stepper li small { max-width: 110px; font-size: .68rem; font-weight: 760; line-height: 1.25; }
.workflow-stepper li.is-complete::before, .workflow-stepper li.is-current::before { background: var(--forest-700); }
.workflow-stepper li.is-complete > span { border-color: var(--forest-700); background: var(--forest-700); color: #fff; }
.workflow-stepper li.is-current { color: var(--forest-950); }
.workflow-stepper li.is-current > span { border-color: var(--orange); background: var(--orange); color: #fff; box-shadow: 0 0 0 4px rgba(184,100,50,.14); }
.workshop-summary-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-bottom: 22px; }
.workshop-summary-grid > div { display: grid; min-width: 0; padding: 14px 16px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,250,240,.78); }
.workshop-summary-grid span { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.workshop-summary-grid strong { overflow-wrap: anywhere; color: var(--forest-950); font-family: Georgia, serif; font-size: 1.03rem; }
.workshop-dossier-grid { grid-template-columns: minmax(0, 1.75fr) minmax(300px, .62fr); }
.admin-grid--single { grid-template-columns: 1fr; }
.workshop-dossier-main, .workshop-dossier-aside { display: grid; align-content: start; gap: 22px; }
.workshop-dossier-aside { position: sticky; top: 168px; }
.work-order-meta { margin-bottom: 18px; padding: 16px; border: 1px solid #d8c89f; border-radius: 11px; background: #fff8e8; }
.work-items { display: grid; gap: 16px; }
.work-item { padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.5); }
.work-item__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; margin-bottom: 17px; padding-bottom: 13px; border-bottom: 1px solid var(--line); }
.work-item__header .eyebrow { margin-bottom: 4px; }
.work-item__header h3 { margin: 0; }
.work-item__checks { align-content: start; }
.work-item__checks .check { display: flex; align-items: center; gap: 7px; font-weight: 700; }
.work-item__checks input { width: 18px; height: 18px; }
.work-order-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 18px; }
.workshop-control-panel { border-color: #9caf9e; }
.workshop-control-panel .panel-header { background: var(--forest-950); }
.workshop-control-panel .panel-header h2, .workshop-control-panel .eyebrow { color: #fff; }
.workshop-actions { display: grid; gap: 10px; }
.workshop-actions .inline-form, .workshop-actions .button { width: 100%; }
.workshop-action-form { display: grid; gap: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.timeline-list { display: grid; padding: 12px 22px 20px; }
.timeline-item { display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 10px; padding: 10px 0; }
.timeline-item > span { width: 10px; height: 10px; margin-top: 7px; border: 2px solid var(--paper); border-radius: 50%; background: var(--forest-700); box-shadow: 0 0 0 2px var(--sage-100); }
.timeline-item > div { display: grid; }
.timeline-item small { color: var(--muted); }
.timeline-item p { margin: 4px 0 0; font-size: .84rem; }
.compact-list { display: grid; }
.compact-list > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 8px; padding: 13px 18px; border-top: 1px solid var(--line); }
.compact-list > div:first-child { border-top: 0; }
.compact-list small { grid-column: 1 / -1; color: var(--muted); }

.duplicate-check, .duplicate-panel { margin-top: 18px; border: 1px solid #e1bd78; border-radius: 12px; background: #fff7df; }
.duplicate-check { display: grid; gap: 13px; padding: 16px; }
.duplicate-check[hidden] { display: none; }
.duplicate-check p { margin: 3px 0 9px; }
.duplicate-client-link { display: grid; padding: 9px 11px; border-top: 1px solid rgba(116,87,25,.16); color: var(--ink); text-decoration: none; }
.duplicate-client-link span { color: var(--muted); font-size: .78rem; }
.duplicate-check .checkbox { padding: 10px; border-radius: 8px; background: rgba(255,255,255,.6); }
.duplicate-candidates { display: grid; gap: 10px; }
.duplicate-candidates article { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 13px; border: 1px solid #e3d4b3; border-radius: 10px; background: var(--paper); }
.duplicate-candidates p { margin: 3px 0 0; }
.credential-reveal { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .7fr); gap: 22px; margin-bottom: 22px; padding: 22px; border: 2px solid var(--gold); border-radius: var(--radius); background: linear-gradient(135deg, #fff8df, var(--paper)); box-shadow: var(--shadow-sm); }
.credential-reveal h2 { margin-bottom: 5px; font-size: 1.55rem; }
.credential-reveal dl { margin: 0; }
.credential-reveal dl > div { display: grid; padding: 7px 0; border-bottom: 1px solid var(--line); }
.credential-reveal dt { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.credential-reveal dd { margin: 0; font-weight: 800; overflow-wrap: anywhere; }
.credential-reveal code { padding: 3px 6px; border-radius: 5px; background: var(--forest-950); color: #fff; }
.role-explanations { display: grid; gap: 15px; }
.role-explanations > div { padding-bottom: 13px; border-bottom: 1px solid var(--line); }
.role-explanations p { margin: 4px 0 0; color: var(--muted); font-size: .85rem; }
.operations-overview { margin-bottom: 22px; }
.operations-kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.operations-kpis > div { display: grid; min-width: 0; padding: 18px; border-right: 1px solid var(--line); }
.operations-kpis > div:last-child { border-right: 0; }
.operations-kpis span { color: var(--muted); font-size: .67rem; font-weight: 850; letter-spacing: .045em; text-transform: uppercase; }
.operations-kpis strong { margin: 4px 0; color: var(--forest-950); font: 700 1.28rem Georgia, serif; }
.operations-kpis small { color: var(--muted); font-size: .72rem; line-height: 1.4; }
.portal-work-items { display: grid; gap: 9px; margin: 20px 0; }
.portal-work-items h3 { margin: 0 0 3px; }
.portal-work-items article { display: grid; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: var(--sage-50); }
.portal-work-items article > span, .portal-work-items article > small { color: var(--muted); font-size: .78rem; }
.portal-work-items article p { margin: 7px 0; font-size: .86rem; }

.print-document { background: #e8e8e8; color: #111; font-family: Arial, sans-serif; }
.print-document::before { display: none; }
.print-toolbar { position: sticky; z-index: 5; top: 0; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 12px; border-bottom: 1px solid #bbb; background: rgba(255,255,255,.96); }
.print-toolbar form { display: flex; align-items: center; gap: 8px; }
.print-toolbar input { width: 75px; padding: 8px; }
.print-sheet { width: min(calc(100% - 28px), 216mm); min-height: 279mm; margin: 22px auto; padding: 13mm; background: #fff; box-shadow: 0 10px 35px rgba(0,0,0,.18); }
.print-sheet__header { display: flex; justify-content: space-between; gap: 24px; padding-bottom: 12px; border-bottom: 3px solid #17251d; }
.print-sheet__header h1 { margin: 0; font-size: 26px; }
.print-sheet__header p { margin: 4px 0 0; font-size: 10px; }
.print-lot { display: grid; justify-items: end; }
.print-lot > small, .print-meta-grid span, .print-data-grid span, .print-instructions > span { color: #555; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.print-lot > strong { font: 800 18px ui-monospace, monospace; }
.barcode39 { display: inline-flex; height: 34px; align-items: stretch; overflow: hidden; background: #fff; }
.barcode39 i { display: block; flex: 0 0 auto; height: 100%; }
.barcode39__bar { background: #000; }
.barcode39__space { background: #fff; }
.print-meta-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 12px 0; }
.print-meta-grid > div { display: grid; padding: 8px; border: 1px solid #aaa; }
.print-meta-grid small { color: #555; font-size: 9px; }
.print-work-item { margin-top: 12px; break-inside: avoid; border: 1px solid #555; }
.print-work-item__title { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 7px 9px; background: #e9eee9; }
.print-work-item__title h2 { margin: 0; font: 800 15px Arial, sans-serif; }
.print-data-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.print-data-grid > div { display: grid; min-height: 47px; padding: 6px 8px; border-top: 1px solid #aaa; border-right: 1px solid #aaa; }
.print-instructions { padding: 7px 8px; border-top: 1px solid #aaa; }
.print-instructions p { min-height: 26px; margin: 2px 0 0; font-size: 11px; line-height: 1.35; }
.print-checks { display: flex; flex-wrap: wrap; gap: 18px; padding: 7px 8px; border-top: 1px solid #aaa; font-size: 11px; font-weight: 700; }
.print-signatures { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 28px; margin-top: 18px; padding: 12px 0; border-top: 2px solid #222; font-size: 11px; }
.print-sheet__footer { display: flex; justify-content: space-between; gap: 15px; margin-top: 15px; color: #666; font-size: 8px; }
.label-sheet { display: grid; width: min(calc(100% - 28px), 216mm); grid-template-columns: repeat(2, 1fr); gap: 5mm; margin: 18px auto; padding: 8mm; background: #fff; box-shadow: 0 10px 35px rgba(0,0,0,.18); }
.meat-label { display: grid; min-height: 58mm; align-content: start; overflow: hidden; padding: 5mm; border: 1.5px solid #111; break-inside: avoid; }
.meat-label header, .meat-label footer { display: flex; justify-content: space-between; gap: 8px; font-size: 8px; }
.meat-label header { padding-bottom: 3px; border-bottom: 2px solid #17251d; }
.meat-label__client { margin-top: 4px; font: 800 15px Georgia, serif; }
.meat-label__lot { display: flex; align-items: baseline; gap: 7px; }
.meat-label__lot span { font-size: 8px; font-weight: 900; }
.meat-label__lot strong { font: 900 14px ui-monospace, monospace; }
.meat-label__data { display: grid; margin: 3px 0; line-height: 1.25; }
.meat-label__data span { font-size: 9px; }
.meat-label__data strong { font-size: 12px; }
.meat-label > small { font-size: 8px; }
.meat-label__barcode { display: grid; justify-items: center; margin-top: auto; }
.meat-label__barcode .barcode39 { height: 28px; }
.meat-label__barcode small { font: 700 8px ui-monospace, monospace; }
.meat-label footer { margin-top: 3px; padding-top: 3px; border-top: 1px solid #777; }

@media (max-width: 1100px) {
    .workshop-summary-grid { grid-template-columns: repeat(3, 1fr); }
    .workshop-dossier-grid { grid-template-columns: 1fr; }
    .workshop-dossier-aside { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .operations-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .operations-kpis > div:nth-child(3n) { border-right: 0; }
    .operations-kpis > div:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 760px) {
    .container--wide { width: min(calc(100% - 20px), 1640px); }
    .workshop-heading { align-items: stretch; }
    .workshop-heading > .button-row { width: 100%; }
    .workshop-heading > .button-row .button { min-width: 0; white-space: normal; }
    .workshop-alert-strip { grid-template-columns: 1fr; }
    .workshop-alert-strip__intro { grid-template-columns: 1fr auto; align-items: center; }
    .workshop-alert-strip__intro .eyebrow { grid-column: 1 / -1; }
    .workshop-board { grid-auto-columns: minmax(86vw, 1fr); margin-inline: -2px; }
    .workshop-column { min-height: 440px; }
    .workflow-stepper { display: flex; gap: 0; overflow-x: auto; padding: 14px 8px; }
    .workflow-stepper li { flex: 0 0 92px; }
    .workflow-stepper li::before { width: 92px; }
    .workshop-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .workshop-summary-grid > div:last-child { grid-column: 1 / -1; }
    .workshop-dossier-aside { grid-template-columns: 1fr; }
    .work-item { padding: 14px; }
    .work-item__header { flex-direction: column; }
    .work-item__header .button { width: 100%; }
    .work-order-actions, .duplicate-candidates article, .credential-reveal { grid-template-columns: 1fr; flex-direction: column; }
    .work-order-actions .button, .duplicate-candidates .button-row, .duplicate-candidates .button { width: 100%; }
    .credential-reveal { display: grid; }
    .operations-kpis { grid-template-columns: 1fr 1fr; }
    .operations-kpis > div { border-right: 0; border-bottom: 1px solid var(--line); }
    .operations-kpis > div:last-child { border-bottom: 0; }
    .print-toolbar { align-items: stretch; flex-direction: column; }
    .print-toolbar .button, .print-toolbar form { width: 100%; }
    .print-toolbar form { display: grid; grid-template-columns: 1fr 72px; }
    .print-toolbar form .button { grid-column: 1 / -1; }
    .print-sheet { width: calc(100% - 16px); padding: 8mm; }
    .print-sheet__header, .print-sheet__footer { flex-direction: column; }
    .print-lot { justify-items: start; }
    .print-meta-grid, .print-data-grid { grid-template-columns: 1fr 1fr; }
    .label-sheet { width: calc(100% - 16px); grid-template-columns: 1fr; }
}

@media print {
    @page { size: letter; margin: 8mm; }
    body.print-document { background: #fff; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
    .no-print { display: none !important; }
    .print-sheet, .label-sheet { width: 100%; min-height: 0; margin: 0; padding: 0; box-shadow: none; }
    .print-sheet__header { padding-top: 0; }
    .label-sheet { gap: 5mm; }
    .meat-label { min-height: 58mm; }
}

/* ========================================================================== 
   Identité plateforme DébitageQc / Meat Cut Canada — version 1.8.0
   ========================================================================== */
.product-site {
    --product-red: #b3131b;
    --product-red-dark: #810b12;
    --product-charcoal: #202124;
    --product-ink: #171719;
    --product-gold: #c99a2e;
    --product-gold-light: #e8c96e;
    --product-cream: #f5f0e5;
    --product-paper: #fffdf8;
    --product-line: #ded6c7;
    --product-muted: #686761;
}

.product-header { border-bottom-color: rgba(29,29,31,.13); box-shadow: 0 7px 26px rgba(20,20,21,.06); background: rgba(255,253,248,.96); }
.product-header .header-inner { min-height: 74px; }
.product-brand { min-width: 0; gap: 11px; color: var(--product-ink); }
.product-brand:hover { color: var(--product-ink); }
.product-brand__symbol { display: grid; width: 54px; height: 54px; flex: 0 0 54px; place-items: center; overflow: hidden; border: 1px solid #dedbd3; border-radius: 12px; background: #fff; box-shadow: 0 5px 15px rgba(20,20,21,.08); }
.product-brand__symbol img { width: 100%; height: 100%; object-fit: contain; }
.product-brand .brand-copy strong { color: var(--product-ink); font: 850 1rem/1.05 Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: -.025em; }
.product-brand .brand-copy small { color: #6a6964; font-size: .67rem; }
.product-header .main-nav { gap: 17px; }
.product-header .main-nav > a, .product-header .link-button { flex-shrink: 0; color: #2e2e30; font-size: .82rem; white-space: nowrap; }
.product-header .main-nav > a:not(.button)::after { background: var(--product-red); }
.product-header .main-nav .nav-business-link { border-color: var(--product-red); background: var(--product-red); color: #fff; }
.product-header .main-nav .nav-business-link:hover { background: var(--product-red-dark); }
.product-header .language-switch { display: grid; min-width: 37px; height: 34px; place-items: center; padding: 0 8px; border: 1px solid #d6d1c7; border-radius: 8px; background: #fff; color: var(--product-ink); font-size: .72rem; letter-spacing: .06em; }
.product-header .language-switch::after { display: none; }

.product-button { border-radius: 9px; box-shadow: none; }
.product-button--primary { border-color: var(--product-red); background: var(--product-red); color: #fff; }
.product-button--primary:hover { border-color: var(--product-red-dark); background: var(--product-red-dark); box-shadow: 0 10px 24px rgba(179,19,27,.2); }
.product-button--secondary { border-color: #9b968d; background: transparent; color: var(--product-ink); }
.product-button--secondary:hover { border-color: var(--product-charcoal); background: var(--product-charcoal); color: #fff; }
.platform-kicker { display: inline-flex; max-width: 100%; align-items: center; gap: 10px; color: var(--product-red); font-size: .7rem; font-weight: 850; letter-spacing: .13em; overflow-wrap: anywhere; text-transform: uppercase; }
.platform-kicker i { display: block; width: 21px; height: 2px; background: var(--product-red); }

.platform-hero { position: relative; overflow: hidden; border-bottom: 1px solid #d7cdbb; background: var(--product-cream); }
.platform-hero::before { content: ""; position: absolute; inset: 0; opacity: .55; background-image: linear-gradient(90deg, rgba(32,33,36,.035) 1px, transparent 1px), linear-gradient(rgba(32,33,36,.03) 1px, transparent 1px), radial-gradient(circle at 84% 18%, rgba(201,154,46,.18), transparent 26%), radial-gradient(circle at 10% 80%, rgba(179,19,27,.07), transparent 28%); background-size: 42px 42px, 42px 42px, auto, auto; }
.platform-hero::after { content: ""; position: absolute; right: -9vw; bottom: -18vw; width: 48vw; height: 48vw; border: 1px solid rgba(179,19,27,.12); border-radius: 50%; box-shadow: 0 0 0 70px rgba(201,154,46,.045), 0 0 0 140px rgba(32,33,36,.025); }
.platform-hero__grid { position: relative; z-index: 1; display: grid; min-height: 700px; grid-template-columns: minmax(0, .92fr) minmax(510px, 1.08fr); align-items: center; gap: clamp(42px, 7vw, 100px); padding-block: clamp(72px, 9vw, 118px); }
.platform-hero__copy, .product-preview, .auth-panel, .auth-product-card, .auth-product-visual { min-width: 0; }
.platform-hero__copy h1 { max-width: 760px; margin: 22px 0 24px; color: var(--product-ink); font: 900 clamp(3.35rem, 6.2vw, 6.2rem)/.93 Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: -.075em; }
.platform-hero__copy h1 em { color: var(--product-red); font-style: normal; }
.platform-hero__copy > p { max-width: 680px; color: #54534f; font-size: clamp(1.03rem, 1.55vw, 1.2rem); line-height: 1.7; }
.platform-hero__actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 31px; }
.platform-hero__assurances { display: flex; flex-wrap: wrap; gap: 9px 18px; margin-top: 27px; color: #575650; font-size: .73rem; font-weight: 760; }
.platform-hero__assurances span { display: inline-flex; align-items: center; gap: 7px; }
.platform-hero__assurances span::before { content: "✓"; display: grid; width: 17px; height: 17px; place-items: center; border-radius: 50%; background: #252629; color: #fff; font-size: .62rem; }

.product-preview { position: relative; padding: 20px; border: 1px solid rgba(24,24,26,.2); border-radius: 22px; background: #fdfcf8; box-shadow: 0 34px 85px rgba(24,24,26,.2), 17px 18px 0 rgba(179,19,27,.07); transform: rotate(.45deg); }
.product-preview::before { content: ""; position: absolute; inset: -10px 35px auto; height: 10px; border-radius: 11px 11px 0 0; background: var(--product-charcoal); }
.product-preview__topbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid #dedbd3; }
.product-preview__identity { display: flex; align-items: center; gap: 11px; }
.product-preview__identity img { width: 44px; height: 44px; border: 1px solid #e2ded6; border-radius: 8px; background: #fff; object-fit: contain; }
.product-preview__identity span { display: grid; line-height: 1.25; }
.product-preview__identity strong { color: #252527; font-size: .88rem; }
.product-preview__identity small { color: #77746d; font-size: .66rem; }
.product-live { display: inline-flex; align-items: center; gap: 6px; padding: 6px 9px; border-radius: 20px; background: #e9f2e7; color: #3f673b; font-size: .65rem; font-weight: 850; text-transform: uppercase; }
.product-live i { width: 7px; height: 7px; border-radius: 50%; background: #5a9954; box-shadow: 0 0 0 3px rgba(90,153,84,.15); }
.product-preview__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin: 17px 0; }
.product-preview__stats article { display: grid; padding: 13px 14px; border: 1px solid #dfdcd5; border-radius: 10px; background: #f5f2eb; }
.product-preview__stats span, .product-preview__stats small { color: #77736b; font-size: .59rem; font-weight: 760; text-transform: uppercase; }
.product-preview__stats strong { color: #232326; font-size: 1.65rem; line-height: 1.1; }
.product-preview__work { overflow: hidden; border: 1px solid #dad7d0; border-radius: 12px; background: #fff; }
.product-preview__heading { display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 1px solid #e6e2db; background: #2a2b2e; color: #fff; font-size: .68rem; font-weight: 800; }
.product-preview__heading small { color: #d8c98f; }
.product-job { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 13px 14px; border-bottom: 1px solid #ece9e2; }
.product-job:last-child { border-bottom: 0; }
.product-job__time { color: #77736e; font: 800 .7rem ui-monospace, monospace; }
.product-job__main { display: grid; min-width: 0; }
.product-job__main strong { color: #252527; font-size: .75rem; }
.product-job__main small { overflow: hidden; color: #77736e; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.product-job__badge { padding: 5px 8px; border-radius: 20px; background: #edf0f4; color: #4a6076; font-size: .57rem; font-weight: 850; text-transform: uppercase; }
.product-job__badge--work { background: #fff0cb; color: #7f5a12; }
.product-job__badge--ready { background: #e5f1e4; color: #396938; }
.product-preview__alert { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 11px 13px; border: 1px solid #e7c35b; border-radius: 10px; background: #fff7d8; }
.product-preview__alert > span { display: grid; width: 26px; height: 26px; flex: 0 0 26px; place-items: center; border-radius: 50%; background: var(--product-gold); color: #fff; font-weight: 900; }
.product-preview__alert p { display: grid; margin: 0; line-height: 1.25; }
.product-preview__alert strong { color: #493713; font-size: .72rem; }
.product-preview__alert small { color: #7a672f; font-size: .63rem; }

.product-proof { position: relative; z-index: 2; border-bottom: 1px solid #393a3d; background: var(--product-charcoal); color: #fff; }
.product-proof__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.product-proof__grid > div { display: grid; padding: 25px 24px; border-right: 1px solid rgba(255,255,255,.12); }
.product-proof__grid > div:last-child { border-right: 0; }
.product-proof strong { color: #fff; font-size: .82rem; }
.product-proof span { color: rgba(255,255,255,.57); font-size: .7rem; }

.platform-section { padding: clamp(76px, 9vw, 124px) 0; }
.platform-heading { max-width: 790px; margin-bottom: 44px; }
.platform-heading h2 { margin: 17px 0 18px; color: var(--product-ink); font: 850 clamp(2.25rem, 4.3vw, 4.25rem)/1 Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: -.06em; }
.platform-heading > p { max-width: 710px; color: var(--product-muted); font-size: 1.06rem; }
.platform-heading--split { display: grid; max-width: none; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); align-items: end; gap: 70px; }
.platform-heading--split p { margin-bottom: 10px; }
.platform-section--audiences { background: var(--product-paper); }
.audience-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.audience-card { position: relative; display: grid; min-height: 510px; align-content: start; overflow: hidden; padding: clamp(27px, 4vw, 48px); border: 1px solid #d8d4cc; border-radius: 18px; background: #f5f1e8; }
.audience-card::after { content: ""; position: absolute; right: -60px; top: -65px; width: 210px; height: 210px; border: 1px solid rgba(179,19,27,.1); border-radius: 50%; box-shadow: 0 0 0 36px rgba(201,154,46,.045); }
.audience-card--client { background: #2b2c2f; color: rgba(255,255,255,.7); }
.audience-card--client h3 { color: #fff; }
.audience-card__number { position: relative; z-index: 1; justify-self: end; color: rgba(179,19,27,.7); font: 900 3rem/1 Inter, sans-serif; letter-spacing: -.07em; }
.audience-card--client .audience-card__number { color: rgba(232,201,110,.7); }
.audience-card h3 { max-width: 580px; margin: 11px 0 28px; color: var(--product-ink); font: 820 clamp(1.65rem, 2.5vw, 2.45rem)/1.1 Inter, sans-serif; letter-spacing: -.045em; }
.audience-card ul { display: grid; gap: 12px; margin: 0 0 32px; padding: 0; list-style: none; }
.audience-card li { display: grid; grid-template-columns: 19px 1fr; gap: 8px; font-size: .9rem; }
.audience-card li::before { content: "✓"; color: var(--product-red); font-weight: 900; }
.audience-card--client li::before { color: var(--product-gold-light); }
.audience-card > a { align-self: end; margin-top: auto; color: var(--product-red); font-weight: 850; text-decoration: none; }
.audience-card--client > a { color: var(--product-gold-light); }

.platform-section--dark { position: relative; overflow: hidden; background: #242528; color: rgba(255,255,255,.66); }
.platform-section--dark::before { content: ""; position: absolute; inset: 0; opacity: .35; background-image: linear-gradient(125deg, transparent 0 48%, rgba(201,154,46,.08) 48% 48.2%, transparent 48.2%); background-size: 110px 110px; }
.platform-section--dark .container { position: relative; z-index: 1; }
.platform-heading--light h2 { color: #fff; }
.platform-heading--light p { color: rgba(255,255,255,.62); }
.platform-heading--light .platform-kicker { color: var(--product-gold-light); }
.platform-heading--light .platform-kicker i { background: var(--product-gold-light); }
.workflow-ribbon { display: grid; grid-template-columns: repeat(6, 1fr); margin: 0; padding: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.15); border-radius: 14px; list-style: none; background: rgba(255,255,255,.035); }
.workflow-ribbon li { position: relative; display: grid; min-height: 170px; align-content: center; gap: 4px; padding: 24px 20px; border-right: 1px solid rgba(255,255,255,.12); }
.workflow-ribbon li:last-child { border-right: 0; }
.workflow-ribbon li:not(:last-child)::after { content: "→"; position: absolute; z-index: 2; right: -11px; top: 50%; display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: var(--product-gold); color: #202124; font-size: .7rem; font-weight: 900; transform: translateY(-50%); }
.workflow-ribbon span { color: var(--product-gold-light); font: 850 .65rem Inter, sans-serif; letter-spacing: .1em; }
.workflow-ribbon strong { color: #fff; font-size: .88rem; }
.workflow-ribbon small { color: rgba(255,255,255,.48); font-size: .67rem; }

.platform-section--features { background: #efebe2; }
.platform-features-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #cec8bd; border-left: 1px solid #cec8bd; }
.platform-features-grid article { min-height: 280px; padding: clamp(25px, 3vw, 38px); border-right: 1px solid #cec8bd; border-bottom: 1px solid #cec8bd; background: rgba(255,253,248,.48); }
.platform-features-grid article:hover { background: #fffdf8; }
.feature-glyph { display: inline-grid; min-width: 45px; height: 27px; place-items: center; padding: 0 7px; border-radius: 4px; background: var(--product-charcoal); color: #fff; font: 850 .6rem/1 ui-monospace, monospace; letter-spacing: .08em; }
.platform-features-grid h3 { margin: 25px 0 12px; color: var(--product-ink); font: 800 1.25rem/1.15 Inter, sans-serif; letter-spacing: -.035em; }
.platform-features-grid p { margin: 0; color: #67645e; font-size: .88rem; }

.platform-section--insight { background: var(--product-paper); }
.insight-panel { display: grid; grid-template-columns: minmax(0, .92fr) minmax(460px, 1.08fr); align-items: center; gap: clamp(55px, 9vw, 125px); }
.insight-panel__copy h2 { margin: 18px 0; color: var(--product-ink); font: 850 clamp(2.2rem, 4vw, 4rem)/1 Inter, sans-serif; letter-spacing: -.06em; }
.insight-panel__copy p { color: var(--product-muted); font-size: 1rem; }
.insight-panel__copy .button { margin-top: 15px; }
.insight-chart { display: grid; min-height: 390px; grid-template-columns: repeat(6, 1fr); align-items: end; gap: 12px; padding: 28px 28px 23px; border: 1px solid #d9d4ca; border-radius: 18px; background: #f2eee6; box-shadow: 14px 15px 0 rgba(32,33,36,.04); }
.insight-chart__legend { grid-column: 1 / -1; display: flex; justify-content: flex-end; align-self: start; gap: 15px; color: #66635e; font-size: .68rem; }
.insight-chart__legend span { display: flex; align-items: center; gap: 6px; }
.insight-chart__legend i { width: 9px; height: 9px; background: #b8b3aa; }
.insight-chart__legend .actual { background: var(--product-red); }
.insight-chart__day { display: grid; height: 240px; align-items: end; gap: 8px; text-align: center; }
.insight-chart__day > div { display: flex; height: 100%; align-items: end; justify-content: center; gap: 4px; border-bottom: 1px solid #b9b4ab; background-image: linear-gradient(rgba(34,34,36,.06) 1px, transparent 1px); background-size: 100% 25%; }
.insight-chart__day i, .insight-chart__day b { display: block; width: 31%; min-height: 3px; background: #aaa69e; }
.insight-chart__day b { background: var(--product-red); }
.insight-chart__day span { color: #65625d; font-size: .68rem; font-weight: 800; }
.insight-chart aside { grid-column: 1 / -1; display: flex; align-items: baseline; justify-content: flex-end; gap: 8px; padding-top: 12px; border-top: 1px solid #d3cec5; }
.insight-chart aside strong { color: var(--product-red); font-size: 1.15rem; }
.insight-chart aside span { color: #67645f; font-size: .7rem; }

.platform-final-cta { padding: 58px 0; border-top: 5px solid var(--product-red); background: #202124; color: rgba(255,255,255,.65); }
.platform-final-cta__inner { display: grid; grid-template-columns: 100px minmax(0, 1fr) auto; align-items: center; gap: 30px; }
.platform-final-cta img { width: 92px; height: 92px; border-radius: 15px; background: #fff; object-fit: contain; }
.platform-final-cta .eyebrow { margin-bottom: 6px; color: var(--product-gold-light); }
.platform-final-cta h2 { margin: 0 0 7px; color: #fff; font: 800 clamp(1.55rem, 3vw, 2.5rem)/1.05 Inter, sans-serif; letter-spacing: -.045em; }
.platform-final-cta p { margin: 0; }
.platform-final-cta__actions { display: grid; gap: 9px; }
.platform-final-cta .product-button--secondary { border-color: rgba(255,255,255,.45); color: #fff; }

.product-footer { border-top-color: var(--product-gold); background: linear-gradient(112deg, #171719, #28292c); }
.product-footer .product-brand { color: #fff; }
.product-footer .product-brand:hover { color: #fff; }
.product-footer .product-brand__symbol--footer { width: 60px; height: 60px; flex-basis: 60px; }

/* Répertoire des centres */
.centre-directory-hero { position: relative; overflow: hidden; padding: clamp(62px, 8vw, 100px) 0; background: #232427; color: rgba(255,255,255,.67); }
.centre-directory-hero::after { content: ""; position: absolute; right: -100px; top: -180px; width: 480px; height: 480px; border: 1px solid rgba(201,154,46,.2); border-radius: 50%; box-shadow: 0 0 0 65px rgba(179,19,27,.055), 0 0 0 130px rgba(255,255,255,.018); }
.centre-directory-hero__inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, .85fr) minmax(410px, .65fr); align-items: end; gap: clamp(45px, 8vw, 110px); }
.centre-directory-hero h1 { margin: 18px 0 13px; color: #fff; font: 850 clamp(2.8rem, 5vw, 5rem)/.98 Inter, sans-serif; letter-spacing: -.065em; }
.centre-directory-hero p { max-width: 650px; margin: 0; }
.centre-directory-hero .platform-kicker { color: var(--product-gold-light); }
.centre-directory-hero .platform-kicker i { background: var(--product-gold-light); }
.centre-search { padding: 22px; border: 1px solid rgba(255,255,255,.18); border-radius: 14px; background: rgba(255,255,255,.07); }
.centre-search label { display: block; margin-bottom: 9px; color: #fff; font-size: .74rem; font-weight: 800; }
.centre-search > div { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.centre-search input { min-width: 0; padding: 13px 14px; border: 1px solid rgba(255,255,255,.3); border-radius: 8px; background: #fff; }
.centre-directory-section { background: #f3efe6; }
.directory-heading { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: 28px; }
.directory-heading h2 { margin: 0; color: var(--product-ink); font: 820 clamp(1.8rem, 3vw, 3rem)/1 Inter, sans-serif; letter-spacing: -.045em; }
.directory-count { padding: 7px 11px; border-radius: 20px; background: #ded8cc; color: #53514d; font-size: .72rem; font-weight: 800; }
.centre-directory-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.centre-directory-card { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 17px; padding: 23px; border: 1px solid #d4cec3; border-radius: 14px; background: #fffdf8; box-shadow: 0 7px 20px rgba(32,33,36,.045); }
.centre-directory-card__mark { display: grid; width: 64px; height: 64px; place-items: center; border-radius: 12px; background: #242528; color: var(--product-gold-light); font: 850 1.75rem/1 Inter, sans-serif; }
.centre-directory-card__body h3 { margin: 4px 0; color: var(--product-ink); font: 800 1.3rem/1.1 Inter, sans-serif; letter-spacing: -.03em; }
.centre-directory-card__body p { margin: 0; color: #6b6862; font-size: .83rem; }
.centre-directory-card__body small { display: block; margin-top: 9px; color: #7a766f; font-size: .68rem; overflow-wrap: anywhere; }
.centre-directory-card__actions { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding-top: 15px; border-top: 1px solid #e6e1d8; }
.centre-directory-card__actions .button { min-height: 43px; font-size: .76rem; }
.centre-directory-card__actions > a:not(.button) { color: var(--product-red); font-size: .76rem; font-weight: 800; text-decoration: none; }
.directory-empty { background: #fffdf8; }
.directory-empty .feature-glyph { margin-bottom: 14px; }
.directory-business-callout { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 35px; margin-top: 45px; padding: clamp(25px, 4vw, 42px); border-radius: 16px; background: var(--product-charcoal); color: rgba(255,255,255,.65); }
.directory-business-callout h2 { margin: 4px 0 8px; color: #fff; font: 800 clamp(1.6rem, 3vw, 2.5rem)/1.05 Inter, sans-serif; }
.directory-business-callout p { margin: 0; }
.directory-business-callout .eyebrow { color: var(--product-gold-light); }
.directory-business-callout .button { border-color: rgba(255,255,255,.55); color: #fff; }

/* Connexion et inscription client */
.auth-wrap--product { grid-template-columns: minmax(0, 610px) minmax(480px, 1fr); min-height: calc(100svh - 74px); background: var(--product-paper); }
.auth-wrap--product .auth-panel { padding: clamp(34px, 5.5vw, 76px); background-color: #fffdf8; background-image: linear-gradient(90deg, rgba(32,33,36,.025) 1px, transparent 1px), linear-gradient(rgba(32,33,36,.02) 1px, transparent 1px); background-size: 32px 32px; }
.auth-wrap--product .auth-panel .form-card { width: min(100%, 520px); }
.auth-product-card > h1 { margin: 17px 0 14px; color: var(--product-ink); font: 850 clamp(2.3rem, 4.5vw, 4.2rem)/.98 Inter, sans-serif; letter-spacing: -.065em; }
.auth-product-card--signup > h1 { font-size: clamp(2.15rem, 4vw, 3.55rem); }
.auth-fields { margin-top: 27px; }
.auth-submit-row { margin-top: 26px; }
.selected-centre { display: grid; margin: 23px 0 6px; padding: 13px 15px; border-left: 4px solid var(--product-red); border-radius: 0 9px 9px 0; background: #f2eee5; }
.selected-centre > span { color: #77736d; font-size: .63rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.selected-centre > strong { color: var(--product-ink); }
.selected-centre > small { color: #7a756d; }
.selected-centre-inline { color: #55534f !important; }
.centre-code-field { padding: 16px; border: 1px solid #ddd5c8; border-radius: 10px; background: #f5f1e9; }
.auth-product-visual { position: relative; display: grid; min-height: 650px; align-content: center; gap: 26px; overflow: hidden; padding: clamp(48px, 8vw, 110px); background: #242528; color: rgba(255,255,255,.68); }
.auth-product-visual::before { content: ""; position: absolute; right: -150px; top: -160px; width: 500px; height: 500px; border: 1px solid rgba(201,154,46,.2); border-radius: 50%; box-shadow: 0 0 0 75px rgba(179,19,27,.06), 0 0 0 150px rgba(255,255,255,.02); }
.auth-product-visual::after { content: ""; position: absolute; inset: 0; opacity: .12; background-image: linear-gradient(45deg, transparent 48%, #fff 48% 49%, transparent 49%); background-size: 70px 70px; }
.auth-product-visual > * { position: relative; z-index: 1; }
.auth-product-visual__brand { display: flex; align-items: center; gap: 20px; }
.auth-product-visual__brand img { width: 96px; height: 96px; flex: 0 0 96px; border-radius: 14px; background: #fff; object-fit: contain; }
.auth-product-visual__brand span { max-width: 420px; color: #fff; font: 750 clamp(1.5rem, 2.6vw, 2.5rem)/1.08 Inter, sans-serif; letter-spacing: -.045em; }
.auth-tracking-card { width: min(100%, 560px); padding: 25px; border: 1px solid rgba(255,255,255,.16); border-radius: 15px; background: rgba(255,255,255,.07); backdrop-filter: blur(8px); }
.auth-tracking-card > strong { display: block; margin-bottom: 18px; color: #fff; font: 800 1.1rem ui-monospace, monospace; }
.auth-tracking-card ol { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.auth-tracking-card li { position: relative; padding: 9px 0 9px 29px; color: rgba(255,255,255,.42); font-size: .8rem; }
.auth-tracking-card li::before { content: ""; position: absolute; left: 2px; top: 15px; width: 9px; height: 9px; border: 2px solid rgba(255,255,255,.3); border-radius: 50%; }
.auth-tracking-card li:not(:last-child)::after { content: ""; position: absolute; left: 7px; top: 26px; bottom: -8px; width: 1px; background: rgba(255,255,255,.2); }
.auth-tracking-card li.is-done { color: rgba(255,255,255,.7); }
.auth-tracking-card li.is-done::before { border-color: #71966b; background: #71966b; }
.auth-tracking-card li.is-current { color: #fff; font-weight: 800; }
.auth-tracking-card li.is-current::before { border-color: var(--product-gold-light); background: var(--product-gold); box-shadow: 0 0 0 4px rgba(201,154,46,.14); }
.auth-product-visual blockquote { max-width: 550px; margin: 0; color: #fff; font: italic 1.15rem/1.55 Georgia, serif; }
.auth-benefit-list { display: grid; width: min(100%, 570px); border: 1px solid rgba(255,255,255,.15); border-radius: 15px; background: rgba(255,255,255,.06); }
.auth-benefit-list article { display: grid; grid-template-columns: 37px 1fr; gap: 14px; padding: 19px 21px; border-bottom: 1px solid rgba(255,255,255,.12); }
.auth-benefit-list article:last-child { border-bottom: 0; }
.auth-benefit-list article > span { color: var(--product-gold-light); font: 850 .68rem Inter, sans-serif; }
.auth-benefit-list article > div { display: grid; }
.auth-benefit-list strong { color: #fff; font-size: .88rem; }
.auth-benefit-list small { color: rgba(255,255,255,.54); }
.auth-product-card .account-kind-switch a.is-active { background: var(--product-charcoal); }

/* Harmonisation de l'inscription commerce avec la nouvelle vitrine. */
.product-site .business-signup__intro { background: radial-gradient(circle at 82% 5%, rgba(201,154,46,.18), transparent 30%), linear-gradient(115deg, #202124, #303136); }
.product-site .business-signup__intro .eyebrow { color: var(--product-gold-light); }
.product-site .signup-benefits { border-color: rgba(255,255,255,.15); }
.product-site .signup-benefits li { background: rgba(255,255,255,.045); }
.product-site .account-kind-switch a.is-active, .product-site .step-number { background: var(--product-charcoal); }
.product-site .signup-confirmation { background: #f3efe6; }

@media (max-width: 1180px) {
    .platform-hero__grid { grid-template-columns: minmax(0, .9fr) minmax(430px, 1.1fr); gap: 42px; }
    .platform-hero__copy h1 { font-size: clamp(3.15rem, 6vw, 5rem); }
    .product-header .main-nav { gap: 12px; }
    .product-header .main-nav > a, .product-header .link-button { font-size: .76rem; }
    .workflow-ribbon { grid-template-columns: repeat(3, 1fr); }
    .workflow-ribbon li:nth-child(3) { border-right: 0; }
    .workflow-ribbon li:nth-child(-n+3) { border-bottom: 1px solid rgba(255,255,255,.12); }
}

@media (max-width: 980px) {
    .product-header .main-nav { gap: 3px; background: #fffdf8; }
    .product-header .main-nav .nav-business-link { background: var(--product-red); color: #fff; }
    .product-header .main-nav > a.is-active { background: #eee8dc; color: var(--product-ink); }
    .platform-hero__grid { min-height: 0; grid-template-columns: minmax(0, 1fr); padding-block: 75px 90px; }
    .platform-hero__copy { max-width: 760px; }
    .product-preview { width: min(100%, 690px); margin-inline: auto; transform: none; }
    .product-proof__grid { grid-template-columns: repeat(2, 1fr); }
    .product-proof__grid > div:nth-child(2) { border-right: 0; }
    .product-proof__grid > div:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.12); }
    .platform-heading--split, .insight-panel, .centre-directory-hero__inner { grid-template-columns: 1fr; gap: 28px; }
    .platform-features-grid { grid-template-columns: repeat(2, 1fr); }
    .insight-chart { width: min(100%, 650px); }
    .platform-final-cta__inner { grid-template-columns: 80px 1fr; }
    .platform-final-cta__actions { grid-column: 1 / -1; grid-template-columns: repeat(2, 1fr); }
    .auth-wrap--product { grid-template-columns: minmax(0, 1fr); }
    .auth-product-visual { min-height: auto; padding-block: 70px; }
}

@media (max-width: 760px) {
    .product-header .header-inner { min-height: 68px; }
    .product-brand__symbol { width: 46px; height: 46px; flex-basis: 46px; border-radius: 9px; }
    .product-brand .brand-copy strong { max-width: 176px; font-size: .92rem; }
    .platform-hero__grid { padding-block: 58px 72px; }
    .platform-kicker { display: flex; align-items: flex-start; line-height: 1.5; }
    .platform-kicker i { flex: 0 0 21px; margin-top: .52em; }
    .platform-hero__copy h1 { margin-top: 17px; font-size: clamp(2.75rem, 13vw, 4.45rem); }
    .platform-hero__actions, .platform-final-cta__actions { grid-template-columns: 1fr; }
    .platform-hero__actions .button { width: 100%; }
    .platform-hero__assurances { display: grid; }
    .product-preview { padding: 13px; border-radius: 14px; box-shadow: 7px 9px 0 rgba(179,19,27,.06); }
    .product-preview::before { display: none; }
    .product-preview__stats { gap: 5px; }
    .product-preview__stats article { padding: 10px 8px; }
    .product-preview__stats strong { font-size: 1.3rem; }
    .product-job { grid-template-columns: 37px minmax(0, 1fr); }
    .product-job__badge { grid-column: 2; justify-self: start; }
    .product-preview__alert { align-items: flex-start; }
    .product-proof__grid { grid-template-columns: 1fr; }
    .product-proof__grid > div { padding: 18px 8px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
    .product-proof__grid > div:last-child { border-bottom: 0; }
    .platform-section { padding: 66px 0; }
    .platform-heading { margin-bottom: 30px; }
    .platform-heading h2 { font-size: clamp(2rem, 10vw, 3.15rem); }
    .audience-grid, .centre-directory-grid { grid-template-columns: 1fr; }
    .audience-card { min-height: 0; padding: 25px 21px; }
    .workflow-ribbon { grid-template-columns: 1fr 1fr; }
    .workflow-ribbon li { min-height: 130px; border-right: 1px solid rgba(255,255,255,.12) !important; border-bottom: 1px solid rgba(255,255,255,.12); }
    .workflow-ribbon li:nth-child(2n) { border-right: 0 !important; }
    .workflow-ribbon li:nth-last-child(-n+2) { border-bottom: 0; }
    .workflow-ribbon li:not(:last-child)::after { display: none; }
    .platform-features-grid { grid-template-columns: 1fr; }
    .platform-features-grid article { min-height: 0; }
    .insight-chart { min-height: 325px; gap: 6px; padding: 19px 13px; }
    .insight-chart__day { height: 190px; }
    .insight-chart aside { align-items: flex-end; flex-direction: column; text-align: right; }
    .platform-final-cta__inner { grid-template-columns: 1fr; }
    .platform-final-cta img { width: 78px; height: 78px; }
    .platform-final-cta__actions { grid-column: auto; }
    .centre-directory-hero { padding: 58px 0; }
    .centre-search { padding: 15px; }
    .centre-search > div { grid-template-columns: 1fr; }
    .directory-heading { align-items: flex-start; flex-direction: column; }
    .centre-directory-card { grid-template-columns: 52px minmax(0, 1fr); padding: 18px; }
    .centre-directory-card__mark { width: 52px; height: 52px; }
    .centre-directory-card__actions { align-items: stretch; flex-direction: column; }
    .centre-directory-card__actions .button { width: 100%; }
    .directory-business-callout { grid-template-columns: 1fr; }
    .directory-business-callout .button { width: 100%; }
    .auth-wrap--product .auth-panel { padding: 35px 12px 46px; }
    .auth-product-card { padding: 22px 17px !important; }
    .auth-product-visual { padding: 56px 20px; }
    .auth-product-visual__brand { align-items: flex-start; flex-direction: column; }
    .auth-product-visual__brand img { width: 78px; height: 78px; flex-basis: 78px; }
    .auth-product-visual__brand span { font-size: 1.75rem; }
    .auth-submit-row { align-items: stretch; flex-direction: column; }
    .auth-submit-row .button { width: 100%; }
}

@media (max-width: 420px) {
    .product-brand .brand-copy strong { max-width: 150px; }
    .platform-hero__copy h1 { font-size: clamp(2.5rem, 13.5vw, 3.4rem); }
    .product-preview__identity small { display: none; }
    .product-preview__stats span { min-height: 28px; }
    .workflow-ribbon { grid-template-columns: 1fr; }
    .workflow-ribbon li { border-right: 0 !important; border-bottom: 1px solid rgba(255,255,255,.12) !important; }
    .workflow-ribbon li:last-child { border-bottom: 0 !important; }
    .insight-chart__legend { justify-content: flex-start; }
}

/* Marketplace, centre listings and verified reviews — v1.8 */
.directory-marketplace-hero {
    position: relative;
    overflow: hidden;
    color: rgba(255,255,255,.82);
    background:
        radial-gradient(circle at 88% 18%, rgba(202,167,96,.23), transparent 22%),
        linear-gradient(118deg, #13271f 0%, #22382c 58%, #3c4b35 100%);
}
.directory-marketplace-hero::after {
    content: "";
    position: absolute;
    right: -90px; bottom: -180px;
    width: 430px; height: 430px;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 50%;
    box-shadow: 0 0 0 52px rgba(255,255,255,.025), 0 0 0 104px rgba(255,255,255,.018);
}
.directory-marketplace-hero__inner { position: relative; z-index: 1; min-height: 410px; display: grid; grid-template-columns: minmax(0, 1fr) 230px; align-items: center; gap: 70px; padding-block: 72px 102px; }
.directory-marketplace-hero h1 { max-width: 830px; margin: 13px 0 20px; color: #fffaf0; font-size: clamp(3rem, 6vw, 5.8rem); }
.directory-marketplace-hero__copy > p { max-width: 730px; font-size: clamp(1.05rem, 2vw, 1.26rem); }
.directory-trust-row { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 27px; color: #f1dcae; font-size: .87rem; font-weight: 750; }
.directory-marketplace-hero__stat { display: grid; min-height: 190px; place-content: center; padding: 25px; border: 1px solid rgba(223,207,170,.35); border-radius: 50%; text-align: center; background: rgba(13,30,23,.38); backdrop-filter: blur(8px); }
.directory-marketplace-hero__stat strong { color: #fff; font-family: Georgia, serif; font-size: 4.2rem; line-height: .9; }
.directory-marketplace-hero__stat span { max-width: 130px; margin-top: 13px; color: #f1dcae; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.directory-marketplace-section { padding: 0 0 90px; }
.directory-filter-panel { position: relative; z-index: 3; margin-top: -50px; padding: 24px; border: 1px solid rgba(90,68,50,.15); border-radius: 20px; box-shadow: var(--shadow-lg); background: rgba(255,250,240,.98); }
.directory-filter-panel__top { display: grid; grid-template-columns: minmax(260px, 1fr) auto auto; align-items: end; gap: 12px; }
.directory-query-field { margin: 0; }
.directory-filter-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.directory-filter-grid .field { margin: 0; }
.directory-filter-grid label { font-size: .74rem; }
.directory-filter-grid select { min-height: 43px; padding-inline: 10px; font-size: .88rem; }
.directory-location-status { display: flex; align-items: center; gap: 8px; margin-top: 14px; padding: 9px 12px; border-radius: 8px; color: var(--forest-800); background: var(--sage-50); font-size: .82rem; }
.directory-location-status[hidden] { display: none; }
.directory-location-status > span { color: #4d8a5b; font-size: .64rem; }
.directory-location-status .link-button { margin-left: auto; font-size: inherit; }
.directory-location-status.is-error { color: var(--danger); background: #f7e9e6; }
.directory-results-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 52px 0 24px; }
.directory-results-heading h2 { margin: 0; font-size: clamp(1.8rem, 4vw, 3.15rem); }
.directory-count { display: inline-grid; min-width: 42px; min-height: 42px; place-items: center; padding: 6px 10px; border: 1px solid var(--line); border-radius: 99px; color: var(--forest-900); font-weight: 850; background: var(--paper); }
.marketplace-centre-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.marketplace-centre-card { display: flex; min-width: 0; overflow: hidden; flex-direction: column; border: 1px solid rgba(90,68,50,.16); border-radius: 18px; box-shadow: var(--shadow-sm); background: var(--paper); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.marketplace-centre-card:hover { transform: translateY(-4px); border-color: rgba(184,100,50,.4); box-shadow: 0 18px 42px rgba(23,37,29,.14); }
.marketplace-centre-card__logo { position: relative; display: grid; min-height: 206px; place-items: center; padding: 24px; overflow: hidden; border-bottom: 1px solid rgba(90,68,50,.1); background: linear-gradient(145deg, #e9eadf, #f8f3e8); }
.marketplace-centre-card__logo::before { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(48,77,58,.1); border-radius: 12px; }
.marketplace-centre-card__logo img { position: relative; width: 142px; height: 142px; object-fit: contain; filter: drop-shadow(0 9px 15px rgba(23,37,29,.12)); }
.marketplace-subscriber-badge { position: absolute; right: 13px; bottom: 13px; padding: 6px 9px; border-radius: 99px; color: #fff; font-size: .69rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; background: rgba(23,37,29,.9); }
.marketplace-subscriber-badge--seasonal { color: #49340c; background: #f2cf7e; }
.marketplace-centre-card__body { display: flex; flex: 1; flex-direction: column; padding: 21px; }
.marketplace-card-meta { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: .79rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.marketplace-card-meta strong { color: var(--orange-dark); }
.marketplace-centre-card h3 { margin: 9px 0; font-size: 1.63rem; }
.marketplace-centre-card h3 a { color: inherit; text-decoration: none; }
.rating-summary { display: flex; min-height: 26px; align-items: center; flex-wrap: wrap; gap: 7px; margin-bottom: 14px; color: var(--muted); font-size: .82rem; }
.rating-summary strong { color: var(--ink); }
.rating-stars { color: #b66f22; font-family: Arial, sans-serif; font-size: 1.05rem; letter-spacing: .055em; white-space: nowrap; }
.marketplace-centre-card__body > p { color: var(--muted); font-size: .94rem; }
.marketplace-card-features { display: flex; flex-wrap: wrap; gap: 7px; margin-top: auto; padding-top: 12px; }
.marketplace-card-features span { padding: 5px 8px; border-radius: 6px; color: var(--forest-800); font-size: .72rem; font-weight: 750; background: var(--sage-50); }
.marketplace-centre-card__actions { display: flex; align-items: center; justify-content: space-between; gap: 13px; padding: 16px 21px 20px; border-top: 1px solid rgba(90,68,50,.1); }
.marketplace-centre-card__actions > a:last-child { font-size: .82rem; font-weight: 750; }
.directory-business-callout--marketplace { margin-top: 45px; }

.centre-profile-hero { position: relative; overflow: hidden; padding: 62px 0; border-bottom: 1px solid rgba(90,68,50,.15); background: linear-gradient(130deg, #eef0e6, #f8f1e4 60%, #e5dcc6); }
.centre-profile-hero::after { content: ""; position: absolute; inset: auto -100px -230px auto; width: 430px; height: 430px; border: 70px solid rgba(48,77,58,.045); border-radius: 50%; }
.centre-profile-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) 385px; align-items: center; gap: 50px; }
.centre-profile-identity { display: grid; grid-template-columns: 190px minmax(0, 1fr); align-items: center; gap: 32px; }
.centre-profile-logo { display: grid; width: 190px; height: 190px; place-items: center; padding: 18px; border: 1px solid rgba(90,68,50,.17); border-radius: 22px; box-shadow: var(--shadow-sm); background: var(--paper); }
.centre-profile-logo img { width: 100%; height: 100%; object-fit: contain; }
.centre-profile-back { display: inline-block; margin-bottom: 20px; font-size: .82rem; font-weight: 750; text-decoration: none; }
.centre-profile-identity h1 { margin: 7px 0 10px; font-size: clamp(2.7rem, 5vw, 4.8rem); }
.centre-profile-tagline { max-width: 650px; color: var(--forest-700); font-size: 1.1rem; }
.centre-profile-rating { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin: 16px 0; font-size: .9rem; }
.centre-profile-location { display: flex; align-items: center; gap: 10px; color: var(--forest-900); font-weight: 800; }
.centre-profile-location > span:first-child { display: grid; width: 35px; height: 35px; place-items: center; border-radius: 50%; color: var(--paper); background: var(--forest-900); }
.centre-profile-location small { display: block; color: var(--muted); font-weight: 500; }
.centre-profile-action-card { padding: 28px; border: 1px solid rgba(202,167,96,.34); border-radius: 18px; box-shadow: 13px 14px 0 rgba(48,77,58,.06); background: var(--forest-950); color: rgba(255,255,255,.77); }
.centre-profile-action-card h2 { color: var(--paper); font-size: 2rem; }
.centre-profile-action-card .button { width: 100%; margin-top: 6px; }
.centre-profile-action-card .product-button--secondary { color: var(--paper); border-color: rgba(255,255,255,.3); background: transparent; }
.centre-profile-account-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 17px; font-size: .82rem; }
.centre-profile-account-links a, .centre-share-button { color: #f1dcae; }
.centre-share-button { display: block; margin: 17px auto 0; font-size: .8rem; }
.centre-profile-content { padding: 68px 0 95px; }
.centre-profile-layout { display: grid; grid-template-columns: minmax(0, 1fr) 350px; align-items: start; gap: 34px; }
.centre-profile-main { display: grid; gap: 26px; }
.centre-profile-section { padding: 32px; border: 1px solid rgba(90,68,50,.14); border-radius: 18px; background: rgba(255,250,240,.86); }
.centre-profile-section h2 { max-width: 720px; font-size: clamp(1.85rem, 3vw, 2.8rem); }
.centre-profile-description { color: #51574d; font-size: 1.02rem; }
.centre-profile-section__heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.centre-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.centre-service-card { padding: 19px; border: 1px solid rgba(48,77,58,.13); border-radius: 12px; background: #f7f3e9; }
.centre-service-card > span { color: var(--orange-dark); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.centre-service-card h3 { margin: 6px 0; font-size: 1.3rem; }
.centre-service-card p { color: var(--muted); font-size: .89rem; }
.centre-service-card small { color: var(--forest-700); font-weight: 700; }
.centre-rating-overview { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 30px; margin-bottom: 24px; padding: 22px; border-radius: 14px; background: var(--sage-50); }
.centre-rating-score { display: flex; align-items: center; flex-direction: column; justify-content: center; border-right: 1px solid var(--line); text-align: center; }
.centre-rating-score > strong { color: var(--forest-950); font-family: Georgia, serif; font-size: 3.5rem; line-height: 1; }
.centre-rating-score small { color: var(--muted); }
.centre-rating-bars { display: grid; gap: 6px; }
.centre-rating-bars > div { display: grid; grid-template-columns: 35px minmax(0, 1fr) 25px; align-items: center; gap: 8px; font-size: .77rem; }
.centre-rating-bars i { height: 7px; overflow: hidden; border-radius: 99px; background: #d9d6c8; }
.centre-rating-bars b { display: block; height: 100%; border-radius: inherit; background: #b66f22; }
.centre-review-list { display: grid; gap: 13px; }
.centre-review-card { padding: 20px; border: 1px solid var(--line); border-radius: 13px; background: #fffdf7; }
.centre-review-card > header { display: flex; align-items: start; justify-content: space-between; gap: 14px; margin-bottom: 8px; }
.centre-review-card > header > div { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.centre-review-card time { color: var(--muted); font-size: .75rem; }
.verified-review-badge { padding: 3px 7px; border-radius: 99px; color: #2f7140; font-size: .67rem; font-weight: 850; background: #e2f0e2; }
.centre-review-card > p { margin: 10px 0 0; }
.centre-review-response { margin-top: 14px; padding: 14px 15px; border-left: 3px solid var(--forest-700); border-radius: 0 8px 8px 0; background: var(--sage-50); }
.centre-review-response strong { font-size: .78rem; }
.centre-review-response p { margin: 4px 0 0; font-size: .9rem; }
.centre-profile-sidebar { position: sticky; top: 105px; display: grid; gap: 18px; }
.centre-contact-list { display: grid; gap: 16px; margin: 0; }
.centre-contact-list div { padding-bottom: 13px; border-bottom: 1px solid var(--line); }
.centre-contact-list div:last-child { padding-bottom: 0; border-bottom: 0; }
.centre-contact-list dt { color: var(--muted); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.centre-contact-list dd { margin: 3px 0 0; font-weight: 650; overflow-wrap: anywhere; }
.centre-map-card { overflow: hidden; border: 1px solid rgba(90,68,50,.16); border-radius: 16px; background: var(--paper); }
.centre-map-card iframe { display: block; width: 100%; height: 280px; border: 0; background: var(--sage-100); }
.centre-map-card > div:last-child { display: grid; gap: 8px; padding: 14px; text-align: center; }
.centre-map-card small { color: var(--muted); font-size: .7rem; }
.centre-map-placeholder { display: grid; min-height: 250px; place-content: center; gap: 5px; padding: 25px; color: var(--forest-900); text-align: center; background: repeating-linear-gradient(45deg, #e9eadf 0 18px, #eef0e6 18px 36px); }
.centre-map-placeholder > span { font-size: 2.7rem; }
.centre-map-placeholder small { max-width: 230px; }
.centre-profile-safety { padding: 18px; border: 1px solid rgba(48,77,58,.18); border-radius: 13px; color: var(--forest-800); background: var(--sage-50); }
.centre-profile-safety p { margin: 5px 0 0; color: var(--muted); font-size: .82rem; }

.review-page-hero { background: linear-gradient(125deg, var(--forest-950), var(--forest-800)); }
.review-page-hero h1, .review-page-hero p { color: var(--paper); }
.review-editor-layout { max-width: 900px; }
.review-editor-intro { display: flex; align-items: center; gap: 20px; margin-bottom: 26px; padding: 20px; border: 1px solid rgba(48,77,58,.15); border-radius: 13px; background: var(--sage-50); }
.review-editor-intro h2 { margin: 0 0 3px; font-size: 1.45rem; }
.review-editor-intro p { margin: 0; color: var(--muted); }
.review-verified-seal { display: grid; width: 56px; height: 56px; flex: 0 0 56px; place-items: center; border-radius: 50%; color: var(--paper); font-size: 1.5rem; background: var(--forest-800); }
.review-editor-list { display: grid; gap: 22px; }
.review-editor-card .panel-header small { display: block; color: var(--muted); }
.star-rating-input { margin: 0 0 20px; padding: 0; border: 0; }
.star-rating-input legend { margin-bottom: 7px; font-weight: 800; }
.star-rating-input > div { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; }
.star-rating-input input { position: absolute; opacity: 0; pointer-events: none; }
.star-rating-input label { padding-right: 4px; color: #c7c2b6; cursor: pointer; font-family: Arial, sans-serif; font-size: 2.25rem; line-height: 1; transition: color .15s ease, transform .15s ease; }
.star-rating-input label:hover, .star-rating-input label:hover ~ label, .star-rating-input input:checked ~ label { color: #b66f22; }
.star-rating-input input:focus-visible + label { outline: 2px solid var(--orange); outline-offset: 3px; border-radius: 3px; }
.star-rating-input label:hover { transform: scale(1.08); }
.history-review-cta { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 18px; padding: 14px; border-radius: 10px; background: var(--sage-50); }
.history-review-cta span { display: grid; }
.history-review-cta small { color: var(--muted); }

.listing-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; margin-bottom: 22px; }
.listing-kpi { display: grid; gap: 4px; padding: 20px; }
.listing-kpi > span { color: var(--muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.listing-kpi strong { color: var(--forest-950); font-family: Georgia, serif; font-size: 2.3rem; }
.listing-kpi small { color: var(--muted); }
.listing-admin-grid { display: grid; grid-template-columns: minmax(0, 1fr) 390px; align-items: start; gap: 22px; }
.listing-visibility-toggle { display: flex; align-items: center; gap: 8px; font-size: .82rem; font-weight: 800; }
.listing-visibility-toggle input { width: 20px; height: 20px; accent-color: var(--forest-800); }
.listing-logo-editor { display: grid; grid-template-columns: 150px minmax(0, 1fr); align-items: center; gap: 22px; margin-bottom: 23px; padding-bottom: 23px; border-bottom: 1px solid var(--line); }
.listing-logo-preview { display: grid; width: 150px; height: 150px; place-items: center; padding: 13px; border: 1px solid var(--line); border-radius: 15px; background: var(--sage-50); }
.listing-logo-preview img { width: 100%; height: 100%; object-fit: contain; }
.listing-map-editor { display: grid; gap: 17px; margin: 24px 0; padding: 22px; border: 1px solid rgba(48,77,58,.16); border-radius: 14px; background: var(--sage-50); }
.listing-map-editor h3 { margin-bottom: 5px; }
.listing-map-editor p { margin: 0; color: var(--muted); }
.listing-map-editor > .button { justify-self: start; }
.listing-links-panel { position: sticky; top: 105px; }
.listing-link-list { display: grid; gap: 16px; margin: 20px 0; }
.listing-link-list > div { display: grid; gap: 6px; }
.listing-link-list label { font-size: .77rem; font-weight: 800; }
.listing-link-list > div > span { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; }
.listing-link-list input { width: 100%; min-width: 0; padding: 9px; border: 1px solid var(--line); border-radius: 7px; color: var(--muted); background: #f8f5ec; font-size: .75rem; }
.listing-reviews-panel { margin-top: 22px; }
.listing-admin-review-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; padding: 20px; }
.listing-admin-review { padding: 19px; border: 1px solid var(--line); border-radius: 12px; background: #fffdf7; }
.listing-admin-review > header { display: flex; align-items: start; justify-content: space-between; gap: 13px; }
.listing-admin-review > header > div { display: grid; }
.listing-admin-review small { color: var(--muted); }
.listing-admin-review > p { margin: 14px 0; }
.platform-review-list { display: grid; gap: 18px; }
.platform-review-card blockquote { margin: 0; padding: 17px; border-left: 4px solid var(--orange); background: #faf6ec; font-size: 1.02rem; }
.platform-review-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 15px; margin-top: 18px; }
.platform-review-actions form { margin-left: auto; }
.review-moderation-filter { margin-bottom: 25px; }
.directory-analytics-panel { margin: 24px 0; }

@media (max-width: 1040px) {
    .directory-filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .marketplace-centre-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .centre-profile-hero__grid { grid-template-columns: 1fr; }
    .centre-profile-action-card { max-width: 600px; }
    .listing-admin-grid { grid-template-columns: 1fr; }
    .listing-links-panel { position: static; }
}

@media (max-width: 820px) {
    .platform-reminder-grid { grid-template-columns: 1fr; }
    .directory-marketplace-hero__inner { grid-template-columns: 1fr; gap: 28px; padding-block: 58px 92px; }
    .directory-marketplace-hero__stat { min-height: auto; width: max-content; max-width: 100%; display: flex; align-items: baseline; gap: 10px; padding: 15px 22px; border-radius: 14px; }
    .directory-marketplace-hero__stat strong { font-size: 2.4rem; }
    .directory-marketplace-hero__stat span { max-width: none; margin: 0; }
    .directory-filter-panel__top { grid-template-columns: 1fr 1fr; }
    .directory-query-field { grid-column: 1 / -1; }
    .centre-profile-identity { grid-template-columns: 130px minmax(0, 1fr); }
    .centre-profile-logo { width: 130px; height: 130px; }
    .centre-profile-layout { grid-template-columns: 1fr; }
    .centre-profile-sidebar { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .centre-profile-safety { grid-column: 1 / -1; }
    .listing-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
    .directory-marketplace-hero h1 { font-size: clamp(2.75rem, 14vw, 4rem); }
    .directory-trust-row { display: grid; }
    .directory-filter-panel { margin-top: -34px; padding: 16px; }
    .directory-filter-panel__top, .directory-filter-grid { grid-template-columns: 1fr; }
    .directory-filter-panel__top .button { width: 100%; }
    .directory-results-heading { align-items: flex-start; }
    .marketplace-centre-grid { grid-template-columns: 1fr; }
    .marketplace-centre-card__logo { min-height: 180px; }
    .marketplace-centre-card__actions { align-items: stretch; flex-direction: column; }
    .marketplace-centre-card__actions .button { width: 100%; }
    .centre-profile-hero { padding: 40px 0; }
    .centre-profile-identity { grid-template-columns: 1fr; }
    .centre-profile-logo { width: 112px; height: 112px; }
    .centre-profile-action-card { padding: 23px 19px; }
    .centre-profile-content { padding: 38px 0 65px; }
    .centre-profile-section { padding: 23px 17px; }
    .centre-service-grid, .centre-profile-sidebar { grid-template-columns: 1fr; }
    .centre-profile-safety { grid-column: auto; }
    .centre-rating-overview { grid-template-columns: 1fr; }
    .centre-rating-score { padding-bottom: 15px; border-right: 0; border-bottom: 1px solid var(--line); }
    .centre-review-card > header, .centre-profile-section__heading { align-items: flex-start; flex-direction: column; }
    .history-review-cta { align-items: stretch; flex-direction: column; }
    .review-editor-intro { align-items: flex-start; }
    .listing-kpi-grid, .listing-admin-review-list { grid-template-columns: 1fr; }
    .listing-logo-editor { grid-template-columns: 1fr; }
    .listing-logo-preview { width: 120px; height: 120px; }
    .listing-link-list > div > span { grid-template-columns: 1fr; }
    .platform-review-actions { align-items: stretch; flex-direction: column; }
    .platform-review-actions form { width: 100%; margin-left: 0; }
    .platform-review-actions .button { width: 100%; }
}
