/* Espace bénévole et prise de rendez-vous — même palette que monasso.css. */

/* Champs date / heure / téléphone : habillés comme les autres champs du thème. */
.mo-manage :is(input[type=date], input[type=time], input[type=tel]) {
    display: block; width: 100%; min-height: 2.75rem; padding: .65rem .9rem;
    border: 1px solid #e6d6ff; border-radius: .75rem; background: #fff; color: #17143b;
    font: inherit; line-height: 1.4; outline: none; transition: border-color .15s, box-shadow .15s;
}
.mo-manage :is(input[type=date], input[type=time], input[type=tel]):hover { border-color: #d8bdfa; }
.mo-manage :is(input[type=date], input[type=time], input[type=tel]):focus { border-color: #8247ff; box-shadow: 0 0 0 3px rgba(138, 77, 253, .18); }

/* En-tête de l'espace bénévole */
.mo-vol-head { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.25rem; padding: 1.5rem; border-radius: 1.25rem;
    background: linear-gradient(135deg, #faf7ff, #f1e7fd); border: 1px solid #e9ddff; }
.mo-avatar { flex: none; display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 50%;
    background: linear-gradient(135deg, #8247ff, #5924c7); color: #fff; font-weight: 800; font-size: 1.2rem; letter-spacing: .02em; }
.mo-avatar.is-lg { width: 4.5rem; height: 4.5rem; font-size: 1.5rem; }
.mo-vol-head__main { flex: 1 1 16rem; min-width: 0; }
.mo-vol-head__main h1 { margin: 0; font-size: 1.6rem; font-weight: 800; letter-spacing: -.02em; color: #17143b; }
.mo-vol-head__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .75rem; margin-top: .35rem; color: #77769d; font-size: .92rem; }
.mo-vol-head__actions { display: flex; flex-wrap: wrap; gap: .6rem; }

/* Onglets de l'espace bénévole, rangés en deux groupes */
.mo-vol-nav { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; align-items: flex-end; }
.mo-vol-nav__group { display: grid; gap: .35rem; }
.mo-vol-nav__label { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #77769d; padding-left: .35rem; }
.mo-vol-nav__tabs { display: flex; flex-wrap: wrap; gap: .3rem; padding: .3rem; background: #faf7ff; border: 1px solid #e9ddff; border-radius: 1rem; }
.mo-vol-nav__tabs a { display: inline-flex; align-items: center; gap: .4rem; padding: .5rem .9rem; border-radius: .7rem; font-weight: 600; font-size: .93rem; color: #77769d; text-decoration: none; }
.mo-vol-nav__tabs a:hover { color: #5924c7; }
.mo-vol-nav__tabs a.is-active { background: #fff; color: #5924c7; box-shadow: 0 1px 2px rgba(19, 3, 38, .08); }
.mo-vol-nav__tabs svg { width: 1rem; height: 1rem; flex: none; }

/* Fiche en lecture : libellé / valeur */
.mo-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: .75rem; margin: 0; }
.mo-facts > div { padding: .8rem 1rem; border-radius: .9rem; background: #faf7ff; border: 1px solid #f1e7fd; min-width: 0; }
.mo-facts dt { font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #77769d; }
.mo-facts dd { margin: .2rem 0 0; color: #17143b; font-weight: 600; overflow-wrap: anywhere; }
.mo-facts dd.is-empty { color: #a39bb8; font-weight: 500; }
.mo-tags { display: flex; flex-wrap: wrap; gap: .35rem; }
.mo-tag { display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .65rem; border-radius: 999px; background: #f1e7fd; color: #5924c7; font-size: .85rem; font-weight: 600; }
.mo-tag.is-off { background: #f2f4f7; color: #98a2b3; text-decoration: line-through; }

/* Semaine type (disponibilités) */
.mo-week { display: grid; gap: .6rem; grid-template-columns: repeat(7, minmax(0, 1fr)); }
@media (max-width: 1100px) { .mo-week { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 640px) { .mo-week { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mo-week__day { display: grid; align-content: start; gap: .45rem; padding: .75rem; min-height: 7rem; border-radius: .9rem; border: 1px solid #e9ddff; background: #fff; }
.mo-week__day.is-empty { background: #fcfbff; border-style: dashed; }
.mo-week__day h4 { margin: 0; font-size: .85rem; font-weight: 800; color: #17143b; }
.mo-week__none { font-size: .82rem; color: #a39bb8; }
.mo-slot { display: flex; align-items: center; justify-content: space-between; gap: .25rem; padding: .3rem .3rem .3rem .55rem; border-radius: .6rem; background: #f1e7fd; color: #5924c7; font-weight: 700; font-size: .84rem; }
.mo-slot.is-paused { background: #f2f4f7; color: #98a2b3; }
.mo-slot__actions { display: flex; gap: .1rem; }
.mo-slot__actions button { display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: .4rem; color: inherit; cursor: pointer; }
.mo-slot__actions button:hover { background: rgba(255, 255, 255, .7); }
.mo-slot__actions svg { width: .9rem; height: .9rem; }

/* Formulaire compact sur une ligne */
.mo-inline-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem; padding: 1rem; border-radius: .9rem; background: #faf7ff; border: 1px solid #f1e7fd; }
.mo-inline-form .mo-field-group { flex: 1 1 9rem; }
.mo-inline-form .mo-field-group.is-wide { flex: 2 1 14rem; }

/* Agenda (liste groupée par jour) */
.mo-agenda { display: grid; gap: 1rem; }
.mo-agenda__day h4 { margin: 0 0 .45rem; font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: #5924c7; }
.mo-agenda__day.is-today h4::after { content: "Aujourd'hui"; margin-left: .5rem; padding: .1rem .5rem; border-radius: 999px; background: #5924c7; color: #fff; font-size: .7rem; letter-spacing: 0; text-transform: none; }
.mo-appt { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; padding: .8rem 1rem; border-radius: .9rem; border: 1px solid #e9ddff; background: #fff; }
.mo-appt + .mo-appt { margin-top: .5rem; }
.mo-appt__time { flex: none; min-width: 4.5rem; font-size: 1.1rem; font-weight: 800; color: #17143b; }
.mo-appt__time small { display: block; font-size: .78rem; font-weight: 600; color: #77769d; }
.mo-appt__main { flex: 1 1 14rem; min-width: 0; display: grid; gap: .1rem; }
.mo-appt__main strong { color: #17143b; }
.mo-appt__main small { color: #77769d; overflow-wrap: anywhere; }
.mo-appt.is-past { background: #fcfbff; opacity: .85; }

/* Lien à copier */
.mo-copy { display: flex; gap: .5rem; align-items: stretch; }
.mo-copy input { flex: 1; min-width: 0; }

/* ---------- Page publique de réservation ---------- */
.mo-book { display: grid; gap: 1.25rem; align-items: start; }
@media (min-width: 960px) { .mo-book { grid-template-columns: 20rem minmax(0, 1fr); } }
.mo-book__aside { display: grid; gap: 1rem; padding: 1.5rem; border-radius: 1.25rem; background: #fff; border: 1px solid #e9ddff;
    box-shadow: 0 1px 2px rgba(19, 3, 38, .04), 0 8px 24px rgba(19, 3, 38, .05); }
@media (min-width: 960px) { .mo-book__aside { position: sticky; top: 5.5rem; } }
.mo-book__who { display: flex; gap: .9rem; align-items: center; }
.mo-book__who h1 { margin: 0; font-size: 1.3rem; font-weight: 800; color: #17143b; }
.mo-book__who p { margin: .1rem 0 0; color: #77769d; font-size: .9rem; }
.mo-book__intro { margin: 0; color: #4a4568; }
.mo-book__summary { display: grid; gap: .45rem; padding-top: 1rem; border-top: 1px solid #f1e7fd; font-size: .92rem; color: #4a4568; }
.mo-book__summary div { display: flex; gap: .55rem; align-items: flex-start; }
.mo-book__summary svg { flex: none; width: 1.05rem; height: 1.05rem; margin-top: .15rem; color: #8247ff; }
.mo-book__main { display: grid; gap: 1rem; }

.mo-types { display: grid; gap: .6rem; }
.mo-type { display: grid; gap: .15rem; width: 100%; text-align: left; padding: .9rem 1rem; border-radius: .9rem; border: 1px solid #e9ddff; background: #fff; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.mo-type:hover { border-color: #b998fb; }
.mo-type.is-on { border-color: #8247ff; background: #faf7ff; box-shadow: 0 0 0 3px rgba(138, 77, 253, .15); }
.mo-type strong { color: #17143b; }
.mo-type small { color: #77769d; }

.mo-steps { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.mo-steps li { display: flex; align-items: center; gap: .45rem; font-size: .88rem; font-weight: 600; color: #a39bb8; }
.mo-steps li + li::before { content: ""; width: 1.25rem; height: 1px; background: #e9ddff; margin-right: .1rem; }
.mo-steps li span { display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 1px solid #e9ddff; font-size: .78rem; }
.mo-steps li.is-done, .mo-steps li.is-current { color: #5924c7; }
.mo-steps li.is-current span { background: #5924c7; border-color: #5924c7; color: #fff; }
.mo-steps li.is-done span { background: #f1e7fd; border-color: #f1e7fd; }

.mo-picker { display: grid; gap: 1.25rem; }
@media (min-width: 720px) { .mo-picker { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); } }
.mo-cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .6rem; }
.mo-cal__head strong { font-size: 1rem; color: #17143b; text-transform: capitalize; }
.mo-cal__nav { display: flex; gap: .3rem; }
.mo-cal__nav button { display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: .6rem; border: 1px solid #e9ddff; background: #fff; color: #5924c7; cursor: pointer; }
.mo-cal__nav button:disabled { opacity: .35; cursor: default; }
.mo-cal__nav svg { width: 1.1rem; height: 1.1rem; }
.mo-cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .3rem; text-align: center; }
.mo-cal__dow { font-size: .72rem; font-weight: 700; text-transform: uppercase; color: #a39bb8; padding: .2rem 0; }
.mo-cal__day { aspect-ratio: 1; display: grid; place-items: center; border-radius: .7rem; font-weight: 600; font-size: .92rem; color: #c9c3d9; background: transparent; border: 0; }
button.mo-cal__day { color: #5924c7; background: #f1e7fd; font-weight: 800; cursor: pointer; transition: background-color .15s; }
button.mo-cal__day:hover { background: #e2d2ff; }
button.mo-cal__day.is-on { background: #5924c7; color: #fff; }
.mo-cal__day.is-today { box-shadow: inset 0 0 0 2px #b998fb; }
.mo-times h4 { margin: 0 0 .6rem; font-size: 1rem; color: #17143b; }
.mo-times__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.25rem, 1fr)); gap: .45rem; }
.mo-times__grid button { padding: .6rem .4rem; border-radius: .7rem; border: 1px solid #d8bdfa; background: #fff; color: #5924c7; font-weight: 800; cursor: pointer; }
.mo-times__grid button:hover { border-color: #5924c7; }
.mo-times__grid button.is-on { background: #5924c7; border-color: #5924c7; color: #fff; }

.mo-success { display: grid; justify-items: center; gap: .6rem; text-align: center; padding: 2rem 1.5rem; }
.mo-success__icon { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 50%; background: #ecfdf3; color: #067647; }
.mo-success__icon svg { width: 1.8rem; height: 1.8rem; }
.mo-success h2 { margin: 0; font-size: 1.4rem; font-weight: 800; color: #17143b; }
.mo-success p { margin: 0; color: #4a4568; }
.mo-notice { display: flex; gap: .6rem; align-items: flex-start; padding: .8rem 1rem; border-radius: .9rem; background: #faf7ff; border: 1px solid #e9ddff; color: #4a4568; font-size: .93rem; }
.mo-notice svg { flex: none; width: 1.1rem; height: 1.1rem; margin-top: .15rem; color: #8247ff; }

/* Aperçu de la fiche bénévole */
.mo-overview { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }
.mo-overview__tile { display: grid; gap: .3rem; align-content: start; padding: 1rem 1.1rem; border-radius: 1rem; background: #fff; border: 1px solid #e9ddff; text-decoration: none; color: inherit; }
a.mo-overview__tile:hover { border-color: #8247ff; }
.mo-overview__tile small { font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #77769d; }
.mo-overview__tile strong { font-size: 1.35rem; font-weight: 800; color: #17143b; line-height: 1.2; }
.mo-overview__tile span { font-size: .85rem; color: #77769d; }
.mo-overview__tile.is-warn strong { color: #b54708; }
.mo-overview__tile .mo-gauge { margin-top: .25rem; }

/* Carte du référent */
.mo-person { display: flex; flex-wrap: wrap; align-items: center; gap: .9rem; }
.mo-person__main { flex: 1 1 12rem; display: grid; gap: .1rem; }
.mo-person__main strong { color: #17143b; }
.mo-person__main small { color: #77769d; }

/* Chronologie (espace bénévole) */
.mo-timeline { position: relative; display: grid; gap: .8rem; margin: 0; padding: 0 0 0 1.5rem; list-style: none; }
.mo-timeline::before { content: ""; position: absolute; left: .45rem; top: .35rem; bottom: .35rem; width: 2px; background: #e9ddff; }
.mo-timeline li { position: relative; display: flex; flex-wrap: wrap; gap: .15rem .75rem; align-items: baseline; }
.mo-timeline li::before { content: ""; position: absolute; left: -1.33rem; top: .4rem; width: .7rem; height: .7rem; border-radius: 50%; background: #8247ff; box-shadow: 0 0 0 3px #fff; }
.mo-timeline li.is-success::before { background: #12b76a; }
.mo-timeline li.is-warning::before { background: #f79009; }
.mo-timeline li.is-gray::before { background: #98a2b3; }
.mo-timeline time { min-width: 5.5rem; font-size: .8rem; font-weight: 700; color: #77769d; }
.mo-timeline strong { font-size: .93rem; color: #17143b; }
.mo-timeline small { font-size: .82rem; color: #77769d; }

/* Disponibilités : résumé, modèles en un clic, outils par jour, édition sur place */
.mo-av-summary { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; margin-bottom: 1rem; }
.mo-av-summary__stat { font-size: .9rem; color: #5f5078; }
.mo-av-summary__stat strong { font-size: 1.15rem; color: #17143b; }
.mo-av-summary__actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-left: auto; }
.mo-av-summary__actions .mo-btn-secondary { display: inline-flex; align-items: center; gap: .3rem; }
.mo-av-summary__actions svg { width: 1rem; height: 1rem; }
.mo-av-quick { margin-bottom: 1rem; }
.mo-av-chips { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .35rem; }
.mo-av-chip { display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .75rem; border-radius: 999px; border: 1px solid #e9ddff; background: #fcfbff; color: #5924c7; font-weight: 700; font-size: .84rem; cursor: pointer; text-decoration: none; transition: background .15s, border-color .15s; }
.mo-av-chip:hover { background: #f1e7fd; border-color: #d6c2fb; }
.mo-av-chip small { color: #8a7fa6; font-weight: 600; }
.mo-av-link { margin-left: .5rem; padding: 0; border: 0; background: none; color: #7c3aed; font-weight: 700; font-size: .8rem; text-decoration: underline; cursor: pointer; }
.mo-week__head { display: flex; align-items: center; justify-content: space-between; gap: .25rem; }
.mo-week__tools { display: flex; gap: .1rem; opacity: .55; transition: opacity .15s; }
.mo-week__day:hover .mo-week__tools, .mo-week__tools:focus-within { opacity: 1; }
.mo-week__tools button, .mo-slot__actions button { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border: 0; border-radius: .45rem; background: transparent; color: inherit; cursor: pointer; }
.mo-week__tools button:hover, .mo-slot__actions button:hover { background: rgba(124, 58, 237, .12); }
.mo-week__tools svg, .mo-slot__actions svg { width: .95rem; height: .95rem; }
.mo-week__day.is-source { border-color: #7c3aed; box-shadow: 0 0 0 3px rgba(124, 58, 237, .15); }
.mo-slot__time { padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; text-align: left; }
.mo-slot__time:hover { text-decoration: underline; }
.mo-slot-edit { display: grid; grid-template-columns: 1fr 1fr; gap: .3rem; padding: .35rem; border-radius: .6rem; background: #f1e7fd; }
.mo-slot-edit input { min-width: 0; padding: .25rem .35rem; font-size: .8rem; border-radius: .4rem; border: 1px solid #d6c2fb; }
.mo-slot-edit .mo-slot__actions { grid-column: 1 / -1; justify-content: flex-end; color: #5924c7; }
.mo-slot-edit .mo-error { grid-column: 1 / -1; margin: 0; }
.mo-av-copy { border: 1px dashed #c4a8fa; }

/* Agenda des rendez-vous : barre d'outils, actions, formulaires sur place, abonnement */
.mo-ag-toolbar { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.2rem; }
.mo-ag-toolbar button, .mo-ag-actions button { display: inline-flex; align-items: center; gap: .35rem; }
.mo-ag-toolbar svg, .mo-ag-actions svg, .mo-ag-note svg { width: 1rem; height: 1rem; }
.mo-ag-actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-left: auto; }
.mo-ag-inline { flex-basis: 100%; display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; padding-top: .5rem; border-top: 1px dashed #e9ddff; }
.mo-ag-inline input { flex: 1 1 10rem; min-width: 0; }
.mo-ag-inline .mo-error { flex-basis: 100%; margin: 0; }
.mo-ag-note { display: inline-flex; align-items: center; gap: .3rem; color: #6b5a8e !important; font-style: italic; }
.mo-appt.is-pending { border-color: #f5c46b; background: #fffbf2; }
.mo-kpis .is-alert dd { color: #c2410c; }
.mo-ag-feed { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .6rem; }
.mo-ag-feed input { flex: 1 1 22rem; min-width: 0; font-family: ui-monospace, monospace; font-size: .8rem; }
