
  :root{
    --vert:#2f5d50; --vert-fonce:#1f3f36; --vert-clair:#e7f1ec; --accent:#3f9b6b;
    --fond:#f4f6f5; --carte:#fff; --texte:#1d2b27; --gris:#66756f; --bord:#d5dfda;
    --rouge:#b3261e; --rayon:12px;
  }
  *{box-sizing:border-box}
  body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--fond);color:var(--texte);font-size:16px;line-height:1.45}
  button,input,select{font:inherit}
  header{background:var(--vert);color:#fff;padding:12px 16px;display:flex;align-items:center;gap:12px}
  header .logo{font-weight:800;letter-spacing:2px;font-size:20px;cursor:pointer;background:none;border:none;color:#fff;padding:0}
  main{max-width:1100px;margin:0 auto;padding:16px}
  h1{font-size:22px;margin:4px 0 16px}
  .carte{background:var(--carte);border:1px solid var(--bord);border-radius:var(--rayon);padding:16px}
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:10px;padding:12px 18px;cursor:pointer;font-weight:600;min-height:46px}
  .btn-principal{background:var(--vert);color:#fff}
  .btn-principal:hover{background:var(--vert-fonce)}
  .btn-secondaire{background:#fff;color:var(--vert);border:1.5px solid var(--vert)}
  .btn-danger{background:#fff;color:var(--rouge);border:1.5px solid var(--rouge)}
  .btn-petit{min-height:38px;padding:6px 12px;font-size:14px}
  .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}

  /* Sélecteur de semaine */
  .semaine{display:flex;align-items:center;gap:8px;margin-bottom:18px}
  .semaine .fleche{width:46px;height:52px;border-radius:10px;border:1.5px solid var(--bord);background:#fff;font-size:22px;cursor:pointer;color:var(--vert)}
  .semaine .info{flex:1;text-align:center;background:#fff;border:1.5px solid var(--vert);border-radius:10px;padding:6px 10px;cursor:pointer}
  .semaine .info:hover{background:var(--vert-clair)}
  .semaine .num{font-weight:700;font-size:18px;color:var(--vert-fonce)}
  .semaine .num::after{content:" ▾";font-size:14px}
  .semaine .dates{font-size:13px;color:var(--gris)}
  .annee{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
  .annee b{font-size:20px}
  .annee button{width:42px;height:42px;border-radius:10px;border:1.5px solid var(--bord);background:#fff;font-size:20px;color:var(--vert);cursor:pointer}
  .grille-sem{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:6px}
  .grille-sem button{position:relative;border:1.5px solid var(--bord);background:#fff;border-radius:10px;padding:6px 2px;cursor:pointer;line-height:1.1}
  .grille-sem button b{display:block;font-size:17px}
  .grille-sem button small{font-size:11px;color:var(--gris)}
  .grille-sem button.choisie{background:var(--vert);border-color:var(--vert);color:#fff}
  .grille-sem button.choisie small{color:#d9ebe2}
  .grille-sem button.actuelle{border-color:var(--accent);border-width:2.5px}
  .grille-sem button.donnees::after{content:"";position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--accent)}
  .grille-sem button.choisie.donnees::after{background:#fff}
  .legende{font-size:13px;color:var(--gris);margin-top:10px;display:flex;gap:14px;flex-wrap:wrap}
  .legende i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:4px}

  /* Menu */
  .tuiles{display:grid;grid-template-columns:1fr;gap:12px}
  .tuile{display:flex;align-items:center;gap:16px;background:#fff;border:1.5px solid var(--bord);border-radius:var(--rayon);padding:18px;cursor:pointer;text-align:left;width:100%;color:var(--texte)}
  .tuile:hover{border-color:var(--vert);box-shadow:0 2px 10px rgba(0,0,0,.06)}
  .tuile .ico{width:48px;height:48px;border-radius:12px;background:var(--vert-clair);display:grid;place-items:center;flex-shrink:0}
  .tuile .ico svg{width:26px;height:26px;stroke:var(--vert);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .tuile strong{display:block;font-size:17px}
  .ronds{margin-left:auto;display:flex;gap:6px;flex-shrink:0}
  .rond-j{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;color:var(--gris);font-weight:600;line-height:1}
  .rond-j.auj{color:var(--vert-fonce)}
  .rond{display:block;width:13px;height:13px;border-radius:50%;border:2px solid #b9c7c0;background:#fff}
  .rond-j.auj .rond{border-color:var(--vert)}
  .rond.r-plein{background:var(--accent);border-color:var(--accent)}
  .rond.r-demi{background:linear-gradient(to bottom,var(--accent) 50%,#fff 50%);border-color:var(--accent)}
  .rond{flex:none;padding:0;box-sizing:border-box}
  @media (min-width:760px){.ronds{margin:6px 0 0}}
  @media (max-width:759px){.tuiles{gap:8px}.tuile{padding:12px 14px;gap:14px}.tuile .ico{width:42px;height:42px}}
  .tuile span{font-size:14px;color:var(--gris)}

  /* Formulaires */
  .grille{display:grid;grid-template-columns:1fr;gap:16px}
  label.champ{display:block;font-weight:600;font-size:14px;margin-bottom:6px}
  input[type=text],input[type=date],input[type=tel],input[type=search],select{width:100%;padding:12px;border:1.5px solid var(--bord);border-radius:10px;background:#fff;min-height:46px}
  input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(63,155,107,.2)}
  .aide{font-size:13px;color:var(--gris);margin-top:4px}
  .badge{display:inline-block;background:var(--vert-clair);color:var(--vert);font-weight:700;border-radius:999px;padding:4px 12px;font-size:14px;white-space:nowrap}
  .ligne-date{display:flex;gap:10px;align-items:center}
  .ligne-date input{flex:1}
  .puces{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
  .puce{background:var(--vert-clair);color:var(--vert-fonce);border-radius:999px;padding:6px 6px 6px 12px;display:flex;align-items:center;gap:6px;font-size:15px}
  .puce button{border:none;background:#fff;border-radius:50%;width:26px;height:26px;cursor:pointer;color:var(--vert);font-size:15px}
  .ajout{display:flex;gap:8px;flex-wrap:wrap}
  .ajout input{flex:1;min-width:160px}
  .compteur{display:flex;align-items:center;border:1.5px solid var(--bord);border-radius:10px;overflow:hidden;background:#fff}
  .compteur button{width:56px;height:52px;border:none;background:var(--vert-clair);color:var(--vert);font-size:24px;font-weight:700;cursor:pointer}
  .compteur .val{flex:1;text-align:center;font-size:20px;font-weight:700}
  .rapides{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
  .rapides button{border:1px solid var(--bord);background:#fff;border-radius:8px;padding:6px 10px;cursor:pointer;font-size:14px}
  .total{margin-top:6px;font-size:16px}
  .erreur{color:var(--rouge);font-size:14px;margin-top:10px}
  .message{background:var(--vert-clair);color:var(--vert-fonce);border-radius:10px;padding:12px;margin-bottom:14px;font-weight:600}

  /* Visualisation */
  .vide{text-align:center;padding:36px 16px}
  .vide p{color:var(--gris);margin:6px 0 0}
  .jour{margin-top:18px}
  .jour h3{font-size:15px;color:var(--gris);text-transform:capitalize;margin:0 0 8px}
  .entree{background:#fff;border:1px solid var(--bord);border-radius:var(--rayon);padding:14px;margin-bottom:10px}
  .entree .nom{font-weight:700;font-size:17px}
  .entree .meta{color:var(--gris);font-size:14px}
  .entree .heures{display:flex;gap:16px;margin-top:8px;font-size:15px;flex-wrap:wrap}
  .entree .boutons{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
  table{display:none;width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--bord);border-radius:var(--rayon);overflow:hidden}
  th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--bord);font-size:15px}
  th{background:var(--vert-clair);color:var(--vert-fonce);font-size:13px;text-transform:uppercase;letter-spacing:.5px}
  td.num,th.num{text-align:right}
  .totaux{margin-top:22px}
  .totaux h2{font-size:18px;margin:0 0 10px}
  .totaux .liste{display:grid;grid-template-columns:1fr;gap:8px}
  .totaux .t{display:flex;justify-content:space-between;background:#fff;border:1px solid var(--bord);border-radius:10px;padding:10px 14px}

  /* Carnet */
  .filtres{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}
  .filtres button{border:1.5px solid var(--bord);background:#fff;border-radius:999px;padding:6px 14px;cursor:pointer;font-size:14px}
  .filtres button.actif{background:var(--vert);border-color:var(--vert);color:#fff}
  .secteur{margin-top:18px}
  .secteur h3{font-size:15px;color:var(--vert-fonce);margin:0 0 8px;display:flex;align-items:center;gap:8px}
  .secteur h3 span{font-weight:400;color:var(--gris);font-size:13px}
  .contacts{display:grid;grid-template-columns:1fr;gap:10px}
  .contact{background:#fff;border:1px solid var(--bord);border-radius:var(--rayon);padding:12px 14px}
  .contact .nom{font-weight:700}
  .contact .meta{font-size:14px;color:var(--gris)}
  .contact .boutons{display:flex;gap:8px;margin-top:8px}
  .choix{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#fff;border:1.5px solid var(--bord);border-radius:10px;padding:10px 12px;cursor:pointer;margin-bottom:6px;color:var(--texte)}
  .choix .coche{width:24px;height:24px;border-radius:6px;border:2px solid var(--bord);display:grid;place-items:center;flex-shrink:0;color:#fff;font-size:15px}
  .choix.pris{border-color:var(--vert);background:var(--vert-clair)}
  .choix.pris .coche{background:var(--vert);border-color:var(--vert)}
  .choix .meta{font-size:13px;color:var(--gris)}
  .sous-titre{font-size:13px;font-weight:700;color:var(--gris);text-transform:uppercase;letter-spacing:.5px;margin:14px 0 8px}

  /* Sous-onglets */
  .onglets{display:flex;background:#fff;border:1.5px solid var(--bord);border-radius:12px;padding:4px;gap:4px;margin-bottom:16px;max-width:520px}
  .onglets button{flex:1;border:none;background:none;padding:10px;border-radius:9px;font-weight:600;color:var(--gris);cursor:pointer;min-height:44px;font-size:15px}
  .onglets button.actif{background:var(--vert);color:#fff}
  /* Heures chauffeur */
  .demi{border:1.5px solid var(--bord);border-radius:12px;padding:12px}
  .demi .titre{font-weight:700;margin-bottom:8px;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
  .demi .titre span{font-weight:600;color:var(--vert)}
  .deux{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .deux label{font-size:13px;color:var(--gris);display:block;margin-bottom:4px}
  .lettres{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  .lettres button{border:1.5px solid var(--bord);background:#fff;border-radius:10px;padding:10px 4px;cursor:pointer;color:var(--texte)}
  .lettres b{display:block;font-size:22px}
  .lettres span{font-size:13px;color:var(--gris)}
  .lettres button.actif{background:var(--vert);border-color:var(--vert);color:#fff}
  .lettres button.actif span{color:#d9ebe2}
  .lettre{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 6px;border-radius:8px;background:var(--vert);color:#fff;font-weight:800;font-size:14px}
  .totalJour{background:var(--vert-clair);border-radius:10px;padding:12px;font-size:16px}
  .creneaux{font-size:14px;color:var(--gris);margin-top:2px}

  .jours-rapides{display:flex;gap:6px;margin-top:8px}
  .jours-rapides button{border:1px solid var(--bord);background:#fff;border-radius:8px;padding:6px 12px;cursor:pointer;font-size:14px}
  .secteur-auto{margin-top:6px;font-size:14px}
  .secteur-auto .ok{color:var(--vert);font-weight:600}
  .secteur-auto .ko{color:#8a6d00}
  .secteur-auto button{border:1.5px solid var(--vert);background:#fff;color:var(--vert);border-radius:8px;padding:5px 10px;margin:4px 4px 0 0;cursor:pointer;font-size:14px}

  header .compte{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:13px}
  header .compte select{min-height:36px;padding:4px 8px;border-radius:8px;border:none;background:#fff;color:var(--vert-fonce);font-weight:600;width:auto}
  .champ-fixe{padding:12px;border-radius:10px;background:var(--vert-clair);font-weight:700;min-height:46px}
  .parchauf{display:grid;grid-template-columns:1fr;gap:10px}
  .pc{display:flex;align-items:center;gap:12px;background:#fff;border:1.5px solid var(--bord);border-radius:var(--rayon);padding:14px;cursor:pointer;text-align:left;width:100%;color:var(--texte)}
  .pc:hover{border-color:var(--vert)}
  .pc .av{width:42px;height:42px;border-radius:50%;background:var(--vert);color:#fff;display:grid;place-items:center;font-weight:800;flex-shrink:0}
  .pc .av.tous{background:var(--vert-clair);color:var(--vert)}
  .pc .inf{flex:1}.pc .inf span{display:block;font-size:13px;color:var(--gris)}
  .pc .h{font-weight:800;font-size:18px;color:var(--vert-fonce)}
  .pc.vide{opacity:.6}
  .retour{background:none;border:none;color:var(--vert);font-weight:600;cursor:pointer;padding:4px 0;margin-bottom:10px;font-size:15px}
  .par{font-size:13px;color:var(--vert);font-weight:600}
  @media (min-width:760px){.parchauf{grid-template-columns:repeat(3,1fr)}}

  .mdp{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--vert-clair);border-radius:10px;padding:12px;margin-top:8px}
  .mdp code{font-size:22px;font-weight:800;letter-spacing:2px;color:var(--vert-fonce);flex:1}
  .etiquette{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:2px 10px;background:var(--vert-clair);color:var(--vert)}
  .etiquette.admin{background:#e8e3f7;color:#4b3a8c}
  .etiquette.off{background:#f2e3e2;color:var(--rouge)}
  .case{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:15px}
  .case input{width:22px;height:22px;accent-color:var(--vert)}
  .tel{display:inline-block;margin-top:4px;color:var(--vert);font-weight:600;text-decoration:none;font-size:15px}
  .lien{background:none;border:none;color:var(--vert);text-decoration:underline;cursor:pointer;padding:6px 0;font-size:15px}


  textarea{width:100%;padding:12px;border:1.5px solid var(--bord);border-radius:10px;background:#fff;min-height:90px;font:inherit;resize:vertical}
  textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(63,155,107,.2)}
  .note{background:#fff8e1;border-left:4px solid #e0b100;border-radius:6px;padding:8px 10px;margin-top:8px;font-size:14px;white-space:pre-wrap}
  .dist{font-weight:800;color:var(--vert-fonce);font-size:18px;white-space:nowrap}
  .recherche-lieu{background:#fff;border:1.5px solid var(--vert);border-radius:var(--rayon);padding:12px;margin-bottom:14px}
  .recherche-lieu .ligne{display:flex;gap:8px;flex-wrap:wrap}
  .recherche-lieu .ligne input{flex:1;min-width:170px}

  .sugg{display:flex;flex-direction:column;gap:6px;margin-top:6px}
  .sugg:empty{display:none}
  .sugg button{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;background:#fff;border:1.5px solid var(--vert);border-radius:10px;padding:10px 12px;cursor:pointer;color:var(--texte);font-size:15px}
  .sugg button span{font-size:13px;color:var(--gris)}
  .sugg button b{color:var(--vert-fonce)}
  .sugg .titre-sugg{font-size:13px;color:var(--gris)}

  .bloc-hotel{margin-bottom:14px}
  .bloc-hotel .hotel-semaine{margin-bottom:0}
  .autres-hotels{background:#fff;border:1.5px solid var(--bord);border-top:none;border-radius:0 0 var(--rayon) var(--rayon);margin:-6px 6px 0;padding:8px 12px 6px}
  .autres-hotels summary{cursor:pointer;color:var(--vert);font-weight:600;font-size:14px;padding:4px 0;list-style:none}
  .autres-hotels summary::after{content:" ▾"}
  .autres-hotels[open] summary::after{content:" ▴"}
  .autres-hotels button{display:flex;justify-content:space-between;gap:8px;width:100%;background:none;border:none;border-top:1px solid var(--bord);padding:8px 0;text-align:left;cursor:pointer;color:var(--texte);font-size:14px}
  .autres-hotels button span{color:var(--gris)}
  .hotel-semaine{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--vert);color:#fff;border:none;border-radius:var(--rayon);padding:14px 16px;margin-bottom:14px;cursor:pointer}
  .hotel-semaine .ico-h{font-size:28px}
  .hotel-semaine b{display:block;font-size:16px}
  .hotel-semaine span span{display:block;font-size:13px;color:#d9ebe2;margin-top:2px}
  .etoiles{display:flex;gap:4px}
  .etoiles button{border:none;background:none;font-size:34px;line-height:1;color:#cfd8d3;cursor:pointer;padding:2px}
  .etoiles button.on{color:#e0a800}
  .etoiles-aff{color:#e0a800;letter-spacing:1px}
  .ligne-note{font-size:15px;margin-top:6px}
  .prix{margin-top:6px;font-weight:700;color:var(--vert-fonce)}
  a.itin{text-decoration:none}

  .retour-menu{display:none;position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom));z-index:8;align-items:center;gap:6px;background:var(--vert);color:#fff;border:none;border-radius:999px;padding:12px 26px;font-weight:700;font-size:16px;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.25);white-space:nowrap}
  body.hors-menu .retour-menu{display:inline-flex}
  body.hors-menu main{padding-bottom:96px}
  body.modale-ouverte .retour-menu{display:none}
  body.hors-menu main button.btn[onclick="aller('menu')"]{display:none} /* remplacés par le bouton flottant */

  textarea.petit{min-height:56px}
  .pictos{display:flex;gap:8px;margin-top:8px}
  .picto{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%}
  .picto svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .picto svg.plein, .picto-lib svg.plein{fill:currentColor;stroke:none}
  .picto svg.plein .trou{fill:#fff}
  .picto.ok{background:#dff3e7;color:#1f8a4c}
  .picto.ko{background:#fbe5e3;color:var(--rouge)}
  .sur-place{border:1.5px solid var(--bord);border-radius:12px;padding:10px 12px}
  .ligne-picto{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0}
  .picto-lib{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px}
  .picto-lib svg{width:22px;height:22px;fill:none;color:var(--vert);stroke:var(--vert);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
  .ouinon{display:flex;border:1.5px solid var(--bord);border-radius:10px;overflow:hidden;flex:none}
  .ouinon button{border:none;background:#fff;padding:8px 14px;font-weight:700;cursor:pointer;color:var(--gris);min-width:54px}
  .ouinon button+button{border-left:1.5px solid var(--bord)}
  .ouinon button.oui{background:#1f8a4c;color:#fff}
  .ouinon button.non{background:var(--rouge);color:#fff}

  .papier{background:#fff;width:760px;max-width:none;margin:0 auto;padding:36px 40px;box-shadow:0 2px 10px rgba(0,0,0,.15);color:#111;font-size:12px;line-height:1.35}
  .doc-entete{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2px solid var(--vert);padding-bottom:10px;margin-bottom:14px}
  .doc-logo{font-weight:800;letter-spacing:3px;font-size:20px;color:var(--vert)}
  .doc-titre{font-weight:800;font-size:16px}
  .doc-sous{color:#555;font-size:12px}
  .doc-h2{font-size:15px;margin:18px 0 6px;color:var(--vert-fonce);border-bottom:1px solid #ccc;padding-bottom:3px}
  .doc-h3{font-size:13px;margin:12px 0 4px}
  .doc-personne{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px}
  .doc-personne .doc-h3{margin:0 0 4px}
  .doc-personne span{font-size:12px}
  .doc-table{width:100%;border-collapse:collapse;margin-bottom:8px;display:table}
  .doc-table th,.doc-table td{border:1px solid #c9d1cd;padding:4px 6px;font-size:11.5px;text-align:left}
  .doc-table th{background:#eef3f0;font-weight:700;text-transform:none;letter-spacing:0;color:#222}
  .doc-table .n{text-align:right;white-space:nowrap}
  .doc-table tfoot td{background:#f6f8f7;font-weight:600}
  .doc-table tr.sous-total td{background:#e8f1ec;color:var(--vert-fonce);font-weight:700;border-bottom:2px solid #b9cfc3}
  .doc-detail td,.doc-detail th{font-size:10.5px;color:#333}
  .doc-vide{color:#666;font-style:italic}
  .doc-pied{margin-top:18px;border-top:1px solid #ccc;padding-top:6px;color:#777;font-size:10px;text-align:right}

  /* Fenêtre (modale) */
  .voile{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:flex-end;justify-content:center;z-index:10}
  .voile.ouvert{display:flex}
  .fenetre{background:#fff;width:100%;max-height:88vh;overflow:auto;border-radius:16px 16px 0 0;padding:18px}
  .fenetre h2{margin:0 0 12px;font-size:19px;display:flex;align-items:center}
  .fenetre h2 .fermer{margin-left:auto;border:none;background:var(--vert-clair);color:var(--vert);width:36px;height:36px;border-radius:50%;font-size:18px;cursor:pointer}


/* ===== Ajouts version finale ===== */
a{color:var(--vert)}
.cache{display:none!important}
.mt0{margin-top:0}.mt8{margin-top:8px}.mt14{margin-top:14px}.mb14{margin-bottom:14px}
.centre{text-align:center}
.flex{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.flex1{flex:1}
.droite{margin-left:auto}
.lien-btn{background:none;border:none;color:var(--vert);text-decoration:underline;cursor:pointer;padding:6px 0;font-size:15px;font:inherit}
.btn{text-decoration:none}
header .compte{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:14px}
header .compte a,header .compte button{color:#fff;font-size:14px;background:none;border:1px solid rgba(255,255,255,.5);border-radius:8px;padding:6px 10px;cursor:pointer;text-decoration:none}
.flash{background:var(--vert-clair);color:var(--vert-fonce);border-radius:10px;padding:12px;margin-bottom:14px;font-weight:600}
.erreurs{background:#fbeceb;color:var(--rouge);border-radius:10px;padding:12px;margin:0 0 14px;font-weight:600}
.erreurs ul{margin:4px 0 0;padding-left:18px;font-weight:500}
.alerte{background:#fff8e1;border-left:4px solid #e0b100;border-radius:6px;padding:10px 12px;margin:10px 0;font-size:15px}
.alerte.rouge{border-color:var(--rouge);background:#fbeceb}
.semaine a.fleche{display:grid;place-items:center;text-decoration:none}
.connexion{max-width:400px;margin:28px auto}
.logo-grand{text-align:center;font-weight:800;letter-spacing:4px;font-size:30px;color:var(--vert);margin-bottom:16px}
input[type=email],input[type=number],input[type=url],input[type=password]{width:100%;padding:12px;border:1.5px solid var(--bord);border-radius:10px;background:#fff;min-height:46px;font:inherit}
.compteur input{width:0;height:0;opacity:0;position:absolute}
/* Oui / Non et lettres en boutons radio, sans JavaScript */
.choix-radio{display:flex;border:1.5px solid var(--bord);border-radius:10px;overflow:hidden;flex:none}
.choix-radio label{position:relative}
.choix-radio input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.choix-radio span{display:block;padding:8px 14px;font-weight:700;color:var(--gris);min-width:54px;text-align:center;background:#fff;cursor:pointer}
.choix-radio label+label span{border-left:1.5px solid var(--bord)}
.choix-radio input:checked+span.oui{background:#1f8a4c;color:#fff}
.choix-radio input:checked+span.non{background:var(--rouge);color:#fff}
.choix-radio input:focus-visible+span{outline:3px solid rgba(63,155,107,.4)}
.lettres label{position:relative;display:block}
.lettres input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.lettres .l{display:block;border:1.5px solid var(--bord);background:#fff;border-radius:10px;padding:10px 4px;text-align:center;cursor:pointer}
.lettres .l b{display:block;font-size:22px}
.lettres .l small{font-size:13px;color:var(--gris)}
.lettres input:checked+.l{background:var(--vert);border-color:var(--vert);color:#fff}
.lettres input:checked+.l small{color:#d9ebe2}
/* Étoiles */
.etoiles-choix{display:inline-flex;flex-direction:row-reverse;gap:2px}
.etoiles-choix input{position:absolute;opacity:0;width:1px;height:1px}
.etoiles-choix label{font-size:36px;line-height:1;color:#cfd8d3;cursor:pointer;padding:2px}
.etoiles-choix input:checked~label,.etoiles-choix label:hover,.etoiles-choix label:hover~label{color:#e0a800}
.etoiles-choix input:focus-visible+label{outline:2px solid var(--accent)}
/* Fenêtre */
.voile{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:flex-end;justify-content:center;z-index:10}
.voile.ouvert{display:flex}
.fenetre{background:#fff;width:100%;max-height:88vh;overflow:auto;border-radius:16px 16px 0 0;padding:18px}
.fenetre h2{margin:0 0 12px;font-size:19px;display:flex;align-items:center;gap:8px}
.fenetre h2 .fermer{margin-left:auto;border:none;background:var(--vert-clair);color:var(--vert);width:36px;height:36px;border-radius:50%;font-size:18px;cursor:pointer;flex:none}
body.modale-ouverte .retour-menu{display:none}
/* Bouton menu flottant */
.retour-menu{display:inline-flex;position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom));z-index:8;align-items:center;gap:6px;background:var(--vert);color:#fff;border:none;border-radius:999px;padding:12px 26px;font-weight:700;font-size:16px;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.25);white-space:nowrap;text-decoration:none}
body.avec-retour main{padding-bottom:96px}
/* Message écran d'accueil */
.appli-msg{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:9;background:#fff;border:1.5px solid var(--vert);border-radius:12px;padding:8px 10px;display:flex;gap:8px;align-items:center;font-size:13px;box-shadow:0 4px 14px rgba(0,0,0,.15)}
body.avec-retour .appli-msg{bottom:calc(76px + env(safe-area-inset-bottom))}
.appli-msg .x{border:none;background:none;font-size:18px;color:var(--gris);cursor:pointer;margin-left:auto;padding:2px 6px}
.appli-msg button.ajout{background:var(--vert);color:#fff;border:none;border-radius:8px;padding:6px 10px;font-weight:600;cursor:pointer}
@media (min-width:760px){.appli-msg{left:auto;right:16px;max-width:380px}}
/* Pictos agriculteurs */
.picto svg.plein{fill:currentColor;stroke:none}
.picto svg.plein .trou{fill:#fff}
.picto-lib svg.plein{fill:currentColor;stroke:none;color:var(--vert)}
/* Divers */
.tag{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:2px 10px;background:var(--vert-clair);color:var(--vert);margin:0 4px 4px 0}
.tag.admin{background:#e8e3f7;color:#4b3a8c}
.note-txt{background:#f4f6f5;border-radius:8px;padding:8px 10px;margin-top:6px;white-space:pre-wrap;font-size:14px}
.mdp-affiche{font-size:26px;font-weight:800;letter-spacing:3px;color:var(--vert-fonce)}
details.carte summary{cursor:pointer;font-weight:600;color:var(--vert)}
.liste-sugg{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.pied{color:var(--gris);font-size:12px;text-align:center;margin:30px 0 10px}

  /* ---------- Ordinateur / tablette ---------- */
  @media (min-width: 760px){
    main{padding:28px}
    h1{font-size:26px}
    .tuiles{grid-template-columns:repeat(3,1fr)}
    .tuile{flex-direction:column;text-align:center;padding:28px 18px}
    .grille{grid-template-columns:1fr 1fr;gap:20px 28px}
    .grille .large{grid-column:1 / -1}
    .semaine{max-width:520px}
    .liste-cartes{display:none}
    table{display:table}
    .totaux .liste{grid-template-columns:repeat(3,1fr)}
    .contacts{grid-template-columns:repeat(3,1fr)}
    .voile{align-items:center;padding:20px}
    .fenetre{max-width:560px;border-radius:16px}
  }

/* ===== Liens présentés en boutons / onglets ===== */
header .logo{text-decoration:none;color:#fff;font-weight:800;letter-spacing:2px;font-size:20px}
.onglets a{flex:1;text-align:center;padding:10px;border-radius:9px;font-weight:600;color:var(--gris);text-decoration:none;min-height:44px;font-size:15px;display:flex;align-items:center;justify-content:center}
.onglets a.actif{background:var(--vert);color:#fff}
.filtres a{border:1.5px solid var(--bord);background:#fff;border-radius:999px;padding:6px 14px;font-size:14px;text-decoration:none;color:var(--texte)}
.filtres a.actif{background:var(--vert);border-color:var(--vert);color:#fff}
a.tuile,a.pc,a.hotel-semaine{text-decoration:none}
a.hotel-semaine{color:#fff}
.autres-hotels a{display:flex;justify-content:space-between;gap:8px;width:100%;border-top:1px solid var(--bord);padding:8px 0;text-decoration:none;color:var(--texte);font-size:14px}
.autres-hotels a span{color:var(--gris)}
a.retour{display:inline-block;color:var(--vert);font-weight:600;padding:4px 0;margin-bottom:10px;text-decoration:none}
form.inline,.boutons form{display:inline}
.nowrap{white-space:nowrap}
.plein-largeur{width:100%}
.petit{font-size:14px}
a.lien{display:inline-block;color:var(--vert);padding:4px 0}
.orange{color:#8a6d00}
.boutons.wrap{flex-wrap:wrap}
.vide .actions{justify-content:center}
.ok{color:var(--vert);font-weight:600}
.ko{color:#8a6d00}
.secteur-auto button{border:1.5px solid var(--vert);background:#fff;color:var(--vert);border-radius:8px;padding:5px 10px;margin:4px 4px 0 0;cursor:pointer;font-size:14px}
.liste-sugg button{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;background:#fff;border:1.5px solid var(--vert);border-radius:10px;padding:10px 12px;cursor:pointer;color:var(--texte);font-size:15px}
.liste-sugg button span{font-size:13px;color:var(--gris)}
.liste-sugg .titre-sugg{font-size:13px;color:var(--gris)}
.picto.ko{color:var(--rouge)}
.lettres{grid-template-columns:repeat(3,1fr)}
.totaux .t .aide{margin:0 0 0 8px}

span.champ{display:block;font-weight:600;font-size:14px;margin-bottom:6px}
span.champ.mt14{margin-top:14px}
.etoiles-choix{margin-bottom:4px}
