/* ─────────────────────────────────────────────────────────────────────────────
 * amo-date — calendrier Amosphère (voir amo-date.js).
 * Le champ natif reste dans le DOM en opacité nulle ; ces règles dessinent le
 * bouton et le panneau. Survol bleuté, jour choisi en marine, jour du jour
 * marqué d'un point orange (pas d'aplat orange : réservé au bouton principal).
 * ───────────────────────────────────────────────────────────────────────────── */
.amo-date{
  --amo-d-marine:var(--c-marine,#0e295c);
  --amo-d-bord:var(--c-bleu-pale-bord,#cdd8ee);
  position:relative;display:block;font-family:'Outfit',sans-serif;min-width:0
}
.amo-date>input.amo-date-natif{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;
  opacity:0!important;pointer-events:none!important;border:0!important;padding:0!important;margin:0!important;box-shadow:none!important
}
.amo-date .amo-date-saisie{
  display:block;width:100%;min-height:46px;margin:0;
  padding:11px 48px 11px 14px!important;background:var(--c-fond,#fff);border:1px solid var(--amo-d-bord);border-radius:10px;
  font:inherit;font-size:15px;font-weight:400;line-height:1.35;color:var(--amo-d-marine);font-variant-numeric:tabular-nums;
  transition:border-color .18s,box-shadow .18s
}
.amo-date .amo-date-saisie::placeholder{color:var(--c-texte-exemple,#9aa4b5)}
.amo-date .amo-date-saisie:hover{border-color:#bcc6da}
.amo-date .amo-date-saisie:focus{outline:none;border-color:var(--c-orange,#e1622b);box-shadow:0 0 0 3px rgba(225,98,43,.14)}
.amo-date .amo-date-saisie.est-invalide{border-color:#d1351a;box-shadow:0 0 0 3px rgba(209,53,26,.12)}
/* Icône : seul déclencheur du calendrier */
.amo-date-btn{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:grid;place-items:center;
  border:0;border-radius:8px;background:transparent;color:var(--c-texte-3,#5b6472);cursor:pointer;transition:background-color .15s,color .15s
}
.amo-date-btn:hover{background:var(--c-bleu-pale,#dde5f5);color:var(--amo-d-marine)}
.amo-date-btn:focus-visible{outline:2px solid var(--c-orange,#e1622b);outline-offset:1px}
.amo-date-btn[aria-expanded="true"]{color:var(--c-orange,#e1622b);background:var(--c-orange-pale,#fdeee7)}
.amo-date-ico{flex:none}
.amo-date[data-desactive="1"] .amo-date-saisie{opacity:.55;cursor:not-allowed;background:#f4f6fa}
.amo-date[data-desactive="1"] .amo-date-btn{opacity:.4;cursor:not-allowed}

/* Panneau */
.amo-date-pop{
  position:fixed;z-index:9000;width:308px;padding:14px;background:#fff;border:1px solid #e5e8ef;border-radius:14px;
  box-shadow:0 14px 40px -8px rgba(14,41,92,.22),0 2px 6px rgba(14,41,92,.06);
  font-family:'Outfit',sans-serif;font-size:14px;color:var(--c-marine,#0e295c);-webkit-font-smoothing:antialiased
}
.amo-date-pop button{font-family:inherit}
.amo-date-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.amo-date-mois{font-size:15px;font-weight:600}
.amo-date-fl{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--c-marine,#0e295c);cursor:pointer;transition:background-color .15s}
.amo-date-fl:hover{background:var(--c-fond-clair,#f3f6fc)}
.amo-date-fl:disabled{opacity:.3;cursor:default;background:transparent}
.amo-date-fl:focus-visible,.amo-date-j:focus-visible,.amo-date-puce:focus-visible,.amo-date-lien:focus-visible,.amo-date-ok:focus-visible{outline:2px solid var(--c-orange,#e1622b);outline-offset:1px}

.amo-date-grille{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.amo-date-js{font-size:11.5px;font-weight:600;color:var(--c-texte-3,#5b6472);text-align:center;padding:4px 0 6px;text-transform:lowercase}
.amo-date-j{
  position:relative;height:38px;border:0;border-radius:10px;background:transparent;color:var(--c-marine,#0e295c);
  font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s,color .15s
}
.amo-date-j:hover{background:var(--c-bleu-pale,#dde5f5)}
.amo-date-j.est-auj{font-weight:700}
.amo-date-j.est-auj::after{content:'';position:absolute;left:50%;bottom:5px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--c-orange,#e1622b)}
.amo-date-j.est-choisi{background:var(--c-marine,#0e295c);color:#fff;font-weight:600}
.amo-date-j.est-choisi::after{background:#fff}
.amo-date-j:disabled{color:#b8c0cc;cursor:default;background:transparent;font-weight:400}
.amo-date-j:disabled::after{display:none}
.amo-date-v{height:38px}

/* Heure (datetime-local) : à droite du calendrier sur grand écran, dessous en mobile */
.amo-date-pop.avec-heure{width:548px}
.amo-date-corps{display:flex;gap:18px}
.amo-date-cal{flex:0 0 280px}
.amo-date-pop.avec-heure .amo-date-heure{flex:1;min-width:0;margin:0;padding:0 0 0 18px;border-top:0;border-left:1px solid #edf0f6}
.amo-date-pop.avec-heure .amo-date-puces{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.amo-date-pop.avec-heure .amo-date-puce{min-width:0;padding:0}
.amo-date-heure{margin-top:12px;padding-top:12px;border-top:1px solid #edf0f6}
.amo-date-etiq{display:block;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--c-texte-3,#5b6472);margin:0 0 6px}
.amo-date-etiq+.amo-date-puces{margin-bottom:10px}
.amo-date-puces{display:flex;gap:6px;flex-wrap:wrap}
.amo-date-puces--h{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}
.amo-date-puces--h .amo-date-puce{min-width:0;height:32px;padding:0;font-size:13px}
.amo-date-puce{flex:none;min-width:46px;height:34px;padding:0 10px;border:1px solid var(--c-bleu-pale-bord,#cdd8ee);border-radius:999px;background:#fff;color:var(--c-marine,#0e295c);font-size:13.5px;font-weight:500;cursor:pointer;transition:background-color .15s,border-color .15s}
.amo-date-puce:hover{background:var(--c-fond-clair,#f3f6fc)}
.amo-date-puce.est-choisi{background:var(--c-marine,#0e295c);border-color:var(--c-marine,#0e295c);color:#fff}

.amo-date-pied{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding-top:10px;border-top:1px solid #edf0f6}
.amo-date-liens{display:flex;gap:16px}
.amo-date-lien{position:relative;border:0;background:none;padding:4px 0;font-size:14px;font-weight:500;color:var(--c-marine,#0e295c);cursor:pointer}
/* Trait dessiné au survol, comme .v-lien */
.amo-date-lien::after{content:'';position:absolute;left:0;right:0;bottom:1px;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s cubic-bezier(.2,.7,.3,1)}
.amo-date-lien:hover::after{transform:scaleX(1)}
.amo-date-ok{height:38px;padding:0 18px;border:0;border-radius:10px;background:var(--c-marine,#0e295c);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .15s}
.amo-date-ok:hover{background:var(--c-marine-survol,#1a3a7a)}
.amo-date-ok:disabled{opacity:.4;cursor:default}

/* Mobile : feuille remontant du bas, comme amo-select */
.amo-date-voile{position:fixed;inset:0;z-index:8990;background:rgba(14,41,92,.38);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
@media (max-width:640px){
  .amo-date-pop.est-feuille{left:0!important;right:0;bottom:0;top:auto!important;width:auto;max-height:88vh;overflow-y:auto;
    padding:12px 16px calc(14px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;border-bottom:0;
    box-shadow:0 -10px 40px -6px rgba(14,41,92,.28);transition:transform .22s cubic-bezier(.22,.8,.3,1),opacity .22s ease-out}
  .amo-date-pop.est-feuille.est-entrante{transform:translateY(16px);opacity:.35}
  .amo-date-tete{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0 10px;margin-bottom:8px;border-bottom:1px solid #edf0f6}
  .amo-date-titre{font-size:15px;font-weight:600}
  .amo-date-fermer{flex:none;width:34px;height:34px;border:0;border-radius:50%;background:#f4f6fa;color:#596475;font-size:20px;line-height:1;cursor:pointer}
  .amo-date-j,.amo-date-v{height:44px;font-size:15px}
  .amo-date-pop.est-feuille.avec-heure{width:auto}
  .amo-date-pop.est-feuille .amo-date-corps{display:block}
  .amo-date-pop.est-feuille .amo-date-heure{margin-top:12px;padding:12px 0 0;border-left:0;border-top:1px solid #edf0f6}
  .amo-date-pop.est-feuille .amo-date-puces--h{grid-template-columns:repeat(6,1fr)}
  .amo-date-puce{height:40px}
  .amo-date-puces--h .amo-date-puce{height:38px}
}
@media (prefers-reduced-motion:reduce){.amo-date-pop.est-feuille{transition:none}}
