:root {
  --bg: #f4f1e9;
  --paper: #fffdf8;
  --ink: #183126;
  --muted: #6e786f;
  --green: #285f46;
  --green-dark: #184433;
  --green-soft: #dce9df;
  --gold: #c9923e;
  --line: #d9ded8;
  --danger: #a64438;
  --warning: #b47318;
  --shadow: 0 18px 50px rgba(24, 49, 38, .11);
  --radius: 22px;
}

/* Lot 23.2 — accordéons opérationnels AmiGO */
.partner-amigo-tools{display:grid;gap:14px;margin-top:28px}
.amigo-agent-list{display:grid;gap:12px;margin-top:15px}
.amigo-agent-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 18px;border:1px solid #dce6de;border-radius:16px;background:#fff;box-shadow:0 5px 16px rgba(16,47,39,.05)}
.amigo-agent-identity{display:grid;gap:9px;min-width:0}.amigo-agent-name-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.amigo-agent-name-line>strong{font-size:1.08rem;color:#102f27}.amigo-agent-status{padding:4px 8px;border-radius:999px;font-size:.7rem;font-weight:800}.amigo-agent-status.is-active{background:#dfeee4;color:#24613f}.amigo-agent-status.is-revoked{background:#f7e6df;color:#934d38}
.amigo-agent-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#60706b;font-size:.82rem}.amigo-agent-meta code{padding:5px 8px;border-radius:8px;background:#edf3ef;color:#183f36;font-weight:800}.amigo-agent-meta span{padding-left:9px;border-left:1px solid #d7dfda}
.partner-amigo-disclosure{border:1px solid rgba(16,47,39,.16);border-radius:18px;background:#f7f2e8;overflow:hidden;box-shadow:0 8px 24px rgba(16,47,39,.07)}
.partner-amigo-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:78px;padding:15px 20px;cursor:pointer;list-style:none;user-select:none}
.partner-amigo-disclosure>summary::-webkit-details-marker{display:none}
.partner-amigo-disclosure>summary>span:first-child{display:grid;gap:4px}
.partner-amigo-disclosure>summary strong{font-family:var(--font-display,Georgia,serif);font-size:1.35rem;line-height:1.1;color:#102f27}
.partner-amigo-disclosure>summary small{font-size:.82rem;color:#556b66;letter-spacing:0}
.partner-amigo-disclosure .disclosure-action{display:inline-flex;align-items:center;justify-content:center;min-width:94px;border:1px solid #183f36;border-radius:999px;padding:9px 16px;background:#fff;color:#183f36;font-weight:800}
.partner-amigo-disclosure .disclosure-action::after{content:'›';font-size:1.25rem;margin-left:9px;line-height:.7;transition:transform .2s ease}
.partner-amigo-disclosure[open] .disclosure-action{background:#183f36;color:#fff}
.partner-amigo-disclosure[open] .disclosure-action::after{transform:rotate(90deg)}
.partner-amigo-disclosure .partner-amigo-reports{margin:0;border:0;border-top:1px solid rgba(16,47,39,.12);border-radius:0;background:#fffaf2}
.amigo-agent-actions,.amigo-invitation-actions{display:flex;flex-wrap:wrap;gap:8px}.amigo-invitation-actions{margin:12px 0}.amigo-invitation-actions a{display:inline-flex;align-items:center;text-decoration:none}.amigo-agent-credential p{margin:.45rem 0}.amigo-agent-credential small{display:block;font-weight:500}
.partner-amigo-assignment{padding:16px;border:1px solid rgba(16,47,39,.16);border-radius:18px;background:rgba(255,255,255,.55);margin-bottom:18px}.amigo-mission-create{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.amigo-mission-create label{display:grid;gap:6px;font-weight:700}.amigo-mission-create .full-width{grid-column:1/-1}.amigo-mission-create button{justify-self:start}.amigo-photo-downloads{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding:12px;border-radius:14px;background:#f3f7f5}
.amigo-agent-select-fallback{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.amigo-driver-picker{padding:18px;border:1px solid rgba(16,47,39,.13);border-radius:20px;background:linear-gradient(145deg,#fbfdf9 0%,#eef5ef 100%)}.amigo-driver-picker-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:14px}.amigo-driver-picker-heading .eyebrow{display:block;margin-bottom:3px;color:#b27919;font-size:.72rem;letter-spacing:.13em;font-weight:800}.amigo-driver-picker-heading h3{margin:0;color:#123e33;font-family:Georgia,serif;font-size:1.42rem}.amigo-driver-picker-heading small{max-width:340px;color:#607269;line-height:1.4}.amigo-driver-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:12px}.amigo-driver-card{position:relative;display:grid!important;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:92px;padding:14px!important;border:1px solid #d5e2da!important;border-radius:17px!important;background:#fff!important;color:#153d33!important;text-align:left!important;box-shadow:0 6px 18px rgba(16,47,39,.06);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.amigo-driver-card:not(:disabled):hover{transform:translateY(-2px);border-color:#17624d!important;box-shadow:0 10px 23px rgba(16,47,39,.12)}.amigo-driver-card:focus-visible{outline:3px solid rgba(187,133,38,.34);outline-offset:2px}.amigo-driver-card.is-assigned{border-color:#17624d!important;background:#eaf4ed!important;box-shadow:inset 0 0 0 1px #17624d}.amigo-driver-avatar{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#123e33;color:#fff;font-weight:800;letter-spacing:.04em}.amigo-driver-copy{display:grid;gap:2px;min-width:0}.amigo-driver-copy strong{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.amigo-driver-copy small{color:#46645b;font-weight:700}.amigo-driver-copy em{color:#74857e;font-size:.72rem;font-style:normal}.amigo-driver-action{align-self:center;padding:7px 10px;border-radius:999px;background:#f4ead2;color:#835b11;font-size:.73rem;font-weight:800}.amigo-driver-card.is-assigned .amigo-driver-action{background:#17624d;color:#fff}.amigo-driver-empty{grid-column:1/-1;margin:0;padding:18px;border:1px dashed #b8c9bf;border-radius:14px;color:#607269;text-align:center;background:rgba(255,255,255,.64)}
@media(max-width:720px){.partner-amigo-disclosure>summary{min-height:70px;padding:13px 14px}.partner-amigo-disclosure>summary strong{font-size:1.08rem}.partner-amigo-disclosure>summary small{font-size:.74rem}.partner-amigo-disclosure .disclosure-action{min-width:80px;padding:8px 12px}.amigo-agent-row{grid-template-columns:1fr;padding:14px}.amigo-agent-meta{display:grid;gap:6px}.amigo-agent-meta span{padding-left:0;border-left:0}.amigo-agent-actions{width:100%}.amigo-agent-actions button{flex:1}.amigo-invitation-actions>*{width:100%;justify-content:center}.amigo-mission-create{grid-template-columns:1fr}.amigo-mission-create .full-width{grid-column:auto}.amigo-driver-picker{padding:14px}.amigo-driver-picker-heading{display:block}.amigo-driver-picker-heading small{display:block;margin-top:7px}.amigo-driver-grid{grid-template-columns:1fr}.amigo-driver-card{grid-template-columns:44px minmax(0,1fr) auto}.amigo-driver-avatar{width:44px;height:44px}}

/* Lot 21 — rapports de mission Amigo dans l'espace privé */
.partner-amigo-reports{margin:1.2rem 0;padding:1.25rem;border:1px solid #dfe8e1;border-radius:22px;background:rgba(255,255,255,.78);box-shadow:0 12px 30px rgba(29,58,43,.05)}
.partner-amigo-report-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.partner-amigo-report-heading h2{margin:.15rem 0;font-family:var(--font-display);font-size:2rem}
.partner-amigo-report-heading p{margin:.25rem 0;color:var(--muted)}
.partner-amigo-report-summary{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0}
.partner-amigo-report-summary>span{padding:.55rem .75rem;border-radius:999px;background:#edf4ef;color:#375447;font-size:.82rem}
.partner-amigo-report-summary .is-error{background:#fff0ea;color:#984d34}
.partner-amigo-report-list{display:grid;gap:.9rem}
.partner-amigo-report-card{padding:1rem;border:1px solid #dfe8e1;border-left:5px solid #4f8064;border-radius:17px;background:#fff}
.partner-amigo-report-card.has-incident{border-left-color:#c57b45;background:#fffaf6}
.partner-amigo-report-card>header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.partner-amigo-report-card h3{margin:.12rem 0;font-family:var(--font-display);font-size:1.35rem}
.partner-amigo-report-card header p{margin:0;color:var(--muted)}
.partner-amigo-report-card header>span{padding:.42rem .65rem;border-radius:999px;background:#edf4ef;font-size:.76rem;font-weight:750}
.partner-amigo-report-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin-top:.85rem}
.partner-amigo-report-grid p{display:grid;gap:.16rem;margin:0;padding:.75rem;border-radius:12px;background:#f7f9f7}
.partner-amigo-report-grid small{color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.partner-amigo-report-grid span{font-size:.8rem;color:var(--muted)}
.partner-amigo-comments{margin:.75rem 0 0;padding:.7rem;border-radius:10px;background:#f5efe8}
.partner-amigo-report-meta{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.75rem;color:var(--muted);font-size:.78rem}
.partner-amigo-report-meta span{padding:.35rem .5rem;border:1px solid #e2e8e3;border-radius:8px}
.partner-amigo-report-card details{margin-top:.75rem}
.partner-amigo-report-card summary{cursor:pointer;font-weight:750;color:#315b46}
.partner-amigo-report-card ol{display:grid;gap:.4rem;margin:.65rem 0 0;padding-left:1.25rem}
.partner-amigo-report-card li time{display:inline-block;min-width:145px;color:var(--muted);font-size:.76rem}
.partner-amigo-empty{padding:1.4rem;border:1px dashed #b9cbbf;border-radius:14px;text-align:center;color:var(--muted)}
@media(max-width:900px){.partner-amigo-report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.partner-amigo-report-heading{flex-direction:column}.partner-amigo-report-grid{grid-template-columns:1fr}.partner-amigo-report-heading button{width:100%}.partner-amigo-report-card>header{flex-direction:column}.partner-amigo-report-card li time{display:block;min-width:0}}

[hidden]{display:none!important}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background:
    radial-gradient(circle at 10% 0%, rgba(201,146,62,.12), transparent 30rem),
    linear-gradient(180deg, #f6f2e8 0%, #edf3ed 100%);
  min-height: 100vh;
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }

.prototype-ribbon {
  background: #183126;
  color: #fff;
  text-align: center;
  font-size: .72rem;
  letter-spacing: .12em;
  padding: .48rem;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 2rem;
  align-items: center;
  padding: 1rem clamp(1rem, 4vw, 4rem);
  background: rgba(255,253,248,.92);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(24,49,38,.08);
}
.brand {
  text-decoration: none;
  color: var(--ink);
  display: inline-flex;
  flex-direction: column;
  line-height: 1;
}
.brand-main { font-weight: 900; letter-spacing: .08em; }
.brand-signature {
  font-family: Georgia, serif;
  font-style: italic;
  color: var(--gold);
  font-size: 1.05rem;
  margin-top: .28rem;
}
nav {
  display: flex;
  justify-content: center;
  gap: .35rem;
}
.nav-btn, .filter-btn {
  border: 0;
  background: transparent;
  color: var(--muted);
  border-radius: 999px;
  padding: .68rem .9rem;
}
.nav-btn.active, .nav-btn:hover {
  background: var(--green-soft);
  color: var(--green-dark);
}
#languageSelect {
  border: 1px solid var(--line);
  background: var(--paper);
  border-radius: 999px;
  padding: .6rem .8rem;
}
.menu-toggle { display:none; }

main {
  width: min(1240px, calc(100% - 2rem));
  margin: 0 auto;
  padding-bottom: 4rem;
}
.view { display:none; animation: fade .25s ease; }
.view.active { display:block; }
@keyframes fade { from { opacity:0; transform: translateY(6px); } to { opacity:1; transform:none; } }

.hero {
  min-height: 72vh;
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  align-items: center;
  gap: clamp(2rem, 6vw, 6rem);
  padding: 5rem 0 4rem;
}
.eyebrow {
  color: var(--gold);
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: .12em;
  font-size: .78rem;
  margin: 0 0 .8rem;
}
h1 {
  font-family: Georgia, serif;
  font-size: clamp(2.3rem, 5vw, 4.7rem);
  line-height: .98;
  margin: 0 0 1.3rem;
  font-weight: 500;
}
h2 {
  font-family: Georgia, serif;
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  margin: 0;
}
h3 { margin-top: 0; }
.hero-copy {
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  max-width: 50rem;
  color: var(--muted);
  line-height: 1.7;
}
.hero-actions, .success-actions {
  display:flex;
  flex-wrap:wrap;
  gap:.8rem;
  margin-top: 1.8rem;
}
.primary, .secondary {
  border-radius: 999px;
  padding: .86rem 1.2rem;
  font-weight: 800;
  border: 1px solid transparent;
}
.primary {
  background: var(--green);
  color:#fff;
  box-shadow: 0 10px 25px rgba(40,95,70,.22);
}
.primary:hover { background: var(--green-dark); }
.secondary {
  background: var(--paper);
  color: var(--green-dark);
  border-color: var(--line);
}
.trust-row {
  display:flex;
  flex-wrap:wrap;
  gap: 1rem;
  color: var(--green-dark);
  margin-top: 2rem;
  font-size: .92rem;
}
.hero-card, .panel, .content-shell, .success-panel, .proposal-preview, .tracking-shell {
  background: rgba(255,253,248,.93);
  border: 1px solid rgba(24,49,38,.1);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.hero-card { padding: 2rem; }
.route-line {
  display:grid;
  grid-template-columns: 2.2rem 1fr;
  gap: .9rem;
  align-items:center;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
}
.route-line:last-child { border-bottom:0; }
.route-dot {
  width:2.2rem; height:2.2rem;
  display:grid; place-items:center;
  background:var(--green-soft);
  color:var(--green-dark);
  border-radius:50%;
  font-weight:900;
}

.content-shell { padding: clamp(1.2rem, 4vw, 3rem); margin-bottom: 3rem; }
.section-heading, .dashboard-header {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:2rem;
  padding: 3rem 0 2rem;
}
.section-heading.narrow { max-width: 850px; }
.step-indicator {
  color:var(--muted);
  font-weight:800;
  white-space:nowrap;
}
.progress-track {
  height: 8px;
  background:#e5e8e3;
  border-radius:999px;
  margin-bottom:2.4rem;
  overflow:hidden;
}
.progress-bar {
  height:100%;
  width:25%;
  background:linear-gradient(90deg, var(--green), var(--gold));
  transition:width .25s ease;
}
.form-step { display:none; }
.form-step.active { display:block; }
.form-grid {
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.form-grid.compact {
  grid-template-columns: 1.2fr .7fr .7fr;
  margin-top:1.2rem;
}
label {
  display:flex;
  flex-direction:column;
  gap:.48rem;
  font-weight:750;
  color:var(--green-dark);
}
input, select, textarea {
  width:100%;
  padding:.86rem .9rem;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  color:var(--ink);
  outline:none;
}
input:focus, select:focus, textarea:focus {
  border-color:var(--green);
  box-shadow:0 0 0 3px rgba(40,95,70,.12);
}
.vehicle-grid {
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:1rem;
}
.vehicle-card {
  display:block;
  position:relative;
}
.vehicle-card input {
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.vehicle-inner {
  height:100%;
  padding:1.1rem;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  transition:.2s ease;
}
.vehicle-card input:checked + .vehicle-inner {
  border-color:var(--green);
  background:var(--green-soft);
  box-shadow:0 0 0 3px rgba(40,95,70,.1);
}
.vehicle-icon {
  font-size:2.1rem;
  display:block;
  margin-bottom:.6rem;
}
.vehicle-title { font-weight:900; }
.vehicle-meta { color:var(--muted); font-size:.88rem; margin-top:.35rem; }
.options-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.8rem;
  margin-bottom:1rem;
}
.check-card {
  flex-direction:row;
  align-items:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:15px;
  padding:1rem;
}
.check-card input, .consent input { width:auto; }
.form-subsection h4,
.insurance-heading h4 {
  margin: 0 0 .8rem;
  font-family: Georgia, serif;
  font-size: 1.35rem;
  font-weight: 500;
}
.insurance-section {
  margin-top: 1.6rem;
  padding: 1.25rem;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(145deg, #f8fbf7, #fffaf1);
}
.insurance-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
}
.insurance-heading .eyebrow { margin-bottom:.35rem; }
.optional-badge {
  display:inline-flex;
  white-space:nowrap;
  padding:.42rem .65rem;
  border-radius:999px;
  background:var(--green-soft);
  color:var(--green-dark);
  font-size:.75rem;
  font-weight:900;
}
.insurance-note {
  margin:.2rem 0 1rem;
  color:var(--muted);
  line-height:1.55;
}
.insurance-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.8rem;
}
.insurance-card {
  position:relative;
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:.75rem;
  min-height:112px;
  padding:1rem;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  transition:.2s ease;
}
.insurance-card:has(input:checked) {
  border-color:var(--green);
  background:var(--green-soft);
  box-shadow:0 0 0 3px rgba(40,95,70,.1);
}
.insurance-card input {
  width:auto;
  margin-top:.2rem;
  flex:0 0 auto;
}
.insurance-card span { display:block; }
.insurance-card strong {
  display:block;
  font-size:1rem;
  color:var(--green-dark);
}
.insurance-card small {
  display:block;
  margin-top:.35rem;
  color:var(--muted);
  line-height:1.35;
}
.full-width { margin-top:1rem; }
.consent {
  flex-direction:row;
  align-items:flex-start;
  margin-top:1rem;
  color:var(--muted);
  font-weight:600;
}
.summary-box {
  background:#f3f6f2;
  border-radius:16px;
  padding:1.1rem;
  margin-top:1.2rem;
  line-height:1.7;
}
.form-actions {
  display:flex;
  justify-content:flex-end;
  gap:.8rem;
  margin-top:2rem;
  padding-top:1.3rem;
  border-top:1px solid var(--line);
}
.success-panel {
  text-align:center;
  padding:4rem 2rem;
  max-width:760px;
  margin:5rem auto;
}
.success-icon {
  width:4rem; height:4rem;
  border-radius:50%;
  background:var(--green-soft);
  color:var(--green-dark);
  display:grid;place-items:center;
  margin:0 auto 1.4rem;
  font-size:2rem;
  font-weight:900;
}
.success-actions { justify-content:center; }

.metric-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
  margin-bottom:1.3rem;
}
.metric {
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:18px;
  padding:1.2rem;
  width:100%;
  color:inherit;
  font:inherit;
  text-align:left;
}
.metric-value { font-size:2rem; font-weight:900; }
.metric-label { color:var(--muted); }
.metric.is-actionable{cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.metric.is-actionable:hover,.metric.is-actionable:focus-visible{transform:translateY(-2px);border-color:var(--green-dark);box-shadow:0 10px 24px rgba(9,45,37,.11)}
.metric-open-hint{display:block;margin-top:.7rem;color:var(--green-dark);font-size:.76rem;font-weight:750;opacity:.78}
.metric:disabled{cursor:wait;opacity:.72}
.amigo-contract-admin{margin-top:1rem}
.amigo-contract-upload{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;align-items:end;margin-top:1rem}
.amigo-contract-upload label{display:grid;gap:.42rem;font-weight:750;color:var(--green-dark)}
.amigo-contract-upload input,.amigo-contract-upload select{width:100%}
.amigo-contract-upload .amigo-contract-file{grid-column:span 2}
.amigo-contract-upload small{font-weight:500;color:var(--muted)}
.amigo-contract-list{display:grid;gap:1rem;margin-top:1rem}
.amigo-contract-card{padding:1rem;border:1px solid rgba(16,47,39,.14);border-radius:16px;background:#fff}
.amigo-contract-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.amigo-contract-card-head h3{margin:.2rem 0 0;font-size:1.08rem}
.amigo-contract-languages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem;margin:.9rem 0}
.amigo-contract-language{display:grid;gap:.15rem;padding:.7rem;border:1px dashed rgba(16,47,39,.2);border-radius:12px;color:var(--muted);text-decoration:none}
.amigo-contract-language.is-ready{border-style:solid;background:#eff7f1;color:var(--green-dark)}
.amigo-contract-language small{font-size:.72rem}
.amigo-contract-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.8rem}
.amigo-contract-note{padding:.7rem .8rem;border-left:3px solid #b78031;background:#fff8e8;border-radius:8px}
@media(max-width:900px){.amigo-contract-upload{grid-template-columns:repeat(2,minmax(0,1fr))}.amigo-contract-languages{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.amigo-contract-upload{grid-template-columns:1fr}.amigo-contract-upload .amigo-contract-file{grid-column:auto}.amigo-contract-languages{grid-template-columns:1fr}.amigo-contract-card-head{display:grid}}
.dashboard-layout {
  display:grid;
  grid-template-columns:230px 1fr;
  gap:1.3rem;
}
.filters {
  align-self:start;
  position:sticky;
  top:105px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:18px;
  padding:1rem;
}
.filters h3 { padding:.4rem .7rem; }
.filter-btn {
  display:block;
  width:100%;
  text-align:left;
  margin:.2rem 0;
}
.filter-btn.active {
  background:var(--green-soft);
  color:var(--green-dark);
}
.table-toolbar {
  display:flex;
  gap:1rem;
  align-items:center;
  margin-bottom:.8rem;
}
.table-toolbar input { flex:1; }
.table-toolbar span { color:var(--muted); white-space:nowrap; }
.booking-list { display:grid; gap:.75rem; }
.booking-row {
  display:grid;
  grid-template-columns: 1.1fr 1.2fr 1.1fr 1fr auto;
  align-items:center;
  gap:1rem;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:17px;
  padding:1rem;
  cursor:pointer;
}
.booking-row:hover {
  border-color:#adc2b5;
  transform:translateY(-1px);
}
.booking-ref { font-weight:900; }
.muted { color:var(--muted); font-size:.88rem; }
.source-label { font: inherit; }
.source-direct { color:#2468b2 !important; }
.source-tacacori { color:#23834d !important; }
.status-badge {
  display:inline-flex;
  width:max-content;
  border-radius:999px;
  padding:.45rem .65rem;
  font-size:.78rem;
  font-weight:900;
}
.status-waiting_amigo { background:#fff0d6; color:#80520b; }
.status-waiting_client { background:#e7eefc; color:#315b99; }
.status-action { background:#fae1de; color:#8e352b; }
.status-confirmed { background:#dceee1; color:#21633d; }
.status-new { background:#ece6f7; color:#5a4181; }
.status-final_confirmation { background:#f6e8cb; color:#7b5416; }
.status-cancelled { background:#ececec; color:#626262; }

dialog {
  width:min(820px, calc(100% - 2rem));
  border:0;
  border-radius:22px;
  padding:0;
  box-shadow:0 30px 90px rgba(0,0,0,.28);
}
dialog::backdrop { background:rgba(14,29,22,.56); backdrop-filter:blur(3px); }
.dialog-close {
  position:absolute;
  top:1rem; right:1rem;
  width:2.4rem; height:2.4rem;
  border-radius:50%;
  border:1px solid var(--line);
  background:#fff;
  font-size:1.4rem;
}
#dialogContent { padding:2rem; }
.timeline { margin:1.4rem 0; }
.timeline-item {
  display:grid;
  grid-template-columns:1rem 1fr;
  gap:.8rem;
  padding:.5rem 0;
}
.timeline-dot {
  width:.8rem;height:.8rem;border-radius:50%;
  background:var(--green);
  margin-top:.32rem;
}
.detail-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.7rem;
  background:#f5f7f4;
  border-radius:15px;
  padding:1rem;
}
.detail-grid div strong { display:block; font-size:.78rem; color:var(--muted); text-transform:uppercase; }
.admin-client-comment {
  margin:1rem 0 1.25rem;
  padding:1rem;
  border:1px solid #d9e2db;
  border-left:4px solid var(--green);
  border-radius:14px;
  background:#f5f8f5;
}
.admin-client-comment > strong { display:block; margin-bottom:.45rem; }
.admin-client-comment p { margin:.2rem 0 .55rem; white-space:pre-wrap; line-height:1.55; }
.admin-client-comment small { color:var(--muted); }

.amigo-layout {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:1.2rem;
  margin-bottom:1.2rem;
}
.panel { padding:1.4rem; }
.request-summary {
  margin-top:1rem;
  background:#f3f6f2;
  border-radius:15px;
  padding:1rem;
  line-height:1.7;
}
.proposal-preview {
  padding:1.5rem;
  margin-bottom:3rem;
}
.proposal-card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:1.4rem;
  margin:1rem 0;
}
.price-big { font-size:2rem; font-weight:900; color:var(--green-dark); }

.tracking-shell {
  max-width:900px;
  margin:5rem auto;
  padding:clamp(1.3rem, 4vw, 3rem);
}
.tracking-client-name {
  margin:.3rem 0 1rem;
  color:var(--green-dark);
  font-size:clamp(1.05rem,2vw,1.25rem);
}
.tracking-search {
  display:grid;
  grid-template-columns:1fr auto;
  gap:.7rem;
  margin:2rem 0;
}
.tracking-card {
  border-top:1px solid var(--line);
  padding-top:1.5rem;
}
.tracking-actions {
  display:flex;
  flex-wrap:wrap;
  gap:.7rem;
  margin-top:1rem;
}
.confirmed-transfer-card {
  margin-top:1.25rem;
  padding:clamp(1.1rem,3vw,1.5rem);
  border:1px solid rgba(190,145,63,.36);
  border-radius:20px;
  background:linear-gradient(145deg,#fffdf6,#f4ead3);
}
.confirmed-transfer-card h3 { margin:.25rem 0 .65rem; color:var(--green-dark); }
.confirmed-transfer-note { color:var(--muted); font-size:.92rem; }
.confirmed-transfer-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1rem; }
.confirmed-transfer-actions a { text-decoration:none; text-align:center; }
@media (max-width:620px){.confirmed-transfer-actions{display:grid}.confirmed-transfer-actions a{width:100%}}
footer {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:center;
  padding:2rem clamp(1rem,4vw,4rem);
  background:var(--ink);
  color:#fff;
}
footer p { color:#cad4cc; }

@media (max-width: 900px) {
  .site-header { grid-template-columns:1fr auto auto; gap:.6rem; }
  .menu-toggle {
    display:block;
    border:0;background:transparent;
    font-size:1.4rem;
  }
  nav {
    display:none;
    position:absolute;
    top:100%;
    left:1rem; right:1rem;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:18px;
    padding:.6rem;
    box-shadow:var(--shadow);
    flex-direction:column;
  }
  nav.open { display:flex; }
  .nav-btn { text-align:left; }
  .hero { grid-template-columns:1fr; padding-top:3rem; }
  .vehicle-grid, .options-grid, .insurance-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-layout { grid-template-columns:1fr; }
  .filters { position:static; display:flex; flex-wrap:wrap; }
  .filters h3 { width:100%; }
  .filter-btn { width:auto; }
  .booking-row { grid-template-columns:1fr 1fr; }
  .booking-row > :last-child { grid-column:1 / -1; }
  .amigo-layout { grid-template-columns:1fr; }
}
@media (max-width: 620px) {
  main { width:min(100% - 1rem, 1240px); }
  .site-header { padding:.8rem; }
  .brand-main { font-size:.86rem; }
  .brand-signature { font-size:.9rem; }
  h1 { font-size:2.35rem; }
  .hero { min-height:auto; }
  .form-grid, .form-grid.compact, .detail-grid { grid-template-columns:1fr; }
  .vehicle-grid, .options-grid, .insurance-grid, .metric-grid { grid-template-columns:1fr; }
  .insurance-heading { flex-direction:column; }
  .section-heading, .dashboard-header { align-items:flex-start; flex-direction:column; }
  .form-actions { justify-content:stretch; }
  .form-actions button { flex:1; }
  .booking-row { grid-template-columns:1fr; }
  .tracking-search { grid-template-columns:1fr; }
  footer { flex-direction:column; align-items:flex-start; }
}


/* V0.3 — séparation claire entre site public et back-office */
.header-actions { display:flex; align-items:center; gap:.6rem; }
.admin-link {
  border:1px solid var(--line); background:transparent; color:var(--muted);
  border-radius:999px; padding:.62rem .85rem; font-weight:750;
}
.admin-link:hover { color:var(--green-dark); background:var(--green-soft); }
.login-shell { min-height:72vh; display:grid; place-items:center; padding:4rem 0; }
.login-card {
  width:min(480px,100%); background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius); padding:clamp(1.4rem,4vw,2.6rem); box-shadow:var(--shadow);
}
.login-card h1 { font-size:clamp(2.2rem,5vw,3.6rem); }
.login-card form { display:grid; gap:1rem; margin-top:1.5rem; }
.private-password-field { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.5rem; align-items:center; }
.private-password-field input { min-width:0; }
.private-password-toggle {
  min-height:2.75rem;
  padding:.55rem .8rem;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f3f6f2;
  color:var(--green-dark);
  font-weight:800;
}
.demo-credentials {
  margin-top:1.3rem; padding:1rem; border-radius:14px; background:#f3f6f2;
  color:var(--muted); line-height:1.55; font-size:.9rem;
}
.demo-credentials code { color:var(--green-dark); font-weight:900; }
.admin-toolbar {
  margin-top:2rem; display:flex; align-items:center; justify-content:space-between; gap:1rem;
  background:var(--ink); color:#fff; border-radius:18px; padding:.75rem 1rem;
  box-shadow:var(--shadow);
}
.admin-toolbar > div { display:flex; align-items:center; flex-wrap:wrap; gap:.4rem; }
.admin-badge { font-size:.68rem; letter-spacing:.12em; font-weight:900; color:#cfd8d1; margin-right:.5rem; }
.admin-tab { border:0; border-radius:999px; padding:.62rem .86rem; color:#dbe3dd; background:transparent; font-weight:800; }
.admin-tab.active, .admin-tab:hover { background:#fff; color:var(--green-dark); }
.admin-toolbar .secondary { padding:.6rem .85rem; }
@media (max-width:620px) {
  .header-actions { gap:.3rem; }
  .admin-link { font-size:.78rem; padding:.55rem .65rem; }
  .admin-toolbar { align-items:flex-start; flex-direction:column; }
  .admin-toolbar > div { width:100%; }
}


/* V0.6 — horaires séparés, obligatoires et toujours affichés en 24 h */
.schedule-card {
  background: #f8faf7;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 1rem;
}
.schedule-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .7rem;
  margin-bottom: .9rem;
}
.schedule-fields {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: .8rem;
  align-items: stretch;
}
.required-badge {
  display: inline-flex;
  align-items: center;
  width: max-content;
  border-radius: 999px;
  padding: .35rem .58rem;
  background: #f8e7d1;
  color: #815318;
  font-size: .72rem;
  font-weight: 900;
}
.time-field {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  background: #fff9ed;
  border: 2px solid var(--gold);
  border-radius: 15px;
  padding: .72rem;
}
.time-label {
  font-weight: 850;
  color: var(--green-dark);
}
.time-label b {
  color: var(--danger);
}
.time-selectors {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .6rem;
}
.time-selectors select {
  font-size: 1.04rem;
  font-weight: 850;
}
.time-field small {
  color: var(--muted);
  font-weight: 600;
  line-height: 1.35;
}
.time-field.has-error {
  border-color: var(--danger);
  background: #fff2f0;
  box-shadow: 0 0 0 3px rgba(166, 68, 56, .12);
}
.field-error-message {
  color: var(--danger);
  font-weight: 850;
  font-size: .82rem;
}
.insurance-subtitle {
  margin: 1.1rem 0 .65rem;
  font-weight: 900;
  color: var(--green-dark);
}
.insurance-grid-two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.insurance-details {
  margin-top: 1rem;
  background: #f5f7f4;
  border-radius: 14px;
  padding: .85rem 1rem;
}
.insurance-details summary {
  cursor: pointer;
  font-weight: 850;
  color: var(--green-dark);
}
.insurance-details p {
  color: var(--muted);
  line-height: 1.55;
  margin-bottom: 0;
}

@media (max-width: 720px) {
  .schedule-fields,
  .insurance-grid-two {
    grid-template-columns: 1fr;
  }
  .schedule-title {
    align-items: flex-start;
    flex-direction: column;
  }
}


/* V0.7 — format horaire adapté à la langue, normalisation interne en 24 h */
.time-format-badge {
  display: inline-flex;
  width: max-content;
  align-items: center;
  border-radius: 999px;
  padding: .32rem .58rem;
  background: var(--green-soft);
  color: var(--green-dark);
  font-size: .74rem;
  font-weight: 900;
}
.time-mode {
  width: 100%;
}
.time-selectors-12 {
  grid-template-columns: 1fr 1fr 1fr;
}
.time-field.language-english {
  background: #f4f7ff;
  border-color: #6783b7;
}
.time-field.language-english .time-format-badge {
  background: #e5ecfb;
  color: #315b99;
}
@media (max-width: 500px) {
  .time-selectors-12 {
    grid-template-columns: 1fr;
  }
}


/* V0.8 — explications des protections et confirmation enrichie */
.insurance-choice {
  display: grid;
  grid-template-rows: 1fr auto;
  gap: .45rem;
  min-width: 0;
}
.insurance-choice .insurance-card {
  height: 100%;
}
.insurance-card sup {
  color: var(--gold);
  font-size: .72em;
  margin-left: .08rem;
}
.insurance-info-btn {
  justify-self: start;
  border: 0;
  background: transparent;
  color: var(--green-dark);
  padding: .2rem .25rem;
  font-weight: 850;
  text-decoration: underline;
  text-underline-offset: .2rem;
}
.insurance-info-btn:hover {
  color: var(--gold);
}
.insurance-footnote {
  margin: 1rem 0 0;
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.5;
}
.insurance-dialog {
  width: min(720px, calc(100% - 1.2rem));
}
.insurance-dialog-content h2 {
  margin-bottom: .8rem;
}
.insurance-dialog-content .protection-intro {
  color: var(--muted);
  line-height: 1.65;
}
.insurance-detail-list {
  display: grid;
  gap: .7rem;
  padding: 0;
  list-style: none;
  margin: 1.2rem 0;
}
.insurance-detail-list li {
  position: relative;
  padding-left: 1.35rem;
  line-height: 1.55;
}
.insurance-detail-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--green);
  font-weight: 900;
}
.insurance-warning {
  background: #fff8e9;
  border: 1px solid #ead4a7;
  border-radius: 14px;
  padding: .9rem 1rem;
  color: #6f531d;
  line-height: 1.5;
}
.success-message {
  max-width: 640px;
  margin: 0 auto;
  font-size: 1.08rem;
  line-height: 1.65;
}
.success-reference-note {
  max-width: 640px;
  margin: .8rem auto 0;
  color: var(--muted);
  font-weight: 700;
}


/* V0.9 — comparatif rapide des protections */
.insurance-quick-help {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: .9rem 1rem;
  margin-bottom: 1rem;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #f6f8f5;
}
.insurance-quick-help div {
  display: flex;
  flex-direction: column;
  gap: .22rem;
}
.insurance-quick-help span {
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.35;
}
.compact-button {
  padding: .62rem .9rem;
  white-space: nowrap;
}
.insurance-compare-dialog {
  width: min(860px, calc(100% - 1.2rem));
}
.insurance-compare-grid {
  display: grid;
  gap: 0;
  margin: 1.2rem 0;
  border: 1px solid var(--line);
  border-radius: 15px;
  overflow: hidden;
}
.compare-row {
  display: grid;
  grid-template-columns: 1.05fr repeat(3, 1fr);
}
.compare-row > div {
  padding: .82rem .8rem;
  border-bottom: 1px solid var(--line);
  border-right: 1px solid var(--line);
  line-height: 1.4;
}
.compare-row > div:last-child {
  border-right: 0;
}
.compare-row:last-child > div {
  border-bottom: 0;
}
.compare-head {
  background: var(--green-soft);
  font-weight: 900;
  color: var(--green-dark);
}
.compare-label {
  font-weight: 850;
  background: #f7f8f6;
}
@media (max-width: 720px) {
  .insurance-quick-help {
    align-items: flex-start;
    flex-direction: column;
  }
  .compact-button {
    width: 100%;
  }
  .insurance-compare-grid {
    border: 0;
    gap: .8rem;
    overflow: visible;
  }
  .compare-head {
    display: none;
  }
  .compare-row {
    grid-template-columns: 1fr;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
  }
  .compare-row > div {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .compare-row > div:nth-child(2)::before {
    content: "BASIC — ";
    font-weight: 900;
    color: var(--green-dark);
  }
  .compare-row > div:nth-child(3)::before {
    content: "FULL — ";
    font-weight: 900;
    color: var(--green-dark);
  }
  .compare-row > div:nth-child(4)::before {
    content: "ERA — ";
    font-weight: 900;
    color: var(--green-dark);
  }
}


/* V0.10 — interface du prestataire en espagnol */
.partner-spanish .request-summary {
  line-height: 1.65;
}
.partner-client-card {
  background: #eef5f0;
  border: 1px solid #cbdcd0;
  border-radius: 14px;
  padding: .85rem 1rem;
  margin: .8rem 0 1rem;
}
.partner-client-card strong {
  display: block;
  margin-bottom: .35rem;
}
.partner-client-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .5rem 1rem;
}
.partner-client-grid span {
  display: block;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.partner-privacy-note {
  display: block;
  margin-top: .75rem;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 650;
}
@media (max-width: 620px) {
  .partner-client-grid {
    grid-template-columns: 1fr;
  }
}


/* V0.11 — avantages, assurance lisible et suivi des commissions */
.benefits-section {
  max-width: 1180px;
  margin: 1rem auto 2.2rem;
  padding: 0 1.2rem;
}
.benefits-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .85rem;
}
.benefit-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 1rem;
  box-shadow: 0 10px 28px rgba(31, 54, 42, .06);
}
.benefit-card strong,
.benefit-card small { display: block; }
.benefit-card small { margin-top: .45rem; color: var(--muted); line-height: 1.45; }
.benefit-icon { display: block; font-size: 1.45rem; margin-bottom: .55rem; }
.free-option b { color: var(--accent); }
.insurance-clarity {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
  margin: 1rem 0;
}
.insurance-clarity > div {
  padding: .9rem 1rem;
  border-radius: 14px;
  background: #eef5f0;
  border: 1px solid #cadbce;
}
.insurance-clarity strong,
.insurance-clarity span { display: block; }
.insurance-clarity span { margin-top: .35rem; color: var(--muted); font-size: .9rem; }

.backoffice-tabs {
  display: flex;
  gap: .55rem;
  max-width: 1180px;
  margin: 0 auto 1rem;
  padding: 0 1.2rem;
}
.backoffice-tab {
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 999px;
  padding: .7rem 1rem;
  font-weight: 800;
  cursor: pointer;
}
.backoffice-tab.active {
  background: var(--ink);
  color: white;
  border-color: var(--ink);
}
.tab-alert {
  display: inline-grid;
  place-items: center;
  min-width: 1.35rem;
  height: 1.35rem;
  padding: 0 .3rem;
  border-radius: 999px;
  background: #b74336;
  color: white;
  margin-left: .35rem;
  font-size: .76rem;
}
.commission-panel {
  max-width: 1180px;
  margin: 0 auto 3rem;
  padding: 0 1.2rem;
}
.commission-intro {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 1rem;
  align-items: start;
  margin-bottom: 1rem;
}
.mailbox-card {
  background: #eef5f0;
  border: 1px solid #cadbce;
  border-radius: 16px;
  padding: 1rem;
}
.mailbox-card strong,
.mailbox-card span { display: block; }
.mailbox-card span { margin-top: .35rem; color: var(--muted); }
.commission-metrics { margin: 0 0 1rem; padding: 0; }
.commission-toolbar {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  flex-wrap: wrap;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: .8rem;
  margin-bottom: .8rem;
}
.commission-toolbar > div { display: flex; gap: .55rem; flex-wrap: wrap; }
.delay-setting {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .88rem;
}
.delay-setting input { width: 70px; }
.commission-table-wrap {
  overflow-x: auto;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
}
.commission-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 900px;
}
.commission-table th,
.commission-table td {
  text-align: left;
  padding: .8rem;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}
.commission-table th {
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .035em;
  color: var(--muted);
}
.commission-table tr:last-child td { border-bottom: 0; }
.commission-state {
  display: inline-block;
  padding: .35rem .55rem;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 800;
}
.commission-waiting { background: #f4eee0; color: #765316; }
.commission-overdue,
.commission-review { background: #f8e5e2; color: #982e25; }
.commission-ready { background: #e4f2e7; color: #24653a; }
.commission-invoiced { background: #e7ecf5; color: #334f78; }
.commission-paid { background: #dcefe6; color: #185b38; }
.commission-exception { background: #eee9f6; color: #62468a; }
.commission-note { margin-top: .3rem; font-size: .8rem; color: var(--muted); max-width: 330px; }
.invoice-history { margin-top: 1.5rem; }
.invoice-card {
  display: grid;
  grid-template-columns: 1.4fr .8fr .8fr auto;
  gap: .8rem;
  align-items: center;
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 14px;
  padding: .85rem 1rem;
  margin-bottom: .65rem;
}
.invoice-card small { display: block; color: var(--muted); margin-top: .2rem; }
.partner-reveal-card {
  border: 1px solid #cadbce;
  background: #eef5f0;
  border-radius: 15px;
  padding: 1rem;
  margin-top: 1rem;
}
.proposal-benefits {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: .45rem;
  padding: .8rem;
  border-radius: 12px;
  background: #f7f8f6;
  margin: .8rem 0;
}
.proposal-benefits span { font-size: .88rem; }
.price-caption { color: var(--muted); font-size: .85rem; margin-top: -.25rem; }

@media (max-width: 980px) {
  .benefits-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .commission-intro { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .benefits-grid,
  .insurance-clarity,
  .proposal-benefits { grid-template-columns: 1fr; }
  .benefits-grid .benefit-card:last-child { grid-column: auto; }
  .invoice-card { grid-template-columns: 1fr; }
}


/* =========================================================
   V0.12 — page d'accueil plus légère et orientée conversion
   ========================================================= */
:root {
  --surface: var(--paper);
  --border: var(--line);
  --accent: var(--gold);
  --forest: #143a2c;
  --forest-deep: #0d2a20;
  --cream: #f8f4ea;
  --sand: #dfcfaa;
  --orange: #d99448;
}
body {
  font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  font-weight: 400;
  background: #f7f5ef;
}
.site-header {
  padding-top: .82rem;
  padding-bottom: .82rem;
  background: rgba(250,248,242,.94);
}
.brand-main { font-weight: 650; letter-spacing: .12em; font-size: .94rem; }
.brand-signature { font-weight: 400; }
.nav-btn { font-weight: 500; }
.primary, .secondary { font-weight: 650; }

.home-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(360px, .97fr);
  min-height: 690px;
  margin: 1.4rem 0 15.5rem;
  padding: clamp(2.1rem, 5vw, 5.2rem);
  padding-bottom: 8.8rem;
  border-radius: 34px;
  overflow: visible;
  color: #fff;
  background:
    radial-gradient(circle at 72% 15%, rgba(223,207,170,.2), transparent 22rem),
    linear-gradient(125deg, var(--forest-deep), var(--forest));
  box-shadow: 0 28px 70px rgba(12,42,31,.16);
}
.home-hero-copy { position: relative; z-index: 3; align-self: center; max-width: 690px; }
.light-eyebrow { color: #e8c98e; }
.home-hero h1 {
  max-width: 800px;
  margin: 0 0 1.35rem;
  font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  font-size: clamp(2.65rem, 5.3vw, 5.45rem);
  line-height: .98;
  letter-spacing: -.045em;
  font-weight: 280;
}
.home-hero h1 em {
  font-family: Georgia, serif;
  font-weight: 400;
  color: #efd59f;
}
.home-lead {
  max-width: 620px;
  margin: 0;
  color: rgba(255,255,255,.77);
  font-size: clamp(1.02rem, 1.6vw, 1.18rem);
  line-height: 1.65;
  font-weight: 350;
}
.primary-light { background: #f4d496; color: #173428; box-shadow: none; }
.primary-light:hover { background: #ffe2a8; color: #173428; }
.ghost-light {
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.06);
  color: white;
  border-radius: 999px;
  padding: .86rem 1.2rem;
  font-weight: 600;
}
.ghost-light:hover { background: rgba(255,255,255,.12); }
.hero-trust { display: flex; flex-wrap: wrap; gap: .65rem 1.25rem; margin-top: 2rem; color: rgba(255,255,255,.76); font-size: .86rem; }
.hero-trust span::before { content: "✓"; color: #f1cf8a; margin-right: .42rem; }

.hero-visual { position: relative; min-height: 430px; align-self: center; }
.hero-sun {
  position: absolute; width: 240px; height: 240px; right: 8%; top: 2%;
  border-radius: 50%; background: #d99c54; opacity: .86;
}
.hero-mountain { position: absolute; bottom: 70px; border-radius: 65% 35% 0 0; transform: rotate(-8deg); }
.mountain-one { width: 95%; height: 48%; right: -18%; background: #1e5841; opacity: .9; }
.mountain-two { width: 82%; height: 37%; left: -7%; background: #297052; opacity: .82; transform: rotate(9deg); }
.hero-car {
  position: absolute; z-index: 2; width: 112%; max-width: 650px; right: -11%; bottom: 38px;
  object-fit: contain; filter: drop-shadow(0 28px 20px rgba(0,0,0,.25));
}
.hero-model-note {
  position: absolute; z-index: 4; right: 0; bottom: 0; display: grid; gap: .15rem;
  min-width: 205px; padding: .85rem 1rem; border: 1px solid rgba(255,255,255,.18);
  border-radius: 14px; background: rgba(9,35,26,.67); backdrop-filter: blur(10px);
}
.hero-model-note strong { font-size: .94rem; }
.hero-model-note span { color: rgba(255,255,255,.7); font-size: .78rem; }

.home-search {
  position: absolute; z-index: 7; left: clamp(1rem, 4vw, 4rem); right: clamp(1rem, 4vw, 4rem); bottom: -14.5rem;
  display: grid; grid-template-columns: 1.15fr 1.15fr .82fr .82fr; gap: .75rem; align-items: end;
  padding: 1rem; border-radius: 20px; color: var(--ink); background: #fff;
  box-shadow: 0 22px 55px rgba(15,42,32,.18); border: 1px solid rgba(21,58,44,.08);
}
.home-search-title { grid-column: 1 / -1; display: flex; align-items: center; gap: .8rem; padding: .1rem .2rem .45rem; }
.home-search-title > span { color: #b47a32; font-size: .77rem; letter-spacing: .12em; }
.home-search-title strong, .home-search-title small { display: block; }
.home-search-title strong { font-weight: 650; }
.home-search-title small { color: var(--muted); margin-top: .1rem; }
.home-search label { margin: 0; color: #526057; font-size: .76rem; font-weight: 650; letter-spacing: .025em; }
.home-search input, .home-search select { margin-top: .38rem; min-height: 48px; border-radius: 12px; background: #fbfaf7; }
.home-date-control { position: relative; display: block; margin-top: .38rem; }
.home-date-control input[type="date"] { width: 100%; margin-top: 0; }
.home-date-empty-label {
  position: absolute; z-index: 1; left: .9rem; right: 2.65rem; top: 50%;
  transform: translateY(-50%); pointer-events: none; overflow: hidden;
  color: #55635b; background: #fbfaf7; font-size: 1rem; font-weight: 560;
  line-height: 1.25; letter-spacing: normal; white-space: nowrap;
}
.home-date-control.has-value .home-date-empty-label { display: none; }
.home-search-submit { grid-column: 1 / -1; min-height: 48px; white-space: nowrap; border-radius: 12px; }

.home-benefits, .home-fleet { margin: 0 0 6rem; }
.home-section-heading {
  display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.55fr); gap: 3rem; align-items: end;
  margin-bottom: 2rem;
}
.home-section-heading h2 {
  max-width: 760px; font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  font-weight: 300; font-size: clamp(2rem, 3.6vw, 3.6rem); line-height: 1.06; letter-spacing: -.035em;
}
.home-section-heading > p { margin: 0; color: var(--muted); line-height: 1.65; }
.benefit-line {
  display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border-top: 1px solid #cad2ca; border-bottom: 1px solid #cad2ca;
}
.benefit-line article { min-height: 128px; padding: 1.15rem 1rem; border-right: 1px solid #d8ddd7; }
.benefit-line article:last-child { border-right: 0; }
.benefit-line span { display: block; margin-bottom: 1.35rem; color: #b67a34; font-size: .73rem; letter-spacing: .1em; }
.benefit-line strong { font-weight: 520; line-height: 1.4; }

.home-vehicle-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.15rem; }
#homeVehicleGrid.full-catalog { grid-template-columns: repeat(6,minmax(0,1fr)); }
#homeVehicleGrid.full-catalog > .catalog-vehicle-card { grid-column: span 2; }
#homeVehicleGrid.full-catalog.catalog-count-11 > .catalog-vehicle-card:nth-last-child(2) { grid-column: 2 / span 2; }
#homeVehicleGrid.full-catalog.catalog-count-11 > .catalog-vehicle-card:last-child { grid-column: 4 / span 2; }
.vehicle-grid.catalog-count-11 { grid-template-columns: repeat(6,minmax(0,1fr)); }
.vehicle-grid.catalog-count-11 > .vehicle-card { grid-column: span 2; }
.vehicle-grid.catalog-count-11 > .vehicle-card:nth-last-child(2) { grid-column: 2 / span 2; }
.vehicle-grid.catalog-count-11 > .vehicle-card:last-child { grid-column: 4 / span 2; }
.transmission-locked { background-color: #eef3ef; color: #30483a; }
#transmissionAvailabilityNote { display: block; margin-top: .45rem; color: var(--muted); font-size: .78rem; line-height: 1.4; }
#transmissionAvailabilityNote.hidden { display: none; }
#homeVehicleGrid .catalog-vehicle-card { grid-template-columns: 1fr; min-height: 0; }
#homeVehicleGrid .catalog-vehicle-card .home-vehicle-photo { min-height: 185px; }
#homeVehicleGrid .catalog-vehicle-card .home-vehicle-photo img { width: 96%; max-height: 165px; }
#homeVehicleGrid .catalog-vehicle-card .home-vehicle-body { min-height: 170px; padding: 1.15rem; }
#homeVehicleGrid .catalog-vehicle-card .vehicle-useful-specs { margin-bottom: .8rem; }
.home-vehicle-card {
  display: grid; grid-template-columns: minmax(210px,.9fr) minmax(0,1.1fr); min-height: 300px;
  overflow: hidden; border: 1px solid #dfe3dd; border-radius: 24px; background: #fff;
  transition: transform .2s ease, box-shadow .2s ease;
}
.home-vehicle-card:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(18,54,40,.09); }
.home-vehicle-photo { position: relative; display: grid; place-items: center; min-height: 270px; overflow: hidden; background: linear-gradient(145deg,#e8eee8,#f8f5eb); }
.home-vehicle-photo::after { content:""; position:absolute; width:70%; height:18px; bottom:21%; border-radius:50%; background:rgba(22,55,42,.1); filter:blur(7px); }
.home-vehicle-photo img { position: relative; z-index: 2; width: 112%; max-height: 240px; object-fit: contain; filter: drop-shadow(0 12px 12px rgba(0,0,0,.16)); }
.compact-photo img { width: 102%; }
.large-photo img { width: 108%; }
.vehicle-photo-fallback { position: absolute; font-size: 4rem; opacity: .25; }
.vehicle-category-chip { position: absolute; z-index: 3; left: .8rem; top: .8rem; padding: .42rem .68rem; border-radius: 999px; background: rgba(255,255,255,.84); font-size: .72rem; font-weight: 650; }
.home-vehicle-body { display: flex; flex-direction: column; padding: 1.55rem; }
.home-vehicle-body h3 { margin: 0; font-size: 1.35rem; font-weight: 550; }
.home-vehicle-body small { color: var(--muted); }
.home-vehicle-body p { color: var(--muted); line-height: 1.55; font-size: .91rem; }
.vehicle-useful-specs { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1rem 0 .3rem; }
.vehicle-useful-specs span { padding: .38rem .55rem; border-radius: 999px; background: #f0f3ef; color: #445349; font-size: .76rem; }
.text-action { margin-top: auto; align-self: flex-start; padding: .45rem 0; border: 0; background: transparent; color: var(--green-dark); font-weight: 650; }
.text-action b { margin-left: .25rem; font-size: 1.1rem; }
.fleet-disclaimer { display: flex; gap: 1rem; align-items: center; margin-top: 1rem; padding: .75rem 1rem; color: var(--muted); font-size: .82rem; }
.fleet-disclaimer span { white-space: nowrap; padding: .35rem .55rem; border-radius: 999px; background: #ece8db; color: #806535; font-weight: 650; }
.fleet-disclaimer p { margin: 0; }

.home-process { margin: 0 0 5rem; padding: clamp(2rem,4.5vw,4rem); border-radius: 30px; color: #fff; background: var(--forest-deep); }
.process-heading h2 { color: #fff; }
.process-heading > p { color: rgba(255,255,255,.68); }
.process-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; background: rgba(255,255,255,.14); }
.process-grid article { min-height: 210px; padding: 1.35rem; background: var(--forest-deep); }
.process-grid span { color: #e2bd78; font-size: .73rem; letter-spacing: .12em; }
.process-grid h3 { margin: 2.4rem 0 .55rem; font-size: 1.15rem; font-weight: 520; }
.process-grid p { margin: 0; color: rgba(255,255,255,.65); line-height: 1.55; font-size: .88rem; }

#bookingShell { scroll-margin-top: 7rem; }
#bookingShell .section-heading h2 { font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif; font-weight: 320; letter-spacing: -.025em; }
.privacy-inline { display: flex; align-items: flex-start; gap: .7rem; margin: 1.3rem 0; padding: .9rem 1rem; border-radius: 13px; background: #eef4ef; color: #516158; font-size: .86rem; }
.privacy-inline p { margin: 0; line-height: 1.5; }
.vehicle-card-photo .vehicle-inner { padding: .65rem; }
.form-vehicle-photo { position: relative; display: grid; place-items: center; height: 112px; margin-bottom: .45rem; border-radius: 12px; overflow: hidden; background: linear-gradient(145deg,#edf2ed,#faf7ee); }
.form-vehicle-photo > span { position: absolute; font-size: 2.5rem; opacity: .2; }
.form-vehicle-photo img { position: relative; z-index: 2; max-width: 100%; max-height: 108px; object-fit: contain; }
.vehicle-similar { color: var(--muted); font-size: .73rem; margin-top: .12rem; }
.vehicle-card-photo .vehicle-meta { margin-top: .5rem; }

@media (max-width: 1080px) {
  #homeVehicleGrid.full-catalog { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .vehicle-grid.catalog-count-11 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #homeVehicleGrid.full-catalog > .catalog-vehicle-card,
  #homeVehicleGrid.full-catalog.catalog-count-11 > .catalog-vehicle-card:nth-last-child(2),
  #homeVehicleGrid.full-catalog.catalog-count-11 > .catalog-vehicle-card:last-child,
  .vehicle-grid.catalog-count-11 > .vehicle-card,
  .vehicle-grid.catalog-count-11 > .vehicle-card:nth-last-child(2),
  .vehicle-grid.catalog-count-11 > .vehicle-card:last-child { grid-column: auto; }
  .home-hero { grid-template-columns: 1fr .78fr; margin-bottom: 19.5rem; padding-bottom: 13rem; }
  .home-search { grid-template-columns: repeat(2,minmax(0,1fr)); bottom: -18rem; }
  .home-search-submit { grid-column: 1 / -1; }
  .home-benefits { margin-top: 0; }
  .benefit-line { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .benefit-line article:nth-child(3) { border-right: 0; }
  .benefit-line article:nth-child(-n+3) { border-bottom: 1px solid #d8ddd7; }
  .home-vehicle-card { grid-template-columns: 1fr; }
  .home-vehicle-photo { min-height: 230px; }
}
@media (max-width: 780px) {
  #homeVehicleGrid.full-catalog { grid-template-columns: 1fr; }
  .vehicle-grid.catalog-count-11 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #homeVehicleGrid .catalog-vehicle-card { grid-template-columns: minmax(145px,.72fr) minmax(0,1.28fr); }
  #homeVehicleGrid .catalog-vehicle-card .home-vehicle-photo { min-height: 245px; }
  main { width: min(100% - 1.1rem,1240px); }
  .home-hero { display: block; min-height: auto; margin: .7rem 0 1.5rem; padding: 2.2rem 1.25rem; border-radius: 24px; }
  .home-hero h1 { font-size: clamp(2.55rem,13vw,4rem); }
  .hero-visual { min-height: 270px; margin-top: 1rem; }
  .hero-car { width: 105%; right: -7%; bottom: 20px; }
  .hero-sun { width: 150px; height: 150px; }
  .hero-model-note { right: 0; bottom: -5px; }
  .home-search { position: relative; left: auto; right: auto; bottom: auto; margin-top: 1.25rem; grid-template-columns: 1fr; border-radius: 17px; }
  .home-search-submit { grid-column: auto; }
  .home-benefits { margin-top: 1.5rem; }
  .home-section-heading { grid-template-columns: 1fr; gap: 1rem; }
  .benefit-line { grid-template-columns: 1fr 1fr; }
  .benefit-line article { min-height: 105px; border-bottom: 1px solid #d8ddd7; }
  .benefit-line article:nth-child(2n) { border-right: 0; }
  .benefit-line article:last-child { grid-column: 1 / -1; border-bottom: 0; }
  .home-vehicle-grid { grid-template-columns: 1fr; }
  .home-vehicle-card { grid-template-columns: minmax(150px,.78fr) minmax(0,1.22fr); min-height: 280px; }
  .home-vehicle-photo { min-height: 280px; }
  .process-grid { grid-template-columns: 1fr 1fr; }
  .fleet-disclaimer { align-items: flex-start; }
}
@media (max-width: 540px) {
  .vehicle-grid.catalog-count-11 { grid-template-columns: 1fr; }
  #homeVehicleGrid .catalog-vehicle-card { grid-template-columns: 1fr; }
  #homeVehicleGrid .catalog-vehicle-card .home-vehicle-photo { min-height: 210px; }
  .home-hero { padding-bottom: 2.2rem; }
  .hero-trust { display: grid; }
  .hero-model-note { min-width: 170px; }
  .home-vehicle-card { grid-template-columns: 1fr; }
  .home-vehicle-photo { min-height: 220px; }
  .process-grid { grid-template-columns: 1fr; }
  .process-grid article { min-height: 160px; }
  .process-grid h3 { margin-top: 1.3rem; }
  .fleet-disclaimer { display: block; }
  .fleet-disclaimer p { margin-top: .6rem; }
}


/* =========================================================
   V0.13 — harmonisation, tableau commercial et comparatifs
   ========================================================= */
:root {
  --font-ui: "Aptos", "Segoe UI Variable", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-display: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  --chart-tacacori: #c69752;
  --chart-direct: #315f4b;
  --chart-earned: #7b9f8b;
  --chart-paid: #174735;
}
body,
button, input, select, textarea,
#view-login, #view-nadine, #view-partner {
  font-family: var(--font-ui);
}
h1, h2,
#view-login h1, #view-nadine h1, #view-nadine h2,
#view-partner h1, #view-partner h2 {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: -.025em;
}
.home-hero h1,
.home-section-heading h2,
#bookingShell .section-heading h2 {
  font-family: var(--font-ui);
  font-weight: 300;
}
#view-nadine .dashboard-header h1 {
  font-size: clamp(2.15rem, 4vw, 3.5rem);
  line-height: 1.02;
}
#view-nadine h3,
#view-partner h3 {
  font-weight: 560;
}
.admin-toolbar,
.dashboard-header,
.business-dashboard,
.backoffice-tabs,
.dashboard-layout,
.commission-panel {
  font-family: var(--font-ui);
}

/* Date/heure : discret tant qu'il n'y a pas d'erreur */
.schedule-card {
  border: 1px solid #dce1dc;
  background: #fbfaf6;
  box-shadow: none;
}
.schedule-title {
  align-items: baseline;
  border-bottom: 0;
  padding-bottom: .35rem;
}
.schedule-title strong { font-weight: 560; }
.schedule-title small {
  color: var(--muted);
  font-size: .76rem;
}
.required-star { color: #9a6d34; }
.time-field {
  border: 0;
  background: transparent;
  padding: 0;
}
.time-label {
  font-size: .78rem;
  font-weight: 560;
  color: #566159;
}
.time-format-badge {
  border: 0;
  background: #eef1ed;
  color: #68736b;
  font-size: .7rem;
  font-weight: 550;
  padding: .25rem .45rem;
}
.time-selectors select {
  min-height: 43px;
  border-color: #d9ded9;
  background: #fff;
}
.time-field small {
  display: block;
  margin-top: .42rem;
  color: #7b847e;
  font-size: .75rem;
}
.time-field.has-error {
  padding: .7rem;
  border: 1px solid #c56458;
  border-radius: 12px;
  background: #fff6f4;
}
.conditional-field small {
  display: block;
  margin-top: .35rem;
  color: var(--muted);
  font-weight: 400;
}

/* Comparatif d'assurances */
.comparison-request,
.partner-comparison-toggle {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid #cddbd1;
  border-radius: 15px;
  background: #eff5f0;
}
.comparison-request input,
.partner-comparison-toggle input {
  margin-top: .2rem;
  accent-color: var(--green);
}
.comparison-request strong,
.comparison-request small,
.partner-comparison-toggle strong,
.partner-comparison-toggle small {
  display: block;
}
.comparison-request small,
.partner-comparison-toggle small {
  margin-top: .28rem;
  color: var(--muted);
  line-height: 1.45;
}
.insurance-grid.comparison-active {
  opacity: .47;
}
.partner-comparison-fields {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: .8rem;
  margin: .8rem 0 1rem;
  padding: 1rem;
  border: 1px solid #d8ded9;
  border-radius: 15px;
  background: #fbfaf6;
}
.quote-variant-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 1rem;
  margin-top: 1rem;
}
.quote-variant {
  border: 1px solid #d9dfda;
  border-radius: 17px;
  padding: 1rem;
  background: #fff;
}
.quote-variant.selected {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(40,95,70,.11);
}
.quote-variant h4 { margin: 0 0 .3rem; font-size: 1.1rem; }
.quote-variant .price-big { margin: .5rem 0 .15rem; }
.variant-label {
  display: inline-block;
  padding: .3rem .5rem;
  border-radius: 999px;
  background: #eef3ef;
  color: #355342;
  font-size: .72rem;
  font-weight: 650;
}
.privacy-consent { align-items: flex-start; }
.privacy-link { color: var(--green-dark); font-weight: 650; }
.privacy-minimal {
  margin: -.35rem 0 0 2rem;
  color: var(--muted);
  font-size: .8rem;
  line-height: 1.45;
}

/* Tableau de pilotage */
.business-dashboard {
  max-width: 1180px;
  margin: 0 auto 1.4rem;
  padding: 1.25rem;
  border: 1px solid #dde2dd;
  border-radius: 22px;
  background: rgba(255,253,248,.88);
  box-shadow: 0 16px 42px rgba(20,52,39,.06);
}
.business-dashboard-head {
  display: flex;
  justify-content: space-between;
  gap: 1.5rem;
  align-items: flex-start;
}
.business-dashboard-head h2 {
  font-family: var(--font-ui);
  font-weight: 320;
  font-size: clamp(1.8rem,3vw,2.6rem);
}
.business-dashboard-head p { max-width: 760px; color: var(--muted); }
.business-dashboard-head label { min-width: 115px; }
.business-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: .75rem;
  margin: 1rem 0;
}
.business-kpi {
  padding: .9rem;
  border-radius: 15px;
  background: #f3f5f1;
}
.business-kpi span,
.business-kpi small { display: block; color: var(--muted); }
.business-kpi strong {
  display: block;
  margin: .28rem 0;
  font-size: 1.35rem;
  font-weight: 620;
}
.business-kpi small { font-size: .76rem; }
.business-chart-grid {
  display: grid;
  grid-template-columns: 1.35fr 1.1fr .8fr;
  gap: .85rem;
}
.chart-card {
  min-width: 0;
  padding: 1rem;
  border: 1px solid #e0e4df;
  border-radius: 17px;
  background: #fff;
}
.chart-heading {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
}
.chart-heading span { color: var(--muted); font-size: .8rem; }
.chart-heading strong { display: block; margin-top: .25rem; font-size: 1.25rem; }
.chart-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .45rem .7rem;
  font-size: .72rem;
}
.chart-legend span { white-space: nowrap; }
.chart-legend i {
  display: inline-block;
  width: .58rem;
  height: .58rem;
  margin-right: .28rem;
  border-radius: 2px;
}
.legend-tacacori { background: var(--chart-tacacori); }
.legend-direct { background: var(--chart-direct); }
.legend-earned { background: var(--chart-earned); }
.legend-paid { background: var(--chart-paid); }
.monthly-bars {
  display: grid;
  grid-template-columns: repeat(7,minmax(25px,1fr));
  align-items: end;
  gap: .45rem;
  height: 230px;
  margin-top: .75rem;
  padding-top: 1rem;
  border-bottom: 1px solid #dfe3df;
  background:
    linear-gradient(to top,
      transparent 24%, rgba(40,69,56,.06) 25%, transparent 26%,
      transparent 49%, rgba(40,69,56,.06) 50%, transparent 51%,
      transparent 74%, rgba(40,69,56,.06) 75%, transparent 76%);
}
.month-column {
  display: grid;
  grid-template-rows: 1fr auto;
  align-items: end;
  height: 100%;
}
.bar-stack {
  display: flex;
  align-items: end;
  justify-content: center;
  gap: 2px;
  height: 100%;
}
.bar {
  width: min(18px,45%);
  min-height: 2px;
  border-radius: 5px 5px 0 0;
  transition: height .35s ease;
}
.bar.tacacori { background: var(--chart-tacacori); }
.bar.direct { background: var(--chart-direct); }
.bar.earned { background: var(--chart-earned); }
.bar.paid { background: var(--chart-paid); }
.month-label {
  padding-top: .45rem;
  color: var(--muted);
  font-size: .7rem;
  text-align: center;
}
.source-visual {
  display: grid;
  place-items: center;
  gap: 1rem;
  padding-top: 1.2rem;
}
.source-donut {
  width: 150px;
  height: 150px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(var(--chart-direct) 0 50%, var(--chart-tacacori) 50% 100%);
}
.source-donut::before {
  content: "";
  grid-area: 1/1;
  width: 98px;
  height: 98px;
  border-radius: 50%;
  background: #fff;
}
.source-donut > div {
  position: relative;
  z-index: 1;
  text-align: center;
}
.source-donut strong,
.source-donut span { display: block; }
.source-donut strong { font-size: 1.3rem; }
.source-donut span { color: var(--muted); font-size: .72rem; }
.source-breakdown { width: 100%; }
.source-line {
  display: flex;
  justify-content: space-between;
  gap: .7rem;
  padding: .45rem 0;
  border-bottom: 1px solid #eef0ed;
  font-size: .82rem;
}
.source-line:last-child { border-bottom: 0; }

/* Résolution des commissions litigieuses */
.commission-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin-top: .55rem;
}
.commission-actions button {
  border: 1px solid #d8ded9;
  border-radius: 999px;
  padding: .4rem .58rem;
  background: #fff;
  color: var(--green-dark);
  font-size: .74rem;
  font-weight: 620;
}
.commission-actions button:hover { background: #eef4ef; }
.commission-no_commission { background: #edf0ed; color: #59645d; }
.decision-history {
  margin-top: .45rem;
  padding-top: .45rem;
  border-top: 1px dashed #dfe3df;
  color: var(--muted);
  font-size: .75rem;
}

@media (max-width: 1100px) {
  .business-chart-grid { grid-template-columns: 1fr 1fr; }
  .source-card { grid-column: 1 / -1; }
  .source-visual { grid-template-columns: auto 1fr; }
  .business-kpi-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 720px) {
  .business-dashboard-head { display: block; }
  .business-dashboard-head label { display: block; margin-top: 1rem; }
  .business-chart-grid,
  .quote-variant-grid,
  .partner-comparison-fields { grid-template-columns: 1fr; }
  .source-card { grid-column: auto; }
  .source-visual { grid-template-columns: 1fr; }
  .business-kpi-grid { grid-template-columns: 1fr 1fr; }
  .monthly-bars { height: 200px; gap: .25rem; }
}
@media (max-width: 480px) {
  .business-kpi-grid { grid-template-columns: 1fr; }
}


/* =========================================================
   V0.14 — repositionnement des étapes et fenêtres d'information
   ========================================================= */
#bookingShell,
#successPanel {
  scroll-margin-top: 8rem;
}

.insurance-dialog,
.insurance-compare-dialog {
  width: min(840px, calc(100% - 2rem));
  max-height: min(86vh, 820px);
  overflow: auto;
  border-radius: 24px;
  background: var(--paper);
  scrollbar-gutter: stable;
}

.insurance-dialog-content {
  padding: clamp(1.35rem, 3vw, 2.2rem);
  padding-right: clamp(3.8rem, 6vw, 4.8rem);
}

.insurance-dialog-content .eyebrow {
  margin-bottom: .55rem;
}

.insurance-dialog-content h2 {
  max-width: 100%;
  margin: 0 0 .85rem;
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3.2vw, 2.65rem);
  line-height: 1.08;
  font-weight: 400;
  letter-spacing: -.025em;
  overflow-wrap: anywhere;
}

.insurance-dialog-content .protection-intro {
  margin-top: 0;
  max-width: 68ch;
}

.insurance-detail-list {
  gap: .8rem;
  margin: 1.35rem 0;
}

.insurance-detail-list li {
  padding-left: 1.55rem;
}

.insurance-warning {
  margin-top: 1.15rem;
}

.insurance-dialog .dialog-close,
.insurance-compare-dialog .dialog-close {
  position: sticky;
  float: right;
  top: .85rem;
  right: .85rem;
  z-index: 4;
  margin: .85rem .85rem -3.25rem 0;
  box-shadow: 0 5px 16px rgba(18,49,37,.12);
}

.insurance-compare-dialog .insurance-dialog-content {
  padding-top: 1.5rem;
}

@media (max-width: 620px) {
  .insurance-dialog,
  .insurance-compare-dialog {
    width: calc(100% - .8rem);
    max-height: 91vh;
    border-radius: 18px;
  }

  .insurance-dialog-content {
    padding: 1.15rem;
    padding-top: 1.4rem;
  }

  .insurance-dialog-content h2 {
    padding-right: 2.5rem;
    font-size: clamp(1.55rem, 8vw, 2.05rem);
  }

  .insurance-dialog .dialog-close,
  .insurance-compare-dialog .dialog-close {
    top: .55rem;
    right: .55rem;
    margin: .55rem .55rem -3rem 0;
  }
}


/* =========================================================
   V0.15 — calendrier de période anti-erreur
   ========================================================= */
.date-field-block {
  display: flex;
  flex-direction: column;
  gap: .48rem;
}

.date-field-label {
  color: var(--green-dark);
  font-size: .88rem;
  font-weight: 750;
}

.date-picker-trigger {
  width: 100%;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .75rem;
  align-items: center;
  min-height: 66px;
  padding: .72rem .85rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  color: var(--ink);
  text-align: left;
}

.date-picker-trigger:hover {
  border-color: #9fb4a6;
  background: #fbfcfa;
}

.date-picker-trigger:focus-visible {
  outline: none;
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(40,95,70,.12);
}

.date-picker-trigger.has-date {
  border-color: #afc3b5;
  background: #f7faf7;
}

.date-picker-icon {
  width: 2.15rem;
  height: 2.15rem;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #edf3ee;
  font-size: 1.05rem;
}
.date-picker-icon svg{
  width:1.35rem;height:1.35rem;fill:none;stroke:var(--forest-700);
  stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round
}
.date-picker-icon svg .calendar-day-mark{fill:var(--forest-700);stroke:none}

.date-picker-trigger strong,
.date-picker-trigger small {
  display: block;
}

.date-picker-trigger strong {
  font-weight: 600;
  line-height: 1.35;
}

.date-picker-trigger small {
  margin-top: .15rem;
  color: var(--muted);
  font-size: .75rem;
}

.date-range-inline-summary {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .8rem;
  padding: .85rem 1rem;
  border: 1px solid #d6ddd7;
  border-radius: 14px;
  background: #f1f4f1;
}

.date-range-line {
  width: 2.4rem;
  height: .45rem;
  border-radius: 999px;
  background:
    linear-gradient(90deg,var(--green) 0 22%,#cfd5d0 22% 78%,var(--green) 78% 100%);
}

.date-range-inline-summary strong,
.date-range-inline-summary small {
  display: block;
}

.date-range-inline-summary strong {
  font-weight: 620;
}

.date-range-inline-summary small {
  margin-top: .15rem;
  color: var(--muted);
}

.date-range-inline-summary .text-action {
  margin: 0;
  white-space: nowrap;
}

.date-range-error {
  grid-column: 1 / -1;
  margin-top: -.2rem;
}

.range-calendar-dialog {
  width: min(980px, calc(100% - 1.4rem));
  max-height: min(92vh, 900px);
  overflow: auto;
  border-radius: 24px;
  background: var(--paper);
  scrollbar-gutter: stable;
}

.range-calendar-content {
  padding: clamp(1.2rem,3vw,2rem);
  padding-right: clamp(3.8rem,6vw,4.8rem);
}

.range-calendar-content > .eyebrow {
  margin-bottom: .45rem;
}

.range-calendar-heading {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
}

.range-calendar-heading h2 {
  margin: 0;
  font-family: var(--font-ui);
  font-size: clamp(1.65rem,3vw,2.5rem);
  font-weight: 320;
  line-height: 1.08;
}

.range-calendar-heading p {
  margin: .55rem 0 0;
  max-width: 680px;
  color: var(--muted);
  line-height: 1.5;
}

.range-calendar-nav {
  display: flex;
  gap: .45rem;
}

.range-calendar-nav button {
  width: 2.65rem;
  height: 2.65rem;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: #fff;
  color: var(--green-dark);
  font-size: 1.15rem;
}

.range-calendar-nav button:hover {
  background: #eef3ef;
}

.calendar-selection-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1rem;
  margin: 1.15rem 0 .9rem;
  color: var(--muted);
  font-size: .78rem;
}

.calendar-selection-legend span {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}

.calendar-selection-legend i {
  width: .72rem;
  height: .72rem;
  border-radius: 3px;
}

.legend-start,
.legend-end {
  background: var(--green);
}

.legend-range {
  background: #d6d9d6;
}

.range-calendar-months {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 1rem;
}

.calendar-month {
  padding: 1rem;
  border: 1px solid #dfe3df;
  border-radius: 18px;
  background: #fff;
}

.calendar-month h3 {
  margin: 0 0 .85rem;
  text-align: center;
  font-size: 1.04rem;
  font-weight: 620;
}

.calendar-weekdays,
.calendar-days {
  display: grid;
  grid-template-columns: repeat(7,minmax(0,1fr));
}

.calendar-weekdays {
  margin-bottom: .3rem;
  color: #7b837d;
  font-size: .72rem;
  text-align: center;
  text-transform: uppercase;
}

.calendar-weekdays span {
  padding: .3rem .1rem;
}

.calendar-days {
  gap: .18rem;
}

.calendar-day {
  aspect-ratio: 1;
  min-width: 0;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--ink);
  font-size: .85rem;
  font-weight: 550;
}

.calendar-day:not(.disabled):not(.empty):hover {
  background: #edf3ee;
}

.calendar-day.disabled {
  color: #c0c4c1;
  background: #f4f4f3;
  cursor: not-allowed;
  text-decoration: line-through;
  opacity: .72;
}

.calendar-day.in-range {
  border-radius: 4px;
  background: #d8dcda;
  color: #304238;
}

.calendar-day.range-start,
.calendar-day.range-end {
  position: relative;
  z-index: 2;
  border-radius: 10px;
  background: var(--green);
  color: #fff;
  font-weight: 750;
}

.calendar-day.range-start::after,
.calendar-day.range-end::after {
  position: absolute;
  bottom: 2px;
  font-size: .42rem;
  line-height: 1;
}

.calendar-day.range-start::after {
  content: "PRISE";
}

.calendar-day.range-end::after {
  content: "RETOUR";
}

.calendar-day.empty {
  pointer-events: none;
}

.range-calendar-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.2rem;
  margin-top: 1rem;
  padding: 1rem;
  border-radius: 15px;
  background: #f2f5f2;
}

.calendar-range-recap strong,
.calendar-range-recap span {
  display: block;
}

.calendar-range-recap strong {
  font-weight: 620;
}

.calendar-range-recap span {
  margin-top: .2rem;
  color: var(--muted);
  font-size: .8rem;
}

.range-calendar-footer .primary:disabled {
  cursor: not-allowed;
  opacity: .45;
  box-shadow: none;
}

.range-calendar-dialog .dialog-close {
  position: sticky;
  float: right;
  top: .7rem;
  right: .7rem;
  z-index: 5;
  margin: .7rem .7rem -3rem 0;
  box-shadow: 0 5px 16px rgba(18,49,37,.12);
}

@media (max-width: 760px) {
  .range-calendar-dialog {
    width: calc(100% - .6rem);
    max-height: 94vh;
    border-radius: 18px;
  }

  .range-calendar-content {
    padding: 1rem;
    padding-top: 1.25rem;
  }

  .range-calendar-heading {
    display: block;
  }

  .range-calendar-heading h2 {
    padding-right: 2.6rem;
    font-size: clamp(1.5rem,7vw,2rem);
  }

  .range-calendar-nav {
    justify-content: flex-end;
    margin-top: .8rem;
  }

  .range-calendar-months {
    grid-template-columns: 1fr;
  }

  .calendar-month {
    padding: .7rem;
  }

  .calendar-day {
    font-size: .82rem;
  }

  .range-calendar-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .range-calendar-footer .primary {
    width: 100%;
  }

  .date-range-inline-summary {
    grid-template-columns: auto 1fr;
  }

  .date-range-inline-summary .text-action {
    grid-column: 2;
    justify-self: start;
  }
}


/* =========================================================
   V0.16 — période visible dans le suivi client
   ========================================================= */
.tracking-period-card {
  display: grid;
  gap: .32rem;
  margin: 1rem 0 1.25rem;
  padding: .9rem 1rem;
  border: 1px solid #d9dfda;
  border-radius: 14px;
  background: #f5f7f4;
}

.tracking-period-card strong,
.tracking-period-card small,
.tracking-period-label {
  display: block;
}

.tracking-period-label {
  margin-bottom: .18rem;
  color: var(--muted);
  font-size: .73rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.tracking-period-card strong {
  color: var(--green-dark);
  font-weight: 620;
  line-height: 1.45;
}

.tracking-period-card small {
  color: var(--muted);
  font-size: .78rem;
}

.tracking-annotations {
  display: grid;
  gap: .7rem;
  margin: 0 0 1.25rem;
  padding: .95rem 1rem;
  border: 1px solid #d9dfda;
  border-radius: 14px;
  background: #fff;
}

.tracking-annotations > div {
  display: grid;
  gap: .18rem;
}

.tracking-annotations dt {
  color: var(--muted);
  font-size: .73rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.tracking-annotations dd {
  margin: 0;
  color: var(--ink);
  line-height: 1.5;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

@media (max-width: 560px) {
  .tracking-period-card {
    padding: .8rem;
  }

  .tracking-annotations {
    padding: .8rem;
  }
}


/* =========================================================
   V0.17 — accès direct au suivi
   ========================================================= */
.success-follow-note {
  max-width: 680px;
  margin: 1rem auto 0;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.5;
  text-align: center;
}

.tracking-not-found {
  display: grid;
  gap: .35rem;
}

.tracking-not-found strong {
  color: var(--green-dark);
}

.tracking-not-found span {
  color: var(--muted);
  line-height: 1.45;
}


/* =========================================================
   V0.18 — harmonisation visuelle ASX / Fortuner
   ========================================================= */
.blend-photo {
  background: linear-gradient(145deg,#e6ece6,#f6f1e4);
}

.blend-photo img {
  mix-blend-mode: multiply;
}

.home-vehicle-photo.blend-photo img {
  width: 105%;
}

.form-vehicle-photo.blend-photo img {
  max-width: 94%;
}


/* =========================================================
   V0.19 — recherche plus lisible, multilingue et messagerie
   ========================================================= */
.home-search {
  background: #e5e9e6;
  border-color: #cbd2cd;
  box-shadow: 0 24px 58px rgba(15,42,32,.22);
}
.home-search input,
.home-search select {
  background: #faf9f5;
  border-color: #c9d0cb;
}
.home-search-title {
  border-bottom: 1px solid rgba(58,79,66,.13);
}
.neutral-alert { background:#e9ece9; color:#425148; }
.messages-panel { display:grid; gap:1.25rem; }
.messages-intro { display:flex; justify-content:space-between; align-items:flex-start; gap:1.2rem; padding:1.35rem; border:1px solid var(--line); border-radius:20px; background:#fff; }
.messages-intro h2 { margin:.15rem 0 .45rem; }
.messages-intro p { margin:0; max-width:780px; color:var(--muted); line-height:1.55; }
.security-chip { white-space:nowrap; padding:.55rem .75rem; border-radius:999px; background:#f6ead4; color:#805f29; font-size:.76rem; font-weight:800; }
.mail-channel-grid,.mail-settings-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.mail-channel-card,.mail-setting-card,.demo-thread-list { border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:0 12px 34px rgba(18,49,37,.06); }
.mail-channel-card { padding:1.25rem; }
.mail-channel-card.partner-mailbox { background:linear-gradient(145deg,#f2f6f2,#fff); }
.mail-channel-card.client-mailbox { background:linear-gradient(145deg,#fbf7ef,#fff); }
.mail-channel-head { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.75rem; }
.mail-channel-icon { width:2.45rem; height:2.45rem; display:grid; place-items:center; border-radius:12px; background:var(--green-soft); color:var(--green-dark); font-weight:900; }
.mail-channel-head small,.setting-kicker { color:var(--muted); font-size:.68rem; font-weight:800; letter-spacing:.08em; }
.mail-channel-head h3,.mail-setting-card h3 { margin:.13rem 0 0; font-size:1.05rem; }
.mail-unread { padding:.35rem .55rem; border-radius:999px; background:var(--green-dark); color:#fff; font-size:.7rem; font-weight:800; }
.mail-address-placeholder { margin:1rem 0; padding:.75rem; border:1px dashed #b8c3bb; border-radius:12px; color:#526057; background:rgba(255,255,255,.7); font-size:.82rem; }
.mail-channel-card ul { margin:.8rem 0; padding-left:1.15rem; color:var(--muted); line-height:1.7; font-size:.86rem; }
.mail-privacy-note { padding-top:.8rem; border-top:1px solid var(--line); color:var(--green-dark); font-size:.78rem; font-weight:650; }
.mail-setting-card { display:grid; gap:1rem; padding:1.2rem; }
.mail-setting-card p { margin:.45rem 0 0; color:var(--muted); line-height:1.5; font-size:.85rem; }
.switch-line { display:flex; flex-direction:row; align-items:center; gap:.65rem; margin:0; padding:.75rem; border-radius:12px; background:#f2f5f2; }
.switch-line input { width:auto; }
.mail-security-points { display:flex; flex-wrap:wrap; gap:.45rem; }
.mail-security-points span { padding:.38rem .55rem; border-radius:999px; background:#edf2ee; color:#415048; font-size:.72rem; font-weight:700; }
.demo-thread-list { overflow:hidden; }
.demo-thread-heading { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.1rem 1.2rem; border-bottom:1px solid var(--line); }
.demo-thread-heading h3 { margin:.15rem 0 0; }
.demo-thread-heading > span { color:var(--muted); font-size:.75rem; }
.demo-thread-row { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.8rem; padding:.95rem 1.2rem; border-bottom:1px solid #edf0ed; }
.demo-thread-row:last-child { border-bottom:0; }
.demo-thread-row.unread { background:#f5f8f5; }
.thread-source { width:2.2rem; height:2.2rem; display:grid; place-items:center; border-radius:50%; background:#e4ebe5; color:var(--green-dark); font-size:.72rem; font-weight:900; }
.demo-thread-row strong,.demo-thread-row small { display:block; }
.demo-thread-row small { margin-top:.18rem; color:var(--muted); }
.demo-thread-row time { color:var(--muted); font-size:.75rem; }
@media (max-width:780px){
  .messages-intro { display:grid; }
  .security-chip { white-space:normal; justify-self:start; }
  .mail-channel-grid,.mail-settings-grid { grid-template-columns:1fr; }
  .mail-channel-head { grid-template-columns:auto 1fr; }
  .mail-unread { grid-column:2; justify-self:start; }
  .demo-thread-row { grid-template-columns:auto 1fr; }
  .demo-thread-row time { grid-column:2; }
}
html[lang="en"] .calendar-day.range-start::after { content:"PICKUP"; }
html[lang="en"] .calendar-day.range-end::after { content:"RETURN"; }
html[lang="es"] .calendar-day.range-start::after { content:"RECOG."; }
html[lang="es"] .calendar-day.range-end::after { content:"DEVOL."; }
html[lang="de"] .calendar-day.range-start::after { content:"ABHOL."; }
html[lang="de"] .calendar-day.range-end::after { content:"RÜCKG."; }
html[lang="it"] .calendar-day.range-start::after { content:"RITIRO"; }
html[lang="it"] .calendar-day.range-end::after { content:"RESO"; }

/* =========================================================
   V0.20 — typographie, créneaux, vol conditionnel et footer
   ========================================================= */
:root {
  --font-ui: "Aptos", "Segoe UI Variable Text", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-display: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  --font-label: "Aptos", "Segoe UI Variable Text", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

html { -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-ui);
  font-weight: 400;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.home-hero h1,
.home-section-heading h2,
#bookingShell .section-heading h2,
.tracking-shell h1,
.success-panel h2 {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: -.035em;
}

#bookingShell .section-heading h2 {
  font-size: clamp(2rem, 4vw, 3.1rem);
  line-height: 1.05;
}

.form-step > h3 {
  margin-bottom: 1.25rem;
  font-family: var(--font-ui);
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  font-weight: 580;
  letter-spacing: -.018em;
}

.form-subsection h4,
.insurance-heading h4,
.schedule-title strong,
.home-search-title strong {
  font-family: var(--font-ui);
  font-weight: 580;
  letter-spacing: -.012em;
}

label,
.date-field-label,
.time-label {
  font-family: var(--font-label);
  font-weight: 560;
  letter-spacing: .002em;
}

input,
select,
textarea,
button {
  font-family: var(--font-ui);
}

input,
select,
textarea {
  font-weight: 430;
}

.step-indicator {
  padding: .48rem .72rem;
  border: 1px solid #d6ddd7;
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  color: #536158;
  font-size: .78rem;
  font-weight: 590;
  letter-spacing: .035em;
}

.schedule-card {
  border-radius: 17px;
  padding: 1.1rem;
}

.schedule-title {
  margin-bottom: .72rem;
}

.schedule-title strong {
  font-size: 1rem;
}

.schedule-title small {
  letter-spacing: .025em;
}

.time-slot-control label {
  gap: .42rem;
  color: #566159;
  font-size: .78rem;
}

.time-slot-control select {
  min-height: 48px;
  padding: .78rem 2.6rem .78rem .9rem;
  border: 1px solid #d7ddd8;
  border-radius: 12px;
  background-color: #fff;
  color: var(--ink);
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
  font-weight: 520;
}

.time-field {
  min-width: 0;
}

.time-format-badge {
  top: 0;
  right: 0;
  border-radius: 999px;
  letter-spacing: .025em;
}

.flight-context-card {
  grid-column: 1 / -1;
  padding: 1rem 1.05rem;
  border: 1px solid #d9e0da;
  border-radius: 16px;
  background: #f7f8f4;
}

.flight-context-heading {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
}

.flight-context-heading strong,
.flight-context-heading small {
  display: block;
}

.flight-context-heading strong {
  font-weight: 590;
  letter-spacing: -.01em;
}

.flight-context-heading small {
  margin-top: .2rem;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.4;
}

.flight-icon {
  display: grid;
  flex: 0 0 2rem;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: 50%;
  background: #e5ede6;
  color: var(--green-dark);
  font-size: .95rem;
}

.choice-pills {
  display: flex;
  flex-wrap: wrap;
  gap: .48rem;
  margin-top: .85rem;
}

.choice-pills label {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: .42rem;
  min-height: 38px;
  padding: .48rem .68rem;
  border: 1px solid #d4dbd5;
  border-radius: 999px;
  background: #fff;
  color: #425248;
  font-size: .8rem;
  font-weight: 520;
  cursor: pointer;
}

.choice-pills input {
  width: auto;
  margin: 0;
  accent-color: var(--green);
}

.choice-pills label:has(input:checked) {
  border-color: #6e917d;
  background: #e9f1eb;
  color: var(--green-dark);
}

.flight-details {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: .75rem;
  margin-top: .9rem;
  padding-top: .9rem;
  border-top: 1px solid #dfe4df;
}

.flight-details > small {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: .76rem;
  font-weight: 400;
  line-height: 1.4;
}

.partner-flight-summary,
.partner-comment-card {
  margin-top: .9rem;
  padding: .85rem;
  border: 1px solid #dce2dd;
  border-radius: 13px;
  background: #fff;
}

.partner-comment-card > strong,
.partner-comment-card > small {
  display: block;
}

.partner-comment-card > small {
  margin-top: .18rem;
  color: #66736b;
}

.partner-comment-card blockquote {
  margin: .7rem 0;
  padding: .65rem .8rem;
  border-left: 3px solid #769483;
  background: #f4f6f3;
  color: #2d4035;
}

.partner-translation-pending {
  display: grid;
  gap: .18rem;
  padding-top: .65rem;
  border-top: 1px solid #e0e5e1;
  color: #5c6961;
  font-size: .82rem;
}

.site-footer {
  display: grid;
  grid-template-columns: minmax(180px,.8fr) minmax(320px,1.6fr) minmax(180px,.8fr);
  gap: 1.5rem;
  align-items: start;
  padding: 2.25rem clamp(1rem,4vw,4rem);
}

.footer-brand {
  font-size: .96rem;
  letter-spacing: .055em;
}

.footer-brand span {
  margin-left: .25rem;
  color: #ddb26d;
  font-family: var(--font-display);
  font-style: italic;
  letter-spacing: 0;
}

.footer-brand-block p,
.footer-status small {
  margin: .42rem 0 0;
  color: #bac8be;
  font-size: .76rem;
  line-height: 1.45;
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .35rem .9rem;
}

.footer-links button {
  padding: .25rem 0;
  border: 0;
  border-bottom: 1px solid transparent;
  background: transparent;
  color: #e2e9e3;
  font-size: .8rem;
  font-weight: 480;
}

.footer-links button:hover,
.footer-links button:focus-visible {
  border-bottom-color: #d6ad6b;
  color: #fff;
}

.footer-status {
  display: grid;
  justify-items: end;
  text-align: right;
}

.footer-status span {
  padding: .32rem .55rem;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  color: #e6ece7;
  font-size: .72rem;
}

.legal-dialog {
  width: min(680px, calc(100% - 1.2rem));
  border: 0;
  border-radius: 20px;
  padding: 0;
  box-shadow: 0 30px 90px rgba(0,0,0,.28);
}

.legal-dialog-content {
  padding: clamp(1.5rem,4vw,2.5rem);
}

.legal-dialog-content h2 {
  margin-bottom: 1rem;
  font-family: var(--font-display);
  font-weight: 400;
}

.legal-dialog-content > p:not(.eyebrow) {
  color: #536158;
  line-height: 1.65;
}

.legal-placeholder-note {
  display: grid;
  gap: .2rem;
  margin-top: 1.2rem;
  padding: .9rem 1rem;
  border-radius: 13px;
  background: #eef4ef;
  color: #46584d;
}

.legal-placeholder-note span {
  font-size: .8rem;
}

@media (max-width: 900px) {
  .site-footer {
    grid-template-columns: 1fr;
    gap: 1.1rem;
  }
  .footer-links { justify-content: flex-start; }
  .footer-status { justify-items: start; text-align: left; }
}

@media (max-width: 680px) {
  #bookingShell .section-heading {
    align-items: flex-start;
    padding-top: 2rem;
  }
  #bookingShell .section-heading h2 {
    font-size: clamp(1.85rem,9vw,2.6rem);
  }
  .step-indicator {
    align-self: flex-start;
    font-size: .72rem;
  }
  .schedule-fields,
  .flight-details {
    grid-template-columns: 1fr;
  }
  .choice-pills {
    display: grid;
    grid-template-columns: 1fr;
  }
  .choice-pills label {
    width: 100%;
    border-radius: 12px;
  }
  .time-slot-control select {
    min-height: 52px;
    font-size: 1.02rem;
  }
  .footer-links {
    display: grid;
    gap: .45rem;
  }
  .footer-links button {
    width: fit-content;
    text-align: left;
  }
}


/* =========================================================
   V0.20 correctif — vérification finale et récapitulatif
   ========================================================= */
.final-review-dialog {
  width: min(860px, calc(100% - 1.2rem));
  max-height: min(92vh, 940px);
  border: 0;
  border-radius: 24px;
  padding: 0;
  overflow: auto;
  background: var(--paper);
  box-shadow: 0 30px 90px rgba(0,0,0,.30);
}

.final-review-content {
  padding: clamp(1.35rem, 4vw, 2.6rem);
}

.final-review-content h2 {
  margin: .35rem 2.8rem .6rem 0;
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 4vw, 2.7rem);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1.05;
}

.final-review-intro {
  margin: 0 0 1.25rem;
  color: var(--muted);
  line-height: 1.55;
}

.final-review-summary,
.success-booking-summary {
  display: grid;
  gap: .85rem;
  text-align: left;
}

.review-section {
  border: 1px solid #dbe1dc;
  border-radius: 17px;
  background: #f8faf7;
  overflow: hidden;
}

.review-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  padding: .8rem 1rem;
  border-bottom: 1px solid #e1e6e2;
  background: #eef4ef;
}

.review-section-heading strong {
  color: var(--green-dark);
  font-size: .93rem;
  font-weight: 650;
  letter-spacing: -.01em;
}

.review-edit-btn {
  flex: 0 0 auto;
  padding: .38rem .64rem;
  border: 1px solid #bfcac1;
  border-radius: 999px;
  background: #fff;
  color: var(--green-dark);
  font-size: .75rem;
  font-weight: 650;
}

.review-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 0;
}

.review-item {
  min-width: 0;
  padding: .82rem 1rem;
  border-bottom: 1px solid #e5e9e6;
}

.review-item:nth-child(odd) {
  border-right: 1px solid #e5e9e6;
}

.review-item.review-item-wide {
  grid-column: 1 / -1;
  border-right: 0;
}

.review-item:last-child,
.review-item:nth-last-child(2):nth-child(odd) {
  border-bottom: 0;
}

.review-label,
.review-value {
  display: block;
}

.review-label {
  margin-bottom: .24rem;
  color: #6b766f;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.review-value {
  color: var(--ink);
  font-size: .92rem;
  font-weight: 500;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.final-review-confirmation {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: .7rem;
  margin-top: 1.1rem;
  padding: .9rem 1rem;
  border: 1px solid #d7dfd8;
  border-radius: 14px;
  background: #fff;
  color: #36483d;
  font-weight: 550;
  cursor: pointer;
}

.final-review-confirmation input {
  width: 1.1rem;
  height: 1.1rem;
  margin: .15rem 0 0;
  accent-color: var(--green);
}

.final-review-actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.2rem;
}

.final-review-actions button:disabled {
  opacity: .45;
  cursor: not-allowed;
  box-shadow: none;
}

.success-booking-summary {
  margin: 1.4rem auto 0;
  width: min(100%, 650px);
}

.success-email-note {
  max-width: 620px;
  margin: 1rem auto 0;
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.5;
}

.success-booking-summary .review-section-heading {
  justify-content: flex-start;
}

@media (max-width: 680px) {
  .final-review-dialog {
    width: calc(100% - .7rem);
    max-height: 94vh;
    border-radius: 19px;
  }

  .final-review-content {
    padding: 1.25rem .95rem 1.1rem;
  }

  .final-review-content h2 {
    margin-right: 2rem;
    font-size: clamp(1.75rem, 8vw, 2.2rem);
  }

  .review-grid {
    grid-template-columns: 1fr;
  }

  .review-item,
  .review-item:nth-child(odd) {
    border-right: 0;
    border-bottom: 1px solid #e5e9e6;
  }

  .review-item:last-child {
    border-bottom: 0;
  }

  .final-review-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .final-review-actions button {
    width: 100%;
  }

  .success-panel {
    padding-left: .9rem;
    padding-right: .9rem;
  }
}


/* =========================================================
   V0.20.4 — parcours guidé, sélection visible et calendrier
   ========================================================= */
.process-cta-block {
  display: grid;
  justify-items: end;
  gap: .7rem;
  min-width: min(100%, 330px);
}
.process-selection {
  display: grid;
  gap: .12rem;
  width: 100%;
  padding: .72rem .9rem;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 14px;
  background: rgba(255,255,255,.08);
  color: #fff;
  text-align: left;
}
.process-selection span {
  color: #d4ded7;
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.process-selection strong { font-size: .93rem; }
.process-selection.hidden { display: none; }
.process-cta-block .ghost-light { width: 100%; }

.catalog-vehicle-card.selected {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(30,91,65,.15), 0 18px 40px rgba(18,54,40,.09);
}
.catalog-vehicle-card.selected .home-vehicle-select {
  border-radius: 999px;
  padding: .45rem .7rem;
  background: var(--green-soft);
  color: var(--green-dark);
}

.calendar-inline-nav {
  display: grid;
  grid-template-columns: 3rem minmax(0,1fr) 3rem;
  align-items: center;
  gap: .7rem;
  margin: .95rem 0 .8rem;
  padding: .55rem;
  border: 1px solid #dfe3df;
  border-radius: 16px;
  background: #f7f9f7;
}
.calendar-inline-nav strong {
  text-align: center;
  color: var(--green-dark);
  font-size: .98rem;
  font-weight: 650;
}
.calendar-inline-nav button {
  width: 3rem;
  height: 3rem;
  border: 1px solid #ccd5ce;
  border-radius: 12px;
  background: #fff;
  color: var(--green-dark);
  font-size: 1.7rem;
  line-height: 1;
  box-shadow: 0 4px 12px rgba(18,49,37,.07);
}
.calendar-inline-nav button:hover,
.calendar-inline-nav button:focus-visible {
  background: #eaf1eb;
  border-color: var(--green);
}

@media (max-width: 760px) {
  .process-cta-block {
    justify-items: stretch;
    width: 100%;
    min-width: 0;
  }
  .calendar-inline-nav {
    position: sticky;
    top: 0;
    z-index: 3;
    grid-template-columns: 3.15rem minmax(0,1fr) 3.15rem;
    background: rgba(247,249,247,.96);
    backdrop-filter: blur(8px);
  }
  .calendar-inline-nav button {
    width: 3.15rem;
    height: 3.15rem;
  }
  .calendar-inline-nav strong { font-size: .9rem; }
}


/* =========================================================
   V0.21 — catalogue harmonisé, messageries et suivi de vol
   ========================================================= */
.mail-address-placeholder strong {
  display:block;
  margin-bottom:.2rem;
  color:var(--green-dark);
  font-size:.98rem;
  letter-spacing:.01em;
}
.flight-monitor-card {
  margin-top:1rem;
  padding:1rem;
  border:1px solid #bfd0c5;
  border-radius:18px;
  background:linear-gradient(145deg,#edf3ef,#fff);
}
.flight-monitor-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  margin-bottom:.85rem;
}
.flight-monitor-head div { display:grid; gap:.18rem; }
.flight-monitor-head div > span {
  color:var(--muted);
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.12em;
}
.flight-monitor-head strong { color:var(--green-dark); font-size:1.08rem; }
.flight-monitor-status {
  flex:0 0 auto;
  padding:.4rem .65rem;
  border-radius:999px;
  background:#e7ebe8;
  color:#526158;
  font-size:.72rem;
  font-weight:800;
}
.flight-monitor-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.65rem;
}
.flight-monitor-grid div {
  padding:.7rem;
  border:1px solid rgba(57,83,67,.12);
  border-radius:13px;
  background:rgba(255,255,255,.76);
}
.flight-monitor-grid span,
.flight-monitor-grid strong { display:block; }
.flight-monitor-grid span { color:var(--muted); font-size:.74rem; margin-bottom:.2rem; }
.flight-monitor-grid strong { color:var(--text); font-size:.86rem; line-height:1.35; }
.flight-monitor-card p { margin:.8rem 0 0; color:var(--muted); font-size:.78rem; line-height:1.5; }
@media (max-width:620px) {
  .flight-monitor-head { flex-direction:column; }
  .flight-monitor-grid { grid-template-columns:1fr; }
}


/* =========================================================
   V0.22 — guide pratique, téléphone international et validation
   ========================================================= */
.home-guide{
  padding:76px clamp(22px,6vw,88px);
  background:#f7f4ee;
  border-top:1px solid rgba(24,54,45,.08);
}
.guide-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:28px;
}
.guide-grid details{
  background:#fff;
  border:1px solid rgba(24,54,45,.12);
  border-radius:18px;
  padding:0 18px;
  box-shadow:0 12px 28px rgba(24,54,45,.05);
}
.guide-grid summary{
  cursor:pointer;
  list-style:none;
  position:relative;
  padding:18px 34px 18px 0;
  font-weight:800;
  color:#173c32;
}
.guide-grid summary::-webkit-details-marker{display:none}
.guide-grid summary::after{
  content:"+";
  position:absolute;
  right:0;
  top:15px;
  width:26px;
  height:26px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#e8f0eb;
  color:#173c32;
  font-size:20px;
  line-height:1;
}
.guide-grid details[open] summary::after{content:"–"}
.guide-grid details p{
  margin:0 0 18px;
  color:#52645d;
  line-height:1.65;
}
.guide-source-note{
  display:flex;
  gap:16px;
  align-items:flex-start;
  margin-top:20px;
  padding:16px 18px;
  border-left:4px solid #c99543;
  background:rgba(255,255,255,.72);
  border-radius:0 14px 14px 0;
}
.guide-source-note strong{white-space:nowrap;color:#173c32}
.guide-source-note span{color:#52645d;line-height:1.55}
.guide-source-note a{color:#173c32;font-weight:700}

.form-validation-alert{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin:18px 0 0;
  padding:14px 16px;
  border:1px solid #d39a91;
  border-left:5px solid #a64034;
  border-radius:14px;
  background:#fff3f1;
  color:#742b24;
}
.form-validation-alert.hidden{display:none}
.form-validation-alert strong{font-size:1rem}
.form-validation-alert span{font-size:.92rem}

.phone-field-block{
  padding:18px;
  border:1px solid rgba(24,54,45,.14);
  border-radius:18px;
  background:#f8faf8;
}
.phone-field-heading{
  display:flex;
  flex-direction:column;
  gap:5px;
  margin-bottom:14px;
}
.phone-field-heading strong{color:#173c32;font-size:1rem}
.phone-field-heading small{color:#607169;line-height:1.45}
.phone-input-grid{
  display:grid;
  grid-template-columns:minmax(290px,1fr) minmax(260px,1.2fr);
  gap:14px;
}
.phone-input-grid label{min-width:0}
#phoneCountry{width:100%;min-width:0;padding-right:3rem}

.email-quarantine-panel{margin:0 0 22px;border:1px solid #d8dedb;border-radius:18px;background:#fff;overflow:hidden}
.email-quarantine-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;cursor:pointer;list-style:none}
.email-quarantine-panel>summary::-webkit-details-marker{display:none}
.email-quarantine-panel>summary span:first-child{display:flex;flex-direction:column;gap:3px}.email-quarantine-panel small{color:#68756f}
.email-quarantine-count{display:grid;place-items:center;min-width:34px;height:28px;padding:0 8px;border-radius:999px;background:#eef2ef;color:#173c32;font-weight:800}
.email-quarantine-count.has-items{background:#fff0d8;color:#8a4c00}
.email-quarantine-body{padding:0 20px 18px}.email-quarantine-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #e7ebe8;padding-top:14px}.email-quarantine-toolbar p{margin:0;color:#68756f}
.email-quarantine-row{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(180px,1fr) minmax(220px,1.5fr) auto;gap:12px;align-items:center;padding:13px 0;border-top:1px solid #edf0ee}.email-quarantine-row small{display:block;color:#68756f}.email-quarantine-actions{display:flex;gap:8px;flex-wrap:wrap}
.phone-preview{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  min-height:38px;
  margin-top:12px;
  padding:9px 12px;
  border-radius:12px;
  background:#eef2ef;
  color:#5a6b64;
}
.phone-preview strong{color:#173c32}
.phone-preview.is-valid{
  background:#e8f5ec;
  color:#245d3f;
}
.phone-preview.is-valid strong::after{
  content:" ✓";
  color:#2c7c4e;
}
.phone-preview.is-invalid{background:#fff2ef;color:#8b3d32}
.phone-preview.is-invalid strong{color:#8b3d32}

@media (max-width:760px){
  .home-guide{padding:54px 18px}
  .guide-grid{grid-template-columns:1fr}
  .guide-source-note{flex-direction:column;gap:6px}
  .guide-source-note strong{white-space:normal}
  .phone-input-grid{grid-template-columns:1fr}
  .email-quarantine-row{grid-template-columns:1fr}.email-quarantine-toolbar{align-items:flex-start;flex-direction:column}
}

/* =========================================================
   V0.23 — parcours raccourci, FAQ visible et conseils véhicules
   ========================================================= */
.progress-bar { width:33.333%; }

.home-guide-teaser {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:2rem;
  margin:0 0 4rem;
  padding:clamp(1.4rem,3vw,2.25rem);
  border:1px solid rgba(24,54,45,.12);
  border-radius:24px;
  background:#fff;
}
.home-guide-teaser h2 {
  margin:.15rem 0 .65rem;
  color:var(--green-dark);
  font-family:Georgia,serif;
  font-weight:500;
  font-size:clamp(1.55rem,2.8vw,2.25rem);
}
.home-guide-teaser p:last-child {
  max-width:780px;
  margin:0;
  color:var(--muted);
  line-height:1.65;
}
.home-guide-teaser .secondary { white-space:nowrap; }

.vehicle-advice {
  margin:.35rem 0 1rem;
  color:#52645d;
  line-height:1.48;
  font-size:.86rem;
}
.vehicle-advice strong { color:var(--green-dark); }
.vehicle-card-advice {
  margin:.55rem 0 0;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.42;
}

.selected-vehicle-summary {
  display:grid;
  grid-template-columns:minmax(170px,.7fr) minmax(0,1.3fr);
  gap:1.25rem;
  align-items:center;
  padding:1rem;
  border:1px solid #cbd7ce;
  border-radius:20px;
  background:linear-gradient(145deg,#f1f6f2,#fff);
}
.selected-vehicle-photo {
  position:relative;
  display:grid;
  place-items:center;
  min-height:155px;
  overflow:hidden;
  border-radius:16px;
  background:linear-gradient(145deg,#e8eee8,#f8f5eb);
}
.selected-vehicle-photo > span {
  position:absolute;
  font-size:3.5rem;
  opacity:.18;
}
.selected-vehicle-photo img {
  position:relative;
  z-index:2;
  width:95%;
  max-height:145px;
  object-fit:contain;
  filter:drop-shadow(0 9px 10px rgba(0,0,0,.13));
}
.selected-vehicle-copy { display:grid; gap:.25rem; }
.selected-vehicle-label {
  color:#8b6a31;
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.selected-vehicle-copy > strong {
  color:var(--green-dark);
  font-size:1.28rem;
}
.selected-vehicle-copy > small { color:var(--muted); }
.selected-vehicle-copy .vehicle-useful-specs { margin:.55rem 0 .25rem; }
.selected-vehicle-copy p {
  margin:.2rem 0 0;
  color:#42564d;
  line-height:1.5;
  font-size:.88rem;
}
.selected-vehicle-copy em {
  color:var(--muted);
  font-size:.76rem;
  line-height:1.45;
}
.selected-vehicle-empty {
  grid-column:1/-1;
  padding:1rem;
  color:var(--muted);
  text-align:center;
}
.change-vehicle-button { margin:.8rem 0 0; }
.vehicle-needs-grid { margin-bottom:1.55rem; }
.vehicle-change-panel {
  margin:1rem 0 1.35rem;
  padding:1rem;
  border:1px solid var(--line);
  border-radius:20px;
  background:#f7f9f7;
}
.vehicle-change-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  margin-bottom:1rem;
}
.vehicle-change-heading h4 {
  margin:.15rem 0 0;
  color:var(--green-dark);
  font-family:Georgia,serif;
  font-size:1.35rem;
  font-weight:500;
}
.vehicle-change-heading .text-action { margin-top:0; }

@media (max-width:760px) {
  .home-guide-teaser { grid-template-columns:1fr; gap:1.1rem; margin-bottom:3rem; }
  .home-guide-teaser .secondary { width:100%; white-space:normal; }
  .selected-vehicle-summary { grid-template-columns:1fr; }
  .selected-vehicle-photo { min-height:135px; }
  .selected-vehicle-photo img { max-height:128px; }
  .vehicle-change-heading { align-items:center; }
}


/* =========================================================
   V0.24 — fiches détaillées de la flotte Amigo
   ========================================================= */
.vehicle-card-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.7rem;
  margin-top:auto;
  padding-top:.25rem;
}
.vehicle-card-actions .compact-button { min-height:42px; }
.vehicle-card-actions .home-vehicle-select { margin-left:auto; }
.vehicle-card-details {
  width:100%;
  margin-top:.55rem;
  padding:.55rem .7rem;
  border:1px solid #cfd8d1;
  border-radius:10px;
  background:#fff;
  color:var(--green-dark);
  font:inherit;
  font-size:.82rem;
  font-weight:650;
  cursor:pointer;
}
.vehicle-card-details:hover,
.vehicle-card-details:focus-visible { border-color:var(--green); background:var(--green-soft); }
.selected-vehicle-details { width:max-content; margin:.2rem 0 .45rem; }

.vehicle-details-dialog {
  width:min(1060px,calc(100vw - 2rem));
  max-width:none;
  max-height:calc(100dvh - 2rem);
  padding:0;
  overflow:auto;
  border:0;
  border-radius:24px;
  background:#fff;
  box-shadow:0 30px 90px rgba(10,35,25,.28);
}
.vehicle-details-dialog .dialog-close {
  position:sticky;
  float:right;
  top:14px;
  margin:14px 14px -54px 0;
  z-index:20;
  background:rgba(255,255,255,.94);
  box-shadow:0 6px 20px rgba(20,47,37,.16);
}
.vehicle-details-content { padding:2rem; }
.vehicle-detail-header {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,.75fr);
  gap:1.2rem;
  align-items:end;
  padding-right:3.2rem;
}
.vehicle-detail-header h2 { margin:.15rem 0 0; color:var(--green-dark); font-size:clamp(1.8rem,4vw,3rem); }
.vehicle-detail-similar { margin:.15rem 0 0; color:var(--muted); }
.vehicle-detail-advice { padding:1rem 1.1rem; border-radius:16px; background:var(--green-soft); color:var(--green-dark); line-height:1.5; }
.vehicle-detail-overview {
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);
  gap:1.25rem;
  margin-top:1.5rem;
}
.vehicle-detail-exterior {
  min-height:310px;
  position:relative;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:20px;
  background:linear-gradient(145deg,#e7eee8,#faf7ef);
}
.vehicle-detail-exterior::after { content:""; position:absolute; width:62%; height:20px; bottom:18%; border-radius:50%; background:rgba(23,55,43,.13); filter:blur(8px); }
.vehicle-detail-exterior > span { font-size:4rem; opacity:.22; }
.vehicle-detail-exterior img { position:relative; z-index:2; width:92%; max-height:290px; object-fit:contain; filter:drop-shadow(0 14px 13px rgba(0,0,0,.18)); }
.vehicle-detail-summary { display:flex; flex-direction:column; padding:1.2rem; border:1px solid #e1e6e2; border-radius:20px; background:#fbfcfb; }
.vehicle-detail-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; margin:.5rem 0 1.15rem; }
.vehicle-detail-stat { display:grid; gap:.16rem; padding:.78rem; border-radius:13px; background:#fff; border:1px solid #e6eae7; }
.vehicle-detail-stat span { color:var(--muted); font-size:.75rem; }
.vehicle-detail-stat strong { color:var(--green-dark); font-size:.95rem; }
.vehicle-detail-summary .vehicle-detail-select { margin-top:auto; width:100%; }
.vehicle-detail-section { margin-top:1.5rem; padding-top:1.4rem; border-top:1px solid #e2e7e3; }
.vehicle-detail-section-heading { display:flex; justify-content:space-between; align-items:end; gap:1rem; }
.vehicle-detail-section h3 { margin:.15rem 0 .8rem; color:var(--green-dark); font-size:1.35rem; }
.vehicle-detail-section-heading > span { color:var(--muted); font-weight:650; }
.vehicle-detail-gallery { position:relative; display:grid; grid-template-columns:52px minmax(0,1fr) 52px; align-items:center; gap:.8rem; }
.vehicle-detail-main-image { position:relative; min-height:390px; display:grid; place-items:center; overflow:hidden; border-radius:18px; background:#eef2ef; }
.vehicle-detail-main-image img { position:relative; z-index:2; width:100%; height:390px; object-fit:cover; }
.vehicle-image-fallback { position:absolute; font-size:5rem; opacity:.18; }
.vehicle-gallery-arrow { width:48px; height:48px; border:1px solid #ccd6cf; border-radius:50%; background:#fff; color:var(--green-dark); font-size:2rem; cursor:pointer; box-shadow:0 6px 18px rgba(21,51,39,.1); }
.vehicle-gallery-arrow:disabled { opacity:.35; cursor:default; }
.vehicle-detail-thumbnails { display:flex; gap:.65rem; overflow:auto; padding:.8rem .1rem .2rem; scrollbar-width:thin; }
.vehicle-detail-thumbnails button { position:relative; flex:0 0 116px; height:76px; padding:0; overflow:hidden; border:2px solid transparent; border-radius:12px; background:#edf1ee; cursor:pointer; }
.vehicle-detail-thumbnails button.active { border-color:var(--green); box-shadow:0 0 0 2px rgba(30,91,65,.12); }
.vehicle-detail-thumbnails img { width:100%; height:100%; object-fit:cover; }
.vehicle-detail-thumbnails button > span { position:absolute; right:5px; bottom:5px; display:grid; place-items:center; min-width:22px; height:22px; padding:0 5px; border-radius:999px; background:rgba(14,35,27,.78); color:#fff; font-size:.72rem; }
.vehicle-detail-thumbnails button.image-unavailable img { display:none; }
.vehicle-detail-technical { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.3rem; }
.vehicle-detail-technical > div { padding:1.2rem; border:1px solid #e1e6e2; border-radius:18px; background:#fbfcfb; }
.vehicle-detail-technical dl { margin:0; display:grid; gap:.1rem; }
.vehicle-detail-technical dl > div { display:flex; justify-content:space-between; gap:1rem; padding:.7rem 0; border-bottom:1px solid #e5e9e6; }
.vehicle-detail-technical dl > div:last-child { border-bottom:0; }
.vehicle-detail-technical dt { color:var(--muted); }
.vehicle-detail-technical dd { margin:0; color:var(--green-dark); font-weight:700; text-align:right; }
.vehicle-equipment-list { list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; margin:0; padding:0; }
.vehicle-equipment-list li { display:flex; gap:.55rem; align-items:flex-start; padding:.65rem; border-radius:12px; background:#fff; border:1px solid #e5e9e6; color:var(--green-dark); font-size:.88rem; }
.vehicle-equipment-list li span { color:var(--green); font-weight:800; }
.vehicle-detail-note { margin-top:1.4rem; padding:1rem 1.1rem; border-left:4px solid #cf9c3c; border-radius:0 14px 14px 0; background:#fff7e8; color:#5b492b; }
.vehicle-detail-note p { margin:.28rem 0 0; line-height:1.5; }
.vehicle-detail-footer { position:sticky; bottom:0; z-index:10; display:flex; justify-content:space-between; align-items:center; gap:1rem; margin:1.5rem -2rem -2rem; padding:1rem 2rem; border-top:1px solid #dfe5e0; background:rgba(255,255,255,.96); backdrop-filter:blur(12px); }
.vehicle-detail-footer > div { display:grid; }
.vehicle-detail-footer span { color:var(--muted); font-size:.8rem; }

@media (max-width:760px) {
  .vehicle-card-actions { align-items:stretch; flex-direction:column; }
  .vehicle-card-actions .home-vehicle-select { margin-left:0; text-align:center; }
  .vehicle-details-dialog { width:100vw; max-height:100dvh; min-height:100dvh; border-radius:0; }
  .vehicle-details-content { padding:1.15rem; }
  .vehicle-detail-header { grid-template-columns:1fr; padding-right:2.9rem; }
  .vehicle-detail-advice { padding:.85rem; }
  .vehicle-detail-overview { grid-template-columns:1fr; }
  .vehicle-detail-exterior { min-height:220px; }
  .vehicle-detail-exterior img { max-height:210px; }
  .vehicle-detail-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vehicle-detail-gallery { grid-template-columns:38px minmax(0,1fr) 38px; gap:.35rem; }
  .vehicle-gallery-arrow { width:38px; height:38px; font-size:1.55rem; }
  .vehicle-detail-main-image { min-height:240px; }
  .vehicle-detail-main-image img { height:240px; }
  .vehicle-detail-thumbnails button { flex-basis:88px; height:60px; }
  .vehicle-detail-technical { grid-template-columns:1fr; }
  .vehicle-equipment-list { grid-template-columns:1fr; }
  .vehicle-detail-footer { margin:1.2rem -1.15rem -1.15rem; padding:.8rem 1.15rem; }
  .vehicle-detail-footer > div { display:none; }
  .vehicle-detail-footer .primary { width:100%; }
}

/* V0.25 — champ anti-robot invisible et hors flux visuel */
.honeypot-field{
  position:absolute!important;
  left:-10000px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

/* V0.25.2 — repères de source et commentaire client dans l’administration. */


/* =========================================================
   V0.25.4 — compagnie aérienne et numéro de vol normalisé
   ========================================================= */
.flight-other-fields {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(110px, .5fr);
  gap: .8rem;
}

.flight-number-field {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: stretch;
  margin-top: .42rem;
  border: 1px solid #cfd8d2;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.flight-number-field:focus-within {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(29,111,76,.12);
}

.flight-code-prefix {
  min-width: 3.4rem;
  display: grid;
  place-items: center;
  padding: .72rem .8rem;
  background: #e8f2ec;
  color: var(--green-dark);
  border-right: 1px solid #cfd8d2;
  font-weight: 800;
  letter-spacing: .05em;
}

.flight-code-prefix.empty {
  color: #89948e;
  background: #f2f4f3;
}

.flight-number-field input[type="text"] {
  width: 100%;
  min-width: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  text-transform: uppercase;
}

.flight-number-help {
  display: block;
  margin-top: .35rem;
  color: var(--muted);
}

@media (max-width: 760px) {
  .flight-other-fields {
    grid-template-columns: 1fr;
  }

  .flight-details {
    grid-template-columns: 1fr;
  }
}


/* =========================================================
   V0.25.5 — stabilisation calendrier, tablette et bloc vol
   ========================================================= */
.calendar-days {
  column-gap: 0;
  row-gap: .18rem;
}

.calendar-day {
  position: relative;
  isolation: isolate;
}

.calendar-day.in-range {
  border-radius: 0;
  background: #cfd5d1;
  color: #263d31;
  box-shadow: inset 0 1px 0 rgba(55,78,65,.08), inset 0 -1px 0 rgba(55,78,65,.08);
}

.calendar-day.range-start,
.calendar-day.range-end {
  background: transparent;
  overflow: visible;
}

.calendar-day.range-start:not(.range-end) {
  background: linear-gradient(to right, transparent 0 50%, #cfd5d1 50% 100%);
}

.calendar-day.range-end:not(.range-start) {
  background: linear-gradient(to right, #cfd5d1 0 50%, transparent 50% 100%);
}

.calendar-day.range-start::before,
.calendar-day.range-end::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: 10px;
  background: var(--green);
}

.calendar-day.range-start::after,
.calendar-day.range-end::after {
  z-index: 1;
}

.flight-number-control {
  align-self: start;
}

.flight-number-field {
  min-height: 48px;
  margin-top: .42rem;
  border-color: #c8d2cc;
  background: #fff;
}

.flight-code-prefix {
  min-width: 3.15rem;
  padding: 0 .8rem;
  background: #f3f6f4;
  border-right-color: #c8d2cc;
  font-size: .95rem;
  line-height: 1;
}

.flight-code-prefix.empty {
  background: #f7f8f7;
}

.flight-number-field input[type="text"] {
  min-height: 46px;
  padding: .72rem .85rem;
  line-height: 1.2;
}

@media (max-width: 980px) {
  html {
    scroll-behavior: auto;
  }

  .form-step.active {
    scroll-margin-top: 130px;
  }
}

/* =========================================================
   V0.25.7 — interface partenaire cloisonnée et historique
   ========================================================= */
body.partner-view-active .prototype-ribbon,
body.partner-view-active .site-header,
body.partner-view-active .site-footer {
  display:none !important;
}
body.partner-view-active {
  background:#f3f6f3;
}
body.partner-view-active main {
  min-height:100vh;
}
.partner-private-shell {
  min-height:100vh;
  padding-bottom:3rem;
  background:
    radial-gradient(circle at 85% 0%,rgba(126,155,129,.16),transparent 30rem),
    #f3f6f3;
}
.partner-shell-header {
  position:sticky;
  top:0;
  z-index:80;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:1.25rem;
  padding:.85rem clamp(1rem,4vw,3.5rem);
  border-bottom:1px solid #dbe3dc;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(18px);
  box-shadow:0 8px 26px rgba(24,47,31,.06);
}
.partner-shell-brand {
  display:grid;
  line-height:1;
  color:#173d2a;
}
.partner-shell-logo {
  font-weight:900;
  letter-spacing:.08em;
  font-size:.92rem;
}
.partner-shell-brand > span:last-child {
  margin-top:.18rem;
  font-family:Georgia,serif;
  font-style:italic;
  color:#a66f2c;
}
.partner-shell-title {
  display:grid;
  justify-items:start;
  padding-left:1.25rem;
  border-left:1px solid #dbe3dc;
}
.partner-shell-title small {
  color:#698072;
  font-weight:800;
  letter-spacing:.13em;
  font-size:.67rem;
}
.partner-shell-title strong {
  color:#173d2a;
  font-size:1rem;
}
.partner-shell-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:.55rem;
}
.partner-mode-chip {
  display:inline-flex;
  align-items:center;
  min-height:2.1rem;
  padding:.42rem .75rem;
  border-radius:999px;
  background:#edf4ee;
  color:#315840;
  font-size:.77rem;
  font-weight:800;
  cursor:default;
  user-select:none;
  border:1px solid #d3e1d6;
}
.partner-intro {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:2rem;
  align-items:end;
  max-width:1500px;
  margin:0 auto;
  padding:2.4rem clamp(1rem,4vw,3.5rem) 1.4rem;
}
.partner-intro h1 {
  margin:.25rem 0 .6rem;
  max-width:800px;
}
.partner-intro p:last-child {
  max-width:850px;
  color:#607067;
}
.partner-security-note {
  max-width:360px;
  padding:.9rem 1rem;
  border:1px solid #d6e0d8;
  border-radius:14px;
  background:#fff;
  color:#46614e;
  font-size:.83rem;
  font-weight:750;
  box-shadow:0 10px 25px rgba(28,55,36,.05);
}
.partner-workflow-metrics {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.8rem;
  max-width:1500px;
  margin:0 auto;
  padding:0 clamp(1rem,4vw,3.5rem) 1.2rem;
}
.partner-stage-card {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1rem 1.1rem;
  border:1px solid #dbe3dc;
  border-radius:16px;
  background:#fff;
  color:#3f5647;
  text-align:left;
  box-shadow:0 8px 24px rgba(28,55,36,.04);
  cursor:pointer;
}
.partner-stage-card span {
  font-size:.82rem;
  font-weight:800;
}
.partner-stage-card strong {
  min-width:2.2rem;
  font-size:1.35rem;
  color:#173d2a;
  text-align:right;
}
.partner-stage-card:hover,
.partner-stage-card:focus-visible {
  transform:translateY(-1px);
  box-shadow:0 10px 28px rgba(45,70,92,.10);
}
.partner-stage-card[data-stage="new"] { border-top:4px solid #5f91bf; }
.partner-stage-card[data-stage="sent"] { border-top:4px solid #d5a03f; }
.partner-stage-card[data-stage="confirmed"] { border-top:4px solid #5b9a6d; }
.partner-stage-card[data-stage="completed"] { border-top:4px solid #8a979d; }
.partner-stage-card[data-stage="new"].active { border-color:#7ca6cb; background:#edf5fc; }
.partner-stage-card[data-stage="sent"].active { border-color:#dfb45e; background:#fff7e8; }
.partner-stage-card[data-stage="confirmed"].active { border-color:#79aa86; background:#edf7f0; }
.partner-stage-card[data-stage="completed"].active { border-color:#a3adb1; background:#f2f5f6; }
.partner-history-layout {
  display:grid;
  grid-template-columns:minmax(260px,340px) minmax(0,1fr);
  gap:1rem;
  max-width:1500px;
  margin:0 auto;
  padding:0 clamp(1rem,4vw,3.5rem);
}
.partner-dossier-sidebar,
.partner-dossier-main {
  border:1px solid #dbe3dc;
  border-radius:18px;
  background:#fff;
  box-shadow:0 14px 35px rgba(28,55,36,.06);
}
.partner-dossier-sidebar {
  position:sticky;
  top:5.2rem;
  align-self:start;
  max-height:calc(100vh - 6.4rem);
  overflow:hidden;
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr);
}
.partner-list-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding:1rem 1rem .75rem;
}
.partner-list-heading > div { display:grid; }
.partner-list-heading small {
  color:#798b80;
  font-size:.66rem;
  letter-spacing:.12em;
  font-weight:850;
}
.partner-list-heading strong { color:#173d2a; }
.partner-list-heading > span {
  display:grid;
  place-items:center;
  min-width:2rem;
  height:2rem;
  border-radius:999px;
  background:#edf4ee;
  color:#2c5b3a;
  font-weight:850;
}
#partnerSearch {
  margin:0 .85rem .75rem;
  width:calc(100% - 1.7rem);
}
.partner-select-fallback {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
}
.partner-booking-list {
  overflow:auto;
  padding:0 .6rem .75rem;
}
.partner-booking-row {
  width:100%;
  display:grid;
  gap:.18rem;
  margin:.25rem 0;
  padding:.8rem .85rem;
  border:1px solid transparent;
  border-left:5px solid transparent;
  border-radius:13px;
  background:transparent;
  color:#31483a;
  text-align:left;
  cursor:pointer;
}
.partner-booking-row:hover,
.partner-booking-row:focus-visible {
  background:#f5f8f5;
}
.partner-booking-row[data-stage="new"] { border-left-color:#5f91bf; }
.partner-booking-row[data-stage="sent"] { border-left-color:#d5a03f; }
.partner-booking-row[data-stage="confirmed"] { border-left-color:#5b9a6d; }
.partner-booking-row[data-stage="completed"] { border-left-color:#8a979d; }
.partner-booking-row[data-stage="new"].active { border-color:#7ca6cb; background:#edf5fc; }
.partner-booking-row[data-stage="sent"].active { border-color:#dfb45e; background:#fff7e8; }
.partner-booking-row[data-stage="confirmed"].active { border-color:#79aa86; background:#edf7f0; }
.partner-booking-row[data-stage="completed"].active { border-color:#a3adb1; background:#f2f5f6; }
.partner-row-status[data-stage="new"] { background:#e8f2fb; color:#245d8d; }
.partner-row-status[data-stage="sent"] { background:#fff0d3; color:#875708; }
.partner-row-status[data-stage="confirmed"] { background:#e7f4eb; color:#26713f; }
.partner-row-status[data-stage="completed"] { background:#edf0f1; color:#5a666b; }
.partner-booking-row strong { color:#173d2a; }
.partner-booking-row small {
  overflow:hidden;
  color:#748279;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.partner-row-status {
  width:max-content;
  padding:.18rem .45rem;
  border-radius:999px;
  background:#eef2ee;
  color:#597064;
  font-size:.64rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.partner-dossier-main {
  min-width:0;
  padding:1rem;
}
.partner-dossier-toolbar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding:.25rem .15rem 1rem;
  border-bottom:1px solid #e3e9e4;
}
.partner-dossier-toolbar > div:first-child { display:grid; }
.partner-dossier-toolbar > div:last-child {
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:.55rem;
}
.partner-dossier-reference { color:#173d2a; }
.partner-dossier-status {
  width:max-content;
  margin-bottom:.2rem;
  padding:.22rem .52rem;
  border-radius:999px;
  background:#e8f2fb;
  color:#245d8d;
  font-size:.69rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.partner-dossier-status[data-stage="sent"] { background:#fff0d3; color:#875708; }
.partner-dossier-status[data-stage="confirmed"] { background:#e8f6ed; color:#21703d; }
.partner-dossier-status[data-stage="completed"] { background:#f1f1f1; color:#5f655f; }
.partner-request-summary {
  margin:1rem 0;
  padding:0;
  border:0;
  background:transparent;
}
.partner-summary-head {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.8rem;
  padding:.8rem 1rem;
  border-radius:13px;
  background:#173d2a;
  color:#fff;
}
.partner-summary-head > div { display:grid; }
.partner-summary-head span,
.partner-summary-head small { color:#dbe8df; }
.partner-vehicle-hero {
  position:relative;
  display:grid;
  grid-template-columns:190px minmax(0,1fr) auto;
  gap:1.25rem;
  align-items:center;
  margin:.8rem 0;
  padding:1rem;
  border:1px solid #dfe7e0;
  border-left:6px solid #5f91bf;
  border-radius:16px;
  background:linear-gradient(145deg,#fff,#f7faf8);
  overflow:hidden;
}
.partner-vehicle-hero[data-stage="sent"] { border-left-color:#d5a03f; }
.partner-vehicle-hero[data-stage="confirmed"] { border-left-color:#5b9a6d; }
.partner-vehicle-hero[data-stage="completed"] { border-left-color:#8a979d; }
.partner-vehicle-visual {
  position:relative;
  display:grid;
  place-items:center;
  min-height:120px;
  border-radius:13px;
  background:#fff;
  overflow:hidden;
}
.partner-vehicle-visual img {
  width:100%;
  height:120px;
  object-fit:contain;
}
.partner-vehicle-visual > span {
  display:none;
  font-size:3.2rem;
}
.partner-vehicle-visual.image-missing > span { display:block; }
.partner-vehicle-copy { min-width:0; }
.partner-section-kicker {
  color:#718178;
  font-size:.67rem;
  font-weight:900;
  letter-spacing:.12em;
}
.partner-vehicle-copy h2 {
  margin:.15rem 0 .3rem;
  color:#173d2a;
  font-size:clamp(1.2rem,2vw,1.65rem);
}
.partner-vehicle-copy > p {
  margin:0 0 .75rem;
  color:#68786f;
  font-size:.82rem;
}
.partner-vehicle-facts {
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
}
.partner-vehicle-facts > span {
  display:grid;
  gap:.08rem;
  min-width:112px;
  padding:.45rem .6rem;
  border:1px solid #e1e8e2;
  border-radius:10px;
  background:#fff;
}
.partner-vehicle-facts small {
  color:#7b8980;
  font-size:.65rem;
  font-weight:800;
  text-transform:uppercase;
}
.partner-vehicle-facts strong {
  color:#2c4736;
  font-size:.78rem;
}
.partner-hero-status {
  align-self:start;
  padding:.34rem .6rem;
  border-radius:999px;
  background:#e8f2fb;
  color:#245d8d;
  font-size:.69rem;
  font-weight:900;
  text-transform:uppercase;
  white-space:nowrap;
}
.partner-hero-status[data-stage="sent"] { background:#fff0d3; color:#875708; }
.partner-hero-status[data-stage="confirmed"] { background:#e7f4eb; color:#26713f; }
.partner-hero-status[data-stage="completed"] { background:#edf0f1; color:#5a666b; }
.partner-trip-strip {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.65rem;
  margin:.8rem 0;
}
.partner-trip-card {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:.7rem;
  align-items:start;
  min-height:112px;
  padding:.8rem;
  border:1px solid #dfe7e0;
  border-radius:13px;
  background:#fafcfb;
}
.partner-trip-icon {
  display:grid;
  place-items:center;
  width:2rem;
  height:2rem;
  border-radius:10px;
  background:#edf4ee;
  color:#315840;
  font-weight:900;
}
.partner-trip-card > div { display:grid; gap:.18rem; min-width:0; }
.partner-trip-card small {
  color:#748279;
  font-size:.67rem;
  font-weight:850;
  letter-spacing:.08em;
}
.partner-trip-card strong {
  color:#2c4736;
  font-size:.84rem;
  line-height:1.35;
}
.partner-trip-card div > span {
  color:#6f7f75;
  font-size:.77rem;
}
.partner-trip-card .partner-place-detail {
  margin-top:.35rem;
  padding-top:.35rem;
  border-top:1px solid #e1e8e3;
  color:#445d4d;
  line-height:1.4;
  overflow-wrap:anywhere;
}
.partner-trip-card .partner-place-detail b { color:#315840; }
.partner-trip-card .partner-place-map {
  width:max-content;
  max-width:100%;
  margin-top:.3rem;
  color:#315f46;
  font-size:.76rem;
  font-weight:800;
  overflow-wrap:anywhere;
}
.partner-information-banner {
  margin:.8rem 0;
  padding:.75rem .9rem;
  border-left:4px solid #789b80;
  border-radius:8px;
  background:#edf5ef;
  color:#35523d;
}
.partner-history-card {
  margin-top:.8rem;
  padding:1rem;
  border:1px solid #dfe7e0;
  border-radius:13px;
  background:#fafcfb;
}
.partner-history-heading { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.partner-history-heading span { color:#6d8175; font-size:.75rem; font-weight:800; }
.partner-history-disclosure { margin-top:.75rem; }
.partner-history-disclosure summary {
  width:max-content;
  max-width:100%;
  cursor:pointer;
  color:#315f46;
  font-weight:850;
}
.partner-history-disclosure[open] + .partner-history-preview { display:none; }
.partner-dossier-toolbar button:disabled {
  opacity:.38;
  cursor:not-allowed;
  filter:grayscale(.45);
}
.partner-history-card ol {
  display:grid;
  gap:.55rem;
  margin:.7rem 0 0;
  padding-left:1.25rem;
}
.partner-history-card li {
  padding-left:.2rem;
  color:#42584a;
}
.partner-history-card li span {
  display:block;
  color:#819087;
  font-size:.7rem;
}
.partner-proposal-panel {
  margin-top:1rem;
}
.partner-form-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  margin-bottom:1rem;
}
.partner-form-heading h3 { margin:.1rem 0 0; }
.partner-form-heading > span {
  padding:.32rem .55rem;
  border-radius:999px;
  background:#edf4ee;
  color:#315840;
  font-size:.72rem;
  font-weight:800;
}
.partner-proposal-panel.is-readonly {
  background:#f8faf8;
}
.partner-proposal-panel.is-readonly :is(input,select,textarea) {
  color:#59665e;
  background:#f0f3f0;
  opacity:1;
}
.partner-readonly-message {
  margin:.8rem 0 0;
  padding:.75rem .9rem;
  border-radius:10px;
  background:#f0f3f0;
  color:#607067;
  font-size:.8rem;
}
.partner-empty-state {
  padding:1.4rem 1rem;
  color:#76847b;
  text-align:center;
}

@media (max-width:1100px) {
  .partner-workflow-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .partner-vehicle-hero { grid-template-columns:150px minmax(0,1fr); }
  .partner-hero-status { grid-column:1 / -1; justify-self:start; }
  .partner-trip-strip { grid-template-columns:1fr 1fr; }
  .partner-trip-extras { grid-column:1 / -1; }
}
@media (max-width:820px) {
  .partner-shell-header {
    position:relative;
    grid-template-columns:1fr auto;
  }
  .partner-shell-title { display:none; }
  .partner-intro { grid-template-columns:1fr; }
  .partner-security-note { max-width:none; }
  .partner-history-layout { grid-template-columns:1fr; }
  .partner-dossier-sidebar {
    position:relative;
    top:auto;
    max-height:none;
  }
  .partner-booking-list { max-height:330px; }
}
@media (max-width:580px) {
  .partner-shell-header { padding:.75rem; }
  .partner-shell-actions { gap:.35rem; }
  .partner-mode-chip { width:100%; justify-content:center; order:3; }
  .partner-shell-actions .secondary { padding:.55rem .65rem; font-size:.75rem; }
  .partner-intro { padding:1.5rem .8rem 1rem; }
  .partner-workflow-metrics { grid-template-columns:1fr 1fr; padding:0 .8rem 1rem; gap:.55rem; }
  .partner-stage-card { align-items:flex-start; flex-direction:column; padding:.75rem; gap:.35rem; }
  .partner-stage-card strong { text-align:left; }
  .partner-history-layout { padding:0 .8rem; }
  .partner-dossier-main { padding:.75rem; }
  .partner-dossier-toolbar,
  .partner-summary-head,
  .partner-form-heading { align-items:stretch; flex-direction:column; }
  .partner-dossier-toolbar > div:last-child { justify-content:stretch; }
  .partner-dossier-toolbar button { width:100%; }
  .partner-vehicle-hero { grid-template-columns:1fr; }
  .partner-vehicle-visual { min-height:150px; }
  .partner-vehicle-visual img { height:150px; }
  .partner-trip-strip { grid-template-columns:1fr; }
  .partner-trip-extras { grid-column:auto; }
  .partner-vehicle-facts { display:grid; grid-template-columns:1fr 1fr; }
  .partner-vehicle-facts > span { min-width:0; }
}

/* =========================================================
   V0.25.8 — envoi fiable, erreurs explicites et compagnies compactes
   ========================================================= */
.form-validation-alert[data-kind="network"],
.form-validation-alert[data-kind="access"] {
  border-color:#d7b36f;
  border-left-color:#a66a12;
  background:#fff8e8;
  color:#714708;
}

.booking-field-invalid {
  outline:3px solid rgba(166,64,52,.18);
  outline-offset:4px;
  border-radius:12px;
}

.final-review-error {
  display:flex;
  flex-direction:column;
  gap:.35rem;
  margin:1rem 0;
  padding:.9rem 1rem;
  border:1px solid #d7b36f;
  border-left:5px solid #a66a12;
  border-radius:13px;
  background:#fff8e8;
  color:#714708;
}
.final-review-error.hidden { display:none; }
.final-review-error[data-kind="server"] {
  border-color:#d39a91;
  border-left-color:#a64034;
  background:#fff3f1;
  color:#742b24;
}
.final-review-error[data-kind="validation"] {
  border-color:#d39a91;
  border-left-color:#a64034;
  background:#fff3f1;
  color:#742b24;
}
.final-review-error strong { font-size:.98rem; }
.final-review-error span { font-size:.88rem; line-height:1.48; }

.flight-airline-native {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}

.flight-airline-picker {
  position:relative;
  z-index:8;
  margin-top:.42rem;
}
.flight-airline-picker.open { z-index:70; }

.flight-airline-trigger {
  width:100%;
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
  padding:.72rem .85rem;
  border:1px solid #cfd8d2;
  border-radius:12px;
  background:#fff;
  color:var(--ink);
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.flight-airline-trigger:hover { border-color:#91a89b; }
.flight-airline-trigger:focus-visible {
  outline:0;
  border-color:var(--green);
  box-shadow:0 0 0 3px rgba(29,111,76,.12);
}
.flight-airline-placeholder { color:#6f7b74; }
.flight-airline-chevron {
  flex:0 0 auto;
  color:#66736b;
  font-size:1.2rem;
  transition:transform .15s ease;
}
.flight-airline-picker.open .flight-airline-chevron { transform:rotate(180deg); }

.flight-airline-panel {
  position:absolute;
  top:calc(100% + .4rem);
  left:0;
  width:100%;
  min-width:min(430px,calc(100vw - 2rem));
  max-height:min(410px,58vh);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #cbd5ce;
  border-radius:15px;
  background:#fff;
  box-shadow:0 18px 48px rgba(25,46,36,.2);
}
.flight-airline-panel.hidden { display:none; }
.flight-airline-search-row {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:.55rem;
  padding:.7rem;
  border-bottom:1px solid #e2e7e3;
  background:#f7f9f7;
}
.flight-airline-search-row > span {
  color:#617068;
  font-size:1.15rem;
}
.flight-airline-search {
  width:100%;
  min-height:42px;
  margin:0!important;
  padding:.6rem .7rem!important;
  border:1px solid #d5ddd7!important;
  border-radius:10px!important;
  background:#fff!important;
}
.flight-airline-list {
  overflow:auto;
  overscroll-behavior:contain;
  padding:.45rem;
}
.flight-airline-group + .flight-airline-group {
  margin-top:.3rem;
  padding-top:.3rem;
  border-top:1px solid #edf0ee;
}
.flight-airline-group-title {
  display:flex;
  align-items:center;
  gap:.4rem;
  padding:.45rem .55rem .3rem;
  color:#526159;
  font-size:.73rem;
  font-weight:850;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.flight-airline-option {
  width:100%;
  display:block;
  padding:.62rem .68rem;
  border:0;
  border-radius:9px;
  background:transparent;
  color:#243b30;
  font:inherit;
  font-size:.91rem;
  text-align:left;
  cursor:pointer;
}
.flight-airline-option:hover,
.flight-airline-option:focus-visible {
  outline:0;
  background:#edf4ef;
}
.flight-airline-option.selected {
  background:#e4efe7;
  color:var(--green-dark);
  font-weight:750;
}
.flight-airline-empty {
  margin:0;
  padding:1rem;
  color:#66736b;
  text-align:center;
}

@media (max-width:680px) {
  .flight-airline-panel {
    min-width:100%;
    max-height:min(380px,55vh);
  }
  .flight-airline-option { padding:.72rem; }
}

/* =========================================================
   V0.25.10 — identité Cloudflare Access robuste
   ========================================================= */
.private-toolbar-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:.5rem;
}
.private-data-status {
  display:inline-flex;
  align-items:center;
  min-height:2rem;
  padding:.38rem .7rem;
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px;
  font-size:.72rem;
  font-weight:800;
  line-height:1.15;
  white-space:nowrap;
}
.private-data-status::before {
  content:"";
  width:.5rem;
  height:.5rem;
  margin-right:.45rem;
  border-radius:50%;
  background:#aab5ae;
}
.private-data-status[data-state="remote"] { background:#e5f4e8; color:#24563a; border-color:#b8d8c0; }
.private-data-status[data-state="remote"]::before { background:#2e8a54; }
.private-data-status[data-state="loading"] { background:#eef1f4; color:#45525b; border-color:#d3d9dd; }
.private-data-status[data-state="loading"]::before { background:#71808b; }
.private-data-status[data-state="demo"] { background:#fff4d9; color:#765619; border-color:#e8cf91; }
.private-data-status[data-state="demo"]::before { background:#c38b20; }
.private-data-status[data-state="secure"],
.private-data-status[data-state="error"] { background:#fde9e7; color:#7a302a; border-color:#efbdb7; }
.private-data-status[data-state="secure"]::before,
.private-data-status[data-state="error"]::before { background:#bd4b40; }
.admin-toolbar .private-data-status { background:rgba(255,255,255,.1); color:#fff; }
.admin-toolbar .private-data-status[data-state="remote"] { background:#dff2e3; color:#214d33; border-color:#a9d1b4; }
.admin-toolbar .private-data-status[data-state="secure"],
.admin-toolbar .private-data-status[data-state="error"] { background:#f8dedb; color:#6e2823; border-color:#e8aaa3; }
.partner-shell-actions .private-data-status { order:0; }

/* Lot 10B — logo lisible dans l’en-tête partenaire sombre */
.partner-shell-header .partner-shell-brand{padding:.5rem .75rem;border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 4px 14px rgba(0,0,0,.14)}
.partner-shell-header .partner-shell-logo{color:#173d2a!important}.partner-shell-header .partner-shell-brand>span:last-child{color:#a66f2c!important}

@media (max-width:760px) {
  .private-toolbar-actions { width:100%; justify-content:flex-start; }
  .private-data-status { white-space:normal; }
}

/* =========================================================
   V0.25.11 — imprévus avant rendez-vous
   ========================================================= */
.tracking-appointment-callout,
.tracking-appointment-alert,
.tracking-secure-action-note,
.admin-operational-alert,
.partner-operational-alert{
  margin-top:1.2rem;
  border-radius:18px;
  border:1px solid rgba(139,91,35,.24);
  background:#fffaf1;
  padding:1.15rem 1.25rem;
}
.tracking-appointment-callout{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.2rem;
}
.tracking-appointment-callout h3,
.tracking-appointment-alert h3,
.admin-operational-alert h3,
.partner-operational-alert h3{
  margin:.2rem 0 .45rem;
}
.tracking-appointment-callout p,
.tracking-appointment-alert p,
.admin-operational-alert p,
.partner-operational-alert p{
  margin:.25rem 0;
}
.tracking-appointment-callout .secondary,
.tracking-appointment-alert .secondary{
  flex:0 0 auto;
}
.tracking-appointment-alert{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:1rem;
  border-color:rgba(173,71,48,.35);
  background:#fff4ef;
}
.tracking-appointment-icon,
.partner-operational-alert>span{
  display:grid;
  place-items:center;
  width:2rem;
  height:2rem;
  border-radius:999px;
  background:#a94d35;
  color:#fff;
  font-weight:800;
}
.tracking-appointment-alert blockquote,
.partner-operational-alert blockquote{
  margin:.7rem 0;
  padding:.7rem .85rem;
  border-left:3px solid #a94d35;
  background:rgba(255,255,255,.7);
  border-radius:0 10px 10px 0;
}
.tracking-appointment-alert small{
  display:block;
  margin:.65rem 0;
}
.tracking-secure-action-note{
  display:flex;
  flex-direction:column;
  gap:.25rem;
  background:#f5f7f5;
  border-color:#d9dfda;
}
.admin-operational-alert{
  border-color:rgba(173,71,48,.38);
  background:#fff4ef;
}
.partner-operational-alert{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:1rem;
  border-color:rgba(173,71,48,.38);
  background:#fff4ef;
}
.partner-operational-alert small{
  display:block;
  margin-top:.35rem;
  color:#71645e;
}
.appointment-issue-dialog{
  width:min(620px,calc(100% - 2rem));
  border:0;
  border-radius:22px;
  padding:0;
  color:#21302c;
  box-shadow:0 24px 80px rgba(15,26,23,.28);
}
.appointment-issue-dialog::backdrop{
  background:rgba(13,24,21,.62);
  backdrop-filter:blur(3px);
}
.appointment-issue-dialog form{
  padding:1.35rem;
}
.appointment-issue-dialog-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}
.appointment-issue-dialog-head h2{
  margin:.15rem 0 .5rem;
}
.appointment-issue-intro{
  margin:.45rem 0 1rem;
  padding:.8rem .9rem;
  background:#f5f7f5;
  border-radius:12px;
}
.appointment-issue-dialog label:not(.form-check){
  display:block;
  margin:.9rem 0 .35rem;
  font-weight:700;
}
.appointment-issue-dialog select,
.appointment-issue-dialog textarea{
  width:100%;
  border:1px solid #cdd6d1;
  border-radius:12px;
  padding:.8rem .9rem;
  font:inherit;
  background:#fff;
}
.appointment-issue-dialog textarea{
  resize:vertical;
  min-height:110px;
}
.appointment-issue-confirm{
  margin-top:1rem;
}
.appointment-issue-feedback{
  margin-top:.85rem;
  padding:.75rem .85rem;
  border-radius:10px;
  background:#fff0ed;
  color:#833822;
  font-weight:700;
}
.appointment-issue-actions{
  display:flex;
  justify-content:flex-end;
  gap:.75rem;
  margin-top:1.1rem;
}
@media (max-width:680px){
  .tracking-appointment-callout{
    align-items:stretch;
    flex-direction:column;
  }
  .tracking-appointment-callout .secondary,
  .tracking-appointment-alert .secondary{
    width:100%;
  }
  .appointment-issue-actions{
    flex-direction:column-reverse;
  }
  .appointment-issue-actions button{
    width:100%;
  }
}

/* =========================================================
   V0.25.12 — alertes opérationnelles prioritaires
   ========================================================= */
.operational-alert-summary {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:1rem;
  max-width:1180px;
  margin:0 auto 1rem;
  padding:1rem 1.1rem;
  border:2px solid #b5533d;
  border-radius:18px;
  background:#fff2ed;
  color:#5f261c;
  box-shadow:0 8px 24px rgba(122,49,34,.10);
}
.operational-alert-summary .alert-summary-icon {
  display:grid;
  place-items:center;
  width:2.4rem;
  height:2.4rem;
  border-radius:999px;
  background:#a94d35;
  color:#fff;
  font-size:1.2rem;
  font-weight:900;
}
.operational-alert-summary > div {
  display:grid;
  gap:.2rem;
  min-width:0;
}
.operational-alert-summary strong {
  font-size:1rem;
}
.operational-alert-summary span:not(.alert-summary-icon) {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-operational-summary {
  margin-top:-.25rem;
  padding-left:1.25rem;
  padding-right:1.25rem;
}
.partner-operational-summary {
  margin-top:0;
  margin-bottom:1rem;
}

.booking-row.has-operational-alert {
  border:2px solid #b5533d;
  background:#fff5f1;
  box-shadow:inset 6px 0 0 #a94d35, 0 6px 18px rgba(122,49,34,.08);
}
.booking-row.has-operational-alert:hover {
  border-color:#963d2b;
}
.booking-row-status-stack {
  display:grid;
  justify-items:start;
  gap:.35rem;
}
.booking-row-status-stack small {
  max-width:190px;
  color:#7b4135;
  font-weight:700;
  line-height:1.25;
}
.booking-operational-pill,
.partner-row-operational {
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  border-radius:999px;
  background:#a94d35;
  color:#fff;
  padding:.35rem .58rem;
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.015em;
}

.partner-booking-row.has-operational-alert {
  border:2px solid #b5533d !important;
  border-left-width:7px !important;
  background:#fff3ee !important;
  box-shadow:0 5px 14px rgba(122,49,34,.09);
}
.partner-booking-row.has-operational-alert.active {
  border-color:#963d2b !important;
  background:#ffece5 !important;
}
.partner-row-alert-reason {
  color:#7b3124 !important;
  font-weight:800;
}
.admin-operational-alert,
.partner-operational-alert {
  border-width:2px;
  border-color:#b5533d;
  background:#fff1eb;
  box-shadow:0 8px 22px rgba(122,49,34,.09);
}
.partner-request-summary > .partner-operational-alert {
  margin-top:.85rem;
  margin-bottom:1rem;
}

@media (max-width:760px) {
  .operational-alert-summary {
    grid-template-columns:auto minmax(0,1fr);
    margin-left:.8rem;
    margin-right:.8rem;
  }
  .operational-alert-summary button {
    grid-column:1 / -1;
    width:100%;
  }
  .operational-alert-summary span:not(.alert-summary-icon) {
    white-space:normal;
  }
  .booking-row-status-stack small {
    max-width:none;
  }
}


/* =========================================================
   V0.25.14 — page de réglages, modèles multilingues et activité compacte
   ========================================================= */
.operational-settings-panel{
  margin:1.35rem 0 1.8rem;
  padding:1.45rem;
  border:1px solid rgba(29,70,66,.16);
  border-radius:24px;
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(243,248,246,.96));
  box-shadow:0 18px 45px rgba(31,54,51,.08);
}
.operational-settings-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1.2rem;
  margin-bottom:1rem;
}
.operational-settings-head h2{margin:.15rem 0 .35rem;font-size:clamp(1.35rem,2vw,1.9rem)}
.operational-settings-head p{margin:0;max-width:780px;color:var(--muted)}
.settings-storage-chip{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:.45rem .75rem;
  border-radius:999px;
  font-size:.78rem;
  font-weight:800;
  background:#edf4f1;
  color:#315c55;
  border:1px solid rgba(49,92,85,.15);
}
.settings-storage-chip[data-state="loading"]{background:#f4f0e7;color:#75613d}
.settings-storage-chip[data-state="error"]{background:#fff0ed;color:#9b3f35}
.operational-settings-form{display:grid;gap:.85rem}
.operational-setting-card{
  display:grid;
  grid-template-columns:minmax(260px,1fr) minmax(300px,1.25fr);
  gap:1.2rem;
  align-items:center;
  padding:1rem 1.05rem;
  border:1px solid rgba(29,70,66,.12);
  border-radius:18px;
  background:rgba(255,255,255,.88);
}
.operational-setting-copy{display:grid;gap:.25rem}
.operational-setting-copy strong{font-size:1rem;color:var(--ink)}
.operational-setting-copy span{font-size:.9rem;color:#3f6f66;font-weight:750}
.operational-setting-controls{display:grid;grid-template-columns:minmax(160px,1fr) auto;gap:1rem;align-items:center}
.operational-setting-controls input[type="range"]{width:100%;accent-color:#285f57}
.operational-setting-controls label{
  display:flex;
  align-items:center;
  gap:.45rem;
  padding:.35rem .55rem;
  border:1px solid rgba(29,70,66,.16);
  border-radius:12px;
  background:#fff;
  white-space:nowrap;
}
.operational-setting-controls input[type="number"]{
  width:68px;
  min-height:38px;
  padding:.35rem .45rem;
  border:0;
  font-weight:850;
  text-align:center;
  background:transparent;
}
.operational-setting-controls label span{font-size:.78rem;color:var(--muted)}
.settings-service-note{
  grid-column:1/-1;
  margin:.1rem 0 0;
  padding:.65rem .8rem;
  border-radius:12px;
  background:#fff8e8;
  color:#725926;
  font-size:.82rem;
}
.settings-service-note[data-state="ready"]{background:#e9f6ef;color:#285c42}
.operational-settings-actions{display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding-top:.25rem}
.operational-settings-feedback{margin:0 auto 0 0;color:#315f57;font-weight:700;font-size:.88rem}
@media (max-width:800px){
  .operational-settings-head{display:grid}
  .settings-storage-chip{justify-self:start}
  .operational-setting-card{grid-template-columns:1fr}
  .operational-setting-controls{grid-template-columns:1fr}
  .operational-setting-controls label{justify-self:start}
  .operational-settings-actions{align-items:stretch;flex-direction:column}
  .operational-settings-actions .primary{width:100%}
}


/* =========================================================
   V0.25.14 — page dédiée aux réglages et tableau compact
   ========================================================= */
.settings-page-shell{max-width:1450px;margin:0 auto;padding:1.4rem clamp(1rem,3vw,2.4rem) 3rem}
.settings-page-header{display:flex;justify-content:space-between;gap:1.5rem;align-items:flex-start;margin-bottom:1.1rem}
.settings-page-header h1{margin:.1rem 0 .45rem;font-size:clamp(2rem,4vw,3rem)}
.settings-page-header p{margin:0;max-width:820px;color:var(--muted)}
.settings-section-tabs{display:flex;gap:.55rem;flex-wrap:wrap;margin:0 0 1rem;padding:.5rem;border:1px solid #cce1dc;background:#f5fbf9;border-radius:18px}
.settings-section-tab{border:0;border-radius:13px;background:transparent;color:#315f57;font-weight:850;padding:.72rem 1rem;cursor:pointer}
.settings-section-tab.active{background:#285f57;color:#fff;box-shadow:0 7px 18px rgba(31,84,75,.18)}
.settings-section{animation:settingsFade .18s ease}
@keyframes settingsFade{from{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:none}}

.email-template-panel{border:1px solid #cfe2de;border-radius:22px;background:#fff;padding:1.15rem;box-shadow:0 13px 35px rgba(34,82,74,.08)}
.email-template-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.email-template-head h2{margin:.15rem 0 .35rem;font-size:clamp(1.35rem,2vw,1.9rem)}
.email-template-head p{margin:0;max-width:780px;color:var(--muted)}
.email-template-language-status{display:flex;gap:.45rem;flex-wrap:wrap;margin:.25rem 0 1rem}
.template-language-chip{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.42rem .7rem;font-size:.78rem;font-weight:850;border:1px solid #d7e5e2;background:#f7faf9;color:#476c65}
.template-language-chip[data-state="active"]{background:#e8f6ee;border-color:#9dd4b3;color:#246341}
.template-language-chip[data-state="draft"]{background:#fff7df;border-color:#eacb75;color:#805a00}
.email-template-editor{display:grid;gap:1rem}
.email-template-controls{display:grid;grid-template-columns:minmax(230px,1fr) minmax(180px,.7fr) auto;gap:.8rem;align-items:end}
.email-template-controls label,.email-template-editor>label{display:grid;gap:.35rem;font-weight:800;color:#294f49}
.email-template-controls select,.email-template-editor input,.email-template-editor textarea{width:100%;border:1px solid #bdd6d1;border-radius:12px;padding:.72rem .78rem;background:#fff;color:var(--ink);font:inherit}
.email-template-editor textarea{resize:vertical;min-height:270px;line-height:1.5}
.template-status-chip{align-self:end;justify-self:end;border-radius:999px;padding:.56rem .78rem;font-size:.8rem;font-weight:900;border:1px solid #e3c66f;background:#fff7dc;color:#795700}
.template-status-chip[data-state="active"]{background:#e7f6ed;border-color:#99d0ad;color:#1f6540}
.template-token-panel{border:1px dashed #b8d4ce;border-radius:16px;background:#f7fbfa;padding:.9rem}
.template-token-panel p{margin:.25rem 0 .65rem;color:var(--muted);font-size:.88rem}
.template-token-list{display:flex;flex-wrap:wrap;gap:.45rem}
.template-token{border:1px solid #a9cbc4;border-radius:999px;background:#fff;color:#285f57;font-weight:800;padding:.4rem .68rem;cursor:pointer}
.template-token:hover{background:#e8f4f1}
.email-template-preview-card{border:1px solid #d4e2df;border-radius:18px;background:#fbfdfc;padding:1rem}
.preview-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding-bottom:.7rem;border-bottom:1px solid #e4eeec}
.preview-card-head span{font-size:.8rem;font-weight:850;color:#52766f}
.email-preview-subject{font-weight:900;font-size:1.02rem;margin:.85rem 0 .65rem;color:#183f38}
.email-preview-body{white-space:pre-wrap;line-height:1.55;color:#355b54}
.email-preview-body a{color:#246b5e;text-decoration:underline}
.email-template-actions{display:flex;justify-content:flex-end;align-items:center;gap:.65rem;flex-wrap:wrap}
.email-template-actions p{margin:0 auto 0 0;color:#315f57;font-weight:750;font-size:.88rem}
.settings-roadmap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.settings-roadmap-card{border:1px solid #d3e2df;border-radius:20px;background:#fff;padding:1.05rem;box-shadow:0 10px 26px rgba(37,80,73,.06)}
.settings-roadmap-card>span{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#5f7b76}
.settings-roadmap-card h2{font-size:1.2rem;margin:.35rem 0 .45rem}
.settings-roadmap-card p{color:var(--muted);min-height:4.2rem}
.settings-roadmap-card strong{display:inline-flex;border-radius:999px;padding:.42rem .68rem;font-size:.78rem}
.settings-roadmap-card.ready strong{background:#e7f6ed;color:#23613e}
.settings-roadmap-card.planned strong{background:#f2f4f3;color:#536a65}
.settings-roadmap-action{font:inherit;color:inherit;text-align:left;cursor:pointer;width:100%;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.settings-roadmap-action:hover,.settings-roadmap-action:focus-visible{border-color:#79aa9f;box-shadow:0 12px 30px rgba(37,80,73,.13);transform:translateY(-1px)}
.retention-detail-panel{margin-top:1rem;border:1px solid #cfe2de;border-radius:20px;background:#fff;padding:1.15rem;box-shadow:0 10px 26px rgba(37,80,73,.06)}
.retention-detail-panel h2{margin:.15rem 0 .4rem;font-size:1.45rem}.retention-detail-panel>p{color:var(--muted)}
.retention-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0}
.retention-summary-card{border:1px solid #dbe8e5;border-radius:14px;padding:.85rem;background:#f9fcfb}.retention-summary-card strong{display:block;font-size:1.35rem}.retention-summary-card span{font-size:.82rem;color:var(--muted)}
.retention-year-list{display:flex;gap:.5rem;flex-wrap:wrap;margin:.8rem 0}.retention-year-list button{border:1px solid #a9cbc4;background:#fff;border-radius:999px;padding:.45rem .75rem;font-weight:800;cursor:pointer}.retention-year-list button.active{background:#285f57;color:#fff}
.retention-table{width:100%;border-collapse:collapse;margin-top:.75rem}.retention-table th,.retention-table td{text-align:left;padding:.65rem;border-bottom:1px solid #e3ecea}.retention-empty{border:1px dashed #bfd6d1;border-radius:14px;padding:1rem;background:#f8fbfa;color:#466a63}
@media(max-width:760px){.retention-summary-grid{grid-template-columns:1fr}.retention-table{font-size:.85rem}}

.business-dashboard{transition:padding .2s ease}
.business-dashboard.is-collapsed{padding-top:1rem;padding-bottom:1rem}
.compact-dashboard-head{margin-bottom:0}
.business-dashboard-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;justify-content:flex-end}
.demo-data-chip{border-radius:999px;background:#f1f5f4;color:#57706b;padding:.43rem .68rem;font-size:.76rem;font-weight:850}
.business-dashboard-quick{margin:.25rem 0 0;color:var(--muted)}
.business-dashboard-body{margin-top:1rem}
.business-dashboard-period{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}
.business-dashboard-period p{margin:0;max-width:760px;color:var(--muted)}
.business-dashboard-period label{display:grid;gap:.3rem;font-weight:800;color:#315f57}

#view-settings .admin-toolbar{position:sticky;top:0;z-index:30}
@media(max-width:900px){
  .settings-page-header,.email-template-head,.business-dashboard-period{display:grid}
  .email-template-controls{grid-template-columns:1fr}
  .template-status-chip{justify-self:start}
  .settings-roadmap-grid{grid-template-columns:1fr}
  .business-dashboard-actions{justify-content:flex-start}
}
@media(max-width:620px){
  .settings-page-shell{padding-inline:.75rem}
  .settings-section-tabs{display:grid;grid-template-columns:1fr}
  .settings-section-tab{text-align:left}
  .email-template-actions{align-items:stretch;display:grid}
  .email-template-actions p{margin:0 0 .25rem}
  .email-template-actions button{width:100%}
}


/* =========================================================
   V0.25.15 — tableau de bord aligné et formule d’appel
   ========================================================= */
.identity-name-grid{
  display:grid;
  grid-template-columns:minmax(180px,.8fr) minmax(0,1fr) minmax(0,1fr);
  gap:1rem;
  align-items:start;
}
.identity-name-grid label{min-width:0}
.identity-name-grid label small{display:block;margin-top:.35rem;color:var(--muted);font-weight:500;line-height:1.35}
.optional-field{color:var(--muted);font-size:.78rem;font-weight:600}
.salutation-custom-field{grid-column:1 / -1;max-width:420px}
.business-dashboard{max-width:none;width:100%;margin-inline:0}
.business-dashboard.is-collapsed{padding:.78rem 1rem}
.business-dashboard.is-collapsed .business-dashboard-head{align-items:center}
.business-dashboard.is-collapsed .business-dashboard-head h2{font-size:clamp(1.45rem,2.2vw,2rem);line-height:1.05}
.business-dashboard.is-collapsed .eyebrow{margin-bottom:.35rem}
.business-dashboard.is-collapsed .business-dashboard-quick{font-size:.86rem}
.metric-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.72rem}
.metric{padding:.85rem .95rem;min-height:92px;display:flex;flex-direction:column;justify-content:center}
.metric-value{font-size:1.7rem;line-height:1}
.metric-label{margin-top:.35rem;font-size:.88rem;line-height:1.25;font-weight:800}
@media(max-width:1100px) and (min-width:901px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){
  .identity-name-grid{grid-template-columns:1fr}
  .salutation-custom-field{grid-column:auto;max-width:none}
}


/* =========================================================
   V0.25.16 — lieux AmiGO confirmables
   ========================================================= */
.location-confirmation-note {
  grid-column:1 / -1;
  margin:.1rem 0 .25rem;
  padding:.72rem .85rem;
  border:1px solid #e3d4b7;
  border-radius:12px;
  background:#fff8e9;
  color:#6e572f;
  font-size:.82rem;
  line-height:1.45;
}


/* =========================================================
   V0.25.17 — finitions identité et contrôle des e-mails
   ========================================================= */
.identity-name-grid{
  grid-template-columns:minmax(145px,.55fr) minmax(0,1fr) minmax(0,1fr);
}
.identity-name-grid .salutation-field{max-width:190px}
.email-preview-body{white-space:normal;line-height:1.6}
.template-validation-panel{
  border:1px solid #cfe2de;
  border-radius:16px;
  background:#f8fbfa;
  padding:.9rem 1rem;
}
.template-validation-panel>strong{display:block;color:#294f49;margin-bottom:.55rem}
.template-validation-panel ul{display:grid;gap:.42rem;list-style:none;margin:0;padding:0}
.template-validation-panel li{display:flex;align-items:flex-start;gap:.5rem;color:#486c65;font-size:.88rem;line-height:1.4}
.template-validation-panel li span{display:inline-grid;place-items:center;flex:0 0 1.25rem;height:1.25rem;border-radius:999px;font-weight:900}
.template-validation-panel li[data-state="ok"] span{background:#e2f4e9;color:#236640}
.template-validation-panel li[data-state="error"]{color:#8b3d32}
.template-validation-panel li[data-state="error"] span{background:#fae5e1;color:#8b3d32}
@media(max-width:760px){
  .identity-name-grid .salutation-field{max-width:none}
}


/* =========================================================
   V0.25.21 — validation intégrée dans les champs
   ========================================================= */
:root{
  --validation-green:#1fcb63;
}

input.field-valid-inline,
select.field-valid-inline,
textarea.field-valid-inline,
.date-picker-trigger.field-valid-inline{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%231fcb63'/%3E%3Cpath d='M7 12.2l3.1 3.2L17.4 8' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-size:1.1rem 1.1rem;
}

input.field-valid-inline,
textarea.field-valid-inline{
  padding-right:2.8rem;
  background-position:right .9rem center;
}

select.field-valid-inline{
  padding-right:4.1rem;
  background-position:right 2.2rem center;
}

.date-picker-trigger.field-valid-inline{
  padding-right:3rem;
  background-position:right .9rem center;
}

.home-search input.field-valid-inline,
.home-search select.field-valid-inline{
  background-color:#fbfaf7;
}

.field-valid-inline:focus{
  border-color:#78d79e;
  box-shadow:0 0 0 3px rgba(31,203,99,.16);
}

.identity-name-grid .salutation-field select{
  min-width:0;
}

.location-confirmation-note{display:none}


/* =========================================================
   V0.25.21 — civilité compacte et identité alignée
   ========================================================= */
.identity-name-grid{
  grid-template-columns:minmax(150px,170px) minmax(0,1fr) minmax(0,1fr);
  align-items:end;
}
.identity-name-grid .salutation-field{
  max-width:none;
}
@media(max-width:760px){
  .identity-name-grid{
    grid-template-columns:1fr;
    align-items:stretch;
  }
}


/* =========================================================
   V0.25.23 — symétrie des coordonnées et choix ERA
   ========================================================= */
.insurance-grid-two{
  align-items:start;
}
.insurance-grid-two > .insurance-choice{
  align-self:start;
  width:100%;
}
.insurance-grid-two .insurance-choice-no-details{
  grid-template-rows:auto;
}
.insurance-grid-two .insurance-choice-no-details .insurance-card{
  min-height:132px;
}

@media(min-width:761px){
  .form-step[data-step="3"] .nationality-field{
    margin-top:1rem;
  }
  .form-step[data-step="3"] .phone-contact-offset{
    margin-top:1.35rem;
  }
}

@media(max-width:760px){
  .form-step[data-step="3"] .nationality-field,
  .form-step[data-step="3"] .phone-contact-offset{
    margin-top:1rem;
  }
}

.admin-operational-actions{
  display:flex;
  gap:.65rem;
  flex-wrap:wrap;
  margin-top:.9rem;
}
.admin-operational-actions button{
  width:auto;
}


/* =========================================================
   V0.25.23 — horaires symétriques et listes de pays
   ========================================================= */
.schedule-card{
  display:grid;
  grid-template-rows:auto 1fr;
}
.schedule-fields{
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
  gap:1rem;
}
.date-field-block,
.time-field{
  min-width:0;
  display:grid;
  grid-template-rows:auto auto 1fr;
  align-content:start;
  gap:.48rem;
}
.time-slot-control{min-width:0}
.time-slot-control select{
  width:100%;
  min-height:66px;
  margin:0;
  padding:.72rem 3rem .72rem .9rem;
  border-radius:14px;
}
.time-field small{
  min-height:2.1em;
  margin-top:.12rem;
}
.nationality-field select{
  width:100%;
}
#nationalityCountry,#residenceCountry,#phoneCountry{
  border-color:rgba(47,105,83,.28);
  background:linear-gradient(90deg,#f8fbf7 0%,#fffdf8 100%);
  font-weight:650;
}
#nationalityCountry:focus,#residenceCountry:focus,#phoneCountry:focus{
  border-color:#2f6953;
  box-shadow:0 0 0 3px rgba(47,105,83,.13);
}
@media(max-width:720px){
  .schedule-fields{grid-template-columns:1fr}
  .time-field small{min-height:0}
}

/* =========================================================
   V0.25.24 — circuit e-mail partenaire paramétrable
   ========================================================= */
.partner-email-settings-panel{
  margin:1.35rem 0 1.05rem;
  padding:1.45rem;
  border:1px solid rgba(35,91,83,.2);
  border-radius:24px;
  background:linear-gradient(145deg,rgba(255,255,255,.99),rgba(237,248,245,.97));
  box-shadow:0 18px 45px rgba(31,54,51,.09);
}
.partner-email-settings-form{display:grid;gap:1rem}
.partner-email-test-toggle{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:.85rem;
  padding:.9rem 1rem;
  border:1px solid rgba(39,96,87,.18);
  border-radius:16px;
  background:#fff;
  cursor:pointer;
}
.partner-email-test-toggle input{width:20px;height:20px;accent-color:#285f57}
.partner-email-test-toggle span{display:grid;gap:.14rem}
.partner-email-test-toggle strong{color:var(--ink)}
.partner-email-test-toggle small{color:var(--muted);line-height:1.4}
.partner-email-test-toggle b{
  min-width:58px;
  padding:.38rem .58rem;
  border-radius:999px;
  text-align:center;
  font-size:.72rem;
  letter-spacing:.06em;
  background:#fff2cf;
  color:#765617;
  border:1px solid #ead59b;
}
.partner-email-test-toggle b[data-state="live"]{background:#e5f5ec;color:#235c41;border-color:#b8dfc8}
.partner-email-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}
.partner-email-grid-primary{grid-template-columns:minmax(220px,.8fr) minmax(320px,1.4fr)}
.partner-email-field{display:grid;align-content:start;gap:.38rem;min-width:0}
.partner-email-field>span{font-size:.82rem;font-weight:850;color:#315f57}
.partner-email-field>span em{font-style:normal;color:#a1463b}
.partner-email-field input,
.partner-email-field select{
  width:100%;
  min-height:46px;
  padding:.72rem .8rem;
  border:1px solid rgba(33,84,76,.23);
  border-radius:13px;
  background:#fff;
  color:var(--ink);
  font:inherit;
}
.partner-email-field input:focus,
.partner-email-field select:focus{
  outline:3px solid rgba(49,125,111,.14);
  border-color:#317d6f;
}
.partner-email-field input:invalid:not(:placeholder-shown){border-color:#b55347;background:#fff8f6}
.partner-email-field small{color:var(--muted);font-size:.76rem;line-height:1.4}
.partner-email-field-wide{grid-column:1/-1}
.partner-email-route-card{
  display:grid;
  gap:.8rem;
  padding:1rem;
  border:1px solid rgba(29,70,66,.12);
  border-radius:18px;
  background:rgba(255,255,255,.9);
}
.partner-email-route-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.partner-email-route-heading>div{display:grid;gap:.2rem}
.partner-email-route-heading strong{color:var(--ink)}
.partner-email-route-heading span{font-size:.82rem;color:var(--muted);line-height:1.45}
.partner-email-copy-grid{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(145px,.42fr) minmax(220px,1fr) minmax(145px,.42fr);
  gap:.75rem;
  align-items:start;
}
.partner-email-route-preview{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.65rem;
  padding:.75rem;
  border-radius:16px;
  background:#eaf5f1;
  border:1px solid rgba(39,96,87,.14);
}
.partner-email-route-preview>div{display:grid;gap:.18rem;min-width:0;padding:.35rem .45rem}
.partner-email-route-preview strong{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#52746e}
.partner-email-route-preview span{font-size:.82rem;font-weight:760;color:#244e47;overflow-wrap:anywhere}
@media (max-width:1100px){
  .partner-email-copy-grid{grid-template-columns:minmax(0,1fr) 150px}
  .partner-email-route-preview{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:800px){
  .partner-email-settings-panel{padding:1rem}
  .partner-email-grid,
  .partner-email-grid-primary,
  .partner-email-copy-grid,
  .partner-email-route-preview{grid-template-columns:1fr}
  .partner-email-field-wide{grid-column:auto}
  .partner-email-test-toggle{grid-template-columns:auto minmax(0,1fr)}
  .partner-email-test-toggle b{grid-column:2;justify-self:start}
  .partner-email-copy-mode{max-width:none}
}
.partner-email-grid-responses{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:800px){.partner-email-grid-responses{grid-template-columns:1fr}}

/* =========================================================
   V0.26.2 — sécurité du suivi, doublons e-mail et heures locales : drapeaux SVG intégrés et indépendants du navigateur
   ========================================================= */
.flight-airline-option-content,
.flight-airline-selected{
  min-width:0;
  display:flex;
  align-items:center;
  gap:.58rem;
}
.flight-airline-selected{
  flex:1 1 auto;
}
.flight-airline-flag{
  width:1.45rem;
  height:.98rem;
  flex:0 0 auto;
  display:block;
  overflow:hidden;
  border:1px solid rgba(31,54,51,.2);
  border-radius:2px;
  box-shadow:0 1px 2px rgba(31,54,51,.12);
}
.flight-airline-plane,
.flight-airline-region-icon{
  width:1.45rem;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#42685a;
  font-weight:800;
}
.flight-airline-trigger.field-valid-inline{
  padding-right:3.15rem;
  border-color:#78d79e;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%231fcb63'/%3E%3Cpath d='M7 12.2l3.1 3.2L17.4 8' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-size:1.1rem 1.1rem;
  background-position:right 1.75rem center;
}
.flight-airline-trigger.field-valid-inline:focus-visible{
  border-color:#78d79e;
  box-shadow:0 0 0 3px rgba(31,203,99,.16);
}

/* Lot 11B — drapeaux visibles indépendamment des listes natives Windows. */
.tracking-airline-picker{margin-top:0}
.tracking-airline-picker .flight-airline-panel{min-width:100%;}
.country-field-with-flag{position:relative}
.country-field-with-flag select{padding-left:3.05rem!important}
.country-field-flag{
  position:absolute;
  left:.78rem;
  bottom:.77rem;
  z-index:1;
  width:1.45rem;
  height:1rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
}
.country-field-flag-svg{
  display:block;
  width:1.45rem;
  height:.98rem;
  overflow:hidden;
  border:1px solid rgba(31,54,51,.2);
  border-radius:2px;
  box-shadow:0 1px 2px rgba(31,54,51,.12);
}
.country-field-flag-code{
  min-width:1.45rem;
  padding:.12rem .16rem;
  border-radius:4px;
  background:#e1eee5;
  color:#245d45;
  font-size:.58rem;
  font-weight:900;
  letter-spacing:.02em;
  line-height:1;
  text-align:center;
}
.country-field-flag-empty{color:#8ba99a;font-weight:800;font-size:1.05rem;line-height:1}
.country-field-flag.is-empty{opacity:.55}

/* Lot 25.9.14 — le drapeau reste attaché à son sélecteur de pays.
   La grande carte conducteur voisine ne doit pas étirer le label de résidence. */
.form-step[data-step="3"] .nationality-field,
.form-step[data-step="3"] .residence-field{
  align-self:start;
  height:max-content;
}
@media(min-width:761px){
  .form-step[data-step="3"] .residence-field{
    margin-top:1rem;
  }
}

/* Les deux choix ERA conservent la même hauteur, même sans bouton Détails. */
.insurance-grid-two > .insurance-choice{
  grid-template-rows:minmax(132px,1fr) 1.65rem;
}
.insurance-grid-two .insurance-choice-no-details{
  grid-template-rows:minmax(132px,1fr) 1.65rem;
}
.insurance-grid-two .insurance-choice-no-details::after{
  content:"";
  display:block;
  min-height:1.65rem;
}

@media(min-width:761px){
  .form-step[data-step="3"] .nationality-field,
  .form-step[data-step="3"] .email-contact-field{
    margin-top:1rem;
  }
  .form-step[data-step="3"] .phone-contact-offset{
    margin-top:1rem;
  }
}

.commission-alert-summary{
  border-color:#d5ad66;
  background:linear-gradient(135deg,#fff9ec,#fffdf7);
  color:#6b4a12;
}
.commission-alert-summary .alert-summary-icon{
  background:#c78b2a;
  color:#fff;
}

.commission-alert-setting-card.is-disabled{
  opacity:.68;
}
.commission-alert-setting-controls{
  grid-template-columns:auto minmax(160px,1fr) auto;
}
.operational-toggle-line{
  display:flex!important;
  align-items:center;
  gap:.45rem;
  white-space:nowrap;
  color:#24483d;
  font-weight:750;
}
.operational-toggle-line input{
  width:1.1rem!important;
  height:1.1rem;
  margin:0!important;
}
.operational-setting-copy small{
  display:block;
  margin-top:.35rem;
  color:#64736c;
  line-height:1.45;
}

.admin-operational-alert.is-postponed{
  border-color:#a7b5ad;
  background:#f5f8f6;
}
.admin-operational-alert.is-postponed .eyebrow{
  color:#5b7267;
}
.admin-alert-postpone-field{
  display:grid;
  gap:.4rem;
}
.admin-alert-postpone-field.hidden{
  display:none;
}
.admin-alert-postpone-field input{
  width:100%;
  min-height:46px;
  padding:.65rem .75rem;
  border:1px solid #cfd8d2;
  border-radius:10px;
  font:inherit;
}

.admin-commission-follow-up{
  margin:1rem 0;
  padding:1rem 1.05rem;
  border:1px solid #d7ded9;
  border-left:5px solid #82988b;
  border-radius:16px;
  background:#f8faf8;
}
.admin-commission-follow-up.is-due{
  border-color:#deb86f;
  border-left-color:#c78b2a;
  background:#fff9ec;
}
.admin-commission-follow-up h3{
  margin:.18rem 0 .55rem;
}
.admin-commission-follow-up small{
  display:block;
  color:#66736b;
  line-height:1.45;
}
.commission-follow-up-actions{
  align-items:center;
}
.commission-follow-up-actions .text-action{
  padding:.5rem .2rem;
}

@media(max-width:760px){
  .commission-alert-setting-controls{
    grid-template-columns:1fr;
  }
  .operational-toggle-line{
    justify-content:flex-start;
  }
  .commission-follow-up-actions button{
    width:100%;
  }
}

/* Les pictogrammes colorés ne servent plus que de secours si une photo AmiGO ne charge pas. */
.vehicle-photo-fallback,
.form-vehicle-photo > span,
.selected-vehicle-photo > span,
.vehicle-detail-exterior > span,
.vehicle-image-fallback{
  opacity:0;
  visibility:hidden;
}
.home-vehicle-photo.image-missing .vehicle-photo-fallback,
.form-vehicle-photo.image-missing > span,
.selected-vehicle-photo.image-missing > span,
.vehicle-detail-exterior.image-missing > span,
.vehicle-detail-main-image.image-missing .vehicle-image-fallback{
  opacity:.2;
  visibility:visible;
}

/* V0.26.2 — circuit e-mail de test de bout en bout */
.booking-row.has-email-action{
  border-left:4px solid #b7791f;
}
.booking-email-pill{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  margin-top:.35rem;
  padding:.28rem .55rem;
  border-radius:999px;
  background:#fff4d6;
  color:#7a4b00;
  font-size:.78rem;
  font-weight:700;
}
.booking-email-pill.is-error{
  background:#fff0f0;
  color:#9b2c2c;
}
.admin-email-workflow,
.admin-inbound-quote,
.admin-email-waiting{
  margin:1rem 0;
  padding:1rem 1.05rem;
  border:1px solid #d5ded8;
  border-left:5px solid #7f9688;
  border-radius:16px;
  background:#f8faf8;
}
.admin-email-workflow.is-ok,
.admin-inbound-quote{
  border-left-color:#39845b;
  background:#f4fbf6;
}
.admin-email-workflow.is-warning{
  border-left-color:#c48622;
  background:#fff9ec;
}
.admin-email-waiting{
  border-left-color:#718096;
  background:#f7f8fa;
}
.admin-email-workflow-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.65rem;
}
.admin-email-workflow-heading h3{
  margin:.1rem 0;
}
.admin-email-state{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:.32rem .6rem;
  background:#e9f5ed;
  color:#276749;
  font-size:.78rem;
  font-weight:700;
  white-space:nowrap;
}
.admin-email-state.is-warning,
.admin-email-state.is-pending{
  background:#fff0cd;
  color:#7a4b00;
}
.admin-email-error{
  color:#9b2c2c;
  font-weight:650;
}
.admin-email-meta{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.55rem 1rem;
  margin:.7rem 0;
}
.admin-email-meta p{
  margin:0;
  overflow-wrap:anywhere;
}
.admin-quote-checks{
  display:grid;
  gap:.4rem;
  margin:.7rem 0;
  padding:0;
  list-style:none;
}
.admin-quote-checks li{
  padding:.55rem .7rem;
  border-radius:10px;
  background:#eef6f0;
}
.admin-quote-checks li.is-warning{
  background:#fff1dc;
}
.admin-email-original{
  margin-top:.8rem;
}
.admin-email-original summary{
  cursor:pointer;
  font-weight:700;
}
.admin-email-original pre{
  max-height:360px;
  overflow:auto;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  padding:.8rem;
  border:1px solid #d8dfda;
  border-radius:10px;
  background:#fff;
  font:inherit;
  font-size:.88rem;
}
.admin-email-resources,
.admin-email-review-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  align-items:center;
  margin-top:.85rem;
}
.admin-email-resource-link,
.admin-email-review-actions .secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:.55rem .75rem;
  border:1px solid #bdc9c1;
  border-radius:10px;
  background:#fff;
  color:inherit;
  text-decoration:none;
  font-weight:650;
}
.email-review-note{
  margin:.85rem 0 0;
  padding:.65rem .75rem;
  border-radius:10px;
  background:#eef3ef;
}
@media(max-width:760px){
  .admin-email-workflow-heading{
    flex-direction:column;
  }
  .admin-email-meta{
    grid-template-columns:1fr;
  }
  .admin-email-review-actions button,
  .admin-email-resource-link{
    width:100%;
  }
}

/* Alias des composants réellement rendus par l’application principale */
.email-workflow-state{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:.32rem .6rem;
  background:#e9f5ed;
  color:#276749;
  font-size:.78rem;
  font-weight:700;
  white-space:nowrap;
}
.admin-email-workflow.is-warning .email-workflow-state{
  background:#fff0cd;
  color:#7a4b00;
}
.email-workflow-error{
  color:#9b2c2c;
  font-weight:650;
  overflow-wrap:anywhere;
}
.email-check-list{
  display:grid;
  gap:.45rem;
  margin:.7rem 0;
}
.email-check{
  display:flex;
  gap:.6rem;
  align-items:flex-start;
  padding:.55rem .7rem;
  border-radius:10px;
  background:#eef6f0;
}
.email-check > span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  flex:0 0 24px;
  border-radius:999px;
  background:#d8ecde;
  color:#276749;
  font-weight:800;
}
.email-check.is-warning{
  background:#fff1dc;
}
.email-check.is-warning > span{
  background:#ffe2b7;
  color:#8b5200;
}
.email-check small{
  display:block;
  margin-top:.15rem;
  color:#59675e;
}
.email-check-content{min-width:0;flex:1}.automatic-check-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.automatic-check-actions button{appearance:none;border:1px solid #a8b7ad;border-radius:999px;background:#fff;color:#254c38;padding:5px 10px;font:700 12px/1.2 inherit;cursor:pointer}.automatic-check-actions button:hover,.automatic-check-actions button:focus-visible{border-color:#2f855a;background:#f0fff4;outline:2px solid rgba(47,133,90,.18);outline-offset:1px}.automatic-check-actions button:last-child{color:#5b4a22;border-color:#cbbd9b}.automatic-check-actions button:last-child:hover,.automatic-check-actions button:last-child:focus-visible{background:#fffaf0;border-color:#d58a13}
.email-original-preview{
  margin-top:.8rem;
}
.email-original-preview summary{
  cursor:pointer;
  font-weight:700;
}
.email-original-preview pre{
  max-height:360px;
  overflow:auto;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  padding:.8rem;
  border:1px solid #d8dfda;
  border-radius:10px;
  background:#fff;
  font:inherit;
  font-size:.88rem;
}
.email-resource-links{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  align-items:center;
  margin-top:.85rem;
}
.button-link{
  text-decoration:none;
}
.admin-email-waiting{
  display:grid;
  gap:.3rem;
}
@media(max-width:760px){
  .email-resource-links .button-link{
    width:100%;
  }
}

/* =========================================================
   V0.26.2 — accès voyageur : alignements, code à 4 chiffres et mobile
   ========================================================= */
.tracking-access-form,
.tracking-code-form,
.tracking-recovery-form {
  display:grid;
  gap:.85rem;
  align-items:end;
  margin:1.5rem 0;
  padding:1.1rem;
  border:1px solid var(--line);
  border-radius:16px;
  background:#f8faf8;
}
.tracking-access-form {
  grid-template-columns:minmax(190px,.8fr) minmax(260px,1.2fr) auto;
}
.tracking-code-form,
.tracking-recovery-form {
  grid-template-columns:minmax(180px,1fr) auto;
}
.tracking-field {
  display:grid;
  gap:.42rem;
  min-width:0;
  font-weight:800;
  color:var(--green-dark);
}
.tracking-field > span { line-height:1.25; }
.tracking-field input {
  width:100%;
  min-width:0;
  margin:0;
}
.tracking-submit-button {
  min-height:46px;
  white-space:nowrap;
}
.tracking-code-form > p,
.tracking-recovery-form > p {
  grid-column:1 / -1;
  margin:0;
  color:var(--muted);
}
.tracking-code-field { max-width:220px; }
.tracking-code-form input {
  max-width:180px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:1.55rem;
  font-weight:900;
  font-variant-numeric:tabular-nums;
  letter-spacing:.38em;
  text-align:center;
}
.tracking-access-feedback {
  margin:1rem 0;
  padding:.9rem 1rem;
  border:1px solid #b9d7c2;
  border-radius:12px;
  background:#edf8f0;
  color:#245638;
  font-weight:750;
}
.tracking-access-feedback.error {
  border-color:#efb4ad;
  background:#fff1ef;
  color:#8b2e24;
}
.tracking-recovery { margin:1rem 0 1.5rem; }
.text-button {
  padding:.25rem 0;
  border:0;
  background:transparent;
  color:var(--green-dark);
  font:inherit;
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:.2em;
  cursor:pointer;
}
.tracking-submit-button:disabled {
  opacity:.72;
  cursor:wait;
}
.final-review-actions button.is-submitting {
  position:relative;
  cursor:wait;
  opacity:.88;
}
.final-review-actions button.is-submitting::before {
  content:"";
  display:inline-block;
  width:.9em;
  height:.9em;
  margin-right:.55em;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  vertical-align:-.12em;
  animation:tacacori-submit-spin .75s linear infinite;
}
@keyframes tacacori-submit-spin { to { transform:rotate(360deg); } }
@media (max-width:760px){
  .tracking-access-form,
  .tracking-code-form,
  .tracking-recovery-form { grid-template-columns:1fr; }
  .tracking-code-form > p,
  .tracking-recovery-form > p { grid-column:auto; }
  .tracking-code-field,
  .tracking-code-form input { max-width:none; }
  .tracking-submit-button { width:100%; }
}


/* =========================================================
   V0.26.5 — confirmation client, référence RAC et confort mobile
   ========================================================= */
#trackingReference {
  text-transform:uppercase;
  font-variant-numeric:tabular-nums;
}

.schedule-card {
  height:100%;
}
.schedule-card .time-field small {
  min-height:3.25em;
}

.success-email-note[data-state="test"] {
  color:#7a4c12;
}
.success-email-note[data-state="sent"] {
  color:#245638;
}
.success-email-note[data-state="warning"] {
  color:#8b2e24;
}

@media (max-width:720px) {
  .schedule-card .time-field small {
    min-height:0;
  }
}


/* =========================================================
   V0.26.5 — finitions UX : suivi sécurisé et durée réelle
   ========================================================= */
.tracking-access-instruction {
  max-width:760px;
  margin:.45rem 0 0;
  color:var(--muted);
  font-weight:650;
}
.tracking-authenticated-notice {
  display:flex;
  align-items:center;
  gap:.85rem;
  margin:1.25rem 0 1.5rem;
  padding:1rem 1.1rem;
  border:1px solid #b9d7c2;
  border-radius:14px;
  background:#edf8f0;
  color:#245638;
}
.tracking-authenticated-notice strong,
.tracking-authenticated-notice span { display:block; }
.tracking-authenticated-notice strong { margin-bottom:.15rem; }
.tracking-authenticated-icon {
  display:grid;
  place-items:center;
  width:2.4rem;
  height:2.4rem;
  flex:0 0 2.4rem;
  border-radius:50%;
  background:#d8efdf;
  font-size:1.15rem;
}
#selectedDateRangeSummary.is-invalid {
  border-color:#efb4ad;
  background:#fff1ef;
}
#selectedDateRangeSummary.is-invalid #selectedDateRangeDuration {
  color:#8b2e24;
  font-weight:850;
}
.tracking-submit-button:disabled:not([data-cooldown-active="true"]):not([data-request-pending="true"]) {
  opacity:.5;
  cursor:not-allowed;
}


/* =========================================================
   V0.26.5 — choix client persistant et confirmation partenaire
   ========================================================= */
.partner-client-decision{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:14px;
  align-items:start;
  margin:18px 0;
  padding:18px;
  border:1px solid rgba(24,112,72,.28);
  border-radius:18px;
  background:rgba(230,247,237,.78);
}
.partner-client-decision>span{
  display:grid;place-items:center;width:34px;height:34px;border-radius:50%;
  background:#187048;color:#fff;font-weight:900;font-size:1.05rem;
}
.partner-client-decision h3{margin:.2rem 0 .45rem;}
.partner-client-decision p{margin:.25rem 0;}
.partner-client-decision small{display:block;margin-top:.6rem;color:var(--muted);}
.partner-final-confirmation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;align-items:end;margin:16px 0;padding:22px;border:1px solid rgba(27,104,83,.24);border-radius:18px;background:linear-gradient(135deg,rgba(232,247,241,.9),rgba(255,255,255,.92))}.partner-final-confirmation>div{grid-column:1/-1;max-width:760px}.partner-final-confirmation>div h3{margin:.35rem 0}.partner-final-confirmation>div p:last-child{margin-bottom:0}.partner-final-confirmation label{display:grid;gap:7px;min-width:0;font-weight:700}.partner-final-confirmation label input{width:100%}.partner-final-confirmation button{grid-column:1/-1;justify-self:start;width:max-content;max-width:100%;padding-inline:24px;white-space:nowrap}.partner-final-confirmation small{grid-column:1/-1;color:var(--muted)}.partner-final-confirmation :disabled{cursor:not-allowed;opacity:.58}
@media(max-width:700px){.partner-final-confirmation{grid-template-columns:1fr;padding:18px}.partner-final-confirmation>div,.partner-final-confirmation button,.partner-final-confirmation small{grid-column:1}.partner-final-confirmation button{width:100%;white-space:normal}}


/* =========================================================
   V0.26.6 — finitions partenaire : historique ES, conditions détaillées et actions verrouillées
   ========================================================= */
.partner-proposal-panel.is-readonly #partnerSaveProposal.hidden { display: none !important; }
.partner-proposal-panel.is-readonly .partner-readonly-message { border-left: 3px solid rgba(38,92,73,.35); }

.partner-extra-pricing{grid-column:1/-1;margin:1.15rem 0;padding:1.2rem;border:1px solid rgba(174,132,36,.28);border-radius:20px;background:linear-gradient(145deg,#fffdf5,#fbf4dc)}
.partner-extra-pricing-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.partner-extra-pricing-heading h4{margin:.15rem 0 0;font-size:1.18rem;color:#173f34}
.partner-extra-pricing-heading small{max-width:410px;color:#665d46;line-height:1.45}
.partner-extra-list{display:grid;gap:.65rem}
.partner-extra-row{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.72fr) minmax(0,.8fr) minmax(0,.72fr) minmax(0,.68fr);align-items:center;gap:.4rem;padding:.56rem .6rem;border:1px solid rgba(24,67,55,.12);border-radius:12px;background:rgba(255,255,255,.78);min-width:0}
.partner-extra-row.is-requested{border-color:#d4aa45;box-shadow:0 0 0 2px rgba(240,197,89,.16)}
.partner-extra-row:not(.is-enabled) :is(select,.partner-extra-price){opacity:.48}
.partner-extra-choice{display:flex;align-items:center;gap:.48rem;min-width:0;font-weight:760;color:#173f34;font-size:.91rem;line-height:1.2}
.partner-extra-choice input[type="checkbox"]{width:1.15rem;height:1.15rem;accent-color:#235a49;flex:0 0 auto}
.partner-extra-choice input[type="text"]{min-width:0;width:100%}
.partner-extra-requested{justify-self:start;padding:.2rem .38rem;border:1px solid #e3d4a8;border-radius:8px;background:#faf7ed;color:#695a33;font-size:.61rem;font-weight:760;line-height:1.12}
.partner-extra-row :is(select,input){box-sizing:border-box;min-width:0;max-width:100%;width:100%}.partner-extra-row select{padding-inline:.55rem}
.partner-extra-price{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.28rem;margin:0;font-size:.68rem;font-weight:800;color:#665d46;min-width:0}
.partner-extra-price input{min-width:0}
.partner-extra-note{margin:.85rem 0 0;color:#665d46;font-size:.82rem;line-height:1.45}
#partnerCustomExtraRows,#partnerCustomChargeRows{display:contents}.partner-add-line{margin-top:.75rem}.partner-charge-list{display:grid;gap:.52rem}.partner-charge-row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.88fr) minmax(0,.62fr) minmax(0,.68fr);align-items:center;gap:.42rem;padding:.56rem .6rem;border:1px solid rgba(24,67,55,.12);border-radius:12px;background:rgba(255,255,255,.78);min-width:0}.partner-charge-row>label{display:flex;align-items:center;gap:.4rem;margin:0;min-width:0}.partner-charge-row>label:first-child{font-weight:760;font-size:.9rem}.partner-charge-row>label span{white-space:nowrap;font-size:.68rem}.partner-charge-row :is(select,input){box-sizing:border-box;min-width:0;max-width:100%;width:100%}.partner-charge-row select{padding-inline:.55rem}.partner-charge-row:not(.is-enabled) :is(select,input:not([data-charge-enabled])){opacity:.48}.partner-charge-row-custom>label:first-child input[type=text]{width:100%}
.tracking-info-popover{position:relative;margin-top:.65rem}.tracking-info-popover summary{width:max-content;max-width:100%;cursor:pointer;color:#27594e;font-weight:800}.tracking-info-popover[open]{padding-bottom:.2rem}.tracking-info-popover p{margin:.55rem 0 0;padding:.7rem .8rem;border:1px solid #d7e4dc;border-radius:11px;background:#fff;color:#30483f;line-height:1.5}.tracking-info-popover p+p{margin-top:.35rem}
.proposal-extra-list{display:grid;gap:.45rem;margin:.8rem 0;padding:0;list-style:none}
.proposal-extra-list li{display:flex;justify-content:space-between;gap:1rem;padding:.58rem .7rem;border-radius:10px;background:#fbf3d8;color:#27463c}
.proposal-extra-list li strong{white-space:nowrap}
.admin-optional-extras{margin:1rem 0;padding:1rem;border:2px solid #ddb84b;border-radius:16px;background:linear-gradient(135deg,#fff9dc,#ffefad)}
.admin-optional-extras-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.admin-optional-extras-heading .eyebrow{margin:0 0 .2rem;color:#72530b}
.admin-optional-extras-heading>span{padding:.35rem .65rem;border-radius:999px;background:#fff;color:#624500;font-weight:850}
.admin-optional-extras ul{display:grid;gap:.5rem;margin:.8rem 0;padding:0;list-style:none}
.admin-optional-extras li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem .8rem;border-radius:11px;background:#fff}
.admin-optional-extras li div{display:grid;gap:.15rem}.admin-optional-extras li small{color:#6e756f}.admin-optional-extras li b{color:#225448;text-align:right}.admin-optional-extras .muted{margin:.7rem 0 0}
@media(max-width:620px){.admin-optional-extras-heading,.admin-optional-extras li{align-items:flex-start;flex-direction:column}.admin-optional-extras li b{text-align:left}}
@media(max-width:1050px){.partner-extra-row{grid-template-columns:1fr 1fr}.partner-extra-requested{justify-self:end}.partner-extra-price{grid-column:2}.partner-charge-row{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.partner-extra-pricing-heading{display:block}.partner-extra-pricing-heading small{display:block;margin-top:.55rem}.partner-extra-row,.partner-charge-row{grid-template-columns:1fr}.partner-extra-requested,.partner-extra-price{grid-column:auto;justify-self:stretch}.partner-extra-requested{width:max-content}.proposal-extra-list li{display:block}.proposal-extra-list li strong{display:block;margin-top:.25rem}}

/* V0.26.7 — polissage linguistique espagnol sans changement de mise en page. */

/* V0.27.0 — export partenaire enrichi et libellés de vol, sans changement de mise en page. */


/* =========================================================
   V0.27.0 — contenus administrables et présentation encadrée
   ========================================================= */
.site-content-settings-panel{display:grid;gap:1.2rem}
.site-content-language-status{display:flex;flex-wrap:wrap;gap:.55rem}
.site-content-language-status button{cursor:pointer;border:0}
.site-content-editor{display:grid;gap:1.25rem}
.site-content-controls,.site-content-style-grid,.site-content-source-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.site-content-controls{grid-template-columns:minmax(220px,1fr) minmax(180px,.7fr) auto;align-items:end}
.site-content-controls label,.site-content-style-grid label,.site-content-main-fields label,.site-content-source-grid label,.site-content-item-card label{display:grid;gap:.45rem;font-weight:750;color:var(--ink)}
.site-content-controls input,.site-content-controls select,.site-content-style-grid select,.site-content-main-fields input,.site-content-main-fields textarea,.site-content-source-grid input,.site-content-source-grid textarea,.site-content-item-card input,.site-content-item-card textarea{width:100%}
.site-content-style-fieldset,.site-content-source-fieldset{border:1px solid var(--line);border-radius:18px;padding:1rem 1.1rem 1.15rem;background:#fff}
.site-content-style-fieldset legend,.site-content-source-fieldset legend{padding:0 .45rem;font-weight:850}
.site-content-main-fields{display:grid;grid-template-columns:minmax(180px,.35fr) minmax(280px,.65fr);gap:1rem}
.site-content-main-fields label:last-child{grid-column:1/-1}
.site-content-items-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.site-content-items-head div{display:grid;gap:.2rem}.site-content-items-head span{color:var(--muted)}
.site-content-item-list{display:grid;gap:1rem}
.site-content-item-card{border:1px solid var(--line);border-radius:18px;padding:1rem;background:#fff;display:grid;gap:.85rem}
.site-content-item-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.site-content-item-toolbar>div{display:flex;gap:.35rem}
.icon-action{min-width:2.25rem;min-height:2.25rem;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:900;cursor:pointer}.icon-action.danger{color:#8b2e24}
.site-content-source-grid .wide{grid-column:span 2}
.site-content-preview-shell{border:1px solid var(--line);border-radius:20px;background:#f7f8f5;padding:1rem;overflow:hidden}
.site-content-preview{margin:0;padding:1rem;background:#fff;border-radius:16px}
.site-content-preview .home-section-heading{margin-bottom:1rem}.site-content-preview .guide-grid{grid-template-columns:1fr}.site-content-preview details{padding:.85rem 1rem}.site-content-preview details p{margin:.65rem 0 0}
.site-content-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;flex-wrap:wrap}.site-content-actions p{margin-right:auto;color:var(--muted);font-weight:700}
.template-status-chip[data-state="review"],.template-language-chip[data-state="review"]{background:#fff4d8;color:#76520a;border-color:#e7cb7a}
.home-guide[data-content-font="system"]{font-family:Arial,Helvetica,sans-serif}.home-guide[data-content-font="serif"]{font-family:Georgia,"Times New Roman",serif}
.home-guide[data-content-size="compact"] .guide-grid{font-size:.92rem}.home-guide[data-content-size="large"] .guide-grid{font-size:1.08rem}.home-guide[data-content-size="large"] h2{font-size:clamp(2rem,4vw,3.3rem)}
.home-guide[data-content-accent="blue"]{--content-accent:#28618b}.home-guide[data-content-accent="terracotta"]{--content-accent:#a65034}.home-guide[data-content-accent="neutral"]{--content-accent:#535a5a}.home-guide[data-content-accent="green"],.home-guide:not([data-content-accent]){--content-accent:var(--green)}
.home-guide[data-content-accent] .eyebrow,.home-guide[data-content-accent] summary{color:var(--content-accent)}
.home-guide[data-content-card="classic"] details{background:#fff}.home-guide[data-content-card="outline"] details{background:transparent;border:1px solid color-mix(in srgb,var(--content-accent) 36%,#d8ddd8)}.home-guide[data-content-card="soft"] details{background:color-mix(in srgb,var(--content-accent) 5%,#fff)}
@media(max-width:900px){.site-content-style-grid,.site-content-source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-content-controls{grid-template-columns:1fr 1fr}.site-content-controls .template-status-chip{grid-column:1/-1;justify-self:start}}
@media(max-width:640px){.site-content-style-grid,.site-content-source-grid,.site-content-main-fields,.site-content-controls{grid-template-columns:1fr}.site-content-source-grid .wide,.site-content-main-fields label:last-child{grid-column:auto}.site-content-items-head,.site-content-actions{align-items:stretch;flex-direction:column}.site-content-actions p{margin-right:0}.site-content-actions button{width:100%}.site-content-item-toolbar{align-items:flex-start}}

.site-content-format-toolbar{display:flex;flex-wrap:wrap;gap:.4rem;margin:.05rem 0 .1rem}
.site-content-format-toolbar button{border:1px solid var(--line);border-radius:9px;background:#f8faf7;padding:.38rem .62rem;cursor:pointer;color:var(--ink)}
.site-content-format-help{color:var(--muted);font-weight:500}
.guide-rich-text{margin-top:.65rem;color:var(--muted);line-height:1.65}
.guide-rich-text p{margin:.4rem 0}.guide-rich-text ul{margin:.45rem 0 .2rem;padding-left:1.35rem}.guide-rich-text a{color:var(--content-accent,var(--green));font-weight:750}


/* =========================================================
   V0.27.1 — informations légales et consentement
   ========================================================= */
.legal-content-settings-panel{display:grid;gap:1.2rem}
.legal-editor-layout{display:grid;grid-template-columns:minmax(190px,.24fr) minmax(0,.76fr);gap:1.2rem;align-items:start}
.legal-document-nav{display:grid;gap:.55rem;position:sticky;top:1rem}
.legal-document-nav button,.legal-public-nav button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:14px;padding:.85rem 1rem;text-align:left;font-weight:800;cursor:pointer}
.legal-document-nav button.active,.legal-public-nav button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.legal-editor-main{min-width:0;display:grid;gap:1rem}
.legal-official-language-note{display:flex;justify-content:space-between;gap:1rem;border:1px solid #c9dbc8;background:#f0f7ef;border-radius:16px;padding:.9rem 1rem;color:#244b35}.legal-official-language-note span{color:var(--muted)}
.legal-content-controls,.legal-meta-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.7fr) auto;gap:1rem;align-items:end}
.legal-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.legal-content-controls label,.legal-meta-grid label,.legal-footer-note-field{display:grid;gap:.45rem;font-weight:750;color:var(--ink)}
.legal-content-controls input,.legal-content-controls select,.legal-meta-grid input,.legal-footer-note-field textarea{width:100%}
.legal-cookie-settings{border:1px solid var(--line);border-radius:18px;padding:1rem 1.1rem 1.15rem;background:#fff}.legal-cookie-settings legend{padding:0 .45rem;font-weight:850}
.cookie-category-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem}.cookie-category-admin-grid label{display:flex;align-items:flex-start;gap:.7rem;border:1px solid var(--line);border-radius:14px;padding:.85rem;background:#fafbf8}.cookie-category-admin-grid span{display:grid;gap:.15rem}.cookie-category-admin-grid small{color:var(--muted)}
.legal-document-preview,.legal-dialog-content{display:grid;gap:1rem}.legal-document-preview h2,.legal-dialog-content h2{font-family:var(--display);font-size:clamp(1.8rem,4vw,3.2rem);line-height:1.05;margin:0}.legal-document-preview h3,.legal-dialog-content h3{font-size:1.08rem;margin:0 0 .45rem}.legal-document-preview section,.legal-dialog-content section{border-top:1px solid var(--line);padding-top:1rem}.legal-document-intro{font-size:1.05rem;color:var(--muted);max-width:72ch}.legal-document-meta{font-weight:750;color:var(--muted);font-size:.9rem}.legal-translation-note{border-left:4px solid #d4a84c;padding:.75rem 1rem;background:#fff8e8;border-radius:0 12px 12px 0;font-weight:700}
.legal-dialog{width:min(900px,calc(100vw - 2rem));max-height:90vh;padding:1.2rem;border:0;border-radius:24px}.legal-public-nav{display:flex;flex-wrap:wrap;gap:.55rem;padding:0 2.7rem 1rem 0;border-bottom:1px solid var(--line);margin-bottom:1rem}.legal-public-nav button{text-align:center;padding:.65rem .85rem}.legal-dialog-content{overflow:auto;max-height:72vh;padding-right:.35rem}
.cookie-consent-banner{position:fixed;z-index:1000;left:50%;bottom:1rem;transform:translateX(-50%);width:min(1080px,calc(100vw - 2rem));background:rgba(255,254,250,.97);border:1px solid rgba(36,102,77,.18);border-left:4px solid var(--gold);box-shadow:0 18px 52px rgba(16,34,27,.17);border-radius:24px;padding:.9rem 1rem .9rem 1.15rem;display:grid;grid-template-columns:minmax(0,1fr) minmax(430px,auto);align-items:center;gap:1.25rem;backdrop-filter:blur(18px)}.cookie-consent-copy{min-width:0;max-width:650px}.cookie-consent-banner .eyebrow{margin:0 0 .16rem;color:var(--gold);font-size:.66rem;letter-spacing:.14em}.cookie-consent-banner h2{margin:0 0 .28rem;font-family:var(--font-display);font-size:clamp(1.3rem,2vw,1.62rem);font-weight:600;line-height:1.08;color:var(--ink)}.cookie-consent-banner #cookieConsentText{margin:0;color:var(--muted);font-size:.9rem;line-height:1.42}.cookie-consent-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;width:min(500px,47vw)}.cookie-consent-actions button{min-height:46px;padding:.68rem .75rem;border:1px solid rgba(36,102,77,.2);border-radius:999px;box-shadow:none;font-size:.8rem;font-weight:750;line-height:1.15;white-space:normal;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.cookie-consent-actions button:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(16,61,49,.11)}.cookie-consent-actions button:focus-visible{outline:3px solid rgba(201,146,62,.34);outline-offset:2px}.cookie-consent-actions #rejectOptionalCookies{background:rgba(255,254,250,.9);color:var(--green-dark)}.cookie-consent-actions #customizeCookies{background:#f4efe4;color:var(--ink);border-color:rgba(201,146,62,.28)}.cookie-consent-actions #acceptOptionalCookies{background:var(--green-dark);color:#fff;border-color:var(--green-dark)}
.cookie-preferences-dialog{width:min(680px,calc(100vw - 2rem));border:0;border-radius:24px;padding:1.25rem}.cookie-preferences-content{display:grid;gap:1rem}.cookie-preferences-content h2{font-family:var(--display);font-size:2rem;margin:0}.cookie-preference-list{display:grid;gap:.7rem}.cookie-preference-list label{display:flex;align-items:flex-start;gap:.8rem;border:1px solid var(--line);border-radius:16px;padding:.9rem}.cookie-preference-list span{display:grid;gap:.2rem}.cookie-preference-list small{color:var(--muted)}.cookie-preferences-actions{display:flex;justify-content:flex-end;gap:.65rem;flex-wrap:wrap}
@media(max-width:900px){.legal-editor-layout{grid-template-columns:1fr}.legal-document-nav{position:static;display:flex;overflow-x:auto}.legal-document-nav button{white-space:nowrap}.cookie-consent-banner{grid-template-columns:1fr;align-items:stretch;gap:.75rem}.cookie-consent-copy{max-width:none}.cookie-consent-actions{width:100%}}
@media(max-width:640px){.legal-content-controls,.legal-meta-grid,.cookie-category-admin-grid{grid-template-columns:1fr}.legal-official-language-note{flex-direction:column}.legal-public-nav{display:grid;grid-template-columns:1fr 1fr}.cookie-consent-actions,.cookie-preferences-actions{display:grid;grid-template-columns:1fr}.cookie-consent-actions button,.cookie-preferences-actions button{width:100%}}


/* =========================================================
   V0.27.2 — accès privés temporaires cloisonnés
   ========================================================= */
.private-access-note {
  line-height: 1.55;
}


/* =========================================================
   V0.27.3 — conducteur, validation souple et stabilité mobile
   ========================================================= */
.driver-requirements{
  margin:0;
  padding:1rem;
  border:1px solid var(--line,#d9ded8);
  border-radius:16px;
  background:rgba(255,255,255,.55);
}
.driver-requirements legend{
  padding:0 .45rem;
  font-weight:800;
  color:var(--green,#164f3d);
}
.form-subsection-note{
  margin:.35rem 0 .85rem;
  color:var(--muted,#68716b);
  font-size:.9rem;
  line-height:1.45;
}
.driver-requirements-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.driver-age-input{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:.6rem;
}
.driver-age-input span{
  color:var(--muted,#68716b);
  font-weight:700;
}
.driver-eligibility-notice{
  display:flex;
  flex-direction:column;
  gap:.3rem;
  margin-top:1rem;
  padding:.85rem 1rem;
  border:1px solid #d7b36f;
  border-left:5px solid #a66a12;
  border-radius:12px;
  background:#fff8e8;
  color:#714708;
}
.driver-eligibility-notice.hidden{display:none;}
.driver-eligibility-notice.is-blocking{
  border-color:#d48c84;
  border-left-color:#a9362b;
  background:#fff1ef;
  color:#7b211a;
}
.driver-review-badge.is-blocking{
  border-color:#d48c84;
  background:#fff1ef;
  color:#8c271e;
}
@media(max-width:760px){
  .driver-requirements-grid{grid-template-columns:1fr;}
  #bookingShell,#bookingForm,.form-step.active{overflow-anchor:none;}
  .form-step{scroll-margin-top:calc(var(--mobile-header-height,92px) + 18px);}
}


/* V0.27.4 — communications clients et alertes conducteur */
.driver-requirements-grid > label{
  display:grid;
  grid-template-rows:minmax(2.9rem,auto) auto;
  align-content:start;
}
.driver-review-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  padding:.25rem .55rem;
  border:1px solid #d7a94d;
  border-radius:999px;
  background:#fff5da;
  color:#714708;
  font-size:.72rem;
  font-weight:850;
  line-height:1.2;
}
.partner-driver-review-badge{font-size:.68rem;}
.booking-detail-status-line,
.partner-driver-review-line{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.45rem;
}
.partner-driver-review-line:empty{display:none;}
.partner-driver-review-line{margin:.75rem 0 0;}
.email-template-category-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.75rem;
  margin:1rem 0;
}
.email-category-card{
  display:grid;
  gap:.25rem;
  padding:.9rem 1rem;
  border:1px solid #dbe3dc;
  border-radius:14px;
  background:#fff;
  color:#31483a;
  text-align:left;
  cursor:pointer;
}
.email-category-card strong{color:#173d2a;}
.email-category-card span{color:#687a6e;font-size:.78rem;}
.email-category-card.active{border-color:#6d9b78;background:#edf7f0;box-shadow:inset 0 0 0 1px #6d9b78;}
.template-category-chip{
  width:max-content;
  padding:.3rem .6rem;
  border-radius:999px;
  background:#eef3f8;
  color:#365a77;
  font-size:.72rem;
  font-weight:800;
}
.email-template-current-heading{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  gap:.5rem 1rem;
  padding:.7rem 0 .15rem;
}
.email-template-current-heading strong{font-size:1.05rem;color:#173d2a;}
.email-template-current-heading span{font-size:.8rem;color:#6d7c72;}
.email-template-language-status{display:flex;flex-wrap:wrap;gap:.45rem;margin:.4rem 0 1rem;}
.email-template-language-status .template-language-chip{cursor:pointer;}
.email-template-language-status .template-language-chip.active{box-shadow:inset 0 0 0 2px currentColor;}
.email-template-schedule-card{
  display:flex;
  flex-wrap:wrap;
  align-items:end;
  justify-content:space-between;
  gap:.75rem 1rem;
  padding:1rem;
  border:1px solid #dfe6e0;
  border-radius:14px;
  background:#f8faf8;
}
.email-template-schedule-card > div:first-child{display:grid;gap:.2rem;}
.email-template-schedule-card > div:first-child span,
.email-template-schedule-card > small{color:#65756b;font-size:.8rem;}
.email-template-delay-controls{display:flex;gap:.6rem;align-items:end;}
.email-template-delay-controls label{display:grid;gap:.25rem;font-size:.78rem;font-weight:750;}
.email-template-delay-controls input{width:6rem;}
.email-template-test-card{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;
  gap:.75rem 1rem;
  align-items:end;
  padding:1rem;
  border:1px dashed #b8c6ba;
  border-radius:14px;
  background:#fbfcfb;
}
.email-template-test-card > div{display:grid;gap:.2rem;}
.email-template-test-card > div span{color:#65756b;font-size:.8rem;}
.email-template-test-card p{grid-column:1/-1;margin:0;min-height:1.2em;color:#45604d;font-size:.82rem;}
@media(max-width:900px){
  .email-template-category-summary{grid-template-columns:1fr;}
  .email-template-test-card{grid-template-columns:1fr;align-items:stretch;}
}
@media(max-width:760px){
  .driver-requirements-grid > label{grid-template-rows:auto;}
  .email-template-delay-controls{width:100%;}
  .email-template-delay-controls label{flex:1;}
  .email-template-delay-controls input,.email-template-delay-controls select{width:100%;}
}


/* =========================================================
   V0.27.4.1 — consolidation visuelle et chargement D1
   ========================================================= */
.driver-requirements-grid > label{
  display:flex;
  flex-direction:column;
  align-content:initial;
}
.driver-field-label{
  display:block;
  min-height:3.05rem;
}
.dashboard-loading-panel{
  display:flex;
  align-items:center;
  gap:.85rem;
  min-height:92px;
  color:#3f5146;
}
.dashboard-loading-panel > div{
  display:grid;
  gap:.2rem;
}
.dashboard-loading-panel small{
  color:var(--muted);
}
.dashboard-loading-panel.is-error{
  color:#7a302a;
  background:#fff8f6;
  border-color:#efc8c3;
}
.dashboard-loading-spinner{
  width:1.15rem;
  height:1.15rem;
  flex:0 0 auto;
  border:2px solid #cbd5ce;
  border-top-color:var(--green);
  border-radius:50%;
  animation:tacacori-dashboard-spin .75s linear infinite;
}
@keyframes tacacori-dashboard-spin{to{transform:rotate(360deg)}}
@media(min-width:721px){
  .form-step[data-step="1"] .schedule-card{
    grid-template-rows:minmax(2.7rem,auto) 1fr;
  }
  .form-step[data-step="1"] .schedule-title{
    min-height:2.7rem;
    align-items:flex-start;
  }
  .form-step[data-step="1"] .schedule-card .time-field small{
    min-height:4.35em;
  }
}
@media(max-width:760px){
  .driver-field-label{min-height:0;}
}


/* =========================================================
   V0.27.6 — responsive du back-office et fiche dossier compacte
   ========================================================= */

/* Étape Dates : les deux cartes gardent exactement les mêmes repères visuels. */
@media (min-width:721px){
  .form-step[data-step="1"] .schedule-card{
    grid-template-rows:minmax(3rem,auto) 1fr;
  }
  .form-step[data-step="1"] .schedule-title{
    min-height:3rem;
    margin-bottom:.65rem;
  }
  .form-step[data-step="1"] .schedule-fields{
    height:100%;
  }
  .form-step[data-step="1"] .date-picker-trigger{
    min-height:5.9rem;
    height:100%;
  }
  .form-step[data-step="1"] .time-field small{
    min-height:4.55em;
  }
}

/* Tableau de bord : cinq indicateurs lisibles sans effet « gratte-ciel ». */
@media (max-width:1100px){
  #view-nadine .metric-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media (max-width:700px){
  #view-nadine .metric-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.65rem;
  }
  #view-nadine .metric{
    min-height:104px;
    padding:.85rem;
  }
  #view-nadine .metric-value{
    font-size:1.65rem;
  }
  #view-nadine .metric-label{
    font-size:.82rem;
    line-height:1.28;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:auto;
  }
  #view-nadine .metric-grid > .metric:last-child:nth-child(odd){
    grid-column:1 / -1;
    min-height:86px;
  }
}

/* Barre privée : confortable sur tablette, compacte en dépannage sur téléphone. */
@media (max-width:900px){
  #view-nadine .admin-toolbar{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    align-items:stretch;
  }
  #view-nadine .admin-toolbar > div,
  #view-nadine .private-toolbar-actions{
    width:100%;
  }
  #view-nadine .private-toolbar-actions{
    justify-content:flex-start;
  }
}
@media (max-width:620px){
  #view-nadine .admin-toolbar{
    gap:.75rem;
    padding:.85rem;
  }
  #view-nadine .admin-toolbar > div:first-child{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.4rem;
  }
  #view-nadine .admin-toolbar > div:first-child .admin-badge{
    grid-column:1 / -1;
  }
  #view-nadine .admin-toolbar > div:first-child .admin-tab{
    width:100%;
    text-align:left;
  }
  #view-nadine .private-toolbar-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.45rem;
  }
  #view-nadine .private-toolbar-actions .private-data-status{
    grid-column:1 / -1;
  }
  #view-nadine .private-toolbar-actions button{
    width:100%;
  }
}

/* Fiche dossier : résumé et devis côte à côte, échanges et historique en dessous. */
#bookingDialog{
  width:min(1120px,calc(100% - 2rem));
  max-height:calc(100dvh - 2rem);
  overflow:auto;
}
#bookingDialog #dialogContent{
  padding:clamp(1.25rem,3vw,2rem);
}
.admin-booking-dialog-head{
  padding-right:3rem;
  margin-bottom:.9rem;
}
.admin-booking-dialog-head h2{
  margin:.15rem 0 .45rem;
}
.admin-booking-overview{
  display:grid;
  grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);
  gap:1rem;
  align-items:start;
  margin:1rem 0;
}
.admin-booking-column,
.admin-booking-wide-section,
.admin-booking-history{
  min-width:0;
  border:1px solid #dbe3dd;
  border-radius:18px;
  background:#fff;
  padding:1rem;
}
.admin-booking-commercial-card{
  background:linear-gradient(180deg,#fbfdfb 0%,#f6faf7 100%);
}
.admin-booking-section-heading{
  margin-bottom:.8rem;
}
.admin-booking-section-heading .eyebrow{
  margin:0 0 .22rem;
}
.admin-booking-section-heading h3{
  margin:0;
  color:var(--green-dark);
}
.admin-booking-detail-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin:0;
  padding:.9rem;
}
.admin-booking-detail-grid > div{
  min-width:0;
  overflow-wrap:anywhere;
}
.admin-booking-summary-card .admin-client-comment{
  margin:1rem 0 0;
}
.admin-booking-commercial-card > .proposal-card,
.admin-booking-commercial-card > .admin-commission-follow-up{
  margin:.8rem 0 0;
}
.admin-booking-commercial-card > .proposal-card:first-of-type{
  margin-top:0;
}
.admin-booking-commercial-card .quote-variant-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.7rem;
}
.admin-booking-commercial-card .quote-variant{
  padding:.85rem;
}
.admin-booking-commercial-card .price-big{
  font-size:1.65rem;
}
.admin-quote-placeholder{
  display:grid;
  gap:.35rem;
  padding:1rem;
  border:1px dashed #b9c9bf;
  border-radius:15px;
  background:#f8faf8;
  color:#3f5146;
}
.admin-quote-placeholder p{
  margin:0;
  color:var(--muted);
  line-height:1.5;
}
.admin-booking-wide-section,
.admin-booking-history{
  margin-top:1rem;
}
.admin-booking-wide-section .admin-email-workflow,
.admin-booking-wide-section .admin-inbound-quote,
.admin-booking-wide-section .admin-email-waiting{
  margin:.75rem 0 0;
}
.admin-booking-history .timeline{
  margin:.35rem 0 0;
}

@media (max-width:860px){
  #bookingDialog{
    width:min(760px,calc(100% - 1rem));
    max-height:calc(100dvh - 1rem);
  }
  .admin-booking-overview{
    grid-template-columns:1fr;
  }
}
@media (max-width:620px){
  #bookingDialog #dialogContent{
    padding:1rem;
  }
  .admin-booking-dialog-head{
    padding-right:2.5rem;
  }
  .admin-booking-column,
  .admin-booking-wide-section,
  .admin-booking-history{
    padding:.82rem;
    border-radius:15px;
  }
  .admin-booking-detail-grid,
  .admin-booking-commercial-card .quote-variant-grid,
  .admin-email-meta{
    grid-template-columns:1fr;
  }
}

/* Optimisation d’affichage sans modifier la navigation validée. */
.vehicle-photo img,
.form-vehicle-photo img,
.selected-vehicle-photo img,
.vehicle-detail-exterior img,
.vehicle-detail-main-image img{
  content-visibility:auto;
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}


/* V0.27.6 — dossier actif, contrôle des devis et mesure d’usage */
.active-booking-lock-dialog{max-width:620px;width:min(92vw,620px);border:0;border-radius:24px;padding:0;box-shadow:0 24px 80px rgba(0,0,0,.24)}
.active-booking-lock-dialog::backdrop{background:rgba(12,28,20,.62);backdrop-filter:blur(3px)}
.active-booking-lock-content{position:relative;padding:30px;background:#fff}
.active-booking-lock-content h2{margin:.25rem 0 .75rem}
.active-booking-lock-actions{display:grid;gap:10px;margin-top:22px}
.active-booking-lock-actions .ghost{background:transparent;border:0;text-decoration:underline;color:var(--green-dark,#174d36);padding:10px}
.dialog-close{position:absolute;right:14px;top:12px;border:0;background:transparent;font-size:28px;line-height:1;cursor:pointer}
.booking-context-locked{outline:2px solid rgba(23,77,54,.12);outline-offset:4px}
.inbound-quote-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
@media(max-width:780px){.active-booking-lock-content{padding:24px 20px}}

/* V0.27.6 — simplification du verrou de dossier actif */
.active-booking-lock-secondary{display:grid;justify-items:center;gap:2px;margin-top:4px;padding-top:10px;border-top:1px solid #e3ebe6;text-align:center}
.active-booking-lock-secondary span{font-size:.9rem;color:#5b6e64}
.active-booking-lock-secondary .ghost{font-weight:650}
.new-request-confirm-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.new-request-confirm-actions .primary{flex:1 1 230px}
.new-request-confirm-actions .secondary{flex:0 1 130px}
.durable-active-request-feedback{min-height:1.4em;margin:12px 0 0;color:var(--green-dark,#174d36);font-weight:650}
.durable-active-request-feedback:empty{display:none}


/* V0.27.7 — rythme de lecture et hiérarchie des messages publics */
.success-message{max-width:720px;margin-left:auto;margin-right:auto;line-height:1.65}
.tracking-authenticated-notice strong{line-height:1.25}
.active-booking-lock-content>p:not(.eyebrow){line-height:1.62}
@media (max-width:640px){.success-message,.active-booking-lock-content>p:not(.eyebrow){line-height:1.55}}


/* V0.27.7 — complément sécurisé des informations de vol */
.tracking-flight-update-card{margin:1.25rem 0;padding:1.25rem;border:1px solid rgba(24,92,61,.18);border-radius:18px;background:#f7fbf8;box-shadow:0 10px 28px rgba(23,67,47,.07)}
.tracking-flight-update-card h3{margin:.2rem 0 .45rem}.tracking-flight-update-card>p{margin:.35rem 0 .9rem}
.tracking-flight-update-form{display:grid;gap:1rem}.tracking-flight-fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;border:0;padding:0;margin:0}
.tracking-flight-fieldset legend{grid-column:1/-1;font-weight:800;margin-bottom:.1rem}.tracking-flight-fieldset label{display:grid;gap:.35rem;font-weight:650}
.tracking-flight-fieldset input,.tracking-flight-fieldset select{width:100%;padding:.78rem .85rem;border:1px solid #cbd8d0;border-radius:12px;background:#fff;font:inherit}
.tracking-flight-other-fields{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.tracking-flight-update-feedback{padding:.75rem .85rem;border-radius:12px;background:#fff1ed;color:#8a2c20;font-weight:700}.tracking-flight-update-feedback.success{background:#eaf7ef;color:#185c3d}
.tracking-flight-fieldset:disabled{opacity:.78}.tracking-flight-fieldset:disabled input,.tracking-flight-fieldset:disabled select{background:#eef2ef;color:#263a30;cursor:default}
.tracking-flight-edit-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:center}
.tracking-flight-edit-actions .secondary{min-width:9rem}
@media(max-width:680px){.tracking-flight-fieldset{grid-template-columns:1fr}}
@media(max-width:520px){.tracking-flight-edit-actions{grid-template-columns:1fr}.tracking-flight-edit-actions .secondary{width:100%}}

/* V0.27.7 correctif — validation de vol plus visible */
.booking-field-invalid {
  outline: 4px solid rgba(181, 42, 32, .34);
  outline-offset: 3px;
  box-shadow: 0 0 0 2px rgba(181, 42, 32, .18), 0 8px 22px rgba(181, 42, 32, .10);
}
.booking-field-invalid .flight-airline-trigger,
.flight-airline-trigger.booking-field-invalid {
  border: 2px solid #b52a20 !important;
}


/* Validation renforcée des informations de vol */
.field-error,
.has-error,
.is-invalid,
.flight-error,
[aria-invalid="true"] {
  border-color: #c62828 !important;
  border-width: 2px !important;
  box-shadow: 0 0 0 2px rgba(198, 40, 40, 0.12) !important;
}

.field-error-message,
.validation-message,
.flight-validation-message,
.has-error .help-text,
.is-invalid + .help-text {
  color: #b71c1c !important;
  font-weight: 600;
}

.flight-block.field-error,
.flight-block.has-error,
.flight-card.field-error,
.flight-card.has-error {
  background: rgba(198, 40, 40, 0.045) !important;
}



/* =========================================================
   V0.27.8 — mobile libre et validation nette
   ========================================================= */
.booking-field-invalid {
  outline: none !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
  border: 2px solid #c62828 !important;
  border-radius: 13px;
}
.booking-field-invalid .flight-airline-trigger,
.flight-airline-trigger.booking-field-invalid {
  border: 2px solid #c62828 !important;
  box-shadow: none !important;
}

@media (max-width: 980px) {
  html, body, #bookingShell, #bookingForm, .form-step,
  .step-mobile-free-scroll, .insurance-section,
  .insurance-grid, .options-grid {
    scroll-snap-type: none !important;
    scroll-snap-align: none !important;
    overflow-anchor: none;
  }
  .form-step[data-step="2"].active {
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
  }
}


/* V0.28.3 — contour d’erreur unique, net et sans halo */
.booking-field-invalid,
.field-error,
.has-error,
.is-invalid,
.flight-error,
[aria-invalid="true"] {
  outline: none !important;
  box-shadow: none !important;
}
.booking-field-invalid,
.flight-airline-trigger.booking-field-invalid,
input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"] {
  border: 2px solid #c62828 !important;
}
.has-error:not(input):not(select):not(textarea),
.field-error:not(input):not(select):not(textarea) {
  border-color: transparent !important;
  border-width: 0 !important;
}


/* V0.29.1 — expérience client, e-mail et WhatsApp */
.email-contact-field small{display:block;margin-top:.45rem;color:var(--muted,#607068);font-weight:500;line-height:1.45}
.whatsapp-confirmation{display:flex;gap:.75rem;align-items:flex-start;margin-top:1rem;padding:1rem;border:1px solid #cfe2d5;border-radius:14px;background:#f5fbf7}
.whatsapp-confirmation input{margin-top:.22rem;flex:0 0 auto}
.whatsapp-confirmation span{display:grid;gap:.25rem}
.whatsapp-confirmation small{color:var(--muted,#607068);line-height:1.45}
.email-domain-warning-dialog{max-width:560px;border:0;border-radius:20px;padding:0;box-shadow:0 24px 70px rgba(18,45,31,.25)}
.email-domain-warning-dialog::backdrop{background:rgba(10,25,17,.58)}
.email-domain-warning-content{padding:1.5rem}
.email-domain-warning-actions{display:flex;justify-content:flex-end;gap:.75rem;flex-wrap:wrap;margin-top:1.25rem}
.contact-action-row{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.65rem}
.contact-action-row .button-link,.contact-action-row button{padding:.48rem .72rem;font-size:.86rem}
.whatsapp-action{border-color:#78bf8a!important;background:#eef9f1!important}


/* V0.29.4 — consolidation, guide visuel et WhatsApp */
.guide-grid summary{display:flex;align-items:center;gap:.7rem}
.guide-item-icon{display:inline-grid;place-items:center;flex:0 0 2rem;width:2rem;height:2rem;border-radius:50%;background:#edf5ef;font-size:1.05rem;line-height:1}
.whatsapp-confirmation{position:relative;align-items:center;border:2px solid #8bd39b;background:linear-gradient(135deg,#f2fbf4,#e9f8ed);box-shadow:0 8px 22px rgba(37,211,102,.10)}
.whatsapp-confirmation:focus-within{outline:3px solid rgba(37,211,102,.22);outline-offset:2px}
.whatsapp-confirmation input{width:1.25rem;height:1.25rem;accent-color:#25d366}
.whatsapp-logo{display:grid;place-items:center;flex:0 0 2.75rem;width:2.75rem;height:2.75rem;border-radius:50%;background:#25d366;box-shadow:0 5px 14px rgba(37,211,102,.25)}
.whatsapp-logo svg{width:1.75rem;height:1.75rem;fill:#fff}
.whatsapp-confirmation strong{color:#176b38;font-size:1rem}
@media (max-width:620px){.whatsapp-confirmation{display:grid;grid-template-columns:auto auto 1fr}.whatsapp-logo{grid-row:1}.whatsapp-confirmation input{grid-row:1}.whatsapp-confirmation>span:last-child{grid-column:1/-1}}

/* V0.29.5 — supervision et assistance contextuelle */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.system-health-indicator{display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(16,24,40,.14);border-radius:999px;padding:9px 13px;background:#fff;font:inherit;font-weight:800;color:#344054;cursor:pointer;box-shadow:0 4px 14px rgba(16,24,40,.05);transition:.2s ease}
.system-health-indicator:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(16,24,40,.09)}
.system-health-dot{width:10px;height:10px;border-radius:50%;background:#98a2b3;box-shadow:0 0 0 4px rgba(152,162,179,.16)}
.system-health-indicator.is-ok{border-color:rgba(18,183,106,.32);color:#067647;background:#ecfdf3}.system-health-indicator.is-ok .system-health-dot{background:#12b76a;box-shadow:0 0 0 4px rgba(18,183,106,.17)}
.system-health-indicator.is-warning{border-color:rgba(247,144,9,.35);color:#b54708;background:#fffaeb}.system-health-indicator.is-warning .system-health-dot{background:#f79009;box-shadow:0 0 0 4px rgba(247,144,9,.18)}
.system-health-indicator.is-error{border-color:rgba(240,68,56,.35);color:#b42318;background:#fef3f2}.system-health-indicator.is-error .system-health-dot{background:#f04438;box-shadow:0 0 0 4px rgba(240,68,56,.17);animation:healthPulse 1.4s infinite}
.system-health-indicator.is-checking .system-health-dot{animation:healthPulse 1.2s infinite}
@keyframes healthPulse{0%,100%{opacity:1}50%{opacity:.35}}
.assistance-toggle.active{background:#eef4ff;border-color:#84adff;color:#175cd3}
.system-health-panel{margin:14px 0 22px;padding:20px;border:1px solid rgba(16,24,40,.12);border-radius:20px;background:linear-gradient(145deg,#fff,#f8fafc);box-shadow:0 12px 35px rgba(16,24,40,.07)}
.system-health-panel-head,.system-health-technical-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.system-health-panel-head h2{margin:3px 0 4px}.system-health-panel-head p{margin:0;color:#667085}
.system-health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-top:18px}
.system-health-card{display:flex;gap:10px;align-items:flex-start;padding:14px;border-radius:14px;border:1px solid #eaecf0;background:#fff;min-height:92px}.system-health-card-icon{flex:0 0 25px;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font-weight:900}.system-health-card strong,.system-health-card small{display:block}.system-health-card small{margin-top:5px;color:#667085;line-height:1.35}.system-health-card.is-ok{border-color:#abefc6;background:#f6fef9}.system-health-card.is-ok .system-health-card-icon{background:#dcfae6;color:#067647}.system-health-card.is-warning{border-color:#fedf89;background:#fffcf5}.system-health-card.is-warning .system-health-card-icon{background:#fef0c7;color:#b54708}.system-health-card.is-error{border-color:#fecdca;background:#fffafa}.system-health-card.is-error .system-health-card-icon{background:#fee4e2;color:#b42318}
.system-health-technical,.system-health-events{margin-top:16px;padding:15px;border-radius:14px;background:#fff;border:1px solid #eaecf0}.system-health-bars{height:62px;display:flex;align-items:flex-end;gap:5px;margin-top:12px;padding:8px 10px 0;border-radius:10px;background:repeating-linear-gradient(to top,#f2f4f7 0,#f2f4f7 1px,transparent 1px,transparent 16px)}.system-health-bars i{display:block;flex:1;min-width:5px;max-width:22px;border-radius:4px 4px 1px 1px;background:linear-gradient(to top,#1570ef,#84adff);transition:height .2s ease}.system-event{margin:10px 0 0;padding:10px 12px;border-radius:10px}.system-event.is-ok{background:#ecfdf3;color:#067647}.system-event.is-warning{background:#fffaeb;color:#b54708}
.contextual-assistance{margin-bottom:18px;padding:16px;border-radius:16px;border:1px solid #b2ccff;background:linear-gradient(135deg,#eff4ff,#f8faff)}.contextual-assistance-head{display:flex;align-items:center;gap:10px}.contextual-assistance-head>span{font-size:24px}.contextual-assistance-head strong,.contextual-assistance-head small{display:block}.contextual-assistance-head small{color:#475467;margin-top:2px}.contextual-assistance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:13px}.contextual-assistance-grid>div{padding:11px;border-radius:11px;background:rgba(255,255,255,.8)}.contextual-assistance-grid p{margin:5px 0 0;color:#475467;line-height:1.4}
.quote-comparison-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px;margin-top:15px;align-items:start}.quote-comparison-column{min-width:0;border:1px solid #e4e7ec;border-radius:16px;background:#fff;overflow:hidden}.quote-comparison-title{display:flex;gap:9px;align-items:center;padding:13px 15px;background:#f8fafc;border-bottom:1px solid #e4e7ec}.quote-comparison-title>span{font-size:20px}.quote-comparison-title strong,.quote-comparison-title small{display:block}.quote-comparison-title small{margin-top:2px;color:#667085}.quote-original-text{margin:0;padding:16px;max-height:500px;overflow:auto;white-space:pre-wrap;word-break:break-word;font:12.5px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;background:#111827;color:#f9fafb}.interpreted-column>.detail-grid,.interpreted-column>h4,.interpreted-column>.email-check-list{margin-left:14px;margin-right:14px}.interpreted-column>.detail-grid{margin-top:14px}.interpreted-column>.email-check-list{margin-bottom:14px}.email-check.is-warning{border:2px solid #f97066!important;background:#fff1f0!important;box-shadow:0 0 0 3px rgba(240,68,56,.08)}.email-check.is-warning>span{background:#f04438!important;color:#fff!important}.email-check.is-warning em{display:block;margin-top:5px;color:#b42318;font-style:normal;font-weight:800;font-size:12px}
@media(max-width:1100px){.system-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-comparison-grid{grid-template-columns:1fr}.contextual-assistance-grid{grid-template-columns:1fr}}
@media(max-width:760px){.private-toolbar-actions{align-items:stretch}.system-health-indicator,.assistance-toggle{width:100%;justify-content:center}.system-health-panel-head,.system-health-technical-head{flex-direction:column}.system-health-grid{grid-template-columns:1fr}}

/* V17 — présence et traçabilité des agences partenaires */
.agency-activity-panel{margin:18px 0 24px;padding:20px;border:1px solid rgba(22,83,69,.16);border-radius:22px;background:linear-gradient(145deg,#fff,#f5faf7);box-shadow:0 12px 34px rgba(22,83,69,.07)}
.agency-activity-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.agency-activity-head h2{margin:3px 0 5px}.agency-activity-head p{margin:0;color:#66756f}
.agency-presence-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:18px}
.agency-presence-card{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid rgba(22,83,69,.12);border-left:7px solid var(--agency-color,#66756f);border-radius:16px;background:#fff}.agency-presence-card div{display:grid;gap:3px}.agency-presence-card small{color:#66756f;line-height:1.35}
.agency-presence-dot{width:12px;height:12px;flex:0 0 12px;border-radius:50%;background:#98a2a0;box-shadow:0 0 0 5px rgba(152,162,160,.13)}.agency-presence-card.is-online .agency-presence-dot{background:#1f9d67;box-shadow:0 0 0 5px rgba(31,157,103,.14)}.agency-presence-card.is-recent .agency-presence-dot{background:#d9a11e;box-shadow:0 0 0 5px rgba(217,161,30,.14)}
.agency-activity-history{margin-top:16px;border-top:1px solid rgba(22,83,69,.13);padding-top:14px}.agency-activity-history summary{cursor:pointer;font-weight:800;color:#164f42}.agency-activity-list{display:grid;gap:8px;margin-top:12px;max-height:420px;overflow:auto;padding-right:4px}
.agency-activity-row{display:grid;grid-template-columns:155px minmax(220px,1fr) minmax(180px,.7fr);gap:14px;align-items:center;padding:11px 13px;border-radius:13px;background:#fff;border:1px solid rgba(22,83,69,.1);border-left:7px solid var(--agency-color,#66756f)}.agency-activity-row div{display:grid;gap:2px}.agency-activity-row div strong{display:flex;align-items:center;gap:7px}.agency-activity-row div strong::before{content:"";width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:var(--agency-color,#66756f)}.agency-activity-row span,.agency-activity-row small,.agency-activity-row time{color:#66756f;font-size:.88rem}.agency-activity-note{margin:14px 0 0;padding:11px 13px;border-radius:12px;background:#eef6f1;color:#46635a;font-size:.9rem}
.agency-identity-settings{margin-top:12px}.agency-identity-settings summary{cursor:pointer;font-weight:750;color:#46635a}.agency-identity-form{display:grid;grid-template-columns:minmax(220px,1fr) minmax(190px,.75fr) auto;gap:10px;align-items:end;margin-top:12px}.agency-identity-form label{display:grid;gap:6px;font-weight:700}.agency-identity-form input,.agency-identity-form select{width:100%;min-height:44px;border:1px solid rgba(22,83,69,.2);border-radius:12px;background:#fff;padding:9px 11px}
@media(max-width:760px){.agency-activity-head{flex-direction:column}.agency-activity-head button{width:100%}.agency-activity-row{grid-template-columns:1fr;gap:4px}}
@media(max-width:900px){.agency-identity-form{grid-template-columns:1fr}.agency-identity-form button{width:100%}}


/* V0.30.1 — consolidation métier AmiGO et visuels officiels */
@media (min-width:901px){
  #view-nadine .admin-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
  #view-nadine .private-toolbar-actions{flex-wrap:nowrap;white-space:nowrap}
  #view-nadine .private-toolbar-actions button{padding-left:.72rem;padding-right:.72rem}
}
.quote-comparison-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
.quote-comparison-column{display:flex;flex-direction:column;height:min(78vh,840px);min-height:620px;overflow:hidden}
.quote-original-text{flex:1;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.interpreted-column{overflow:hidden}
.quote-interpreted-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-bottom:14px}
.quote-field-control{position:relative;display:flex!important;align-items:flex-start;justify-content:space-between;gap:8px;cursor:pointer;transition:border-color .16s,background .16s,box-shadow .16s}.quote-field-control:hover,.quote-field-control:focus-within{border-color:#7f9e8f!important;background:#f4faf6!important;box-shadow:0 0 0 3px rgba(38,111,76,.1)}.quote-field-copy{display:block;min-width:0}.quote-field-copy>strong,.quote-field-copy>span,.quote-field-copy>small{display:block}.quote-field-copy>small{margin-top:5px;color:#8a5a12;font-weight:800}.quote-field-edit{flex:0 0 34px;width:34px;height:34px;min-height:34px;padding:0;border:1px solid #b9c9c0;border-radius:50%;background:#fff;color:#174b39;font-size:17px;line-height:1}.quote-field-edit:hover{background:#174b39;color:#fff}.quote-field-control.is-manually-corrected{border-left:4px solid #d89b2b!important;background:#fffaf0!important}.quote-source-highlight{padding:2px 4px;border-radius:4px;background:#ffe066;color:#111827;box-shadow:0 0 0 4px rgba(255,224,102,.22)}.quote-original-text.source-value-not-found{animation:sourceNotFound .7s ease}@keyframes sourceNotFound{50%{box-shadow:inset 0 0 0 3px #f79009}}
.quote-field-control.is-source-active,.email-check.is-source-active{outline:3px solid rgba(21,112,239,.25);outline-offset:1px}.email-check[data-source-value]{cursor:pointer}
.quote-field-control.is-manually-verified{border-left:4px solid #2f855a!important;background:#f0fff4!important}.quote-field-control.is-manually-verified .quote-field-copy>small{color:#246b45}.human-check-list{margin-bottom:14px!important}.email-check.is-human-verified{border:2px solid #86d3a2!important;background:#f0fff4!important}.email-check.is-human-verified>span{background:#2f855a!important;color:#fff!important}.email-check.is-human-corrected{border:2px solid #f0b44d!important;background:#fffaf0!important}.email-check.is-human-corrected>span{background:#d58a13!important;color:#fff!important}.email-check.is-human-verified em,.email-check.is-human-corrected em{display:block;margin-top:5px;font-style:normal;font-weight:800;font-size:12px}.email-check.is-human-verified em{color:#246b45}.email-check.is-human-corrected em{color:#9a620f}
.email-check.is-error{border:2px solid #f04438!important;background:#fff1f0!important;box-shadow:0 0 0 3px rgba(240,68,56,.1)}
.email-check.is-error>span{background:#d92d20!important;color:#fff!important}
.email-check.is-error em{display:block;margin-top:5px;color:#b42318;font-style:normal;font-weight:800;font-size:12px}
.email-check.is-warning{border:2px solid #f79009!important;background:#fffaeb!important;box-shadow:0 0 0 3px rgba(247,144,9,.09)}
.email-check.is-warning>span{background:#f79009!important;color:#fff!important}
.email-check.is-warning em{color:#b54708}
.legacy-dashboard-mockup{display:none!important}.messages-operational-root,.commission-tracking-root{display:grid;gap:12px;margin-top:18px}.communication-status-card,.commission-monitor-card{display:grid;grid-template-columns:minmax(160px,.75fr) minmax(220px,1.25fr) auto;gap:16px;align-items:center;padding:15px 17px;border:1px solid #dfe5e1;border-radius:15px;background:#fff}.communication-status-card.is-attention,.commission-monitor-card.is-attention{border-color:#e4b45d;background:#fffaf0}.communication-status-card.is-error{border-color:#ef9a92;background:#fff4f2}.communication-status-card small,.commission-monitor-card small{display:block;margin-top:3px;color:#667085}.communication-status-pill,.commission-monitor-pill{justify-self:end;padding:6px 10px;border-radius:999px;background:#edf7f0;color:#246b45;font-weight:800;font-size:12px}.is-attention .communication-status-pill,.commission-monitor-card.is-attention .commission-monitor-pill{background:#fff0cf;color:#9a620f}.communication-status-card.is-error .communication-status-pill{background:#fee4e2;color:#b42318}.commission-monitor-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.commission-monitor-actions button{padding:7px 11px}.dashboard-truth-note{padding:13px 15px;border-radius:12px;background:#f5f7f6;color:#475467}@media(max-width:760px){.communication-status-card,.commission-monitor-card{grid-template-columns:1fr}.communication-status-pill,.commission-monitor-pill{justify-self:start}}
.communication-status-card>button{justify-self:end;white-space:nowrap}@media(min-width:761px) and (max-width:1100px){.communication-status-card{grid-template-columns:minmax(140px,.8fr) minmax(180px,1.2fr)}.communication-status-pill,.communication-status-card>button{justify-self:start}}
.assistance-focus-button{margin-top:12px}
.attention-pulse{animation:attentionPulse 1s ease-in-out 2}
@keyframes attentionPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.015);box-shadow:0 0 0 6px rgba(240,68,56,.18)}}
@media(max-width:1100px){.quote-comparison-column{height:min(72vh,720px);min-height:520px}.quote-original-text{min-height:0}.interpreted-column{max-height:none}}

/* Progression guidée du formulaire */
#bookingForm input,#bookingForm textarea{caret-color:var(--green-dark)}
.guided-next-field{
  position:relative;
  z-index:2;
  border-radius:16px;
  animation:guidedNextField 1.35s ease-out 1;
}
.guided-next-field input,.guided-next-field select,.guided-next-field textarea,
button.guided-next-field{
  border-color:#2f7d55!important;
  box-shadow:0 0 0 4px rgba(47,125,85,.16)!important;
}
@keyframes guidedNextField{
  0%{background:rgba(211,239,220,.85);box-shadow:0 0 0 0 rgba(47,125,85,.34)}
  45%{background:rgba(226,245,232,.72);box-shadow:0 0 0 7px rgba(47,125,85,.12)}
  100%{background:transparent;box-shadow:0 0 0 0 rgba(47,125,85,0)}
}
@media(prefers-reduced-motion:reduce){.guided-next-field{animation:none;background:rgba(226,245,232,.72)}}

/* V0.30.1 — visuels officiels AmiGO */
.vehicle-card img[src^="assets/vehicles/"],.hero-car[src^="assets/vehicles/"]{object-fit:contain}


/* =========================================================
   V0.31.0 — Identité tropicale cohérente (public + bodega)
   ========================================================= */
:root{
  --forest-950:#092d25;--forest-900:#103d31;--forest-800:#18513f;
  --forest-700:#24664d;--leaf:#5e8f64;--sage:#dce8d9;
  --sand:#f4efe4;--sand-2:#fbf8f1;--sun:#d7a84d;--terracotta:#bd6a48;
  --paper:#fffefa;--ink:#17342b;--muted:#69786f;--line:rgba(20,66,51,.14);
  --shadow:0 20px 55px rgba(9,45,37,.12);--shadow-soft:0 12px 28px rgba(9,45,37,.09);
  --radius:26px;
}
body{background:
  radial-gradient(circle at 0 0,rgba(215,168,77,.16),transparent 31rem),
  radial-gradient(circle at 100% 18%,rgba(94,143,100,.16),transparent 34rem),
  linear-gradient(180deg,#f8f4eb 0%,#edf4ed 48%,#f7f3ea 100%);}
.site-header{background:rgba(255,254,250,.9);border-bottom-color:rgba(16,61,49,.1);box-shadow:0 8px 32px rgba(9,45,37,.05)}
.brand-main,.partner-shell-logo{letter-spacing:.12em}.brand-signature{color:var(--terracotta)}
.nav-btn.active,.nav-btn:hover{background:linear-gradient(135deg,#dbeadb,#edf3e8);box-shadow:inset 0 0 0 1px rgba(36,102,77,.08)}
.primary{background:linear-gradient(135deg,var(--forest-700),var(--forest-900));box-shadow:0 12px 28px rgba(16,61,49,.25)}
.primary:hover{background:linear-gradient(135deg,var(--forest-800),var(--forest-950));transform:translateY(-1px)}
.secondary{background:rgba(255,254,250,.86);border-color:rgba(16,61,49,.16)}
.hero{position:relative;min-height:76vh;padding:5.5rem 0 4.5rem}
.hero:before{content:"";position:absolute;inset:1.2rem -5vw 0;border-radius:42px;z-index:-1;background:
 linear-gradient(100deg,rgba(9,45,37,.94),rgba(16,61,49,.76) 52%,rgba(16,61,49,.3)),
 url('assets/vehicles/toyota-rav4.png') right 4% bottom 12%/48% auto no-repeat,
 radial-gradient(circle at 80% 20%,#789d76,#1d5945 70%);box-shadow:0 32px 80px rgba(9,45,37,.22);overflow:hidden}
.hero>div:first-child{padding-left:clamp(1.5rem,4vw,4rem);color:white}.hero h1{color:white;text-shadow:0 4px 24px rgba(0,0,0,.18)}
.hero .hero-copy,.hero .trust-row{color:rgba(255,255,255,.82)}.hero .eyebrow{color:#f3cf83}.hero-card{margin-right:clamp(1rem,3vw,3rem);backdrop-filter:blur(14px);background:rgba(255,254,250,.9)}
.content-shell,.panel,.proposal-preview,.tracking-shell{box-shadow:var(--shadow-soft);border-color:var(--line)}
.home-section-heading{gap:3rem}.home-section-heading h2{max-width:760px}.home-section-heading>p{max-width:480px;line-height:1.75}
.home-benefits,.home-fleet,.home-guide,.home-process,.home-guide-teaser{border-radius:34px}
.home-vehicle-card{border:1px solid rgba(16,61,49,.1)!important;border-radius:28px!important;background:rgba(255,254,250,.92)!important;box-shadow:var(--shadow-soft)!important;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}
.home-vehicle-card:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(9,45,37,.16)!important}
.home-vehicle-photo{background:linear-gradient(145deg,#f1f3ea,#e7eee5)!important;min-height:225px!important;display:grid!important;place-items:center!important;position:relative;overflow:hidden}
.home-vehicle-photo:after{content:"";position:absolute;inset:auto 12% 17px;height:22px;border-radius:50%;background:rgba(10,44,35,.12);filter:blur(10px)}
.home-vehicle-photo img{position:relative;z-index:1;max-height:190px!important;max-width:91%!important;object-fit:contain!important;transition:transform .35s ease}
.home-vehicle-card:hover .home-vehicle-photo img{transform:translateY(-3px) scale(1.015)}
.home-vehicle-body{padding:1.35rem 1.4rem 1.5rem!important}.home-vehicle-body h3{font-family:Georgia,serif;font-size:1.45rem;color:var(--forest-900)}
.vehicle-useful-specs span{background:#edf3ea!important;color:var(--forest-800)!important;border-color:rgba(36,102,77,.08)!important}
.vehicle-advice{border-left:3px solid var(--sun);padding-left:.85rem;color:var(--muted)}
.airport-shuttle-feature{margin:1rem 0 4rem;display:grid;grid-template-columns:minmax(260px,.8fr) 1.4fr;gap:0;border-radius:34px;overflow:hidden;background:var(--forest-950);box-shadow:0 28px 70px rgba(9,45,37,.2);color:white}
.airport-shuttle-visual{min-height:330px;position:relative;background:
 linear-gradient(160deg,rgba(9,45,37,.15),rgba(9,45,37,.82)),
 radial-gradient(circle at 30% 25%,#8bb083,#2e6b50 55%,#123d31 100%);display:grid;place-items:center}
.airport-shuttle-plane,.airport-shuttle-van{position:absolute;font-size:3.2rem;filter:drop-shadow(0 8px 14px rgba(0,0,0,.22))}.airport-shuttle-plane{top:24%;left:22%}.airport-shuttle-van{bottom:22%;right:20%}.airport-shuttle-route{width:48%;height:45%;border-right:3px dashed rgba(255,255,255,.6);border-bottom:3px dashed rgba(255,255,255,.6);border-radius:0 0 34px 0;transform:rotate(7deg)}
.airport-shuttle-copy{padding:clamp(2rem,5vw,4rem)}.airport-shuttle-copy h2{color:white;margin-bottom:1rem}.airport-shuttle-copy p{color:rgba(255,255,255,.76);line-height:1.75}.airport-shuttle-copy .eyebrow{color:#f3cf83}.airport-shuttle-points{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.5rem}.airport-shuttle-points span{padding:.65rem .85rem;border-radius:999px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);font-size:.88rem}
/* bodega / panel */
#view-nadine,#view-settings,#view-partner{padding-top:1.5rem}.admin-shell,.partner-private-shell,.settings-shell{border-radius:34px;background:rgba(255,254,250,.72);box-shadow:0 25px 70px rgba(9,45,37,.1);border:1px solid rgba(16,61,49,.1);overflow:hidden}
.admin-shell-header,.partner-shell-header,.settings-header{background:linear-gradient(120deg,var(--forest-950),var(--forest-800));color:white;border-bottom:0}.partner-shell-header .secondary,.admin-shell-header .secondary{background:rgba(255,255,255,.11);color:white;border-color:rgba(255,255,255,.2)}
.partner-intro,.dashboard-header{background:linear-gradient(180deg,rgba(220,232,217,.65),transparent);padding-left:clamp(1.2rem,3vw,3rem);padding-right:clamp(1.2rem,3vw,3rem)}
.partner-stage-card,.dashboard-status-card{border-radius:22px!important;border:1px solid rgba(16,61,49,.1)!important;box-shadow:0 10px 24px rgba(9,45,37,.07)!important;background:rgba(255,254,250,.88)!important}.partner-stage-card.active{background:linear-gradient(135deg,var(--forest-800),var(--forest-950))!important;color:white!important}
.partner-dossier-sidebar,.partner-dossier-main{background:rgba(255,254,250,.75)!important}.partner-booking-row{border-radius:18px!important;margin:.35rem .25rem!important;border:1px solid transparent!important}.partner-booking-row.active{background:#e5efe3!important;border-color:rgba(36,102,77,.16)!important}
.partner-vehicle-hero,.partner-client-card,.partner-trip-card,.partner-history-card,.partner-proposal-panel{border-radius:25px!important;box-shadow:var(--shadow-soft)!important;border-color:rgba(16,61,49,.1)!important}
.driver-mission-open{border-color:rgba(215,168,77,.5)!important;color:#f6d48d!important}
/* chauffeur */
.driver-mission-dialog{border:0;padding:0;background:transparent;max-width:min(440px,calc(100vw - 1.2rem));width:100%;overflow:visible}.driver-mission-dialog::backdrop{background:rgba(5,25,20,.72);backdrop-filter:blur(6px)}
.driver-mission-dialog .dialog-close{position:absolute;right:-.2rem;top:-.2rem;z-index:3;background:white;color:var(--forest-950);box-shadow:0 6px 20px rgba(0,0,0,.2)}
.driver-mission-phone{background:#f8f5ed;border-radius:32px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.34);border:6px solid #102f27}
.driver-mission-topbar{padding:1.1rem 1.25rem;background:var(--forest-950);color:white;display:flex;justify-content:space-between;align-items:center}.driver-mission-topbar span{font-weight:900;letter-spacing:.08em}.driver-mission-topbar i{font-family:Georgia,serif;color:#efc672;font-weight:400}.driver-mission-topbar small{font-size:.65rem;letter-spacing:.13em}
.driver-live-status{padding:1.45rem;background:linear-gradient(135deg,#e2eee0,#f7f2e5);border-bottom:1px solid rgba(16,61,49,.09)}.driver-live-status[data-state="pending"]{background:linear-gradient(135deg,#fff0d5,#faf3e7)}.driver-live-status small,.driver-client-identity small,.driver-mission-grid small{display:block;letter-spacing:.12em;font-weight:800;font-size:.65rem;color:var(--muted)}.driver-live-status strong{display:block;font-size:1.45rem;color:var(--forest-900);margin:.25rem 0}.driver-live-status span{font-size:.85rem;color:var(--muted)}
.driver-client-identity{padding:1.4rem 1.45rem .9rem}.driver-client-identity h2{font-size:1.75rem;color:var(--forest-950);margin:.25rem 0}.driver-client-identity span{color:var(--terracotta);font-weight:800}
.driver-mission-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;padding:.7rem 1.2rem 1.2rem}.driver-mission-grid section{padding:1rem;border-radius:18px;background:white;border:1px solid rgba(16,61,49,.09);min-height:112px}.driver-mission-grid strong{display:block;margin:.35rem 0;color:var(--forest-900)}.driver-mission-grid span{font-size:.78rem;color:var(--muted);line-height:1.4}
.driver-mission-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;padding:0 1.2rem 1.2rem}.driver-action{min-height:76px;border-radius:18px;background:var(--forest-800);color:white;text-decoration:none;display:grid;place-items:center;align-content:center;gap:.25rem;font-weight:800;font-size:.8rem}.driver-action b{font-size:1.35rem}.driver-action.whatsapp{background:#1d7a4d}.driver-action.disabled{background:#d8ddd7;color:#748078;text-align:center}
.driver-mission-footer{padding:1rem 1.2rem;background:white;border-top:1px solid rgba(16,61,49,.08);display:flex;align-items:center;justify-content:space-between;gap:1rem}.driver-mission-footer span{font-size:.75rem;color:var(--muted)}.driver-mission-footer button{border:0;border-radius:999px;background:#e5efe3;color:var(--forest-900);padding:.55rem .75rem;font-weight:800}
@media(max-width:800px){.hero{grid-template-columns:1fr;padding-top:2.2rem}.hero:before{inset:.5rem -.5rem 0;background:linear-gradient(180deg,rgba(9,45,37,.93),rgba(16,61,49,.72)),radial-gradient(circle at 80% 20%,#789d76,#1d5945 70%)}.hero-card{margin:0 1rem}.airport-shuttle-feature{grid-template-columns:1fr}.airport-shuttle-visual{min-height:220px}.driver-mission-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.driver-mission-grid{grid-template-columns:1fr}.driver-mission-actions{grid-template-columns:1fr 1fr}.driver-action:last-child{grid-column:1/-1}.airport-shuttle-copy{padding:1.6rem}}

/* =========================================================
   V0.32.0 — lieux précis, horaires par agence et navette SJO
   ========================================================= */
.sjo-inline-note {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: .7rem;
  padding: .65rem .85rem;
  border: 1px solid rgba(43,91,68,.18);
  border-radius: 14px;
  background: rgba(245,241,225,.76);
  color: var(--green-dark);
  font-size: .83rem;
  line-height: 1.35;
}
.sjo-inline-note strong { white-space: nowrap; }
.sjo-inline-note span { color: var(--muted); }
.custom-location-grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 1rem;
}
.custom-location-panel {
  display: grid;
  gap: .75rem;
  padding: 1rem;
  border: 1px solid rgba(43,91,68,.16);
  border-radius: 18px;
  background: rgba(250,249,245,.86);
}
#pickupCustomLocationPanel { grid-column: 1; }
#returnCustomLocationPanel { grid-column: 2; }
.custom-location-panel > strong { color: var(--green-dark); }
.custom-location-panel label { display:grid; gap:.35rem; }
.custom-location-panel input,
.custom-location-panel textarea { width:100%; }
.place-details-grid {
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.place-detail-field {
  display:grid!important;
  gap:.35rem;
  padding:1rem;
  border:1px solid rgba(43,91,68,.16);
  border-radius:18px;
  background:rgba(250,249,245,.86);
}
.place-detail-field strong { color:var(--green-dark); }
.place-detail-field span { color:var(--muted); font-size:.83rem; font-weight:700; }
.place-detail-field textarea { width:100%; }
.time-slot-control select { max-width: 15rem; }
@media (max-width: 760px) {
  .custom-location-grid,
  .place-details-grid { grid-template-columns: 1fr; }
  #pickupCustomLocationPanel,
  #returnCustomLocationPanel { grid-column: 1; }
  .sjo-inline-note { align-items:flex-start; flex-direction:column; gap:.2rem; }
  .sjo-inline-note strong { white-space:normal; }
  .time-slot-control select { max-width:100%; }
}

/* Lot 07 — sélecteur horaire visuel, synchronisé avec le champ natif */
.time-slot-control{position:relative}
.time-slot-native{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;opacity:0!important;pointer-events:none!important}
.time-slot-picker{position:relative;width:100%;max-width:22rem}
.time-slot-trigger{
  width:100%;min-height:66px;padding:.7rem .75rem .7rem 1rem;
  display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.55rem;
  border:1px solid #d7ddd8;border-radius:14px;background:#fff;color:var(--ink);
  text-align:left;box-shadow:0 8px 20px rgba(23,48,36,.04);cursor:pointer;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease
}
.time-slot-trigger:hover,.time-slot-trigger:focus-visible{border-color:rgba(43,91,68,.55);box-shadow:0 0 0 4px rgba(69,124,91,.11),0 10px 24px rgba(23,48,36,.08);outline:none}
.time-slot-trigger.has-value{border-color:rgba(55,130,83,.5);background:linear-gradient(135deg,#fff,#f3f8f2)}
.time-slot-trigger-value{font-size:1rem;font-weight:560;line-height:1.25;font-variant-numeric:tabular-nums}
.time-slot-format-chip{padding:.28rem .48rem;border-radius:999px;background:#edf3ec;color:var(--forest-800);font-size:.72rem;font-weight:850;letter-spacing:.035em;white-space:nowrap}
.time-slot-chevron{font-size:1.25rem;line-height:1;transition:transform .18s ease}
.time-slot-picker.is-open .time-slot-chevron{transform:rotate(180deg)}
.time-slot-panel{
  position:absolute;z-index:45;top:calc(100% + .5rem);left:0;width:min(24rem,calc(100vw - 2rem));
  padding:.8rem;border:1px solid rgba(43,91,68,.2);border-radius:18px;background:rgba(255,255,253,.98);
  box-shadow:0 22px 54px rgba(22,42,32,.2);opacity:0;visibility:hidden;transform:translateY(-5px);
  transition:opacity .16s ease,transform .16s ease,visibility .16s ease
}
.time-slot-picker.is-open .time-slot-panel{opacity:1;visibility:visible;transform:translateY(0)}
.time-slot-panel-meta{margin:0 0 .65rem;padding:0 .15rem;color:#5b675f;font-size:.76rem;font-weight:700}
.time-slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.42rem;max-height:17rem;overflow:auto;padding:.12rem .18rem .12rem .12rem}
.time-slot-period{grid-column:1/-1;margin:.18rem 0 -.05rem;padding:.34rem .58rem;border-radius:8px;font-size:.74rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.time-slot-period-morning{background:#dcefeb;color:#245c51}.time-slot-period-afternoon{background:#f8e8c8;color:#7b5722}
.time-slot-option{min-height:42px;padding:.5rem .35rem;border:1px solid rgba(43,91,68,.14);border-radius:11px;background:#f7f8f5;color:var(--ink);font-size:.88rem;font-weight:740;font-variant-numeric:tabular-nums;cursor:pointer}
.time-slot-option[data-period="morning"]{background:#f1f7f5;border-color:#cfe2dc}
.time-slot-option[data-period="afternoon"]{background:#fff8eb;border-color:#ead9b6}
.time-slot-option:hover,.time-slot-option:focus-visible{border-color:var(--forest-600);background:#edf5ec;outline:none;box-shadow:0 0 0 3px rgba(69,124,91,.1)}
.time-slot-option.is-selected{border-color:var(--forest-700);background:var(--forest-800);color:#fff;box-shadow:0 7px 16px rgba(36,89,61,.2)}
.time-slot-option.is-selected::after{content:" ✓";font-weight:900}
.time-slot-trigger.booking-field-invalid{border-color:#b84545;background:#fff7f6;box-shadow:0 0 0 4px rgba(184,69,69,.1)}
@media(max-width:520px){.time-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:15.5rem}.time-slot-option{min-height:44px;font-size:.86rem}}
@media(prefers-reduced-motion:reduce){.time-slot-trigger,.time-slot-chevron,.time-slot-panel{transition:none}}


/* =========================================================
   V0.32.1 — lieux fiabilisés et validation visuelle
   ========================================================= */
.home-location-followup{display:block;margin:.45rem .15rem 0;color:var(--forest-700);font-weight:750;line-height:1.35}
.same-place-option{grid-column:1/-1;display:flex!important;align-items:center;gap:.7rem;padding:.75rem 1rem;border:1px solid rgba(36,102,77,.16);border-radius:16px;background:#f0f5ed;color:var(--forest-900);font-weight:800}
.same-place-option input{width:1.15rem;height:1.15rem;accent-color:var(--forest-700);flex:0 0 auto}
.same-place-option.same-place-unavailable{background:#f4f2ed;color:#6f746f;border-color:rgba(67,73,69,.14);cursor:not-allowed}
.same-place-option.same-place-unavailable input{cursor:not-allowed;opacity:.6}
.same-place-note{grid-column:1/-1;display:block;margin:-.35rem .25rem .15rem;color:#765b21;font-size:.84rem;font-weight:750;line-height:1.4}
.custom-location-panel.copied-location{box-shadow:inset 0 0 0 2px rgba(94,143,100,.18)}
.same-place-identity-locked{pointer-events:none;background:#f1f4f1!important;color:#52645b;cursor:not-allowed}
.place-name-field{position:relative}
.place-suggestions{position:absolute;left:0;right:0;top:calc(100% + .35rem);z-index:30;max-height:260px;overflow:auto;padding:.35rem;border:1px solid rgba(16,61,49,.16);border-radius:16px;background:#fffefa;box-shadow:0 18px 46px rgba(9,45,37,.18)}
.place-suggestion{display:block;width:100%;padding:.75rem .85rem;border:0;border-radius:11px;background:transparent;text-align:left;cursor:pointer;color:var(--forest-900)}
.place-suggestion:hover,.place-suggestion:focus-visible{background:#eaf2e7;outline:none}
.place-suggestion strong,.place-suggestion span{display:block}.place-suggestion span{margin-top:.18rem;color:var(--muted);font-size:.82rem}
.place-recognition-status{margin:.15rem 0 .65rem;padding:.55rem .72rem;border-radius:12px;font-weight:800;font-size:.82rem}
.place-recognition-status.is-recognized{background:#e5f4e4;color:#24664d;border:1px solid rgba(36,102,77,.2)}
.place-recognition-status.is-manual{background:#fff5dc;color:#8a6518;border:1px solid rgba(215,168,77,.28)}
.place-recognition-status.is-searching{background:#eef2f0;color:#52645b;border:1px solid rgba(16,61,49,.1)}
@media(max-width:720px){.same-place-option{align-items:flex-start}.place-suggestions{position:relative;top:auto;margin-top:.35rem}}


/* =========================================================
   V0.32.2 — finitions UI et stabilité de version
   ========================================================= */
/* Taille intermédiaire : lisible sans alourdir le bandeau de recherche. */
.home-search select {
  font-size: 1rem;
  font-weight: 560;
  line-height: 1.25;
}
.home-search select option {
  font-size: 1rem;
}
/* Le raccourci privé reste compact et aligné à droite. */
#adminAccessBtn {
  white-space: nowrap;
  min-width: auto;
  padding-inline: .8rem;
}

/* =========================================================
   B2-R1 — équilibrage typographique des dates UNIQUEMENT
   Base : coherence-B2-basic-full-cloudflare
   Aucun autre composant, layout ou comportement modifié.
   ========================================================= */
.home-search input[type="date"] {
  font-size: 1rem;
  font-weight: 560;
  line-height: 1.25;
}

/* =========================================================
   B2-R2 — fonds véhicules harmonisés UNIQUEMENT
   Base : B2-R1 dates validées
   - même fond sur catalogue, formulaire, récapitulatif et fiche détail
   - neutralisation du mix-blend spécifique à certains modèles
   - aucun changement de structure, données, navigation ou logique métier
   ========================================================= */
:root {
  --vehicle-photo-bg: linear-gradient(145deg,#e8eee8 0%,#f8f5eb 100%);
}
.home-vehicle-photo,
.form-vehicle-photo,
.selected-vehicle-photo,
.vehicle-detail-exterior,
.home-vehicle-photo.blend-photo,
.form-vehicle-photo.blend-photo,
.selected-vehicle-photo.blend-photo,
.vehicle-detail-exterior.blend-photo {
  background: var(--vehicle-photo-bg);
}
.blend-photo img,
.home-vehicle-photo.blend-photo img,
.form-vehicle-photo.blend-photo img,
.selected-vehicle-photo.blend-photo img,
.vehicle-detail-exterior.blend-photo img {
  mix-blend-mode: normal;
}

/* =========================================================
   V0.32.2 — FAQ éditoriale fidèle à la maquette validée
   Couche finale volontairement isolée.
   ========================================================= */
#travelGuide.guide-editorial-v3{
  position:relative;
  overflow:hidden;
  padding:clamp(54px,7vw,92px) clamp(20px,6vw,88px);
  background:#fbf8f2;
  border-top:1px solid rgba(24,54,45,.07);
  isolation:isolate;
}
#travelGuide.guide-editorial-v3::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:-70px;
  right:-40px;
  width:min(43vw,560px);
  aspect-ratio:1;
  opacity:.105;
  transform:rotate(-8deg);
  background:
    radial-gradient(ellipse at 50% 50%, transparent 0 13%, rgba(46,83,66,.95) 13.5% 15%, transparent 15.5% 100%),
    conic-gradient(from 222deg at 46% 66%,
      transparent 0 5%, rgba(46,83,66,.85) 5.3% 7.2%, transparent 7.5% 11%,
      rgba(46,83,66,.85) 11.3% 13.2%, transparent 13.5% 17%,
      rgba(46,83,66,.85) 17.3% 19.2%, transparent 19.5% 23%,
      rgba(46,83,66,.85) 23.3% 25.2%, transparent 25.5% 29%,
      rgba(46,83,66,.85) 29.3% 31.2%, transparent 31.5% 35%,
      rgba(46,83,66,.85) 35.3% 37.2%, transparent 37.5% 41%,
      rgba(46,83,66,.85) 41.3% 43.2%, transparent 43.5% 47%,
      rgba(46,83,66,.85) 47.3% 49.2%, transparent 49.5% 53%,
      rgba(46,83,66,.85) 53.3% 55.2%, transparent 55.5% 59%,
      rgba(46,83,66,.85) 59.3% 61.2%, transparent 61.5% 65%,
      rgba(46,83,66,.85) 65.3% 67.2%, transparent 67.5% 71%,
      rgba(46,83,66,.85) 71.3% 73.2%, transparent 73.5% 100%);
  clip-path:polygon(48% 4%,62% 9%,72% 17%,80% 29%,86% 43%,91% 58%,94% 74%,91% 87%,82% 95%,70% 91%,60% 83%,52% 72%,44% 58%,36% 45%,28% 31%,19% 18%,28% 11%,38% 7%);
  filter:blur(.1px);
}
#travelGuide.guide-editorial-v3 .home-section-heading{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(270px,.72fr);
  gap:clamp(36px,7vw,100px);
  align-items:end;
  max-width:1180px;
  margin:0 auto 34px;
}
#travelGuide.guide-editorial-v3 .home-section-heading>div{max-width:680px}
#travelGuide.guide-editorial-v3 .eyebrow{
  margin:0 0 12px;
  color:#e86f63;
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
#travelGuide.guide-editorial-v3 #travelGuideTitle{
  margin:0;
  color:#173c32;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(3rem,5.7vw,5.6rem);
  font-weight:500;
  line-height:.92;
  letter-spacing:-.045em;
}
#travelGuide.guide-editorial-v3 #travelGuideTitle .faq-accent{
  display:block;
  margin-top:.06em;
  color:#e86f63;
  font-style:italic;
  font-weight:500;
}
#travelGuide.guide-editorial-v3 #travelGuideIntro{
  position:relative;
  margin:0 0 4px;
  max-width:470px;
  color:#31483f;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.12rem,1.7vw,1.48rem);
  font-style:italic;
  line-height:1.55;
}
#travelGuide.guide-editorial-v3 #travelGuideIntro::before{
  content:"";
  display:block;
  width:54px;
  height:2px;
  margin-bottom:18px;
  background:#c99543;
}

#travelGuide.guide-editorial-v3 .guide-grid{
  display:block;
  max-width:1180px;
  margin:0 auto;
}
#travelGuide.guide-editorial-v3 .guide-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:16px;
  align-items:start;
}
#travelGuide.guide-editorial-v3 .guide-column{
  display:flex;
  flex-direction:column;
  gap:16px;
  min-width:0;
}
#travelGuide.guide-editorial-v3 details.guide-card{
  margin:0;
  padding:0;
  overflow:hidden;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(32,60,50,.075);
  border-radius:18px;
  box-shadow:0 8px 24px rgba(31,55,45,.055);
}
#travelGuide.guide-editorial-v3 details.guide-card summary{
  display:grid;
  grid-template-columns:52px minmax(0,1fr) 30px;
  gap:16px;
  align-items:center;
  min-height:84px;
  padding:13px 16px;
  color:#173c32;
  cursor:pointer;
  list-style:none;
}
#travelGuide.guide-editorial-v3 details.guide-card summary::-webkit-details-marker{display:none}
#travelGuide.guide-editorial-v3 details.guide-card summary::after{display:none!important;content:none!important}
#travelGuide.guide-editorial-v3 .guide-icon{
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  border-radius:50%;
  font-size:1.45rem;
  line-height:1;
  background:var(--icon-bg,#edf3ef);
  color:var(--icon-fg,#173c32);
}
#travelGuide.guide-editorial-v3 .guide-question{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1rem,1.3vw,1.23rem);
  font-weight:700;
  line-height:1.28;
}
#travelGuide.guide-editorial-v3 .guide-toggle{
  width:28px;
  height:28px;
  border:1.35px solid #173c32;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-family:Arial,sans-serif;
  font-size:20px;
  font-weight:400;
  line-height:1;
}
#travelGuide.guide-editorial-v3 .guide-toggle::before{content:"+";transform:translateY(-1px)}
#travelGuide.guide-editorial-v3 details[open] .guide-toggle::before{content:"−"}
#travelGuide.guide-editorial-v3 .guide-rich-text{
  margin:0 16px 16px;
  padding:18px 20px;
  border-radius:15px;
  background:#f5f7f2;
  color:#344c43;
  line-height:1.65;
}
#travelGuide.guide-editorial-v3 .guide-rich-text p{margin:0 0 12px;color:inherit}
#travelGuide.guide-editorial-v3 .guide-rich-text p:last-child{margin-bottom:0}
#travelGuide.guide-editorial-v3 .guide-rich-text strong{color:#173c32}
#travelGuide.guide-editorial-v3 details.guide-card.featured{
  border-color:rgba(55,104,78,.13);
}
#travelGuide.guide-editorial-v3 details.guide-card.featured .guide-rich-text{
  background:linear-gradient(145deg,#f0f5ee,#f8f8f3);
}
@media (max-width:900px){
  #travelGuide.guide-editorial-v3 .home-section-heading{
    grid-template-columns:1fr;gap:22px;align-items:start;
  }
  #travelGuide.guide-editorial-v3::before{width:520px;right:-210px;top:-90px;opacity:.075}
}
@media (max-width:760px){
  #travelGuide.guide-editorial-v3{padding:48px 16px}
  #travelGuide.guide-editorial-v3 .guide-layout{grid-template-columns:1fr}
  #travelGuide.guide-editorial-v3 .guide-column{gap:12px}
  #travelGuide.guide-editorial-v3 details.guide-card summary{
    grid-template-columns:46px minmax(0,1fr) 28px;gap:12px;min-height:76px;padding:11px 13px;
  }
  #travelGuide.guide-editorial-v3 .guide-icon{width:46px;height:46px;font-size:1.25rem}
}

/* =========================================================
   B2-R9 — finition FAQ : Monstera + typographie éditoriale
   ========================================================= */
#travelGuide.guide-editorial-v3::before{
  top:-105px;
  right:-115px;
  width:min(47vw,620px);
  aspect-ratio:620/720;
  opacity:.13;
  transform:rotate(8deg);
  background:url("assets/faq-monstera.svg") center/contain no-repeat;
  clip-path:none;
  filter:none;
}
#travelGuide.guide-editorial-v3 .guide-question{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:700;
  letter-spacing:-.012em;
}
#travelGuide.guide-editorial-v3 .guide-rich-text{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.03rem;
  font-style:italic;
  line-height:1.62;
  letter-spacing:-.008em;
}
#travelGuide.guide-editorial-v3 .guide-rich-text .faq-benefits{
  list-style:none;
  padding:0;
  margin:13px 0 0;
}
#travelGuide.guide-editorial-v3 .guide-rich-text .faq-benefits li{
  position:relative;
  padding-left:25px;
  margin:7px 0;
}
#travelGuide.guide-editorial-v3 .guide-rich-text .faq-benefits li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  color:#356847;
  font-family:Arial,sans-serif;
  font-style:normal;
  font-weight:800;
}
@media (max-width:900px){
  #travelGuide.guide-editorial-v3::before{
    width:500px;
    right:-210px;
    top:-120px;
    opacity:.085;
  }
}

/* =========================================================
   B2-R10 — visibilité du CTA "Préparer ma demande" uniquement
   ========================================================= */
#startBooking.primary-light{
  background:linear-gradient(180deg,#f6dfaa 0%,#efc978 100%);
  color:#16382d;
  border:1px solid rgba(255,255,255,.58);
  box-shadow:
    0 10px 24px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.52);
  font-weight:800;
  text-shadow:0 1px 0 rgba(255,255,255,.20);
}
#startBooking.primary-light:hover{
  background:linear-gradient(180deg,#ffe9b8 0%,#f4d184 100%);
  color:#102f26;
  transform:translateY(-1px);
  box-shadow:
    0 13px 28px rgba(0,0,0,.26),
    inset 0 1px 0 rgba(255,255,255,.60);
}
#startBooking.primary-light:focus-visible{
  outline:3px solid rgba(255,225,156,.75);
  outline-offset:3px;
}

/* =========================================================
   B2-R10 lot 08 — statistiques anonymisées du parcours public
   ========================================================= */
.statistics-panel{
  max-width:1180px;
  margin:0 auto 3rem;
  padding:0 1.2rem;
  font-family:var(--font-ui);
}
.statistics-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1.5rem;
  padding:1.4rem 1.5rem;
  margin-bottom:1rem;
  border:1px solid rgba(31,80,58,.14);
  border-radius:22px;
  background:linear-gradient(135deg,#f7fbf8 0%,#edf5ef 100%);
}
.statistics-heading h2{margin:.18rem 0 .35rem;font-family:var(--font-display);font-size:clamp(1.9rem,3vw,2.7rem)}
.statistics-heading p{margin:0;color:var(--muted);max-width:680px;line-height:1.5}
.analytics-period-switch{
  display:flex;
  flex:0 0 auto;
  gap:.35rem;
  padding:.3rem;
  border:1px solid rgba(31,80,58,.16);
  border-radius:999px;
  background:#fff;
}
.analytics-period-switch button{
  border:0;
  border-radius:999px;
  padding:.7rem .9rem;
  background:transparent;
  color:var(--ink);
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
}
.analytics-period-switch button.active{background:var(--green-dark,#174d36);color:#fff;box-shadow:0 5px 16px rgba(23,77,54,.2)}
.analytics-summary-note{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:.9rem 1rem;
  margin-bottom:1rem;
  border-left:4px solid #497c5e;
  border-radius:10px;
  background:#f4f8f5;
  color:#53665b;
  font-size:.91rem;
}
.analytics-summary-note strong{color:#1b4532}

/* Lot 18 — accès privés discrets et statistiques longues. */
.footer-links a{appearance:none;border:0;background:none;color:#e2e9e3;font:inherit;font-size:.8rem;font-weight:480;text-decoration:none;cursor:pointer;padding:.25rem 0}
.footer-links a:hover,.footer-links button:hover{text-decoration:underline}
.analytics-period-switch{flex-wrap:wrap;justify-content:flex-end}
.analytics-period-switch button{white-space:nowrap}
.analytics-acquisition-section{margin-top:1rem;padding:1rem;border:1px solid rgba(30,74,54,.14);border-radius:18px;background:rgba(255,255,255,.72)}
.analytics-acquisition-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:.8rem}
.analytics-acquisition-card{margin:0}
.analytics-acquisition-list{display:grid;gap:.75rem;margin-top:.8rem}
.analytics-acquisition-row{display:grid;gap:.35rem}
.analytics-acquisition-copy{display:flex;justify-content:space-between;gap:.8rem;font-size:.88rem}
.analytics-acquisition-copy span{color:#667085}
.analytics-acquisition-bar{height:7px;border-radius:999px;background:#eef1ed;overflow:hidden}
.analytics-acquisition-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#315f4b,#8cab94)}
@media(max-width:900px){.analytics-acquisition-grid{grid-template-columns:1fr}}
.analytics-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem;margin-bottom:1rem}
.analytics-kpi-card{
  min-height:132px;
  padding:1rem;
  border:1px solid #dfe8e2;
  border-radius:18px;
  background:#fff;
  box-shadow:0 8px 24px rgba(24,57,42,.05);
}
.analytics-kpi-label{display:block;min-height:2.4em;color:#56665d;font-size:.85rem;font-weight:750;line-height:1.2}
.analytics-kpi-card strong{display:block;margin:.35rem 0 .45rem;color:#173f2d;font-size:clamp(1.6rem,2.5vw,2.25rem);line-height:1}
.analytics-delta{display:inline-flex;padding:.28rem .48rem;border-radius:999px;font-size:.74rem;font-weight:800}
.analytics-delta.up{background:#e6f4e9;color:#25613d}
.analytics-delta.down{background:#faece8;color:#9a4938}
.analytics-delta.neutral{background:#edf0ee;color:#68756e}
.analytics-insight-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:1rem;margin-bottom:1rem}
.analytics-card{padding:1.2rem;border:1px solid #dfe8e2;border-radius:20px;background:#fff;box-shadow:0 8px 24px rgba(24,57,42,.045)}
.analytics-card-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.analytics-card-heading>div{font-family:var(--font-display);font-size:1.45rem;font-weight:800}
.analytics-card-heading small{color:var(--muted);text-align:right;line-height:1.3}
.analytics-funnel{display:grid;gap:.75rem}
.analytics-funnel-row{display:grid;grid-template-columns:minmax(126px,.9fr) minmax(130px,2fr) 42px;align-items:center;gap:.7rem}
.analytics-funnel-label{font-size:.84rem;font-weight:750;color:#40564a}
.analytics-funnel-track{height:12px;overflow:hidden;border-radius:999px;background:#edf2ee}
.analytics-funnel-fill{display:block;height:100%;border-radius:inherit;background:#316b4c;transition:width .3s ease}
.analytics-funnel-fill.stage-2{background:#467b57}.analytics-funnel-fill.stage-3{background:#64865b}.analytics-funnel-fill.stage-4{background:#8c955f}.analytics-funnel-fill.stage-5{background:#b29e63}.analytics-funnel-fill.stage-6{background:#c48a51}
.analytics-funnel-row>strong{text-align:right;color:#173f2d}
.analytics-abandon-list{display:grid;gap:.85rem}
.analytics-abandon-row>div:first-child{display:flex;justify-content:space-between;gap:.7rem;margin-bottom:.35rem;font-size:.84rem}
.analytics-abandon-row span{color:var(--muted)}
.analytics-abandon-bar{height:7px;overflow:hidden;border-radius:999px;background:#f2ece8}
.analytics-abandon-bar span{display:block;height:100%;border-radius:inherit;background:#c67854}
.analytics-table-wrap{overflow:auto;border:1px solid #e4ebe6;border-radius:14px}
.analytics-vehicle-table{width:100%;border-collapse:collapse;min-width:620px}
.analytics-vehicle-table th,.analytics-vehicle-table td{padding:.82rem .9rem;border-bottom:1px solid #e8eee9;text-align:right;font-variant-numeric:tabular-nums}
.analytics-vehicle-table thead th{background:#f4f8f5;color:#506258;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}
.analytics-vehicle-table th:first-child{text-align:left}
.analytics-vehicle-table tbody th{color:#253e31;font-size:.9rem}
.analytics-vehicle-table tbody tr:last-child th,.analytics-vehicle-table tbody tr:last-child td{border-bottom:0}
.analytics-state{display:grid;justify-items:center;gap:.45rem;padding:3rem 1.2rem;border:1px dashed #b9cbbf;border-radius:20px;background:#fafcfb;text-align:center}
.analytics-state strong{font-family:var(--font-display);font-size:1.45rem}
.analytics-state p{margin:0;max-width:650px;color:var(--muted);line-height:1.5}
.analytics-state button{margin-top:.6rem}
@media(max-width:980px){
  .statistics-heading{align-items:flex-start;flex-direction:column}
  .analytics-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .analytics-kpi-card:last-child{grid-column:1/-1}
  .analytics-insight-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .backoffice-tabs{overflow-x:auto;padding-bottom:.4rem}
  .statistics-heading{padding:1.15rem}
  .analytics-period-switch{width:100%;border-radius:16px}
  .analytics-period-switch button{flex:1;padding:.65rem .4rem;font-size:.8rem}
  .analytics-summary-note{flex-direction:column}
  .analytics-kpi-grid{grid-template-columns:1fr 1fr}
  .analytics-kpi-card{min-height:118px}
  .analytics-funnel-row{grid-template-columns:105px minmax(90px,1fr) 36px;gap:.45rem}
  .analytics-card-heading{align-items:flex-start;flex-direction:column}
  .analytics-card-heading small{text-align:left}
}
.admin-booking-correction{margin:1.25rem 0;padding:1rem;border:1px solid rgba(14,61,54,.22);border-radius:18px;background:#f7faf8}.admin-booking-correction>summary{cursor:pointer;font-weight:800;color:#123f38}.admin-booking-correction-form{display:grid;gap:1rem;margin-top:1rem}.admin-correction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.admin-booking-correction-form label{display:grid;gap:.35rem;font-weight:700}.admin-booking-correction-form input,.admin-booking-correction-form select,.admin-booking-correction-form textarea{width:100%;font:inherit}.admin-correction-notifications{display:flex;flex-wrap:wrap;gap:1rem}.admin-correction-notifications label{display:flex;align-items:center;gap:.45rem}.admin-correction-notifications input{width:auto}.admin-correction-warning{margin:0;padding:.75rem;border-left:4px solid #b88842;background:#fff8e9}.tracking-flight-locked-notice{margin:.8rem 0 0;padding:.75rem 1rem;border:1px solid rgba(14,61,54,.2);border-radius:12px;background:#f1f7f4;color:#174c43;font-weight:700}@media(max-width:760px){.admin-correction-grid{grid-template-columns:1fr}}

/* V7 — boîte de réception contact réservée à Johann */
.contact-inbox-settings{display:grid;grid-template-columns:minmax(240px,1fr) auto minmax(240px,.8fr) auto;gap:14px;align-items:end;margin:20px 0;padding:18px;border:1px solid #dfe7e2;border-radius:16px;background:#f8faf9}.contact-inbox-settings>div small,.contact-inbox-settings label span{display:block;margin-top:4px;color:#667085}.contact-inbox-settings input[type=email]{width:100%}.contact-inbox-settings p{grid-column:1/-1;margin:0;color:#246b45;font-weight:700}.contact-inbox-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:14px 0}.contact-inbox-toolbar span{color:#667085}.contact-inbox-root{display:grid;gap:8px}.contact-inbox-row{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(280px,1.6fr) auto auto;gap:16px;align-items:center;width:100%;padding:15px 17px;border:1px solid #dfe5e1;border-radius:14px;background:#fff;color:inherit;text-align:left;cursor:pointer}.contact-inbox-row.is-unread{border-left:5px solid #246b45;background:#f4fbf6}.contact-inbox-row small{display:block;margin-top:4px;color:#667085;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-inbox-row time{white-space:nowrap;color:#667085}.contact-inbox-row i{font-style:normal}.messages-secondary-heading{margin-top:30px;padding-top:24px;border-top:1px solid #dfe5e1}.messages-secondary-heading h3{margin:.2rem 0}.contact-message-dialog{width:min(760px,94vw);max-height:88vh;border:0;border-radius:22px;padding:0;box-shadow:0 24px 80px rgba(0,0,0,.25)}.contact-message-dialog::backdrop{background:rgba(12,28,20,.62);backdrop-filter:blur(3px)}#contactMessageContent{padding:30px}.contact-message-head h2{margin:.25rem 0 1rem}.contact-message-head dl{display:grid;gap:7px;padding:14px;border-radius:12px;background:#f5f7f6}.contact-message-head dl div{display:grid;grid-template-columns:70px 1fr;gap:10px}.contact-message-head dt{font-weight:800}.contact-message-head dd{margin:0;overflow-wrap:anywhere}.contact-message-body{margin:20px 0;padding:18px;border:1px solid #e4e7ec;border-radius:14px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.contact-message-attachments,.contact-message-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.contact-message-attachments{margin:15px 0}.contact-message-attachments strong{width:100%}.contact-message-actions{margin-top:22px}
@media(max-width:820px){.contact-inbox-settings{grid-template-columns:1fr}.contact-inbox-settings p{grid-column:auto}.contact-inbox-row{grid-template-columns:1fr}.contact-inbox-row time{justify-self:start}#contactMessageContent{padding:24px 18px}.contact-message-actions>*{width:100%;text-align:center}}
/* AmiGO V18b: credentials and inline partner photo gallery */
.amigo-code-help{font-weight:600}.amigo-credentials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.amigo-credentials>div{padding:12px;border:1px solid rgba(16,47,39,.18);border-radius:12px;background:#fff}.amigo-credentials small{display:block;margin-bottom:6px;color:#435a54}.amigo-credentials code{display:block;font-size:1.15rem;letter-spacing:.04em;overflow-wrap:anywhere}.amigo-credentials .is-code{background:#183f36;color:#fff}.amigo-credentials .is-code small{color:#f4eadc}.amigo-credentials .is-code code{font-size:2rem;letter-spacing:.18em;color:#fff}.amigo-photo-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.amigo-photo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.amigo-photo-gallery figure{margin:0;overflow:hidden;border:1px solid rgba(16,47,39,.16);border-radius:14px;background:#fff}.amigo-photo-gallery figure>a{display:block;aspect-ratio:4/3;background:#e8eee9}.amigo-photo-gallery img{display:block;width:100%;height:100%;object-fit:cover}.amigo-photo-gallery figcaption{display:flex;justify-content:space-between;gap:8px;padding:9px 10px;font-size:.82rem}.amigo-photo-gallery figcaption a{font-weight:800}@media(max-width:720px){.amigo-credentials{grid-template-columns:1fr}.amigo-photo-heading{align-items:stretch;flex-direction:column}.amigo-photo-heading button{width:100%}}

/* V18f — refus diplomatique et relance commerciale */
.decline-proposal-dialog{width:min(680px,calc(100% - 28px));max-height:90vh;overflow:auto;border:0;border-radius:24px;padding:0;box-shadow:0 24px 80px rgba(9,38,31,.3)}.decline-proposal-dialog::backdrop{background:rgba(10,31,25,.62);backdrop-filter:blur(3px)}.decline-proposal-dialog form{position:relative;display:grid;gap:1rem;padding:30px;background:#fffdf8}.decline-proposal-dialog h2{margin:0;color:#173f35;font-family:var(--font-display);font-size:clamp(1.6rem,4vw,2.25rem)}.decline-proposal-dialog p{margin:0;line-height:1.55}.decline-proposal-dialog fieldset{display:grid;gap:.55rem;margin:0;padding:0;border:0}.decline-proposal-dialog fieldset label{display:flex;align-items:flex-start;gap:.65rem;padding:.8rem .9rem;border:1px solid #dfe8e2;border-radius:13px;background:#fff;cursor:pointer}.decline-proposal-dialog fieldset input{margin-top:.2rem}.decline-proposal-details{display:grid;gap:.4rem;font-weight:750}.decline-proposal-details textarea{width:100%;resize:vertical;font:inherit}.decline-proposal-actions{display:flex;flex-wrap:wrap;gap:.7rem}.decline-proposal-actions .text-action{margin-left:auto}.client-alternative-request{margin-bottom:1rem;padding:1rem;border:1px solid #d8c38d;border-left:5px solid #b48632;border-radius:15px;background:#fff9e9}.client-alternative-request h3{margin:.2rem 0 .55rem}.client-alternative-request p{white-space:pre-wrap}@media(max-width:620px){.decline-proposal-dialog form{padding:25px 18px}.decline-proposal-actions>*{width:100%;margin-left:0!important}}

/* V18g — réponse client et relance commerciale sans ambiguïté */
.agency-activity-panel{padding:0;overflow:hidden}.agency-activity-accordion>summary{padding:20px;list-style:none;cursor:pointer}.agency-activity-accordion>summary::-webkit-details-marker{display:none}.agency-activity-chevron{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:50%;background:#e8f3ed;color:#17634f;font-size:1.6rem;font-weight:900;transition:transform .2s ease}.agency-activity-accordion[open] .agency-activity-chevron{transform:rotate(180deg)}.agency-activity-body{padding:0 20px 20px;border-top:1px solid rgba(22,83,69,.12)}.agency-activity-toolbar{display:flex;justify-content:flex-end;padding-top:14px}
#resultsCount{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 16px;border:2px solid #d69f21;border-radius:999px;background:#fff3be;color:#6d4a00;font-size:1rem;font-weight:900;box-shadow:0 5px 14px rgba(174,123,12,.18)}
.client-response-choice{border:1px solid #dfbf61!important;background:#fff4c8!important;color:#5b4300!important;border-radius:999px!important;padding:.75rem 1.05rem!important;font-weight:850!important;text-decoration:none!important;box-shadow:0 5px 14px rgba(171,124,22,.14)}.client-response-choice:hover{background:#ffeaa0!important;border-color:#c6921a!important}
.client-alternative-notice{margin:1rem 0;padding:1.1rem 1.2rem;border:2px solid #d9ac36;border-left:7px solid #b78113;border-radius:18px;background:linear-gradient(135deg,#fff8dc,#fff1b6);box-shadow:0 10px 26px rgba(127,91,17,.13)}.client-alternative-notice h3{margin:.15rem 0 .5rem;color:#624500}.client-alternative-notice>p{line-height:1.5}.client-alternative-reason{display:grid;gap:.2rem;margin:.8rem 0 0;padding:.7rem .85rem;border-radius:12px;background:#fff}.client-alternative-reason strong{font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:#80611a}.timeline-item.is-attention{margin:.25rem 0;padding:.65rem .8rem;border:1px solid #dfbd5b;border-radius:13px;background:#fff3bf}.timeline-item.is-attention .timeline-dot{background:#d7a329!important;box-shadow:0 0 0 5px rgba(215,163,41,.16)}
.status-badge.status-alternative{border:1px solid #d6a62d!important;background:#fff0b7!important;color:#654700!important;font-weight:900}.client-alternative-request{padding:1.15rem;border-width:2px;border-left-width:7px;border-color:#d5a93b;background:linear-gradient(135deg,#fff9df,#ffefad);box-shadow:0 12px 30px rgba(121,87,20,.14)}.client-alternative-request-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.alternative-request-badge{padding:.4rem .7rem;border-radius:999px;background:#fff;color:#6c4c00;font-size:.78rem;font-weight:900;white-space:nowrap}.alternative-request-facts{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:.9rem 0}.alternative-request-facts p{display:grid;gap:.25rem;margin:0;padding:.75rem;border-radius:12px;background:#fff}.alternative-request-facts strong{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:#7b5b12}.alternative-request-note{margin:.75rem 0}.alternative-request-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
@media(max-width:650px){.agency-activity-accordion>summary{padding:17px}.agency-activity-body{padding:0 17px 17px}.alternative-request-facts{grid-template-columns:1fr}.alternative-request-actions>*{width:100%}.client-alternative-request-head{display:block}.alternative-request-badge{display:inline-flex;margin-top:.5rem}}
.partner-alternative-request{margin:18px 0;padding:20px;border:2px solid #c99b2f;border-radius:18px;background:#fff4bf;color:#27362f;box-shadow:0 10px 24px rgba(122,91,18,.14)}
.partner-alternative-request h3{margin:4px 0 12px;font-size:1.25rem}
.partner-alternative-request>p:last-child{margin:12px 0 0;line-height:1.5}
.partner-alternative-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.partner-alternative-grid p{margin:0;padding:12px;border-radius:12px;background:rgba(255,255,255,.68)}
.partner-alternative-grid small,.partner-alternative-grid strong{display:block}
.partner-alternative-grid small{margin-bottom:4px;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem}
@media(max-width:680px){.partner-alternative-grid{grid-template-columns:1fr}}

/* R6 — statistiques métier réelles, séparées de l'audience consentie */
.statistics-subsection{margin-top:1rem;padding:1.15rem;border:1px solid rgba(31,80,58,.14);border-radius:22px;background:rgba(255,255,255,.72)}
.statistics-audience-subsection{margin-top:1.25rem;background:rgba(247,250,248,.76)}
.statistics-subsection-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.statistics-subsection-heading h3{margin:.12rem 0 0;font-family:var(--font-display);font-size:clamp(1.45rem,2.4vw,2rem)}
.statistics-subsection-heading .eyebrow{margin:0}
.statistics-real-data-chip{display:inline-flex;padding:.48rem .72rem;border-radius:999px;background:#dff1e5;color:#1f6541;font-size:.78rem;font-weight:850;white-space:nowrap}
.business-kpi-grid-real{grid-template-columns:repeat(3,minmax(0,1fr))}
.business-kpi-card-real{border-top:4px solid #2f6b4f}
.business-decision-note{margin:-.2rem 0 1rem;padding:.75rem 1rem;border-radius:12px;background:#f7f2e6;color:#5a594d;font-size:.88rem;font-weight:750}
.business-overview-grid{grid-template-columns:minmax(310px,.8fr) minmax(0,1.2fr)}
.business-breakdowns-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.business-series-table th:first-child{min-width:150px}
.business-series-table tbody th{display:grid;gap:.42rem}
.business-series-track{display:block;width:100%;height:5px;overflow:hidden;border-radius:999px;background:#edf2ee}
.business-series-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f6b4f,#b49a61)}
.business-breakdown-list{display:grid;gap:.9rem}
.business-breakdown-row{display:grid;gap:.4rem}
.business-breakdown-copy{display:flex;justify-content:space-between;gap:.8rem;font-size:.86rem}
.business-breakdown-copy span{color:var(--muted);text-align:right}
.business-breakdown-track{height:7px;overflow:hidden;border-radius:999px;background:#edf2ee}
.business-breakdown-track i{display:block;height:100%;border-radius:inherit;background:#4e8063}
.business-duration-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem}
.business-duration-chip{display:grid;gap:.25rem;padding:.9rem;border:1px solid #dfe8e2;border-radius:14px;background:#f8fbf9;text-align:center}
.business-duration-chip strong{font-size:1.5rem;color:#204f3a}.business-duration-chip span{font-size:.8rem;color:var(--muted)}
@media(max-width:980px){.business-overview-grid,.business-breakdowns-grid{grid-template-columns:1fr}.business-duration-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.statistics-subsection{padding:.85rem}.statistics-subsection-heading{align-items:flex-start;flex-direction:column}.business-kpi-grid-real{grid-template-columns:1fr 1fr}.business-duration-list{grid-template-columns:1fr 1fr}.business-breakdown-copy{flex-direction:column}.business-breakdown-copy span{text-align:left}}

/* R6.2 — sélection compacte et scalable des chauffeurs AmiGO */
.amigo-driver-toolbar{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:0 0 8px}
.amigo-driver-search{display:grid;flex:1 1 280px;max-width:430px;gap:5px;color:#294f44;font-size:.84rem;font-weight:800}
.amigo-driver-search input{width:100%;min-height:42px;padding:9px 12px;border:1px solid #bdcdc4;border-radius:12px;background:#fff;color:#153d33;font-size:1rem}
.amigo-driver-search input:focus{outline:3px solid rgba(23,98,77,.18);border-color:#17624d}
.amigo-driver-filters{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}
.amigo-driver-filters button{min-height:40px;padding:8px 12px!important;font-size:.84rem}
.amigo-driver-filters button.active{border-color:#17624d!important;background:#17624d!important;color:#fff!important}
.amigo-driver-result-count{min-height:1.2em;margin:0 0 8px;color:#607269;font-size:.78rem}
.amigo-driver-grid{max-height:204px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;align-content:start;padding:2px 5px 2px 2px}
.amigo-driver-side{display:grid;justify-items:end;gap:7px}
.amigo-driver-availability{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:999px;font-size:.7rem;font-weight:850;white-space:nowrap}
.amigo-driver-availability.is-available{background:#e2f2e7;color:#17613f}
.amigo-driver-availability.is-busy{background:#fff0dc;color:#8a4d0a}
.amigo-driver-availability.is-pending{background:#edf0ee;color:#56675f}
.amigo-driver-card.is-busy:not(.is-assigned){border-color:#ead2b4!important}
.amigo-driver-card.is-available:not(.is-assigned){border-color:#c9dfd1!important}
@media(max-width:720px){.amigo-driver-toolbar{display:grid;align-items:stretch}.amigo-driver-search{max-width:none}.amigo-driver-filters{display:grid;grid-template-columns:1fr 1fr 1fr}.amigo-driver-filters button{padding:8px 5px!important}.amigo-driver-grid{max-height:204px}.amigo-driver-card{gap:9px}.amigo-driver-side{gap:5px}.amigo-driver-availability{padding:4px 6px;font-size:.66rem}.amigo-driver-action{padding:6px 8px}}
@media(max-width:460px){.amigo-driver-filters{grid-template-columns:1fr}.amigo-driver-filters button{width:100%}.amigo-driver-card{grid-template-columns:40px minmax(0,1fr) auto}.amigo-driver-avatar{width:40px;height:40px}.amigo-driver-copy strong{font-size:.94rem}.amigo-driver-copy em{font-size:.68rem}}
/* R6.22 production — vérification Turnstile des formulaires publics */
.rac-turnstile {
  width: 100%;
  max-width: 420px;
  min-height: 65px;
  margin: 1rem auto;
}
