#go-thermal-planner-v2[hidden] { display: none !important; }

.thermal-field-help {
  display: block;
  margin: 6px 2px 0;
  color: #667a72;
  font-size: 11px;
  line-height: 1.45;
}

.thermal-trip-summary {
  margin-top: 10px;
  padding: 12px 14px;
  border: 1px solid #c8e3d6;
  border-radius: 13px;
  background: #effaf5;
  color: #1b4d3e;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
}

.go-thermal-planner {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid rgba(12, 87, 65, .16);
  border-radius: 22px;
  background: linear-gradient(180deg, #f9fffc 0%, #f2faf6 100%);
  box-shadow: 0 16px 40px rgba(13, 72, 55, .08);
  color: #13372d;
}

.go-thermal-planner-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.go-thermal-kicker,
.go-thermal-recap-title span {
  display: block;
  margin-bottom: 5px;
  color: #08744e;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
}

.go-thermal-planner h3 {
  margin: 0;
  font-size: 20px;
  line-height: 1.18;
}

.go-thermal-planner-head p {
  max-width: 520px;
  margin: 7px 0 0;
  color: #587067;
  font-size: 13px;
  line-height: 1.45;
}

.go-thermal-live {
  flex: 0 0 auto;
  padding: 8px 11px;
  border-radius: 999px;
  background: #d9f7e8;
  color: #08633f;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.go-thermal-presets {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 16px 0 12px;
}

.go-thermal-presets button,
.go-thermal-recap-actions button {
  min-height: 44px;
  border: 1px solid #bfddd0;
  border-radius: 13px;
  background: #fff;
  color: #31574b;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.go-thermal-presets button.is-active {
  border-color: #08744e;
  background: #08744e;
  color: #fff;
  box-shadow: 0 8px 18px rgba(8, 116, 78, .18);
}

.go-thermal-planner button {
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease, background-color .14s ease;
}

.go-thermal-planner button:hover:not(:disabled) {
  transform: translateY(-1px);
}

.go-thermal-planner button:focus-visible,
.go-thermal-exception-fields input:focus-visible {
  outline: 3px solid rgba(255, 186, 53, .45);
  outline-offset: 2px;
}

.go-thermal-dates {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  max-height: 286px;
  overflow: auto;
  padding: 2px 3px 6px;
  scrollbar-width: thin;
}

.go-thermal-date-card {
  display: grid;
  grid-template-rows: 1fr auto;
  min-width: 0;
  overflow: hidden;
  border: 1px solid #d5e6de;
  border-radius: 14px;
  background: #fff;
  transition: border-color .16s ease, box-shadow .16s ease;
}

.go-thermal-date-card.has-exception {
  border-color: #e7a75d;
  box-shadow: 0 0 0 3px rgba(217, 130, 38, .10);
}

.go-thermal-date {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 58px;
  padding: 10px 11px;
  border: 0;
  border-radius: 0;
  background: #fff;
  color: #5d7069;
  cursor: pointer;
  text-align: left;
}

.go-thermal-date-edit {
  min-height: 32px;
  padding: 6px 9px 8px;
  border: 0;
  border-top: 1px solid #e2eee8;
  background: #f7fbf9;
  color: #0d6a55;
  font: inherit;
  font-size: 10px;
  font-weight: 900;
  cursor: pointer;
}

.go-thermal-date-edit:disabled {
  color: #9aa9a3;
  cursor: default;
}

.go-thermal-date-card.has-exception .go-thermal-date-edit {
  border-top-color: #f2d6b7;
  background: #fff6e8;
  color: #9a5416;
}

.go-thermal-date strong {
  color: #224a3d;
  font-size: 13px;
  text-transform: capitalize;
}

.go-thermal-date span { margin-top: 4px; font-size: 11px; font-weight: 800; }

.go-thermal-date.is-active {
  background: #e7f9ef;
}

.go-thermal-date.is-active span { color: #08744e; }
.go-thermal-empty { margin: 12px 0; color: #65766f; font-size: 13px; }

.go-thermal-exception-editor {
  margin-top: 12px;
  padding: 15px;
  border: 1px solid #edc493;
  border-radius: 16px;
  background: #fff9ef;
  box-shadow: 0 10px 26px rgba(114, 70, 21, .08);
}

.go-thermal-exception-editor[hidden] { display: none !important; }

.go-thermal-exception-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.go-thermal-exception-head strong { color: #6e3e0e; font-size: 14px; }

.go-thermal-exception-head button {
  width: 34px;
  height: 34px;
  border: 1px solid #e6c79e;
  border-radius: 50%;
  background: #fff;
  color: #6e3e0e;
  font-size: 21px;
  line-height: 1;
  cursor: pointer;
}

.go-thermal-exception-editor > p {
  margin: 8px 0 12px;
  color: #75624e;
  font-size: 12px;
  line-height: 1.45;
}

.go-thermal-exception-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.go-thermal-exception-fields label {
  display: grid;
  gap: 6px;
  color: #554638;
  font-size: 11px;
  font-weight: 800;
}

.go-thermal-exception-fields label[hidden] { display: none !important; }

.go-thermal-exception-fields input {
  width: 100%;
  min-height: 44px;
  box-sizing: border-box;
  border: 1px solid #dcb783;
  border-radius: 12px;
  background: #fff;
  color: #283e35;
  font: inherit;
  padding: 9px 11px;
}

.go-thermal-exception-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
}

.go-thermal-exception-actions button {
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid #dcb783;
  border-radius: 11px;
  background: #fff;
  color: #7d4a17;
  font: inherit;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}

.go-thermal-exception-actions button:last-child {
  border-color: #0d6a55;
  background: #0d6a55;
  color: #fff;
}

.go-thermal-recap {
  margin-top: 16px;
  padding: 16px;
  border-radius: 18px;
  background: #073f31;
  color: #fff;
  box-shadow: 0 16px 34px rgba(7, 63, 49, .18);
}

.go-thermal-recap-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255,255,255,.16);
}

.go-thermal-recap-title span { margin: 0; color: #75e1ae; }
.go-thermal-recap-title strong { font-size: 13px; text-align: right; }

.go-thermal-recap-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 14px 0;
}

.go-thermal-price {
  padding: 12px;
  border: 1px solid rgba(117, 225, 174, .28);
  border-radius: 14px;
  background: rgba(117, 225, 174, .08);
}

.go-thermal-price strong { color: #8af0bc; font-size: 19px; }

.go-thermal-recap-grid div { min-width: 0; }
.go-thermal-recap-grid span { display: block; color: #9fc4b6; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.go-thermal-recap-grid strong { display: block; margin-top: 5px; font-size: 13px; line-height: 1.3; overflow-wrap: anywhere; }
.go-thermal-recap-grid small { display: block; margin-top: 4px; color: #c8ddd5; font-size: 11px; line-height: 1.35; }

.go-thermal-recap-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.16);
}

.go-thermal-recap-actions button {
  flex: 1 1 190px;
  padding: 0 15px;
  border-color: #75e1ae;
  background: #75e1ae;
  color: #073f31;
}

.go-thermal-recap-actions small { flex: 1 0 100%; color: #bdd4cb; line-height: 1.35; }

@media (max-width: 640px) {
  .go-thermal-planner { margin-top: 14px; padding: 14px; border-radius: 18px; }
  .go-thermal-planner-head { display: block; }
  .go-thermal-live { display: inline-flex; margin-top: 10px; }
  .go-thermal-presets { grid-template-columns: 1fr; overflow: visible; padding-bottom: 0; }
  .go-thermal-presets button { width: 100%; padding: 9px 12px; }
  .go-thermal-dates { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 320px; }
  .go-thermal-exception-fields { grid-template-columns: 1fr; }
  .go-thermal-exception-actions { flex-direction: column-reverse; }
  .go-thermal-exception-actions button { width: 100%; }
  .go-thermal-recap-title { display: block; }
  .go-thermal-recap-title strong { display: block; margin-top: 5px; text-align: left; }
  .go-thermal-recap-grid { grid-template-columns: 1fr; gap: 11px; }
  .go-thermal-recap-actions { align-items: stretch; flex-direction: column; }
  .go-thermal-recap-actions button {
    width: 100%;
    min-height: 48px;
    flex: 0 0 auto;
    padding: 10px 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .go-thermal-planner button {
    transition: none;
  }

  .go-thermal-planner button:hover:not(:disabled) {
    transform: none;
  }
}

/*
 * Cure thermale — stabilité multi-écrans.
 *
 * Le formulaire est une bottom-sheet sur téléphone, une fenêtre centrée sur
 * tablette et un espace de travail plus large sur ordinateur. Les min-width:0
 * empêchent notamment les champs date/heure iOS et les libellés longs Android
 * d'élargir la fenêtre au-delà de l'écran.
 */
.thermal-overlay,
.thermal-overlay .thermal-flow,
.thermal-overlay .thermal-flow *,
.thermal-overlay .thermal-flow *::before,
.thermal-overlay .thermal-flow *::after {
  box-sizing: border-box;
}

.thermal-overlay .thermal-flow {
  overflow-x: hidden !important;
}

.thermal-flow .sb,
.thermal-flow .thermal-panel,
.thermal-flow .thermal-grid,
.thermal-flow .thermal-grid-address,
.thermal-flow .thermal-recurring,
.thermal-flow .fg,
.thermal-direction-options,
.thermal-direction-option,
.thermal-direction-copy,
.go-thermal-planner,
.go-thermal-recap,
.go-thermal-recap-grid,
.go-thermal-recap-grid > div {
  min-width: 0;
  max-width: 100%;
}

.thermal-flow .fg input,
.thermal-flow .fg select,
.thermal-flow .fg textarea {
  min-width: 0 !important;
  max-width: 100% !important;
}

.thermal-direction-copy strong,
.thermal-direction-copy small,
.go-thermal-planner button,
.go-thermal-recap strong,
.go-thermal-recap small {
  overflow-wrap: anywhere;
  word-break: normal;
}

.thermal-direction-option small {
  white-space: normal !important;
}

@media (max-width: 640px) {
  .thermal-overlay {
    width: 100vw !important;
    max-width: 100vw !important;
    left: 0 !important;
    right: 0 !important;
    transform: none !important;
    padding: 0 !important;
  }

  .thermal-overlay .thermal-flow {
    width: 100vw !important;
    max-width: 100vw !important;
    max-height: calc(100dvh - env(safe-area-inset-top, 0px)) !important;
    margin: 0 !important;
    padding-bottom: max(14px, env(safe-area-inset-bottom, 0px)) !important;
    border-radius: 22px 22px 0 0 !important;
  }

  .thermal-flow .thermal-header {
    grid-template-columns: 44px minmax(0, 1fr) 40px !important;
    gap: 8px !important;
    padding: 10px 12px !important;
  }

  .thermal-title-image {
    width: 42px !important;
    height: 42px !important;
  }

  .thermal-flow .thermal-header .sht {
    font-size: .92rem !important;
  }

  .thermal-header-subtitle {
    font-size: .62rem;
    overflow-wrap: anywhere;
  }

  .thermal-flow .thermal-header .shc {
    width: 38px !important;
    height: 38px !important;
  }

  .thermal-flow .sb {
    width: 100%;
    padding: 12px 12px 8px !important;
  }

  .thermal-flow .thermal-private-note {
    margin-bottom: 13px;
    padding: 10px;
  }

  .thermal-wizard {
    margin-right: 0;
    margin-bottom: 18px;
    margin-left: 0;
  }

  .thermal-wizard-step {
    min-width: 54px !important;
    font-size: .57rem;
  }

  .thermal-wizard-step span {
    width: 28px;
    height: 28px;
  }

  .thermal-flow .thermal-choice-row,
  .thermal-grid,
  .thermal-grid-address,
  .thermal-flow .thermal-recurring {
    width: 100%;
  }

  .thermal-direction-options {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .thermal-direction-option,
  .thermal-direction-option:last-child {
    grid-column: auto !important;
    width: 100% !important;
    min-height: 54px !important;
    justify-content: flex-start !important;
    padding: 9px 11px !important;
  }

  .thermal-direction-option strong {
    font-size: .78rem !important;
  }

  .thermal-direction-option small {
    font-size: .64rem !important;
    line-height: 1.3 !important;
  }

  .thermal-trip-summary {
    padding: 11px 12px;
  }

  .go-thermal-planner {
    width: 100%;
    margin-top: 12px;
    padding: 12px;
  }

  .go-thermal-planner h3 {
    font-size: 17px;
  }

  .go-thermal-dates {
    width: 100%;
  }

  .go-thermal-recap {
    padding: 13px;
  }

  .go-thermal-recap-actions {
    gap: 9px;
  }
}

@media (max-width: 360px) {
  .thermal-flow .thermal-choice-row {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .thermal-flow .thermal-choice {
    width: 100% !important;
    min-height: 58px !important;
    align-items: flex-start;
    padding: 10px 12px !important;
    text-align: left;
  }

  .thermal-flow .fg > label,
  .thermal-direction-label {
    font-size: .68rem;
    line-height: 1.35;
  }

  .go-thermal-dates {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 641px) and (max-width: 820px) {
  .thermal-overlay {
    width: 100vw !important;
    max-width: none !important;
    left: 0 !important;
    right: 0 !important;
    transform: none !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 16px !important;
  }

  .thermal-overlay .thermal-flow {
    width: min(680px, calc(100vw - 32px)) !important;
    max-width: 680px !important;
    max-height: calc(100dvh - 32px) !important;
    margin: auto !important;
    border-radius: 24px !important;
  }

  .thermal-flow .thermal-header {
    grid-template-columns: 54px minmax(0, 1fr) 42px;
  }
}
\n\n/* planning-accessibility-20260928 */\n.go-thermal-calendar-help { display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; margin:12px 0 16px; padding:12px 14px; border:1px solid #cfe2d8; border-radius:14px; background:#f7fbf8; color:#244d3a; font-size:13px; line-height:1.35; }\n.go-thermal-calendar-help strong { flex-basis:100%; font-size:14px; }\n.go-thermal-calendar-help span { display:inline-flex; align-items:center; gap:4px; }\n.go-thermal-date-card { min-height:78px; border:2px solid #d9e3de; border-radius:14px; padding:8px; background:#fff; transition:background .15s,border-color .15s,box-shadow .15s; }\n.go-thermal-date-card.is-selected { border-color:#28a66a; background:#f2fbf5; box-shadow:0 2px 8px rgba(20,90,54,.08); }\n.go-thermal-date-card.is-unselected { border-color:#d7dce0; background:#f5f6f7; }\n.go-thermal-date { min-height:48px; width:100%; text-align:left; border:0; border-radius:10px; padding:9px 10px; background:transparent; color:#173b2a; cursor:pointer; touch-action:manipulation; }\n.go-thermal-date span { display:block; margin-top:5px; font-size:12px; font-weight:700; }\n.go-thermal-date-card.is-unselected .go-thermal-date { color:#6f767b; }\n.go-thermal-date-edit { width:100%; min-height:46px; margin-top:4px; border:1px solid #bfd1c5; border-radius:10px; background:#fff; color:#176b43; font-size:13px; font-weight:700; cursor:pointer; touch-action:manipulation; }\n.go-thermal-date-edit:disabled { color:#8b9297; border-color:#e0e4e7; background:#f0f1f2; cursor:not-allowed; }\n.go-thermal-exception-fields input { min-height:54px; font-size:16px; }\n@media (max-width:700px) { .go-thermal-calendar-help { gap:9px; font-size:12px; } .go-thermal-date-card { min-height:88px; padding:9px; } .go-thermal-date { min-height:52px; padding:10px 11px; } .go-thermal-date-edit { min-height:52px; font-size:14px; } .thermal-flow .thermal-actions { display:flex; flex-direction:column; gap:10px; width:100%; padding:12px max(12px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); } .thermal-flow .thermal-actions > button { width:100%; min-height:60px; flex:1 1 auto; touch-action:manipulation; } }\n\n\n/* final accessibility overrides */\n#go-thermal-planner-v2 .go-thermal-calendar-help { display:flex !important; flex-wrap:wrap !important; gap:8px 14px !important; align-items:center !important; margin:12px 0 16px !important; padding:12px 14px !important; border:1px solid #cfe2d8 !important; border-radius:14px !important; background:#f7fbf8 !important; color:#244d3a !important; font-size:13px !important; line-height:1.35 !important; }\n#go-thermal-planner-v2 .go-thermal-calendar-help strong { flex-basis:100% !important; font-size:14px !important; }\n#go-thermal-planner-v2 .go-thermal-date-card { min-height:78px !important; border:2px solid #d9e3de !important; border-radius:14px !important; padding:8px !important; background:#fff !important; }\n#go-thermal-planner-v2 .go-thermal-date-card.is-selected { border-color:#28a66a !important; background:#f2fbf5 !important; box-shadow:0 2px 8px rgba(20,90,54,.08) !important; }\n#go-thermal-planner-v2 .go-thermal-date-card.is-unselected { border-color:#d7dce0 !important; background:#f5f6f7 !important; }\n#go-thermal-planner-v2 .go-thermal-date { min-height:48px !important; width:100% !important; padding:9px 10px !important; border:0 !important; background:transparent !important; }\n#go-thermal-planner-v2 .go-thermal-date-edit { width:100% !important; min-height:46px !important; margin-top:4px !important; border:1px solid #bfd1c5 !important; border-radius:10px !important; background:#fff !important; color:#176b43 !important; font-size:13px !important; font-weight:700 !important; }\n#go-thermal-planner-v2 .go-thermal-date-edit:disabled { color:#8b9297 !important; border-color:#e0e4e7 !important; background:#f0f1f2 !important; }\n@media (max-width:700px) { #go-thermal-planner-v2 .go-thermal-date-card { min-height:88px !important; padding:9px !important; } #go-thermal-planner-v2 .go-thermal-date { min-height:52px !important; padding:10px 11px !important; } #go-thermal-planner-v2 .go-thermal-date-edit { min-height:52px !important; font-size:14px !important; } }\n

/* final accessibility overrides real */
#go-thermal-planner-v2 .go-thermal-calendar-help { display:flex !important; flex-wrap:wrap !important; gap:8px 14px !important; align-items:center !important; margin:12px 0 16px !important; padding:12px 14px !important; border:1px solid #cfe2d8 !important; border-radius:14px !important; background:#f7fbf8 !important; color:#244d3a !important; font-size:13px !important; line-height:1.35 !important; }
#go-thermal-planner-v2 .go-thermal-calendar-help strong { flex-basis:100% !important; font-size:14px !important; }
#go-thermal-planner-v2 .go-thermal-date-card { min-height:78px !important; border:2px solid #d9e3de !important; border-radius:14px !important; padding:8px !important; background:#fff !important; }
#go-thermal-planner-v2 .go-thermal-date-card.is-selected { border-color:#28a66a !important; background:#f2fbf5 !important; box-shadow:0 2px 8px rgba(20,90,54,.08) !important; }
#go-thermal-planner-v2 .go-thermal-date-card.is-unselected { border-color:#d7dce0 !important; background:#f5f6f7 !important; }
#go-thermal-planner-v2 .go-thermal-date { min-height:48px !important; width:100% !important; padding:9px 10px !important; border:0 !important; background:transparent !important; }
#go-thermal-planner-v2 .go-thermal-date-edit { width:100% !important; min-height:46px !important; margin-top:4px !important; border:1px solid #bfd1c5 !important; border-radius:10px !important; background:#fff !important; color:#176b43 !important; font-size:13px !important; font-weight:700 !important; }
#go-thermal-planner-v2 .go-thermal-date-edit:disabled { color:#8b9297 !important; border-color:#e0e4e7 !important; background:#f0f1f2 !important; }
@media (max-width:700px) {
  #go-thermal-planner-v2 .go-thermal-date-card { min-height:88px !important; padding:9px !important; }
  #go-thermal-planner-v2 .go-thermal-date { min-height:52px !important; padding:10px 11px !important; }
  #go-thermal-planner-v2 .go-thermal-date-edit { min-height:52px !important; font-size:14px !important; }
}


/* mobile validation actions */
#ov-thermal .thermal-flow .thermal-actions { display:flex !important; flex-wrap:wrap !important; gap:10px !important; width:100% !important; padding:12px !important; }
#ov-thermal .thermal-flow .thermal-actions > button { min-height:56px !important; flex:1 1 240px !important; border-radius:14px !important; touch-action:manipulation !important; }
@media (max-width:700px) {
  #ov-thermal .thermal-flow .thermal-actions { flex-direction:column !important; width:100% !important; padding:12px max(12px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)) !important; }
  #ov-thermal .thermal-flow .thermal-actions > button { width:100% !important; min-height:60px !important; flex:1 1 auto !important; }
}
