/* Gestion des gîtes – compléments au style d'Inovarbo (style.css, repris tel quel) */

/* Logo texte */
.logo-gites { display: inline-flex; align-items: center; gap: .5rem; }
.logo-pastille { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 10px;
  background: var(--accent); color: #fff; box-shadow: 0 2px 6px rgba(31, 42, 31, .18); }
.logo-pastille.grande { width: 60px; height: 60px; border-radius: 18px; }
.logo-connexion-gites { display: flex; flex-direction: column; align-items: center; gap: .6rem; margin-bottom: 1rem; font-size: 1.2rem; }

/* Barre du haut : actions rapides et recherche */
.bouton-barre { display: inline-flex; align-items: center; gap: .3rem; padding: .4rem .75rem; border-radius: 9px; background: var(--accent); color: #fff;
  text-decoration: none; font-weight: 600; font-size: .9rem; }
.bouton-barre:hover { filter: brightness(1.08); }
.bouton-barre.secondaire-barre { background: var(--accent-clair); color: var(--accent); }
.recherche-barre { display: inline-flex; align-items: center; gap: .35rem; padding: 0 .6rem; border: 1px solid var(--ligne); border-radius: 9px; background: var(--fond); color: var(--doux); }
.recherche-barre input { border: 0; background: none; min-height: 36px; width: 8.5rem; padding: 0; outline: none; }
@media (max-width: 1100px) { .bouton-barre span { display: none; } .recherche-barre input { width: 6rem; } }
.tiroir-recherche { padding: .6rem 1rem 0; }
.tiroir-bientot { display: flex; align-items: center; gap: .8rem; min-height: 44px; padding: 0 1rem; color: var(--doux); opacity: .6; }
.tiroir-bientot small { margin-left: auto; font-size: .72rem; }
.barre-bas a.bb-ajout { background: var(--accent); color: #fff; box-shadow: 0 4px 12px rgba(63, 107, 58, .35); }
.menu-gauche .mg-bientot { display: flex; align-items: center; gap: .6rem; padding: .55rem .7rem; color: var(--doux); opacity: .5; cursor: default; }

/* Tableau de bord */
.tableau-bord { display: flex; flex-direction: column; gap: 1rem; }
.tableau-bord .accueil-tete { margin-bottom: 0; }
.compteurs-jour { display: flex; flex-wrap: wrap; gap: .5rem; }
.compteur { display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .8rem; border-radius: 99px; background: var(--surface); border: 1px solid var(--ligne); font-size: .88rem; color: var(--doux); }
.tb-haut { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.banniere .carte-titre .nb { display: inline-block; margin-left: .3rem; padding: 0 .45rem; border-radius: 99px; background: var(--accent-clair); color: var(--accent); font-size: .75rem; }
.b-demandes { border-top: 4px solid #d99a2b; }
.b-validees { border-top: 4px solid var(--accent); }
.b-encours { border-top: 4px solid #2f6f8f; }
.b-prochaine { border-top: 4px solid #7a4f8a; }

.fiche-sejour { padding: .7rem 0; border-top: 1px solid #f0f2ec; }
.fiche-sejour:first-of-type { border-top: 0; padding-top: 0; }
.fs-tete { display: flex; justify-content: space-between; gap: .5rem; font-size: .85rem; }
.fs-gite { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; color: color-mix(in srgb, var(--c) 75%, black); }
.fs-gite i, .t-gite i, .cg-nom i { width: .65rem; height: .65rem; border-radius: 3px; background: var(--c); flex-shrink: 0; display: inline-block; }
.fs-quand { color: var(--doux); }
.fs-nom { display: block; font-size: 1.1rem; font-weight: 700; color: var(--texte); text-decoration: none; margin: .15rem 0; }
.fs-nom:hover { color: var(--accent); }
.fs-dates, .fs-comm { margin: 0; font-size: .9rem; color: var(--doux); }
.fs-comm { font-style: italic; }
.fs-pied { display: flex; align-items: center; gap: .5rem; margin-top: .4rem; flex-wrap: wrap; }
.fs-solde { font-size: .85rem; font-weight: 700; }
.fs-solde.du { color: #8a5a12; }
.fs-solde.regle { color: var(--accent); }
.fs-actions { margin-left: auto; display: inline-flex; gap: .2rem; }
.fs-actions a, .ic-action { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 9px; color: var(--doux);
  border: 0; background: none; cursor: pointer; text-decoration: none; }
.fs-actions a:hover, .ic-action:hover { background: var(--accent-clair); color: var(--accent); }

/* Listes de réservations */
.table-resas { overflow-x: auto; }
.liste .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.liste-resas td { font-size: .92rem; }
.t-gite { white-space: nowrap; }
.t-gite i { margin-right: .4rem; }
.t-nom a { font-weight: 600; text-decoration: none; color: var(--texte); }
.t-nom a:hover { color: var(--accent); }
.t-dates { white-space: nowrap; }
.t-dates small { display: block; color: var(--doux); font-size: .78rem; }
.t-num { color: var(--doux); font-variant-numeric: tabular-nums; }
.solde-du { color: #8a5a12; font-weight: 700; }
.ligne-annulee td { opacity: .5; text-decoration: line-through; }
.ligne-annulee td.t-statut { text-decoration: none; }
.statut { display: inline-block; font-size: .76rem; font-weight: 600; padding: .15rem .55rem; border-radius: 99px; white-space: nowrap; }
.st-demande { background: #fbefd9; color: #8a5a12; }
.st-validee { background: var(--accent-clair); color: var(--accent); }
.st-annulee { background: #fbecea; color: var(--danger); }
.st-bloquee { background: #eceeea; color: #4c5a4a; }
.provenance { display: inline-block; font-size: .7rem; font-weight: 700; padding: .05rem .4rem; border-radius: 5px; vertical-align: middle; }
.pv-airbnb { background: #fde4e6; color: #c1334a; }
.pv-abritel { background: #e2ebf8; color: #1f4f9a; }
.pv-booking { background: #e0ecfa; color: #0b3b80; }
.pv-autre { background: #eceeea; color: #4c5a4a; }
.mini-ok { font-size: .72rem; color: var(--accent); white-space: nowrap; }
.synthese tfoot th { background: #fafbf8; font-size: .9rem; text-transform: none; color: var(--texte); }

/* Validation d'une demande */
.ligne-validation td { background: #fffaf0; }
.form-validation { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem 1rem; }
.form-validation .champ { min-width: 140px; }
.fv-titre { width: 100%; }
.fv-large { flex: 1 1 220px; }
.fv-boutons { display: flex; gap: .5rem; }
.valider-fiche { margin-bottom: 1rem; border-color: #e7c27a; background: #fffaf0; }
.valider-fiche summary { cursor: pointer; font-weight: 700; color: #8a5a12; display: flex; align-items: center; gap: .4rem; list-style: none; }
.valider-fiche[open] summary { margin-bottom: .8rem; }

/* Fiche réservation */
.actions-tete { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.actions-tete .principal, .actions-tete .secondaire-bouton { display: inline-flex; align-items: center; gap: .3rem; }
.form-resa fieldset, .fieldset-nu { border: 0; padding: 0; margin: 0; min-width: 0; }
.fieldset-nu { display: contents; }
.fr-colonnes { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 1rem; align-items: start; }
.fr-principal { display: flex; flex-direction: column; gap: 1rem; }
.fr-resume { position: sticky; top: calc(var(--barre) + 1rem); display: flex; flex-direction: column; gap: .75rem; }
.grille-champs { display: grid; gap: .9rem 1rem; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
.valeur-calculee { display: flex; align-items: center; min-height: 44px; font-weight: 700; color: var(--accent); }
.choix-loc { margin-bottom: .9rem; flex-wrap: wrap; }
.choix-loc label { display: inline-flex; align-items: center; gap: .35rem; padding: 0 .9rem; line-height: 42px; cursor: pointer; color: var(--doux); }
.choix-loc input { width: auto; min-height: 0; accent-color: var(--accent); }
.choix-loc label:has(input:checked) { background: var(--accent-clair); color: var(--accent); font-weight: 600; }
.loc-bloc select[size] { min-height: 9rem; }
.compteurs-occupants { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .75rem; margin-bottom: .75rem; }
.occ { display: flex; flex-direction: column; gap: .3rem; font-weight: 600; font-size: .92rem; }
.pas { display: flex; border: 1px solid var(--ligne); border-radius: 10px; overflow: hidden; background: #fff; }
.pas button { width: 44px; border: 0; background: var(--fond); font-size: 1.3rem; cursor: pointer; color: var(--accent); }
.pas input { border: 0; border-radius: 0; text-align: center; font-weight: 700; }
table.extras { width: 100%; border-collapse: collapse; margin: .9rem 0 .5rem; }
.extras th { text-align: left; font-size: .76rem; text-transform: uppercase; letter-spacing: .03em; color: var(--doux); padding: 0 .3rem .3rem; }
.extras td { padding: .2rem .3rem; }
.extras td:nth-child(2) { width: 80px; }
.extras td:nth-child(3) { width: 130px; }
.extras td:nth-child(4) { width: 90px; text-align: right; font-variant-numeric: tabular-nums; color: var(--doux); }
.recap { display: grid; grid-template-columns: 1fr auto; gap: .45rem 1rem; margin: 0 0 .8rem; }
.recap dt { color: var(--doux); font-size: .92rem; }
.recap dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.recap .fort { font-weight: 700; color: var(--texte); font-size: 1rem; }
.resa-bloquee .masquer-si-bloque { display: none; }

/* Divers listes */
.filtre-recherche { width: 16rem; }
.filtre-annee { width: 7rem; }
.pagination { display: flex; flex-wrap: wrap; gap: .3rem; margin: 1rem 0; }
.pagination a { min-width: 2.4rem; text-align: center; padding: .4rem .6rem; border-radius: 8px; border: 1px solid var(--ligne); background: var(--surface); text-decoration: none; color: var(--texte); }
.pagination a.actif { background: var(--accent); border-color: var(--accent); color: #fff; }

/* Gîtes */
.grille-gites { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.carte-gite { display: flex; flex-direction: column; gap: .3rem; text-decoration: none; color: var(--texte); border-top: 5px solid var(--c); transition: transform .15s, box-shadow .15s; }
.carte-gite:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(31, 42, 31, .1); }
.carte-gite.inactif { opacity: .55; }
.cg-nom { display: flex; align-items: center; gap: .5rem; font-size: 1.15rem; font-weight: 700; }
.cg-info, .cg-prochaine { color: var(--doux); font-size: .88rem; }
.cg-etat { font-weight: 600; font-size: .92rem; color: var(--accent); }
.onglets-fiche { margin-top: .5rem; }
.form-onglets .fiche { margin-bottom: 1rem; }
.actions-fiche { margin: 0; }

/* Téléphone */
@media (max-width: 760px) {
  .tb-haut, .fr-colonnes { grid-template-columns: 1fr; }
  .fr-resume { position: static; }
  .filtre-recherche { width: 100%; }
  /* Listes en cartes : une réservation = un bloc */
  .liste-resas, .liste-resas tbody, .liste-resas tr, .liste-resas td { display: block; width: 100%; }
  .liste-resas thead { display: none; }
  .liste-resas { border: 0; background: none; }
  .liste-resas tr { position: relative; background: var(--surface); border: 1px solid var(--ligne); border-left: 5px solid var(--c); border-radius: 12px; margin-bottom: .6rem; padding: .6rem .75rem; }
  .liste-resas td { border: 0; padding: .1rem 0; }
  .liste-resas .t-num { position: absolute; top: .6rem; right: .75rem; width: auto; font-size: .8rem; }
  .liste-resas .t-gite { font-size: .82rem; color: var(--doux); }
  .liste-resas .t-gite i { display: none; }
  .liste-resas .t-nom { font-size: 1.02rem; }
  .liste-resas td.num { display: inline-block; width: auto; margin-right: .9rem; font-size: .88rem; }
  .liste-resas td.num::before { content: attr(data-l) " "; color: var(--doux); font-weight: 400; }
  .liste-resas .t-statut { margin-top: .25rem; }
  .liste-resas .t-actions { text-align: left; margin-top: .3rem; }
  .liste-resas tr.ligne-validation { border-left-color: #d99a2b; background: #fffaf0; }
  .form-validation .champ { min-width: 0; flex: 1 1 45%; }
  .extras td:nth-child(3) { width: 90px; }
  .extras td:nth-child(4) { display: none; }
  .extras th:nth-child(4) { display: none; }
  .liste-locataires td:nth-child(2), .liste-locataires th:nth-child(2), .liste-locataires td:nth-child(4), .liste-locataires th:nth-child(4) { display: none; }
}

/* Barre du haut sur écran moyen : on gagne de la place */
@media (max-width: 1450px) { .compte-barre .nom-utilisateur .nom-txt { display: none; } }
.synthese tfoot td { background: #fafbf8; font-weight: 600; }
@media (max-width: 760px) {
  .synthese td.num { justify-content: space-between; }
  .synthese td.num::before { min-width: 0; }
  .synthese .t-gite { font-weight: 700; }
}
@media (max-width: 1450px) { .barre { gap: 1rem; } .bouton-barre.secondaire-barre span { display: none; } .recherche-barre input { width: 6.5rem; } }

/* ---------- Calendrier ---------- */
.cal-nav { align-items: center; }
.cal-nav .bouton-nav { text-decoration: none; }
.cal-nav input[type=date], .cal-nav select { width: auto; }
.cal-periode { font-size: 1.05rem; }
.cal-legende i { border: 1px solid var(--ligne); }
.lg-libre { background: #fff; }
.lg-demande { background: repeating-linear-gradient(135deg, #f6d9a0 0 4px, #fdf3e0 4px 8px); border-color: #e2b45c !important; }
.lg-validee { background: var(--accent); border-color: var(--accent) !important; }
.lg-bloquee { background: repeating-linear-gradient(135deg, #c9cec6 0 4px, #eef0eb 4px 8px); }

.cal-defile { overflow-x: auto; background: var(--surface); border: 1px solid var(--ligne); border-radius: var(--rayon); -webkit-overflow-scrolling: touch; }
.cal { --cw: 30px; --gw: 170px; width: calc(var(--gw) + var(--j) * var(--cw)); }
.cal-ligne { display: flex; border-bottom: 1px solid var(--ligne); }
.cal-ligne:last-child { border-bottom: 0; }
.cal-gite { position: sticky; left: 0; z-index: 5; width: var(--gw); flex-shrink: 0; display: flex; flex-direction: column; justify-content: center;
  padding: .45rem .75rem; background: var(--surface); border-right: 1px solid var(--ligne); text-decoration: none; color: var(--texte); }
.cal-nom { display: flex; align-items: center; gap: .45rem; font-weight: 700; font-size: .92rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-nom i { width: .65rem; height: .65rem; border-radius: 3px; background: var(--c); flex-shrink: 0; }
.cal-gite small { color: var(--doux); font-size: .74rem; }
a.cal-gite:hover .cal-nom { color: var(--accent); }
.cal-coin { background: #fafbf8; font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--doux); justify-content: flex-end; }
.cal-piste { position: relative; display: flex; width: calc(var(--j) * var(--cw)); flex-shrink: 0; }
.cal-tete { position: sticky; top: 0; z-index: 6; background: #fafbf8; }
.cal-tete .cal-piste { padding-top: 1.3rem; }
.cal-jour { position: relative; width: var(--cw); flex-shrink: 0; display: flex; flex-direction: column; align-items: center; padding: .15rem 0 .3rem;
  border-left: 1px solid #eef0ea; font-variant-numeric: tabular-nums; }
.cal-jour.debut-mois { border-left: 2px solid #c9cec6; }
.cal-mois { position: absolute; top: -1.2rem; left: 4px; font-size: .78rem; font-weight: 700; white-space: nowrap; color: var(--texte); }
.cal-lettre { font-size: .66rem; color: var(--doux); }
.cal-num { font-size: .82rem; font-weight: 600; }
.cal-jour.we { background: #f3f4f0; }
.cal-jour.auj { background: var(--accent); color: #fff; border-radius: 6px 6px 0 0; }
.cal-jour.auj .cal-lettre { color: #fff; }
.cal-case { display: block; width: var(--cw); height: 52px; flex-shrink: 0; border-left: 1px solid #eef0ea; }
.cal-case.we { background: #f7f8f5; }
.cal-case.auj { background: #eaf2e6; }
.cal-case.passe { background-image: linear-gradient(rgba(240, 242, 237, .55), rgba(240, 242, 237, .55)); }
a.cal-case:hover { background: var(--accent-clair); box-shadow: inset 0 0 0 2px var(--accent); }
.cal-barre { position: absolute; top: 10px; height: 32px; z-index: 3; display: flex; align-items: center; gap: .3rem; padding: 0 .45rem;
  border-radius: 8px; font-size: .8rem; font-weight: 600; text-decoration: none; overflow: hidden; white-space: nowrap;
  box-shadow: 0 1px 3px rgba(31, 42, 31, .18); transition: filter .15s, transform .15s; }
.cal-barre span { overflow: hidden; text-overflow: ellipsis; }
.cal-barre:hover { filter: brightness(1.06); transform: translateY(-1px); z-index: 4; }
.cb-validee { background: var(--c); color: #fff; }
.cb-demande { background: repeating-linear-gradient(135deg, #f6d9a0 0 6px, #fdf3e0 6px 12px); color: #7a4c0c; border: 1px dashed #d99a2b; }
.cb-bloquee { background: repeating-linear-gradient(135deg, #d5d9d1 0 6px, #eef0eb 6px 12px); color: #4c5a4a; }
.coupe-g { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.coupe-d { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.cb-pv { flex-shrink: 0; font-size: .64rem; padding: 0 .25rem; border-radius: 4px; line-height: 1.4; }
.cb-validee .cb-pv { background: rgba(255, 255, 255, .9); }

/* Vue année */
.annee { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.mois { background: var(--surface); border: 1px solid var(--ligne); border-radius: 14px; padding: .8rem .9rem 1rem; }
.mois h2 { font-size: .95rem; margin: 0 0 .5rem; }
.mois-grille { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; text-align: center; }
.mj { font-size: .68rem; color: var(--doux); font-weight: 600; }
.jour { display: block; padding: .3rem 0; border-radius: 6px; font-size: .8rem; color: var(--texte); text-decoration: none; font-variant-numeric: tabular-nums; }
a.jour:hover { box-shadow: inset 0 0 0 2px var(--accent); }
.jour.n-validee { background: var(--c); color: #fff; font-weight: 600; }
.jour.n-demande { background: repeating-linear-gradient(135deg, #f6d9a0 0 4px, #fdf3e0 4px 8px); color: #7a4c0c; }
.jour.n-bloquee { background: repeating-linear-gradient(135deg, #d5d9d1 0 4px, #eef0eb 4px 8px); }
/* Jour d'arrivée : moitié droite colorée ; jour de départ seul : moitié gauche */
.jour.arrivee.n-validee { background: linear-gradient(135deg, transparent 50%, var(--c) 50%); color: var(--texte); }
.jour.arrivee.n-demande { background: linear-gradient(135deg, transparent 50%, #f6d9a0 50%); }
.jour.arrivee.n-bloquee { background: linear-gradient(135deg, transparent 50%, #d5d9d1 50%); }
.jour.p-validee { background: linear-gradient(135deg, var(--c) 50%, transparent 50%); }
.jour.p-demande { background: linear-gradient(135deg, #f6d9a0 50%, transparent 50%); }
.jour.p-bloquee { background: linear-gradient(135deg, #d5d9d1 50%, transparent 50%); }
.jour.arrivee.p-validee, .jour.arrivee.p-demande, .jour.arrivee.p-bloquee { background: linear-gradient(135deg, #8a9188 50%, var(--c) 50%); color: #fff; }
.jour.aujourdhui { outline: 2px solid var(--danger); outline-offset: -2px; font-weight: 700; }

@media (max-width: 760px) {
  .cal { --cw: 34px; --gw: 104px; }
  .cal-gite { padding: .4rem .5rem; }
  .cal-nom { font-size: .8rem; }
  .cal-nom i { display: none; }
  .cal-periode { width: 100%; order: -1; }
  .cal-nav input[type=date] { flex: 1; }
}
.page-calendrier .contenu { max-width: none; }
@media (max-width: 760px) {
  .barre-bas { gap: .3rem; padding-left: .4rem; padding-right: .4rem; }
  .barre-bas a span { font-size: .68rem; }
  .cal-nav { gap: .5rem; }
  .cal-nav input[type=date], .cal-nav select { flex: 1 1 40%; min-width: 0; }
  .cal-legende { font-size: .8rem; gap: .3rem .8rem; }
}

/* ---------- Synchronisation ---------- */
.etat-synchro { display: flex; align-items: center; gap: .4rem; margin: 0; color: var(--doux); font-size: .85rem; }
.etat-synchro[hidden] { display: none; }
.ligne-double { display: block; }
.grille-synchro { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); }
.carte-synchro { border-top: 5px solid var(--c); }
.cs-titre { margin: .6rem 0 .35rem; font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--doux); }
.sources { list-style: none; margin: 0; padding: 0; }
.sources li { display: flex; flex-wrap: wrap; gap: .2rem .6rem; padding: .4rem .55rem; border-radius: 8px; margin-bottom: .25rem; font-size: .86rem; }
.sources li strong { min-width: 4.5rem; }
.sources li span { display: inline-flex; align-items: center; gap: .3rem; color: var(--doux); }
.sources .relie { background: var(--accent-clair); }
.sources .relie span { color: var(--accent); }
.sources .en-erreur { background: #fbecea; }
.sources .en-erreur span { color: var(--danger); }
.sources .non-relie { background: var(--fond); opacity: .7; }
.lien-export { display: flex; gap: .4rem; }
.lien-export input { font-size: .78rem; min-height: 38px; color: var(--doux); }
.regenerer { margin: .4rem 0 0; }
.regenerer .lien-discret { font-size: .82rem; }
.aide-synchro ul { margin: 0 0 .6rem; padding-left: 1.1rem; }
.aide-synchro li { margin-bottom: .4rem; font-size: .92rem; }
@media (max-width: 760px) { .grille-synchro { grid-template-columns: 1fr; } }
@media (max-width: 1450px) { .menu-haut a { padding: .45rem .55rem; } .recherche-barre input { width: 5.5rem; } }

/* ---------- Tarifs ---------- */
.page-tarifs .contenu { max-width: none; }
.annees { display: flex; gap: .3rem; margin: 0; }
.annees .bouton-nav { text-decoration: none; }
.annees .bouton-nav.actif { background: var(--accent); border-color: var(--accent); color: #fff; }
.grille-tarifs-defile { border: 1px solid var(--ligne); border-radius: var(--rayon); }
table.grille-tarifs { border: 0; border-radius: 0; min-width: 1150px; }
.grille-tarifs th, .grille-tarifs td { padding: .3rem .25rem; text-align: center; white-space: nowrap; }
.grille-tarifs thead th { font-size: .7rem; padding: .4rem .25rem; }
.grille-tarifs .gt-gite { border-left: 2px solid var(--ligne); text-transform: none; font-size: .82rem; color: var(--texte); }
.grille-tarifs .gt-gite i { display: inline-block; width: .6rem; height: .6rem; border-radius: 3px; background: var(--c); margin-right: .3rem; }
.grille-tarifs td.gt-debut-gite { border-left: 2px solid var(--ligne); }
.grille-tarifs input { min-height: 34px; padding: .25rem .35rem; font-size: .88rem; }
.grille-tarifs td:first-child input { min-width: 10.5rem; }
.grille-tarifs input[type=date] { width: 9.2rem; }
.grille-tarifs .gt-prix input { width: 4.4rem; text-align: right; font-variant-numeric: tabular-nums; }
.gt-court { width: 3.6rem !important; text-align: center; }
.gt-moyen { width: 7rem; text-align: right; }
.gt-suppr { width: 2rem; color: var(--danger); }
.gt-suppr input { width: 1.1rem; min-height: 0; accent-color: var(--danger); }
.gt-nouvelle td { background: #fafbf8; }
.grille-tarifs input:disabled, .options-cat input:disabled, .options-cat select:disabled { background: transparent; border-color: transparent; color: var(--texte); opacity: 1; -webkit-text-fill-color: var(--texte); }
.majorations { align-items: center; }
.majorations label { display: inline-flex; align-items: center; gap: .35rem; }
.options-cat td { padding: .3rem .6rem; }
.options-cat input, .options-cat select { min-height: 38px; }

/* Fiche réservation : prix de la grille et options */
.gp-ligne { display: flex; align-items: center; gap: .6rem; min-height: 44px; }
.detail-grille { list-style: none; margin: .5rem 0 0; padding: 0; font-size: .85rem; color: var(--doux); }
.detail-grille li { padding: .1rem 0; }
.detail-grille li.attention { color: #8a5a12; font-weight: 600; }
.detail-grille li.attention::before { content: "⚠ "; }
.ajout-extras { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.ajout-extras select { width: auto; min-width: 16rem; }

/* ---------- Contrats et mails ---------- */
.actions-mails { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .8rem; }
.actions-mails a { display: inline-flex; align-items: center; gap: .3rem; }
.historique-mails { list-style: none; margin: 0; padding: 0; }
.historique-mails li { display: flex; gap: .8rem; padding: .45rem 0; border-top: 1px solid #f0f2ec; font-size: .9rem; }
.historique-mails li > span { color: var(--doux); white-space: nowrap; }
.historique-mails li.echec summary { color: var(--danger); }
.historique-mails summary { cursor: pointer; }
.historique-mails pre { white-space: pre-wrap; font: inherit; font-size: .85rem; background: var(--fond); padding: .6rem .8rem; border-radius: 8px; }
.modeles-mail { flex-wrap: wrap; }
.form-mail { max-width: 760px; }
.form-mail textarea { font-size: .95rem; line-height: 1.5; }
.contrat-edition { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 1rem; }
.texte-modele { font-family: ui-monospace, Menlo, monospace; font-size: .82rem; line-height: 1.5; }
.balises { font-size: .8rem; max-height: 40rem; overflow-y: auto; }
.balises ul { list-style: none; margin: 0 0 .6rem; padding: 0; }
.balises li { padding: .12rem 0; color: var(--doux); }
.balises code { color: var(--accent); font-weight: 600; background: var(--accent-clair); padding: 0 .25rem; border-radius: 4px; }
.apercu-contrat { font-size: .85rem; color: var(--doux); display: inline-flex; align-items: center; gap: .4rem; }
.apercu-contrat select { width: auto; min-height: 36px; }
.modele-mail { border: 1px solid var(--ligne); border-radius: 12px; padding: .8rem 1rem; margin: 0 0 1rem; display: flex; flex-direction: column; gap: .6rem; }
.modele-mail legend { font-weight: 700; padding: 0 .4rem; }
.attention-txt { color: #8a5a12 !important; font-weight: 600; }
@media (max-width: 900px) { .contrat-edition { grid-template-columns: 1fr; } .balises { max-height: none; } }
.contrat-edition .champ { grid-column: auto !important; }
.grille-champs.larges { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }

/* ---------- Statistiques ---------- */
.page-stats .contenu { max-width: 1280px; }
.actions-tete .bouton-nav { text-decoration: none; }
.tuiles-stats { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); margin: .5rem 0 1rem; }
.tuile-stat { display: flex; flex-direction: column; gap: .15rem; background: var(--surface); border: 1px solid var(--ligne); border-radius: 14px; padding: .8rem 1rem; }
.ts-titre { font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--doux); }
.ts-valeur { font-size: 1.55rem; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.ts-detail { font-size: .8rem; color: var(--doux); }
.ts-var { font-size: .78rem; font-weight: 600; }
.ts-var.hausse { color: var(--accent); }
.ts-var.baisse { color: #8a5a12; }
svg.graph { width: 100%; height: auto; display: block; }
.graph .grille-axe { stroke: #eceee8; stroke-width: 1; }
.graph .ligne-base { stroke: #b9beb4; stroke-width: 1; }
.graph .txt-axe { font-size: 11px; fill: var(--doux); font-variant-numeric: tabular-nums; }
.graph .barre.b-annee { fill: var(--accent); }
.graph .barre.b-prec { fill: #c5cbc0; }
.graph .zone-survol { fill: transparent; }
.graph .col:hover .zone-survol { fill: rgba(63, 107, 58, .06); }
.graph-legende { margin: 0; font-size: .82rem; }
.lg-annee { background: var(--accent); }
.lg-prec { background: #c5cbc0; }
.table-graph { margin-top: .5rem; font-size: .88rem; }
.table-graph summary { cursor: pointer; color: var(--doux); }
.table-graph table { margin-top: .5rem; max-width: 420px; }
.stats-gites td.fort { font-weight: 700; }
.jauge { display: inline-block; vertical-align: middle; width: 70px; height: 8px; border-radius: 99px; background: #eceee8; overflow: hidden; }
.jauge span { display: block; height: 100%; background: var(--accent); border-radius: 99px; }
table.carte-occupation { border-collapse: separate; border-spacing: 3px; width: 100%; min-width: 760px; font-size: .8rem; }
.carte-occupation th { font-weight: 600; color: var(--doux); text-align: left; white-space: nowrap; padding: 0 .4rem; font-size: .76rem; }
.carte-occupation thead th { text-align: center; }
.carte-occupation td { text-align: center; padding: .45rem .2rem; border-radius: 6px; background: #f5f6f3; font-variant-numeric: tabular-nums; color: var(--texte); }
.stats-deux { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.barres-h { list-style: none; margin: 0; padding: 0; }
.barres-h li { display: grid; grid-template-columns: 9rem 1fr auto; align-items: center; gap: .6rem; padding: .35rem 0; font-size: .9rem; }
.bh-nom { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bh-piste { height: 12px; background: #f0f2ec; border-radius: 4px; overflow: hidden; }
.bh-barre { display: block; height: 100%; background: var(--accent); border-radius: 0 4px 4px 0; }
.bh-val { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.bh-val small { color: var(--doux); margin-left: .3rem; }
@media (max-width: 760px) {
  .stats-deux { grid-template-columns: 1fr; }
  .barres-h li { grid-template-columns: 6.5rem 1fr; }
  .bh-val { grid-column: 2; text-align: left; }
  .ts-valeur { font-size: 1.3rem; }
  .tuiles-stats { grid-template-columns: 1fr 1fr; }
}
.graph-defile { overflow-x: auto; }
@media (max-width: 760px) {
  svg.graph { min-width: 620px; }
  .stats-gites td:nth-child(5), .stats-gites td:nth-child(6), .stats-gites td:nth-child(8), .stats-gites td:nth-child(10) { display: none; }
  .stats-gites td { padding: .15rem .9rem; }
  .stats-gites td.t-gite { font-weight: 700; padding-top: .4rem; }
  .stats-gites td.t-gite i { margin-right: .4rem; }
}
.liste-import td, .liste-import th { font-size: .84rem; padding: .4rem .55rem; white-space: nowrap; }
.import-confirmer { border-color: var(--accent); }
@media (max-width: 1500px) { .recherche-barre { display: none; } }
@media (max-width: 1350px) { .menu-haut a { padding: .4rem .4rem; font-size: .93rem; } .logo-gites span:last-child { font-size: .95rem; } }
@media (max-width: 1180px) { .logo-gites span:last-child { display: none; } }

/* Logo */
.logo-gites img { width: 32px; height: 32px; display: block; }
.logo-connexion-gites img { width: 190px; height: auto; filter: drop-shadow(0 8px 18px rgba(31, 42, 31, .18)); }
@media (max-width: 760px) { .logo-connexion-gites img { width: 150px; } }
.grille-import { display: grid; gap: .7rem 1rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.grille-import select { min-height: 40px; }
hr.separateur { border: 0; border-top: 1px solid var(--ligne); margin: 1.5rem 0 1rem; }

/* Logo complet dans la barre du haut (à la place du nom) */
.logo-gites img { width: 42px; height: 42px; display: block; }
@media (max-width: 760px) { .connecte .barre .logo-gites img { width: 40px; height: 40px; } }

/* Bandeau prévisionnel par gîte (tableau de bord) */
.bandeau-prev { display: grid; grid-template-columns: repeat(6, minmax(150px, 1fr)); gap: .6rem; overflow-x: auto; padding-bottom: .2rem; }
.bp-gite { display: flex; flex-direction: column; gap: .2rem; padding: .7rem .85rem; background: var(--surface); border: 1px solid var(--ligne);
  border-top: 4px solid var(--c, var(--accent)); border-radius: 14px; text-decoration: none; color: var(--texte); min-width: 150px; transition: box-shadow .15s; }
.bp-gite:hover { box-shadow: 0 6px 16px rgba(31, 42, 31, .1); }
.bp-nom { display: flex; align-items: center; gap: .35rem; font-size: .8rem; font-weight: 700; color: var(--doux); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bp-nom i { width: .55rem; height: .55rem; border-radius: 3px; background: var(--c); flex-shrink: 0; }
.bp-ligne { display: flex; align-items: center; gap: .5rem; }
.bp-ligne strong { font-size: 1.35rem; font-variant-numeric: tabular-nums; }
.bp-ligne .jauge { flex: 1; width: auto; }
.bp-ca { font-weight: 700; font-variant-numeric: tabular-nums; }
.bp-suiv { font-size: .75rem; color: var(--doux); font-variant-numeric: tabular-nums; }
.bp-total { background: var(--accent-clair); border-top-color: var(--accent); }
.bp-total .bp-nom { color: var(--accent); }
.bp-legende { margin: -.4rem 0 0; font-size: .78rem; color: var(--doux); }
@media (max-width: 1100px) { .bandeau-prev { grid-template-columns: repeat(3, minmax(150px, 1fr)); } }
@media (max-width: 760px) { .bandeau-prev { display: flex; scroll-snap-type: x mandatory; } .bp-gite { scroll-snap-align: start; flex: 0 0 46%; } }
