/* Taïnos — sélecteur de dates (voir public/js/tainos-date-range.js). Thèmes : public (turquoise) et admin (vert profond / or). */
.tdr, .tdr-trigger-wrap { --tdr-ink: #1e3a2f; --tdr-muted: #8b8f87; --tdr-border: #e3dccd; --tdr-surface: #fff; --tdr-accent: #0E7C7B; --tdr-accent-ink: #fff; --tdr-band: rgba(14,124,123,.14); --tdr-soft: #f5f0e6; --tdr-danger: #9a3412; }
.tdr--admin, .tdr-trigger-wrap.tdr--admin { --tdr-ink: var(--c-text, #1f2d27); --tdr-muted: var(--c-text-muted, #7a8c80); --tdr-border: var(--c-border, #dcd5c4); --tdr-accent: var(--c-primary, #12332a); --tdr-band: var(--c-accent-pale, #f5edd8); --tdr-soft: var(--c-bg, #faf7f0); }

/* Champs natifs masqués visuellement (restent dans le formulaire ; réaffichés si JavaScript ou disponibilités indisponibles) */
.tdr-native-off { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; border: 0 !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; }

/* Bouton déclencheur (ressemble à un champ) */
.tdr-trigger-wrap { margin: 0 0 1rem; }
.tdr-trigger { width: 100%; display: flex; align-items: stretch; gap: .5rem; padding: .35rem .5rem; background: var(--tdr-surface); border: 1px solid var(--tdr-border); border-radius: 12px; font: inherit; color: var(--tdr-ink); cursor: pointer; text-align: left; min-height: 56px; }
.tdr-trigger:hover { border-color: var(--tdr-accent); }
.tdr-trigger:focus-visible { outline: 3px solid var(--tdr-band); border-color: var(--tdr-accent); }
.tdr-seg { flex: 1 1 0; display: flex; flex-direction: column; justify-content: center; padding: .2rem .4rem; min-width: 0; }
.tdr-seg-label { font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; color: var(--tdr-muted); }
.tdr-seg-value { font-size: .95rem; color: var(--tdr-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tdr-seg.is-filled .tdr-seg-value { color: var(--tdr-ink); font-weight: 600; }
.tdr-arrow { align-self: center; color: var(--tdr-muted); }
.tdr-nights { align-self: center; padding: .2rem .6rem; border-radius: 999px; background: var(--tdr-band); color: var(--tdr-ink); font-size: .78rem; font-weight: 600; white-space: nowrap; }

/* Panneau */
.tdr { background: var(--tdr-surface); color: var(--tdr-ink); border: 1px solid var(--tdr-border); border-radius: 16px; padding: 1rem 1.1rem 1rem; font-size: 16px; line-height: 1.3; box-sizing: border-box; }
.tdr[hidden], .tdr-overlay[hidden], .tdr [hidden] { display: none !important; }
.tdr--pop { position: absolute; z-index: 1200; box-shadow: 0 16px 48px rgba(20,40,30,.2); outline: none; }
.tdr--inline { position: static; width: 100%; box-shadow: none; padding: .75rem .75rem .9rem; }
.tdr-head { display: flex; align-items: flex-start; gap: .25rem; }
.tdr-months { flex: 1 1 auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; min-width: 0; }
.tdr--two .tdr-months { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tdr--pop.tdr--two { width: 660px; max-width: calc(100vw - 16px); }
.tdr--pop:not(.tdr--two) { width: 340px; max-width: calc(100vw - 16px); }
.tdr-nav { flex: 0 0 auto; width: 40px; height: 40px; margin-top: .1rem; border: 0; border-radius: 50%; background: transparent; color: var(--tdr-ink); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.tdr-nav:hover:not(:disabled) { background: var(--tdr-soft); }
.tdr-nav:disabled { opacity: .25; cursor: default; }
.tdr-nav:focus-visible, .tdr-link:focus-visible, .tdr-apply:focus-visible { outline: 3px solid var(--tdr-band); outline-offset: 1px; }
.tdr-month-title { text-align: center; font-weight: 700; font-size: .95rem; margin: .55rem 0 .6rem; }
.tdr-wd, .tdr-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.tdr-wd span { white-space: nowrap; overflow: hidden; text-align: center; font-size: .68rem; text-transform: uppercase; letter-spacing: .04em; color: var(--tdr-muted); padding-bottom: .3rem; }

/* Jours : bande continue (::before) + pastilles d'arrivée / départ (::after) */
.tdr-day { position: relative; isolation: isolate; display: flex; align-items: center; justify-content: center; height: 42px; padding: 0; margin: 0; border: 0; background: transparent; font: inherit; font-size: .92rem; color: var(--tdr-ink); cursor: pointer; border-radius: 0; -webkit-tap-highlight-color: transparent; }
.tdr-empty { cursor: default; }
.tdr-day::before { content: ""; position: absolute; inset: 3px 0; z-index: -1; background: transparent; }
.tdr-day::after { content: ""; position: absolute; left: 50%; top: 50%; width: min(36px, calc(100% - 2px)); aspect-ratio: 1 / 1; border-radius: 50%; transform: translate(-50%, -50%); z-index: -1; background: transparent; box-sizing: border-box; }
@media (hover: hover) { .tdr-day:not(.tdr-empty):not(.is-arrival):not(.is-departure):hover::after { background: var(--tdr-soft); } }
.tdr-day:focus-visible { outline: 2px solid var(--tdr-accent); outline-offset: -3px; }
.tdr-day.is-today { font-weight: 700; box-shadow: inset 0 -2px 0 var(--tdr-accent); }
.tdr-day.in-range::before { background: var(--tdr-band); }
.tdr-day.band-right::before { background: linear-gradient(to right, transparent 50%, var(--tdr-band) 50%); }
.tdr-day.band-left::before { background: linear-gradient(to left, transparent 50%, var(--tdr-band) 50%); }
.tdr-day.in-range:nth-child(7n+1)::before { border-radius: 18px 0 0 18px; }
.tdr-day.in-range:nth-child(7n)::before { border-radius: 0 18px 18px 0; }
.tdr-day.is-arrival, .tdr-day.is-departure { color: var(--tdr-accent-ink); font-weight: 700; box-shadow: none; }
.tdr-day.is-arrival::after, .tdr-day.is-departure::after { background: var(--tdr-accent); }
.tdr-day.is-preview-end::after { background: transparent; border: 2px solid var(--tdr-accent); }
.tdr-day.is-past { color: #d2ccbf; cursor: default; }
.tdr-day.is-blocked { color: #b3aa9b; text-decoration: line-through; cursor: not-allowed; background-image: repeating-linear-gradient(135deg, transparent 0 6px, rgba(60,50,30,.05) 6px 7px); }
.tdr-day.is-blocked:hover::after, .tdr-day.is-past:hover::after { background: transparent; }
.tdr-day.is-departure-only { color: var(--tdr-ink); text-decoration: none; cursor: pointer; font-weight: 600; background-image: linear-gradient(135deg, transparent 52%, rgba(60,50,30,.1) 52%); }
.tdr-day.is-short, .tdr-day.is-beyond { color: #b9b2a5; }

/* Pied : résumé, messages, légende, actions */
.tdr-foot { margin-top: .7rem; padding-top: .7rem; border-top: 1px solid var(--tdr-border); display: grid; gap: .3rem; }
.tdr-summary { margin: 0; font-weight: 600; font-size: .92rem; }
.tdr-msg { margin: 0; min-height: 1.1rem; font-size: .82rem; color: var(--tdr-danger); }
.tdr-status { margin: .75rem 0 0; font-size: .88rem; color: var(--tdr-muted); }
.tdr-legend { margin: 0; display: flex; gap: 1rem; font-size: .74rem; color: var(--tdr-muted); }
.tdr-key::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: .35rem; border-radius: 50%; vertical-align: -1px; background: var(--tdr-band); border: 1px solid var(--tdr-accent); }
.tdr-key--blocked::before { background: repeating-linear-gradient(135deg, #e8e1d3 0 3px, #fff 3px 4px); border-color: #b3aa9b; }
.tdr-actions { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.tdr-link { background: none; border: 0; padding: .3rem 0; font: inherit; font-size: .84rem; color: var(--tdr-accent); text-decoration: underline; cursor: pointer; }
.tdr-apply { min-height: 44px; padding: 0 1.4rem; border: 0; border-radius: 999px; background: var(--tdr-accent); color: var(--tdr-accent-ink); font: inherit; font-weight: 600; cursor: pointer; }
.tdr--pop:not(.tdr--sheet) .tdr-apply { display: none; }

/* Mobile : feuille en bas de l'écran, un mois, grandes zones tactiles */
.tdr-overlay { position: fixed; inset: 0; z-index: 1190; background: rgba(15,30,25,.45); }
html.tdr-lock { overflow: hidden; }
.tdr--sheet { position: fixed !important; left: 0 !important; right: 0 !important; bottom: 0 !important; top: auto !important; width: auto !important; max-width: none !important; max-height: 92vh; overflow-y: auto; z-index: 1210; border-radius: 20px 20px 0 0; padding: .75rem 1rem calc(1rem + env(safe-area-inset-bottom, 0px)); box-shadow: 0 -12px 40px rgba(20,40,30,.25); }
.tdr--sheet .tdr-day { height: 48px; }
.tdr--sheet .tdr-actions { position: sticky; bottom: 0; background: var(--tdr-surface); padding-top: .5rem; }
@media (max-width: 640px) {
    .tdr-trigger { min-height: 60px; }
    .tdr--inline .tdr-day { height: 44px; }
}
@media (prefers-reduced-motion: no-preference) {
    .tdr-day::after { transition: background-color .12s ease; }
}

/* Calendrier inline à un mois (colonne latérale étroite) : flèches placées sur la ligne du titre pour laisser toute la largeur à la grille */
.tdr--inline:not(.tdr--two) .tdr-head { position: relative; }
.tdr--inline:not(.tdr--two) .tdr-nav { position: absolute; top: 0; z-index: 2; width: 34px; height: 34px; margin: 0; }
.tdr--inline:not(.tdr--two) .tdr-prev { left: 0; }
.tdr--inline:not(.tdr--two) .tdr-next { right: 0; }
.tdr--inline:not(.tdr--two) .tdr-month-title { margin-top: .4rem; }

/* Départ choisi sur un jour dont la nuit est réservée (départ exclusif) : rendu normal de départ, y compris au survol */
.tdr-day.is-departure.is-blocked, .tdr-day.is-departure.is-blocked:hover { color: var(--tdr-accent-ink); text-decoration: none; background-image: none; cursor: pointer; }
.tdr-day.is-departure.is-blocked::after, .tdr-day.is-departure.is-blocked:hover::after { background: var(--tdr-accent); }
