/* Valise : blocs ajoutes a la page resultat (edition, chat, checklist, budget, chargement, partage).
   Utilise uniquement les variables de app.css : clair et sombre suivent automatiquement. */

/* ---------- En-tete ---------- */
.r-region { margin: -4px 0 10px; font-size: 16px; font-weight: 600; color: rgba(255, 255, 255, .82); }
.r-tag.hot { background: var(--grad); color: var(--on-grad); }
.r-tag.flex { background: rgba(255, 255, 255, .24); }

/* ---------- Mise en page (reservation et logement dans la colonne laterale) ---------- */
.fx-still .r-hero-in > *, .fx-still .r-hero-in { animation: none !important; }
.r-bookwrap { background: var(--card); border: 1px solid var(--line); border-radius: 20px; padding: 16px; }
.r-side .r-books { grid-template-columns: 1fr; gap: 8px; }
.r-side .r-book { padding: 12px 14px; }
.r-side .r-stay { margin-top: 0; }
.r-panel li.hot { color: var(--ink); font-weight: 600; }
.r-panel li.hot::before { background: var(--coral-deep); box-shadow: 0 0 0 3px rgba(232, 85, 53, .18); }
.r-after > .r-disclaimer { margin-top: 4px; }
@media (max-width: 980px) { .r-side { order: -1; } .r-grid { display: flex; flex-direction: column; } .r-grid > * { width: 100%; } }
@media (min-width: 621px) and (max-width: 980px) { .r-side .r-books { grid-template-columns: repeat(3, 1fr); } }

/* La fenetre de modification porte aussi .r-modif (ouverte par le gestionnaire existant) */
.ed-ov.r-modif { margin: 0; padding: 16px; border: 0; border-radius: 0; background: rgba(8, 12, 18, .55); gap: 0; transform-origin: center; animation: r2-fade .2s ease; }
.ed-ov.r-modif.fx-out { animation: r2-fadeout .18s ease forwards; }
@keyframes r2-fadeout { to { opacity: 0; } }
.ed-ov.r-modif label { display: flex; }

/* ---------- Creneaux ---------- */
.r-srow { display: flex; gap: 12px; align-items: flex-start; }
.r-srow > .r-sbody { flex: 1; min-width: 0; }
.r-sph { display: none; flex: none; width: 78px; height: 78px; border-radius: 20px; background: var(--paper2) center / cover no-repeat; position: relative; overflow: hidden; cursor: pointer; border: 0; padding: 0; }
.r-sph.loaded { display: block; animation: r2-ph .35s ease backwards; }
@keyframes r2-ph { from { opacity: 0; transform: scale(.94); } }
.r-sph::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .06); pointer-events: none; }
:root[data-theme="dark"] .r-sph::after { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); }
.r-slot.fixed .r-shead b { font-weight: 600; color: var(--ink-soft); }
.r-slot.fixed { background: linear-gradient(90deg, var(--sel), transparent 70%); border-radius: 14px; padding-left: 10px; padding-right: 10px; }
.r-slot.new { animation: r2-new 1.6s ease-out 1; }
@keyframes r2-new { 0% { background: rgba(255, 169, 77, .32); } 100% { background: transparent; } }
.r-newchip { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 100px; background: var(--grad); color: var(--on-grad); font: 700 10.5px 'Sora', sans-serif; letter-spacing: .02em; text-transform: uppercase; }
.r-sbook { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; padding: 7px 13px; border-radius: 100px; border: 1.5px solid var(--coral); color: var(--coral); background: transparent; font-size: 12.5px; font-weight: 700; transition: background .18s, color .18s; }
.r-sbook:hover { background: var(--coral); color: #fff; }
.r-sbook.soft { border-color: var(--line2); color: var(--ink-soft); }
.r-sbook.soft:hover { background: var(--paper2); color: var(--ink); }

/* ---------- Heure d'arrivee / de depart ---------- */
.r-arr { margin: 4px 0 6px; padding: 14px; border-radius: 16px; border: 1px dashed var(--line2); background: var(--paper2); display: grid; gap: 10px; }
.r-arr-top { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.r-arr-top b { font-family: 'Sora', sans-serif; }
.r-arr-top .ic { color: var(--coral); }
.r-arr-top span { color: var(--mist); font-size: 12.5px; }
.r-arr-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.r-arr-time { height: 38px; padding: 0 10px; border-radius: 12px; border: 1.5px solid var(--line); background: var(--card); color: var(--ink); font: 600 14px Inter, sans-serif; }
.r-arr-time:focus { outline: none; border-color: var(--coral); }
.r-arr-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.r-arr-chip { height: 34px; padding: 0 12px; border-radius: 100px; border: 1.5px solid var(--line); background: var(--card); color: var(--ink-soft); font-size: 12.5px; font-weight: 600; }
.r-arr-chip:hover { border-color: var(--line2); }
.r-arr-chip.on { border-color: var(--coral); background: var(--sel); color: var(--coral); }
.r-arr-hint { margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--ink-soft); }
.r-arr-hint b { color: var(--ink); }

/* ---------- Reservation ---------- */
.r-bookhead { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 0 0 10px; }
.r-bookhead h4 { font-size: 15px; }
.r-bookhead span { font-size: 12px; font-weight: 700; color: var(--coral); background: var(--sel); padding: 3px 10px; border-radius: 100px; }

/* ---------- Budget ---------- */
.bv { display: grid; gap: 8px; margin-top: 4px; }
.bv-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.bv-chip { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 100px; font-size: 12px; font-weight: 700; background: rgba(34, 160, 107, .12); color: #1B8A5A; }
.bv-chip.over { background: rgba(232, 85, 53, .12); color: var(--coral-deep); }
:root[data-theme="dark"] .bv-chip { color: #5BD39A; }
:root[data-theme="dark"] .bv-chip.over { color: #FF8A70; }
.bv-v { font: 700 26px 'Sora', sans-serif; letter-spacing: -.02em; }
.bv-v small { font: 500 13px Inter, sans-serif; color: var(--mist); letter-spacing: 0; margin-left: 6px; }
.bv-bar, .st-bar, .ck-bar { height: 8px; border-radius: 100px; background: var(--paper2); overflow: hidden; }
.bv-bar i, .st-bar i, .ck-bar i { display: block; height: 100%; border-radius: inherit; background: var(--grad); transition: width .5s cubic-bezier(.2, .8, .3, 1); }
.bv.over .bv-bar i, .st-bud.over .st-bar i { background: linear-gradient(100deg, var(--coral-deep), var(--coral)); }
.bv-max { font-size: 12.5px; color: var(--mist); }

/* ---------- Logement ---------- */
.st-badge { display: inline-flex; padding: 3px 9px; border-radius: 100px; font-size: 11.5px; font-weight: 700; background: rgba(34, 160, 107, .12); color: #1B8A5A; margin-left: 8px; vertical-align: middle; }
.st-badge.over { background: rgba(232, 85, 53, .12); color: var(--coral-deep); }
:root[data-theme="dark"] .st-badge { color: #5BD39A; }
:root[data-theme="dark"] .st-badge.over { color: #FF8A70; }
.st-bud { display: grid; gap: 6px; margin: 10px 0 4px; }
.st-row { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: 13px; color: var(--ink-soft); }
.st-row b { color: var(--ink); font-size: 14px; }
.st-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }

/* ---------- Checklist ---------- */
.ck { display: grid; gap: 12px; }
.ck-head { display: flex; gap: 12px; align-items: center; }
.ck-ic { width: 42px; height: 42px; border-radius: 14px; background: var(--sel); display: grid; place-items: center; font-size: 20px; flex: none; }
.ck-head h4 { margin: 0 0 2px; }
.ck-head p { margin: 0; font-size: 13px; color: var(--ink-soft); }
.ck-prog { display: grid; gap: 6px; }
.ck-prog b { font-size: 12.5px; color: var(--ink-soft); font-weight: 600; }
.ck-group { font: 700 12.5px 'Sora', sans-serif; color: var(--ink-soft); margin-top: 2px; }
.ck-group.hot { color: var(--coral); }
.r-panel ul.ck-list { gap: 2px; }
.r-panel .ck-list li { padding-left: 0; }
.r-panel .ck-list li::before { display: none; }
.ck-i { display: flex; gap: 10px; align-items: flex-start; padding: 8px 0; border-top: 1px solid var(--line); }
.ck-i:first-child { border-top: 0; }
.ck-box { flex: none; width: 22px; height: 22px; margin-top: 1px; border-radius: 7px; border: 1.8px solid var(--line2); background: var(--card); display: grid; place-items: center; padding: 0; transition: background .18s, border-color .18s, transform .18s; }
.ck-box svg { width: 14px; height: 14px; fill: none; stroke: var(--on-grad); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; opacity: 0; }
.ck-box:hover { border-color: var(--coral); }
.ck-i.done .ck-box { background: var(--grad); border-color: transparent; }
.ck-i.done .ck-box svg { opacity: 1; }
.ck-box:active { transform: scale(.9); }
.ck-body { flex: 1; min-width: 0; display: grid; gap: 2px; }
.ck-t { font-size: 13.5px; line-height: 1.45; color: var(--ink); }
.ck-t i { font-style: normal; margin-right: 6px; }
.ck-i.done .ck-t { text-decoration: line-through; color: var(--mist); }
.ck-due { font-size: 11.5px; font-weight: 600; color: var(--mist); }
.ck-tip summary { list-style: none; cursor: pointer; font-size: 11.5px; font-weight: 700; color: var(--coral); width: max-content; }
.ck-tip summary::-webkit-details-marker { display: none; }
.ck-tip p { margin: 4px 0 0; font-size: 12.5px; }
.ck-del { flex: none; width: 26px; height: 26px; border-radius: 8px; border: 0; background: transparent; color: var(--mist); font-size: 18px; line-height: 1; opacity: .55; }
.ck-del:hover { opacity: 1; background: var(--paper2); color: var(--coral-deep); }
.ck-add { display: flex; gap: 8px; }
.ck-input { flex: 1; min-width: 0; height: 40px; padding: 0 12px; border-radius: 12px; border: 1.5px solid var(--line); background: var(--card); color: var(--ink); font: 500 13.5px Inter, sans-serif; }
.ck-input:focus { outline: none; border-color: var(--coral); }
.ck-addbtn { width: 40px; height: 40px; border-radius: 12px; border: 0; background: var(--grad); color: var(--on-grad); font: 700 20px 'Sora', sans-serif; }
.ck-sugg { display: flex; flex-wrap: wrap; gap: 6px; }
.ck-sugg button { padding: 5px 10px; border-radius: 100px; border: 1px dashed var(--line2); background: transparent; color: var(--ink-soft); font-size: 12px; font-weight: 600; }
.ck-sugg button:hover { border-color: var(--coral); color: var(--coral); }
.ck-done summary { cursor: pointer; font-size: 12.5px; font-weight: 700; color: var(--ink-soft); }

/* ---------- Outils et regeneration (sous l'itineraire) ---------- */
.r-after { display: grid; gap: 14px; margin-top: 26px; }
.r-tools { display: grid; gap: 10px; }
.r-tools > .btn { width: 100%; }
.r-tools-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; }
.r-tool { display: grid; justify-items: center; gap: 6px; padding: 14px 8px; border-radius: 16px; border: 1px solid var(--line); background: var(--card); color: var(--ink); font-size: 12.5px; font-weight: 600; text-align: center; transition: border-color .18s, transform .18s; }
.r-tool:hover { border-color: var(--coral); transform: translateY(-1px); }
.r-tool .ic { color: var(--coral); }
.r-regen { display: grid; gap: 10px; padding: 18px; border-radius: 20px; border: 1px solid rgba(255, 107, 74, .35); background: linear-gradient(135deg, var(--sel), transparent 70%), var(--card); }
.r-regen b { font-family: 'Sora', sans-serif; display: flex; align-items: center; gap: 8px; }
.r-regen p { margin: 0; font-size: 13.5px; line-height: 1.55; color: var(--ink-soft); }

/* ---------- Fenetre de modification ---------- */
.ed-ov, .sh-ov { position: fixed; inset: 0; z-index: 120; background: rgba(8, 12, 18, .55); backdrop-filter: blur(4px); display: grid; place-items: center; padding: 16px; animation: r2-fade .2s ease; }
@keyframes r2-fade { from { opacity: 0; } }
.ed-modal, .sh-modal { position: relative; width: min(620px, 100%); max-height: calc(100dvh - 32px); overflow: auto; background: var(--card); border: 1px solid var(--line); border-radius: 24px; padding: 24px; box-shadow: var(--shadow-lg); display: grid; gap: 14px; animation: r2-up .28s cubic-bezier(.2, .8, .3, 1); }
@keyframes r2-up { from { opacity: 0; transform: translateY(18px) scale(.98); } }
.ed-modal h3, .sh-modal h3 { font-size: 20px; padding-right: 36px; }
.ed-x { position: absolute; top: 14px; right: 14px; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line); background: var(--card); color: var(--ink-soft); display: grid; place-items: center; font-size: 20px; line-height: 1; }
.ed-x:hover { color: var(--ink); border-color: var(--line2); }
.ed-modes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ed-mode { display: grid; gap: 3px; text-align: left; padding: 14px; border-radius: 16px; border: 1.5px solid var(--line); background: var(--card); color: var(--ink); }
.ed-mode b { font-family: 'Sora', sans-serif; font-size: 14.5px; }
.ed-mode span { font-size: 12.5px; color: var(--ink-soft); line-height: 1.4; }
.ed-mode.sel { border-color: var(--coral); background: var(--sel); }
.ed-days { display: grid; gap: 10px; max-height: 46dvh; overflow: auto; padding-right: 2px; }
.ed-day { border: 1px solid var(--line); border-radius: 16px; padding: 12px; display: grid; gap: 8px; }
.ed-dayhead { display: flex; align-items: baseline; gap: 8px; }
.ed-dayhead b { font-family: 'Sora', sans-serif; font-size: 13.5px; white-space: nowrap; }
.ed-dayhead span { flex: 1; min-width: 0; font-size: 12.5px; color: var(--ink-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ed-dayhead button { border: 0; background: none; color: var(--coral); font-size: 12px; font-weight: 700; white-space: nowrap; }
.ed-slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.ed-slot { position: relative; display: grid; gap: 2px; text-align: left; padding: 9px 10px; border-radius: 12px; border: 1.5px solid var(--line); background: var(--card); color: var(--ink); min-width: 0; }
.ed-slot small { font-size: 11px; font-weight: 700; color: var(--mist); }
.ed-slot span { font-size: 12.5px; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ed-slot.on { border-color: var(--coral); background: var(--sel); }
.ed-slot.on::after { content: "✓"; position: absolute; top: 6px; right: 8px; font-size: 11px; font-weight: 800; color: var(--coral); }
.ed-keep { display: grid; gap: 6px; padding: 12px; border-radius: 14px; background: var(--paper2); }
.ed-keep b { font: 700 12.5px 'Sora', sans-serif; }
.ed-keep div { display: flex; flex-wrap: wrap; gap: 6px; }
.ed-keep i { font-style: normal; font-size: 12px; font-weight: 600; padding: 3px 9px; border-radius: 100px; background: var(--card); border: 1px solid var(--line); }
.ed-keep small { font-size: 12px; color: var(--mist); line-height: 1.45; }
.ed-lb { display: flex; justify-content: space-between; gap: 8px; font: 700 13px 'Sora', sans-serif; }
.ed-lb em { font: 600 12px Inter, sans-serif; font-style: normal; color: var(--mist); }
.ed-picks { display: flex; flex-wrap: wrap; gap: 6px; }
.ed-pick { padding: 8px 13px; border-radius: 100px; border: 1.5px solid var(--line); background: var(--card); color: var(--ink); font-size: 12.5px; font-weight: 600; }
.ed-pick.on { border-color: var(--coral); background: var(--sel); color: var(--coral); }
.ed-pick:disabled { opacity: .45; cursor: not-allowed; }
.ed-note { width: 100%; min-height: 64px; resize: vertical; padding: 10px 12px; border-radius: 14px; border: 1.5px solid var(--line); background: var(--card); color: var(--ink); font: 500 14px/1.45 Inter, sans-serif; }
.ed-note:focus { outline: none; border-color: var(--coral); }
.ed-warn { margin: 0; padding: 10px 12px; border-radius: 12px; background: rgba(255, 169, 77, .14); color: var(--ink); font-size: 12.5px; line-height: 1.45; }
.ed-foot { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.ed-spin { width: 16px; height: 16px; border-radius: 50%; border: 2.5px solid currentColor; border-right-color: transparent; animation: r2-spin .7s linear infinite; display: inline-block; }
@keyframes r2-spin { to { transform: rotate(360deg); } }

/* ---------- Partage ---------- */
.sh-modal p { margin: 0; font-size: 13.5px; color: var(--ink-soft); }
.sh-prev { display: grid; place-items: center; min-height: 200px; border-radius: 18px; background: var(--paper2); overflow: hidden; }
.sh-prev img { display: block; max-height: 46dvh; width: auto; max-width: 100%; border-radius: 14px; }
.sh-acts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.sh-acts .btn { width: 100%; }

/* ---------- Assistant (chat) ---------- */
.ch-fab { position: fixed; right: 18px; bottom: 18px; z-index: 90; display: inline-flex; align-items: center; gap: 8px; height: 52px; padding: 0 20px 0 16px; border-radius: 100px; border: 0; background: var(--grad); color: var(--on-grad); font: 700 14px 'Sora', sans-serif; box-shadow: 0 12px 30px rgba(255, 107, 74, .38); }
.ch-fab:hover { transform: translateY(-1px); }
.ch-panel { position: fixed; right: 18px; bottom: 18px; z-index: 110; width: min(400px, calc(100vw - 32px)); height: min(620px, calc(100dvh - 36px)); display: grid; grid-template-rows: auto 1fr auto; background: var(--card); border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--shadow-lg); overflow: hidden; animation: r2-up .26s cubic-bezier(.2, .8, .3, 1); }
.ch-head { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid var(--line); background: linear-gradient(135deg, var(--sel), transparent); }
.ch-head b { font-family: 'Sora', sans-serif; font-size: 15px; }
.ch-head small { display: block; font-size: 12px; color: var(--mist); }
.ch-head .ed-x { position: static; margin-left: auto; width: 32px; height: 32px; }
.ch-msgs { overflow: auto; padding: 14px; display: grid; align-content: start; gap: 10px; }
.ch-msg { max-width: 86%; padding: 10px 13px; border-radius: 16px; font-size: 13.5px; line-height: 1.5; white-space: pre-wrap; }
.ch-msg.me { justify-self: end; background: var(--grad); color: var(--on-grad); border-bottom-right-radius: 6px; }
.ch-msg.bot { justify-self: start; background: var(--paper2); color: var(--ink); border-bottom-left-radius: 6px; }
.ch-msg.err { background: rgba(232, 85, 53, .1); }
.ch-chg { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 4px; }
.ch-chg button { width: 100%; text-align: left; border: 1px solid var(--line); background: var(--card); color: var(--ink); border-radius: 10px; padding: 6px 9px; font-size: 12px; }
.ch-chg button small { display: block; color: var(--coral); font-weight: 700; }
.ch-bud { margin-top: 6px; font-size: 12px; font-weight: 700; color: var(--coral); }
.ch-undo { margin-top: 6px; border: 0; background: none; padding: 0; color: var(--mist); font-size: 12px; font-weight: 700; text-decoration: underline; }
.ch-undone { margin-top: 6px; font-size: 12px; color: var(--mist); font-style: italic; }
.ch-typing { justify-self: start; display: inline-flex; gap: 4px; padding: 12px 14px; border-radius: 16px; background: var(--paper2); }
.ch-typing i { width: 7px; height: 7px; border-radius: 50%; background: var(--mist); animation: r2-dot 1s infinite ease-in-out; }
.ch-typing i:nth-child(2) { animation-delay: .15s; }
.ch-typing i:nth-child(3) { animation-delay: .3s; }
@keyframes r2-dot { 0%, 80%, 100% { opacity: .3; transform: none; } 40% { opacity: 1; transform: translateY(-3px); } }
.ch-foot { border-top: 1px solid var(--line); padding: 10px; display: grid; gap: 8px; }
.ch-chips { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.ch-chips button { flex: none; padding: 6px 11px; border-radius: 100px; border: 1px solid var(--line); background: var(--card); color: var(--ink-soft); font-size: 12px; font-weight: 600; }
.ch-chips button:hover { border-color: var(--coral); color: var(--coral); }
.ch-form { display: flex; gap: 8px; }
.ch-in { flex: 1; min-width: 0; height: 42px; padding: 0 14px; border-radius: 100px; border: 1.5px solid var(--line); background: var(--paper2); color: var(--ink); font: 500 14px Inter, sans-serif; }
.ch-in:focus { outline: none; border-color: var(--coral); }
.ch-send { width: 42px; height: 42px; border-radius: 50%; border: 0; background: var(--grad); color: var(--on-grad); display: grid; place-items: center; }
.ch-send:disabled { opacity: .45; }
.ch-note { margin: 0; font-size: 11px; color: var(--mist); text-align: center; }

/* ---------- Chargement (fond = var(--paper) : couleurs du theme) ---------- */
.ld-cap { display: grid; gap: 2px; margin: 18px 0 4px; }
.ld-cap span { font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--mist); }
.ld-cap b { font: 700 17px 'Sora', sans-serif; color: var(--ink); }
.ld-cap small { font-size: 13px; color: var(--ink-soft); }
.ld-route { width: 100%; max-width: 440px; margin: 6px auto 0; display: block; overflow: visible; }
.ld-route .trail { fill: none; stroke: var(--line2); stroke-width: 2.5; stroke-dasharray: 2 7; stroke-linecap: round; }
.ld-route .done { fill: none; stroke: url(#ld-grad); stroke-width: 3.5; stroke-linecap: round; transition: stroke-dashoffset .6s cubic-bezier(.2, .8, .3, 1); }
.ld-route .end { fill: var(--line2); }
.ld-route .end.on { fill: var(--coral); }
.ld-route .veh { transition: transform .6s cubic-bezier(.2, .8, .3, 1); }
.ld-route .veh > circle { fill: var(--coral); }
.ld-route .veh > g { fill: none; stroke: #fff; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.ld-route text { fill: var(--ink-soft); font: 600 11px Inter, sans-serif; }
.ld-list { list-style: none; margin: 18px auto 6px; padding: 0; display: grid; gap: 9px; text-align: left; max-width: 420px; }
.ld-list li { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--mist); transition: color .3s; }
.ld-list li i { flex: none; width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--line2); display: grid; place-items: center; font-style: normal; font-size: 11px; font-weight: 800; }
.ld-list li.now { color: var(--ink); font-weight: 600; }
.ld-list li.now i { border-color: var(--coral); border-right-color: transparent; animation: r2-spin .9s linear infinite; }
.ld-list li.done { color: var(--ink-soft); }
.ld-list li.done i { background: var(--grad); border-color: transparent; color: var(--on-grad); }
.ld-list li.done i::before { content: "✓"; }

/* ---------- Erreur de generation ---------- */
.err { max-width: 560px; margin: 0 auto; padding: 70px 16px; text-align: center; display: grid; gap: 12px; justify-items: center; }
.err-ic { width: 64px; height: 64px; border-radius: 20px; background: var(--sel); color: var(--coral); display: grid; place-items: center; font-size: 30px; }
.err small { font: 700 12px 'Sora', sans-serif; letter-spacing: .06em; text-transform: uppercase; color: var(--coral); }
.err h1 { font-size: clamp(24px, 4vw, 32px); }
.err p { margin: 0; color: var(--ink-soft); line-height: 1.55; }
.err-b { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 8px; }

/* ---------- Mes voyages / reprise ---------- */
.trips-count { margin: 10px 0 20px; color: var(--ink-soft); text-align: center; }
.tr-sub { display: block; color: var(--mist); font-size: 12.5px; }
.tr-link { border: 0; background: none; padding: 0; color: var(--coral); font-size: 12.5px; font-weight: 700; }
.tr-link:hover { text-decoration: underline; }
.dr-card { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 16px 18px; margin: 0 0 20px; border-radius: 20px; border: 1px solid rgba(255, 107, 74, .35); background: linear-gradient(135deg, var(--sel), transparent 70%), var(--card); }
.dr-card .ic { color: var(--coral); }
.dr-card div { flex: 1; min-width: 180px; display: grid; gap: 2px; }
.dr-card b { font-family: 'Sora', sans-serif; }
.dr-card small { color: var(--ink-soft); font-size: 12.5px; }
.dr-card .dr-b { display: flex; gap: 8px; flex: none; min-width: 0; }

/* ---------- Mobile ---------- */
@media (max-width: 620px) {
  .ed-modes { grid-template-columns: 1fr; }
  .ed-slots { grid-template-columns: 1fr; }
  .ed-modal, .sh-modal { padding: 18px 16px; border-radius: 20px; }
  .ed-ov, .sh-ov, .ed-ov.r-modif { place-items: end center; padding: 0; }
  .ed-modal, .sh-modal { width: 100%; max-height: 92dvh; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
  .sh-acts { grid-template-columns: 1fr; }
  .r-srow { flex-direction: column; }
  .r-sph { width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 16px; }
  .ch-panel { right: 0; bottom: 0; width: 100vw; height: 88dvh; border-radius: 22px 22px 0 0; }
  .ch-fab { right: 14px; bottom: 14px; }
  .r-tools-row { grid-template-columns: repeat(2, 1fr); }
  .dr-card .dr-b { width: 100%; }
  .dr-card .dr-b .btn { flex: 1; }
}
@media (max-width: 400px) {
  .r-arr-chip { padding: 0 10px; }
  .bv-v { font-size: 22px; }
}

/* ---------- Impression ---------- */
@media print {
  .ed-ov, .sh-ov, .ch-fab, .ch-panel, .r-tools, .r-regen, .r-sbook, .r-arr, .r-bookwrap, .st-acts, .ck-add, .ck-sugg, .ck-del, .dr-card, .r-newchip { display: none !important; }
  .r-side { order: 0; }
  .r-sph:not(.loaded) { display: none; }
  .r-sph { width: 60px; height: 60px; opacity: 1; transform: none; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .r-slot.fixed { background: none; }
  .ck-box { border-color: #999; }
  .ck-tip summary { display: none; }
  .ck-tip p { display: block !important; }
  .ck-done[open] summary, .ck-done summary { color: #333; }
  .bv-bar, .st-bar, .ck-bar { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .r-after { display: block; }
  .r-after > * { margin-top: 12px; break-inside: avoid; }
  .r-slinks a.site::after { content: " (" attr(href) ")"; font-weight: 400; word-break: break-all; }
}

/* carte de reprise du questionnaire sur l accueil */
.dr-sec { padding: 28px 16px 0; }
.dr-sec .dr-card { max-width: 1040px; margin: 0 auto; }

/* ---------- Retouches apres essais dans le navigateur ---------- */
/* titre d'un creneau : l'icone reste sur la meme ligne que le nom, meme sur telephone */
.r-shead { flex-wrap: nowrap; align-items: flex-start; }
.r-shead b { flex: 1; min-width: 0; }
.r-shead .r-sic { flex: none; margin-top: 2px; }
.r-shead .r-prix { flex: none; }
/* photo d'en-tete : texte lisible meme sur une photo claire */
.r-hero::after { background: linear-gradient(180deg, rgba(10, 14, 20, .42), rgba(10, 14, 20, .64) 45%, rgba(10, 14, 20, .94)); }
.r-hero-in h1, .r-hero-in p, .r-hero-in .r-region { text-shadow: 0 1px 14px rgba(0, 0, 0, .45); }
