/* =========================================================================
   A.B.V. Intranet encadrants — coque à colonne de gauche + modules.
   Mobile-first. Léger (aucune librairie). Charte club : vert sapin / blanc.
   ========================================================================= */

:root {
	--abvi-vert: #1f5a40;
	--abvi-vert-fonce: #143f2d;
	--abvi-jaune: #f3c012;
	--abvi-encre: #23302a;
	--abvi-gris: #5c6660;
	--abvi-fond: #eef1ee;
	--abvi-carte: #ffffff;
	--abvi-bord: #e1e6e1;
	--abvi-police: "DM Sans", "Helvetica Neue", Arial, sans-serif;
	--abvi-rayon: 10px;
	--abvi-side-w: 250px;
	--abvi-side-wc: 72px;
}

body.abvi-body { margin: 0; font-family: var(--abvi-police); color: var(--abvi-encre); background: var(--abvi-fond); -webkit-font-smoothing: antialiased; }
body.abvi-body * { box-sizing: border-box; }
.abvi-body img { max-width: 100%; height: auto; }

/* =========================================================================
   Colonne de gauche
   ========================================================================= */
.abvi-side {
	position: fixed; top: 0; left: 0; bottom: 0; width: var(--abvi-side-w);
	background: var(--abvi-carte); border-right: 1px solid var(--abvi-bord);
	display: flex; flex-direction: column; z-index: 50;
	transform: translateX(-100%); transition: transform .22s ease, width .18s ease;
}
.abvi-side__top { display: flex; align-items: center; gap: 8px; padding: 16px 14px; border-bottom: 1px solid var(--abvi-bord); }
.abvi-side__brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; flex: 1 1 auto; min-width: 0; }
.abvi-side__brand img { width: 38px; height: 38px; object-fit: contain; flex: 0 0 auto; }
.abvi-side__brandtext { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.abvi-side__brandtext strong { color: var(--abvi-vert); font-size: 15px; white-space: nowrap; }
.abvi-side__brandtext span { color: var(--abvi-gris); font-size: 12px; }
.abvi-side__toggle { flex: 0 0 auto; width: 32px; height: 32px; display: none; place-items: center; background: none; border: 1px solid var(--abvi-bord); border-radius: 8px; color: var(--abvi-gris); cursor: pointer; }
.abvi-side__toggle svg { width: 18px; height: 18px; }

.abvi-nav { flex: 1 1 auto; overflow-y: auto; padding: 12px 10px; display: flex; flex-direction: column; gap: 3px; }
.abvi-nav__item { display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-radius: 9px; text-decoration: none; color: var(--abvi-encre); font-weight: 600; font-size: 15px; white-space: nowrap; }
.abvi-nav__item:hover { background: #f3f6f3; }
.abvi-nav__item.is-active { background: #e7f0ea; color: var(--abvi-vert-fonce); }
.abvi-nav__item.is-soon { color: #a9b1aa; cursor: default; }
.abvi-nav__icon { flex: 0 0 auto; width: 22px; height: 22px; display: grid; place-items: center; color: var(--abvi-vert); }
.abvi-nav__item.is-active .abvi-nav__icon { color: var(--abvi-vert-fonce); }
.abvi-nav__item.is-soon .abvi-nav__icon { color: #c0c7c0; }
.abvi-nav__icon svg { width: 21px; height: 21px; }
.abvi-nav__label { min-width: 0; }
.abvi-soon { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--abvi-vert-fonce); background: #fbe9a8; padding: 1px 6px; border-radius: 999px; }

.abvi-side__bottom { border-top: 1px solid var(--abvi-bord); padding: 12px 10px; display: flex; align-items: center; gap: 8px; }
.abvi-profilelink { flex: 1 1 auto; display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 9px; text-decoration: none; color: inherit; min-width: 0; }
.abvi-profilelink:hover { background: #f3f6f3; }
.abvi-profilelink.is-active { background: #e7f0ea; }
.abvi-avatar { flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%; background: var(--abvi-vert); color: #fff; display: grid; place-items: center; font-weight: 700; }
.abvi-profilelink__id { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.abvi-profilelink__name { font-weight: 700; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.abvi-profilelink__role { color: var(--abvi-gris); font-size: 12px; }
.abvi-logout { flex: 0 0 auto; width: 38px; height: 38px; display: grid; place-items: center; color: var(--abvi-gris); border: 1px solid var(--abvi-bord); border-radius: 9px; }
.abvi-logout:hover { color: #c0392b; border-color: #e4c3bf; background: #fdecea; }
.abvi-logout svg { width: 19px; height: 19px; }

/* Zone de contenu */
.abvi-shell { min-height: 100vh; display: flex; flex-direction: column; }
.abvi-main { flex: 1 1 auto; padding: 22px 16px 60px; }
.abvi-container { max-width: 1040px; margin: 0 auto; }

/* Barre mobile (burger) */
.abvi-mobilebar { display: flex; align-items: center; gap: 12px; padding: 10px 14px; background: var(--abvi-carte); border-bottom: 1px solid var(--abvi-bord); position: sticky; top: 0; z-index: 40; }
.abvi-mobilebar__burger { width: 40px; height: 40px; display: grid; place-items: center; background: none; border: 1px solid var(--abvi-bord); border-radius: 9px; color: var(--abvi-encre); cursor: pointer; }
.abvi-mobilebar__burger svg { width: 22px; height: 22px; }
.abvi-mobilebar__title { font-weight: 700; color: var(--abvi-vert); }
.abvi-backdrop { position: fixed; inset: 0; background: rgba(20,33,28,.45); z-index: 45; border: 0; }

/* --- Ouverture du tiroir (mobile) --- */
body.abvi-navopen .abvi-side { transform: translateX(0); box-shadow: 0 0 40px rgba(0,0,0,.2); }

/* =========================================================================
   Desktop : colonne fixe visible, contenu décalé
   ========================================================================= */
@media (min-width: 821px) {
	.abvi-side { transform: translateX(0); }
	.abvi-side__toggle { display: grid; }
	.abvi-shell { margin-left: var(--abvi-side-w); transition: margin-left .18s ease; }
	.abvi-mobilebar { display: none; }
	.abvi-backdrop { display: none; }
	.abvi-main { padding: 30px 28px 70px; }

	/* Replié : icônes seules */
	body.abvi-collapsed .abvi-side { width: var(--abvi-side-wc); }
	body.abvi-collapsed .abvi-shell { margin-left: var(--abvi-side-wc); }
	body.abvi-collapsed .abvi-side__brandtext,
	body.abvi-collapsed .abvi-nav__label,
	body.abvi-collapsed .abvi-profilelink__id { display: none; }
	body.abvi-collapsed .abvi-side__top { justify-content: center; padding: 16px 8px; }
	body.abvi-collapsed .abvi-side__toggle { transform: rotate(180deg); }
	body.abvi-collapsed .abvi-nav__item,
	body.abvi-collapsed .abvi-profilelink { justify-content: center; }
	body.abvi-collapsed .abvi-side__bottom { flex-direction: column; }
}

/* =========================================================================
   Éléments de contenu communs
   ========================================================================= */
.abvi-hello { margin-bottom: 22px; }
.abvi-hello h1 { margin: 0 0 5px; font-size: 27px; font-weight: 1000; letter-spacing: -.01em; }
.abvi-hello p { margin: 0; color: var(--abvi-gris); font-size: 15px; }
.abvi-h2 { font-size: 18px; font-weight: 700; margin: 26px 0 10px; }
.abvi-count { display: inline-block; min-width: 22px; text-align: center; background: #e7f0ea; color: var(--abvi-vert-fonce); border-radius: 999px; font-size: 13px; padding: 1px 8px; margin-left: 4px; }
.abvi-muted { color: var(--abvi-gris); font-size: 13.5px; }
.abvi-empty { color: var(--abvi-gris); background: var(--abvi-carte); border: 1px dashed var(--abvi-bord); border-radius: var(--abvi-rayon); padding: 18px; }
.abvi-dot { color: var(--abvi-vert); font-size: 11px; vertical-align: middle; }

.abvi-crumbs { font-size: 13px; color: var(--abvi-gris); margin: 0 0 14px; display: flex; gap: 7px; align-items: center; flex-wrap: wrap; }
.abvi-crumbs a { color: var(--abvi-vert); text-decoration: none; font-weight: 600; }
.abvi-crumbs a:hover { text-decoration: underline; }
.abvi-back { color: var(--abvi-vert); text-decoration: none; font-weight: 600; }
.abvi-back:hover { text-decoration: underline; }

.abvi-toolbar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }

.abvi-btn { display: inline-block; background: var(--abvi-vert); color: #fff; border: 0; border-radius: 9px; padding: 11px 18px; font: inherit; font-weight: 700; font-size: 14.5px; cursor: pointer; text-decoration: none; transition: background .15s; }
.abvi-btn:hover { background: var(--abvi-vert-fonce); color: #fff; }
.abvi-btn--ghost { background: #fff; color: var(--abvi-vert); border: 1px solid var(--abvi-bord); }
.abvi-btn--ghost:hover { background: #f3f6f3; border-color: var(--abvi-vert); color: var(--abvi-vert); }
.abvi-btn--small { padding: 7px 13px; font-size: 13px; }
.abvi-btn--danger { background: #fff; color: #c0392b; border: 1px solid #e4c3bf; }
.abvi-btn--danger:hover { background: #fdecea; color: #c0392b; }
.abvi-inlineform { display: inline; margin: 0; }

.abvi-chip { display: inline-block; background: #e7f0ea; color: var(--abvi-vert-fonce); font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 999px; }
.abvi-chip--muted { background: #eef1ee; color: var(--abvi-gris); }

/* Tableau de bord */
.abvi-dash { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 760px) { .abvi-dash { grid-template-columns: 1fr 1fr; } }

/* Notices */
.abvi-notice { padding: 13px 16px; border-radius: 9px; margin: 0 0 16px; font-size: 14.5px; }
.abvi-notice--ok { background: #e6f4ea; border: 1px solid var(--abvi-vert); color: #143f2d; }
.abvi-notice--err { background: #fdecea; border: 1px solid #c0392b; color: #7a1d12; }
.abvi-notice--info { background: #fff7e0; border: 1px solid var(--abvi-jaune); color: #5a4a00; }
.abvi-copy { display: block; margin-top: 6px; padding: 9px 11px; background: #fff; border: 1px solid var(--abvi-bord); border-radius: 7px; font-size: 12.5px; word-break: break-all; }

/* Panneaux dépliables + formulaires */
.abvi-panel { background: var(--abvi-carte); border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); padding: 0 18px; margin: 0 0 16px; }
.abvi-panel > summary { cursor: pointer; font-weight: 700; font-size: 15px; padding: 15px 0; color: var(--abvi-vert); list-style: none; }
.abvi-panel > summary::-webkit-details-marker { display: none; }
.abvi-panel > summary::before { content: "+ "; font-weight: 700; }
.abvi-panel[open] > summary::before { content: "– "; }

.abvi-form { padding-bottom: 18px; }
.abvi-form--grid { display: grid; grid-template-columns: 1fr; gap: 15px; }
@media (min-width: 620px) { .abvi-form--grid { grid-template-columns: 1fr 1fr; } }
.abvi-form label { display: block; font-weight: 600; font-size: 13.5px; }
.abvi-form label span { color: #c0392b; }
.abvi-form input, .abvi-form select, .abvi-form textarea { display: block; width: 100%; margin-top: 5px; padding: 11px 12px; border: 1px solid var(--abvi-bord); border-radius: 9px; font: inherit; font-size: 15px; background: #fff; color: var(--abvi-encre); }
.abvi-form input:focus, .abvi-form select:focus, .abvi-form textarea:focus { outline: none; border-color: var(--abvi-vert); box-shadow: 0 0 0 3px rgba(31,90,64,.14); }
.abvi-form textarea { resize: vertical; }
.abvi-col2 { grid-column: 1 / -1; }
.abvi-form__submit { grid-column: 1 / -1; display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.abvi-form__hint { color: var(--abvi-gris); font-size: 13px; margin: -8px 0 10px; }
.abvi-check { display: flex; align-items: center; gap: 8px; font-weight: 500; }
.abvi-check input { width: auto; margin: 0; }
.abvi-filenow { display: block; font-weight: 500; margin: 5px 0; font-size: 13.5px; }

/* Tables */
.abvi-tablewrap { background: var(--abvi-carte); border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); overflow: hidden; }
.abvi-table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.abvi-table thead th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .03em; color: var(--abvi-gris); padding: 12px 14px; border-bottom: 1px solid var(--abvi-bord); }
.abvi-table td { padding: 12px 14px; border-bottom: 1px solid #f0f3f0; vertical-align: middle; }
.abvi-table tr:last-child td { border-bottom: 0; }
.abvi-table a { color: var(--abvi-vert); text-decoration: none; }
.abvi-table a:hover { text-decoration: underline; }
.abvi-table__meta { text-align: right; white-space: nowrap; }
@media (max-width: 680px) {
	.abvi-table thead { display: none; }
	.abvi-table, .abvi-table tbody, .abvi-table tr, .abvi-table td { display: block; width: 100%; }
	.abvi-table tr { border-bottom: 1px solid var(--abvi-bord); padding: 8px 2px; }
	.abvi-table tr:last-child { border-bottom: 0; }
	.abvi-table td { border: 0; padding: 4px 14px; }
	.abvi-table td::before { content: attr(data-label) " : "; font-weight: 700; color: var(--abvi-gris); }
	.abvi-table td.abvi-table__meta::before { content: ""; }
	.abvi-table__meta { text-align: left; white-space: normal; padding-top: 8px; }
}

/* Administration : matrice des droits */
.abvi-perms th, .abvi-perms td { text-align: left; vertical-align: top; }
.abvi-perms thead th { position: relative; color: var(--abvi-encre); }
.abvi-perms__admin { color: var(--abvi-gris); font-weight: 600; }
.abvi-perms__cb { display: flex; align-items: center; gap: 7px; font-size: 13.5px; color: var(--abvi-encre); padding: 3px 0; cursor: pointer; white-space: nowrap; }
.abvi-perms__cb input { margin: 0; accent-color: var(--abvi-vert); width: 16px; height: 16px; }
.abvi-perms__del { border: 0; background: transparent; color: var(--abvi-gris); font-size: 16px; line-height: 1; cursor: pointer; padding: 0 0 0 6px; }
.abvi-perms__del:hover { color: var(--abvi-vert); }
.abvi-perms thead .abvi-inlineform { display: inline; }
.abvi-addbar { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin: 6px 0 4px; }
.abvi-addbar input[type="text"] { flex: 1 1 260px; min-width: 0; padding: 9px 12px; border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); font: inherit; }

/* Prose (wiki, descriptions) */
.abvi-prose { background: var(--abvi-carte); border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); padding: 20px 22px; line-height: 1.65; }
.abvi-prose :first-child { margin-top: 0; }
.abvi-prose :last-child { margin-bottom: 0; }
.abvi-prose a { color: var(--abvi-vert); }
.abvi-prose ul, .abvi-prose ol { padding-left: 20px; }

/* Listes (wiki) */
.abvi-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.abvi-list__item { display: block; background: var(--abvi-carte); border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); padding: 15px 17px; text-decoration: none; color: inherit; }
.abvi-list__item:hover { border-color: var(--abvi-vert); }
.abvi-list__item strong { display: block; color: var(--abvi-encre); font-size: 15.5px; }
.abvi-list__item span { color: var(--abvi-gris); font-size: 13.5px; }

/* Badges */
.abvi-badge { display: inline-block; font-size: 11.5px; font-weight: 700; padding: 2px 9px; border-radius: 999px; background: #eef1ee; color: var(--abvi-encre); vertical-align: middle; }
.abvi-badge--seance { background: #e7f0ea; color: #1f5a40; }
.abvi-badge--entrainement { background: #e7f0ea; color: #1f5a40; }
.abvi-badge--sortie { background: #e3eefc; color: #1b4e8a; }
.abvi-badge--regate { background: #fbe9a8; color: #7a5c00; }
.abvi-badge--manifestation { background: #fde3d3; color: #9a4210; }
.abvi-badge--reunion { background: #ece3f7; color: #5a3b8c; }

/* Agenda */
.abvi-agenda__week { font-size: 13px; text-transform: uppercase; letter-spacing: .03em; color: var(--abvi-gris); margin: 22px 0 10px; font-weight: 700; }
.abvi-agenda__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.abvi-agenda__row { display: flex; align-items: center; gap: 14px; background: var(--abvi-carte); border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); padding: 11px 14px; text-decoration: none; color: inherit; }
.abvi-agenda__row:hover { border-color: var(--abvi-vert); }
.abvi-agenda__day { flex: 0 0 auto; width: 44px; text-align: center; }
.abvi-agenda__day strong { display: block; font-size: 19px; }
.abvi-agenda__day span { font-size: 11px; text-transform: uppercase; color: var(--abvi-gris); }
.abvi-agenda__info { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.abvi-agenda__title { font-weight: 600; }
.abvi-agenda__sub { color: var(--abvi-gris); font-size: 13px; }
.abvi-agenda__count { flex: 0 0 auto; min-width: 26px; height: 26px; border-radius: 50%; background: #e7f0ea; color: var(--abvi-vert-fonce); font-size: 13px; font-weight: 700; display: grid; place-items: center; }

/* Détail événement / séance */
.abvi-event__meta { color: var(--abvi-gris); margin: 0 0 16px; }
.abvi-signup { margin: 16px 0; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.abvi-signup form { margin: 0; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.abvi-signup__state { color: var(--abvi-vert-fonce); font-weight: 600; font-size: 14px; }
.abvi-people2 { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 4px 16px; }
.abvi-people2 li { padding: 7px 0; border-bottom: 1px solid #f0f3f0; font-size: 14.5px; }
.abvi-wiki__actions, .abvi-wiki__meta { margin-top: 20px; }
.abvi-wiki__actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.abvi-wiki__meta { color: var(--abvi-gris); font-size: 13px; margin: -6px 0 14px; }

/* À faire */
.abvi-todo { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 8px; }
.abvi-todo--done { opacity: .72; }
.abvi-todo__item { display: flex; align-items: center; gap: 12px; background: var(--abvi-carte); border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); padding: 11px 14px; }
.abvi-todo__item.is-done .abvi-todo__title { text-decoration: line-through; color: var(--abvi-gris); }
.abvi-todo__toggle { margin: 0; flex: 0 0 auto; }
.abvi-todo__box { width: 24px; height: 24px; border: 2px solid var(--abvi-vert); border-radius: 6px; background: #fff; color: var(--abvi-vert); display: grid; place-items: center; cursor: pointer; font-size: 15px; padding: 0; }
.abvi-todo__item.is-done .abvi-todo__box { background: var(--abvi-vert); color: #fff; }
.abvi-todo__label { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; text-decoration: none; color: inherit; }
.abvi-todo__title { font-weight: 600; }
.abvi-todo__tags { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; flex: 0 0 auto; }
.abvi-todo__due { font-size: 12.5px; color: var(--abvi-gris); white-space: nowrap; }

/* Documents : dossiers */
.abvi-doc-actions { display: grid; gap: 0; margin-bottom: 6px; }
@media (min-width: 620px) { .abvi-doc-actions { grid-template-columns: 1fr 1fr; gap: 14px; } }
.abvi-folders { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; margin: 10px 0 20px; }
.abvi-folder { position: relative; }
.abvi-folder__link { display: flex; align-items: center; gap: 10px; background: var(--abvi-carte); border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); padding: 14px 15px; text-decoration: none; color: inherit; }
.abvi-folder__link:hover { border-color: var(--abvi-vert); }
.abvi-folder__icon { flex: 0 0 auto; color: var(--abvi-jaune); }
.abvi-folder__icon svg { width: 24px; height: 24px; }
.abvi-folder__name { font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.abvi-folder__del { position: absolute; top: 4px; right: 4px; margin: 0; }
.abvi-folder__del button { background: none; border: 0; color: #c7cec8; font-size: 18px; line-height: 1; cursor: pointer; padding: 2px 6px; }
.abvi-folder__del button:hover { color: #c0392b; }

/* =========================================================================
   Espace réservé (non encadrant)
   ========================================================================= */
.abvi-reserved { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: linear-gradient(160deg, #143f2d, #1f5a40); }
.abvi-reserved__card { background: #fff; border-radius: 14px; padding: 34px; max-width: 420px; text-align: center; box-shadow: 0 18px 50px rgba(0,0,0,.22); }
.abvi-reserved__card h1 { margin: 0 0 10px; font-size: 24px; }
.abvi-reserved__card a { color: var(--abvi-vert); font-weight: 700; text-decoration: none; }

/* =========================================================================
   Page de connexion
   ========================================================================= */
body.abvi-loginbody { background: linear-gradient(160deg, #143f2d 0%, #1f5a40 55%, #2e7d5b 100%); min-height: 100vh; }
/* Fond photo plein écran (option) + voile vert sombre pour la lisibilité de la carte. */
body.abvi-loginbody.has-login-bg { background-size: cover; background-position: center; background-repeat: no-repeat; background-attachment: fixed; }
body.abvi-loginbody.has-login-bg::before { content: ""; position: fixed; inset: 0; z-index: 0; background: linear-gradient(160deg, rgba(10,38,26,.80) 0%, rgba(20,63,45,.62) 55%, rgba(31,90,64,.55) 100%); }
.abvi-login { position: relative; z-index: 1; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px 18px; gap: 18px; }
.abvi-login__card { width: 100%; max-width: 420px; background: #fff; border-radius: 14px; padding: 34px 30px 30px; box-shadow: 0 18px 50px rgba(0,0,0,.22); }
.abvi-login__brand { display: flex; justify-content: center; margin-bottom: 14px; }
.abvi-login__brand img { height: 72px; width: auto; }
.abvi-login__card h1 { margin: 0; text-align: center; font-size: 23px; font-weight: 1000; }
.abvi-login__sub { margin: 6px 0 22px; text-align: center; color: var(--abvi-gris); font-size: 14.5px; }
.abvi-login__back { color: #eaf3ee; text-decoration: none; font-size: 13.5px; font-weight: 600; }
.abvi-login__back:hover { text-decoration: underline; }
.abvi-login__form label { display: block; font-weight: 600; font-size: 13.5px; margin-bottom: 5px; }
.abvi-login__form input[type="text"], .abvi-login__form input[type="email"], .abvi-login__form input[type="password"] { width: 100%; padding: 11px 13px; border: 1px solid var(--abvi-bord); border-radius: 9px; font: inherit; font-size: 15px; margin-bottom: 14px; }
.abvi-login__form input:focus { outline: none; border-color: var(--abvi-vert); box-shadow: 0 0 0 3px rgba(31,90,64,.14); }
.abvi-login__form input[type="submit"], .abvi-login__form button[type="submit"] { width: 100%; background: var(--abvi-vert); color: #fff; border: 0; border-radius: 9px; padding: 12px 16px; font: inherit; font-weight: 700; font-size: 15px; cursor: pointer; }
.abvi-login__form input[type="submit"]:hover, .abvi-login__form button[type="submit"]:hover { background: var(--abvi-vert-fonce); }
.abvi-login__register { text-align: center; margin-top: 16px; font-size: 14px; }
.abvi-login__register a { color: var(--abvi-vert); font-weight: 700; text-decoration: none; }

/* Page publique renfort (conservée si réutilisée ailleurs) */
.abv-renfort__event { background: #f3f6f3; border-left: 3px solid var(--abvi-vert); border-radius: 8px; padding: 14px 18px; margin: 10px 0 22px; }
.abvi-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* =========================================================================
   Calendrier visuel
   ========================================================================= */
.abvi-calbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.abvi-calbar__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.abvi-calbar__views { display: inline-flex; border: 1px solid var(--abvi-bord); border-radius: 9px; overflow: hidden; background: #fff; }
.abvi-calbar__view { padding: 7px 12px; font-size: 13px; font-weight: 600; color: var(--abvi-gris); text-decoration: none; border-left: 1px solid var(--abvi-bord); }
.abvi-calbar__view:first-child { border-left: 0; }
.abvi-calbar__view.is-active { background: var(--abvi-vert); color: #fff; }

.abvi-calnav { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.abvi-calnav__btn { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--abvi-bord); border-radius: 9px; color: var(--abvi-encre); text-decoration: none; font-size: 20px; line-height: 1; background: #fff; }
.abvi-calnav__btn:hover { border-color: var(--abvi-vert); color: var(--abvi-vert); }
.abvi-calnav__today { padding: 8px 12px; border: 1px solid var(--abvi-bord); border-radius: 9px; font-size: 13px; font-weight: 600; color: var(--abvi-vert); text-decoration: none; background: #fff; }
.abvi-calnav__title { margin: 0; font-size: 18px; font-weight: 800; flex: 1 1 auto; }

/* Grille mois */
.abvi-cal--month { background: var(--abvi-carte); border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); overflow: hidden; }
.abvi-cal__head { display: grid; grid-template-columns: repeat(7, 1fr); background: #f3f6f3; border-bottom: 1px solid var(--abvi-bord); }
.abvi-cal__hcell { padding: 8px 4px; text-align: center; font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--abvi-gris); letter-spacing: .02em; }
.abvi-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.abvi-cal__cell { min-height: 104px; border-right: 1px solid #eef1ee; border-bottom: 1px solid #eef1ee; padding: 4px; display: flex; flex-direction: column; gap: 3px; }
.abvi-cal__cell:nth-child(7n) { border-right: 0; }
.abvi-cal__cell.is-out { background: #fafbfa; }
.abvi-cal__cell.is-out .abvi-cal__num { color: #c0c7c0; }
.abvi-cal__cell.is-today { background: #eef6f0; }
.abvi-cal__num { align-self: flex-start; font-size: 13px; font-weight: 700; color: var(--abvi-encre); text-decoration: none; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; }
.abvi-cal__cell.is-today .abvi-cal__num { background: var(--abvi-vert); color: #fff; }
.abvi-cal__items { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.abvi-cal__pill { display: block; font-size: 11.5px; line-height: 1.25; padding: 2px 6px; border-radius: 5px; text-decoration: none; color: var(--abvi-encre); background: #eef1ee; border-left: 3px solid var(--abvi-gris); overflow: hidden; }
.abvi-cal__pilldot { display: none; }
.abvi-cal__pilllabel { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.abvi-cal__time { font-weight: 700; }
.abvi-cal__names { color: var(--abvi-vert-fonce); font-weight: 600; }
.abvi-cal__pill.is-mine { box-shadow: inset 0 0 0 1px var(--abvi-vert); }
.abvi-cal__pill.is-draggable { cursor: grab; }
.abvi-cal__pill--seance { background: #e7f0ea; border-left-color: #1f5a40; }
.abvi-cal__pill--regate { background: #fbe9a8; border-left-color: #b9910b; }
.abvi-cal__pill--sortie { background: #e3eefc; border-left-color: #1b4e8a; }
.abvi-cal__pill--manifestation { background: #fde3d3; border-left-color: #9a4210; }
.abvi-cal__pill--reunion { background: #ece3f7; border-left-color: #5a3b8c; }
.abvi-cal__pill--entrainement { background: #e7f0ea; border-left-color: #1f5a40; }
.abvi-cal__cell.abvi-dragover { outline: 2px dashed var(--abvi-vert); outline-offset: -2px; background: #eef6f0; }

/* Vue semaine */
.abvi-cal--week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; }
.abvi-weekday { background: var(--abvi-carte); border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); min-height: 120px; padding: 8px; display: flex; flex-direction: column; gap: 5px; }
.abvi-weekday.is-today { border-color: var(--abvi-vert); }
.abvi-weekday__head { font-size: 12.5px; font-weight: 700; color: var(--abvi-encre); text-decoration: none; text-transform: capitalize; padding-bottom: 5px; border-bottom: 1px solid #eef1ee; }
.abvi-weekday__empty { color: #c7cec8; }

/* Vue année */
.abvi-year { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px; }
.abvi-year__mon { background: var(--abvi-carte); border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); padding: 12px; }
.abvi-year__title { display: block; text-align: center; font-weight: 700; color: var(--abvi-vert); text-decoration: none; text-transform: capitalize; margin-bottom: 8px; }
.abvi-year__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.abvi-year__h { text-align: center; font-size: 9.5px; color: var(--abvi-gris); font-weight: 700; }
.abvi-year__d { aspect-ratio: 1; display: grid; place-items: center; font-size: 11px; color: var(--abvi-encre); text-decoration: none; border-radius: 50%; }
.abvi-year__d.is-out { visibility: hidden; }
.abvi-year__d.has-item { background: #e7f0ea; color: var(--abvi-vert-fonce); font-weight: 700; }
.abvi-year__d.is-today { outline: 2px solid var(--abvi-vert); }

/* ----- Mobile : pastilles -> points, semaine empilée ----- */
@media (max-width: 680px) {
	.abvi-cal__cell { min-height: 62px; padding: 3px; }
	.abvi-cal__num { font-size: 12px; width: 21px; height: 21px; }
	.abvi-cal__items { flex-direction: row; flex-wrap: wrap; gap: 3px; }
	.abvi-cal__pill { padding: 0; border-left: 0; background: transparent !important; }
	.abvi-cal__pilllabel { display: none; }
	.abvi-cal__pilldot { display: block; width: 8px; height: 8px; border-radius: 50%; background: var(--abvi-gris); }
	.abvi-cal__pill--seance .abvi-cal__pilldot { background: #1f5a40; }
	.abvi-cal__pill--regate .abvi-cal__pilldot { background: #b9910b; }
	.abvi-cal__pill--sortie .abvi-cal__pilldot { background: #1b4e8a; }
	.abvi-cal__pill--manifestation .abvi-cal__pilldot { background: #9a4210; }
	.abvi-cal__pill--reunion .abvi-cal__pilldot { background: #5a3b8c; }
	.abvi-cal__pill--entrainement .abvi-cal__pilldot { background: #1f5a40; }
	.abvi-cal--week { grid-template-columns: 1fr; }
	.abvi-weekday { min-height: 0; }
	.abvi-calnav__title { font-size: 16px; }
	.abvi-calbar { justify-content: flex-start; }
}

/* Barre d'actions en haut (wiki, détails) */
.abvi-topbar-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.abvi-topbar-actions__right { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
/* Recherche */
.abvi-search { display: flex; gap: 8px; flex: 1 1 260px; max-width: 460px; }
.abvi-search input[type="search"] { flex: 1 1 auto; padding: 9px 13px; border: 1px solid var(--abvi-bord); border-radius: 9px; font: inherit; font-size: 14.5px; }
.abvi-search input[type="search"]:focus { outline: none; border-color: var(--abvi-vert); box-shadow: 0 0 0 3px rgba(31,90,64,.14); }
.abvi-prose code { background: #f3f6f3; padding: 1px 5px; border-radius: 4px; font-size: .9em; }
.abvi-form__hint code { background: #f3f6f3; padding: 1px 4px; border-radius: 3px; }

/* Choix de couleur (événement) */
.abvi-colors { border: 0; padding: 0; margin: 0; }
.abvi-colors legend { font-weight: 600; font-size: 13.5px; margin-bottom: 6px; }
.abvi-swatch { display: inline-block; cursor: pointer; margin: 0 6px 6px 0; }
.abvi-swatch input { position: absolute; opacity: 0; width: 0; height: 0; }
.abvi-swatch__dot { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; border: 2px solid transparent; box-shadow: inset 0 0 0 2px #fff; color: #fff; font-size: 12px; font-weight: 700; }
.abvi-swatch__dot--auto { background: #cfd6cf; color: var(--abvi-gris); }
.abvi-swatch input:checked + .abvi-swatch__dot { border-color: var(--abvi-encre); }
.abvi-swatch input:focus-visible + .abvi-swatch__dot { outline: 2px solid var(--abvi-vert); outline-offset: 2px; }

/* Barre d'actions de formulaire (en haut) */
.abvi-formbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; background: #f3f6f3; border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); padding: 10px 14px; margin-bottom: 16px; }
.abvi-formbar__title { font-weight: 700; font-size: 15px; }
.abvi-formbar__actions { display: flex; gap: 8px; align-items: center; }
.abvi-field { margin-bottom: 15px; }
.abvi-field__label { display: block; font-weight: 600; font-size: 13.5px; margin-bottom: 5px; }

/* Ligne meta (date + actions à droite) */
.abvi-metabar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: -4px 0 16px; }
.abvi-metabar__actions { display: flex; gap: 8px; align-items: center; }

/* Éditeur Markdown */
.abvi-mde { border: 1px solid var(--abvi-bord); border-radius: 9px; overflow: hidden; background: #fff; }
.abvi-mde__bar { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; background: #f6f8f6; border-bottom: 1px solid var(--abvi-bord); padding: 6px 8px; }
.abvi-mde__toolbar { display: flex; gap: 4px; flex-wrap: wrap; }
.abvi-mde__toolbar button { background: #fff; border: 1px solid var(--abvi-bord); border-radius: 6px; padding: 5px 9px; font: inherit; font-size: 13px; cursor: pointer; color: var(--abvi-encre); line-height: 1.1; }
.abvi-mde__toolbar button:hover { border-color: var(--abvi-vert); color: var(--abvi-vert); }
.abvi-mde__tabs { display: inline-flex; border: 1px solid var(--abvi-bord); border-radius: 7px; overflow: hidden; }
.abvi-mde__tab { background: #fff; border: 0; border-left: 1px solid var(--abvi-bord); padding: 6px 12px; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; color: var(--abvi-gris); }
.abvi-mde__tab:first-child { border-left: 0; }
.abvi-mde__tab.is-active { background: var(--abvi-vert); color: #fff; }
.abvi-mde__textarea { display: block; width: 100%; border: 0; padding: 12px 14px; font: inherit; font-size: 15px; resize: vertical; min-height: 220px; }
.abvi-mde__textarea:focus { outline: none; }
.abvi-mde__preview { margin: 0; border: 0; border-radius: 0; min-height: 220px; }
.abvi-mde [hidden] { display: none !important; }

/* Carte de formulaire (regroupe les champs proprement) */
.abvi-card { background: var(--abvi-carte); border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); padding: 20px 22px; }
.abvi-card > .abvi-field,
.abvi-card > label { display: block; margin-bottom: 16px; font-weight: 600; font-size: 13.5px; }
.abvi-card label span { color: #c0392b; }
.abvi-card .abvi-form--grid { margin-bottom: 4px; }
.abvi-card .abvi-form--grid label { margin-bottom: 0; }
.abvi-card input, .abvi-card select { display: block; width: 100%; margin-top: 5px; padding: 11px 12px; border: 1px solid var(--abvi-bord); border-radius: 9px; font: inherit; font-size: 15px; background: #fff; }
.abvi-card input:focus, .abvi-card select:focus { outline: none; border-color: var(--abvi-vert); box-shadow: 0 0 0 3px rgba(31,90,64,.14); }
.abvi-card .abvi-colors { margin-bottom: 16px; }

/* Textarea dans une carte de formulaire */
.abvi-card textarea { display: block; width: 100%; margin-top: 5px; padding: 11px 12px; border: 1px solid var(--abvi-bord); border-radius: 9px; font: inherit; font-size: 15px; background: #fff; resize: vertical; }
.abvi-card textarea:focus { outline: none; border-color: var(--abvi-vert); box-shadow: 0 0 0 3px rgba(31,90,64,.14); }
.abvi-card .abvi-mde__textarea { margin-top: 0; border: 0; box-shadow: none; }

/* Avatar rond */
.abvi-ava { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--abvi-vert); color: #fff; font-size: 12px; font-weight: 700; flex: 0 0 auto; }

/* Liste de tâches (cartes) */
.abvi-tasklist { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 9px; }
.abvi-tasklist--done { opacity: .72; }
.abvi-task { display: flex; align-items: center; gap: 13px; background: var(--abvi-carte); border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); padding: 12px 15px; }
.abvi-task.is-done .abvi-task__title { text-decoration: line-through; color: var(--abvi-gris); }
.abvi-task__toggle { margin: 0; flex: 0 0 auto; }
.abvi-task__main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; text-decoration: none; color: inherit; }
.abvi-task__title { font-weight: 700; font-size: 15px; }
.abvi-task__excerpt { color: var(--abvi-gris); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.abvi-task__side { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; }
.abvi-task__due { font-size: 12.5px; font-weight: 600; color: var(--abvi-gris); background: #eef1ee; padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.abvi-task__due.is-late { background: #fdecea; color: #c0392b; }
.abvi-task__who { display: inline-flex; align-items: center; gap: 7px; }
.abvi-task__whoname { font-size: 13.5px; font-weight: 600; }
.abvi-task__who--none { color: #b3bbb4; font-size: 13px; font-style: italic; }
@media (max-width: 560px) {
	.abvi-task__excerpt, .abvi-task__whoname { display: none; }
	.abvi-task { gap: 10px; padding: 11px 13px; }
}

/* Carte d'informations (détail tâche) */
.abvi-infocard { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 2px; background: var(--abvi-carte); border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); overflow: hidden; margin-bottom: 20px; }
.abvi-infocard__item { padding: 14px 16px; border-right: 1px solid #eef1ee; }
.abvi-infocard__item:last-child { border-right: 0; }
.abvi-infocard__k { display: block; font-size: 11.5px; text-transform: uppercase; letter-spacing: .03em; color: var(--abvi-gris); font-weight: 700; margin-bottom: 6px; }
.abvi-infocard__v { font-size: 14.5px; }

/* =========================================================================
   Documents — explorateur de fichiers
   ========================================================================= */
.abvi-exptop { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.abvi-exptop .abvi-crumbs { margin: 0; }
.abvi-expactions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.abvi-newfolder { display: flex; gap: 6px; }
.abvi-newfolder input { padding: 7px 11px; border: 1px solid var(--abvi-bord); border-radius: 8px; font: inherit; font-size: 13.5px; width: 150px; }
.abvi-newfolder input:focus { outline: none; border-color: var(--abvi-vert); }
.abvi-upload { margin: 0; }
.abvi-upload label { cursor: pointer; margin: 0; }

.abvi-explorer { position: relative; border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); background: var(--abvi-carte); padding: 14px; min-height: 160px; }
.abvi-explorer.is-dropping { border: 2px dashed var(--abvi-vert); background: #eef6f0; }
.abvi-explorer__overlay { position: absolute; inset: 0; display: none; place-items: center; background: rgba(238,246,240,.85); border-radius: var(--abvi-rayon); z-index: 2; pointer-events: none; }
.abvi-explorer__overlay span { font-weight: 700; color: var(--abvi-vert-fonce); border: 2px dashed var(--abvi-vert); padding: 14px 22px; border-radius: 10px; background: #fff; }
.abvi-explorer.is-dropping .abvi-explorer__overlay { display: grid; }

.abvi-expgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(116px, 1fr)); gap: 10px; }
.abvi-item { position: relative; border: 1px solid transparent; border-radius: 10px; transition: background .12s, border-color .12s; }
.abvi-item:hover { background: #f3f6f3; border-color: var(--abvi-bord); }
.abvi-item__link { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 8px; text-decoration: none; color: inherit; text-align: center; }
.abvi-item__icon { display: grid; place-items: center; }
.abvi-item__icon--folder { color: var(--abvi-jaune); }
.abvi-item__icon--folder svg { width: 42px; height: 42px; }
.abvi-fileicon { display: grid; place-items: center; width: 40px; height: 48px; border-radius: 6px 6px 6px 2px; color: #fff; font-size: 11px; font-weight: 800; }
.abvi-item__name { font-size: 12.5px; font-weight: 600; line-height: 1.25; word-break: break-word; max-width: 100%; }
.abvi-item--up .abvi-item__name { font-size: 18px; }
.abvi-item--doc { cursor: grab; }
.abvi-item--doc.is-dragging { opacity: .4; }
.abvi-item__del { position: absolute; top: 2px; right: 2px; margin: 0; opacity: 0; transition: opacity .12s; }
.abvi-item:hover .abvi-item__del { opacity: 1; }
.abvi-item__del button { background: #fff; border: 1px solid var(--abvi-bord); border-radius: 50%; width: 22px; height: 22px; color: #b3bbb4; font-size: 15px; line-height: 1; cursor: pointer; padding: 0; }
.abvi-item__del button:hover { color: #c0392b; border-color: #e4c3bf; }
.abvi-item--folder.abvi-dropover, .abvi-item--up.abvi-dropover { background: #e7f0ea; border-color: var(--abvi-vert); box-shadow: inset 0 0 0 2px var(--abvi-vert); }
.abvi-crumbs a.abvi-dropover { background: #e7f0ea; border-radius: 6px; box-shadow: inset 0 0 0 2px var(--abvi-vert); }

/* Drag-and-drop calendrier */
.abvi-weekday.abvi-dragover { outline: 2px dashed var(--abvi-vert); outline-offset: -2px; background: #eef6f0; }
.abvi-cal__pill.is-dragging { opacity: .4; }

/* Explorateur en liste (fichiers) */
.abvi-filelist { }
.abvi-fl__head, .abvi-fl__row { display: grid; grid-template-columns: 1fr 120px 40px; align-items: center; gap: 10px; padding: 9px 12px; }
.abvi-fl__head { font-size: 11px; text-transform: uppercase; letter-spacing: .03em; color: var(--abvi-gris); font-weight: 700; border-bottom: 1px solid var(--abvi-bord); }
.abvi-fl__row { border-bottom: 1px solid #f0f3f0; text-decoration: none; color: inherit; }
.abvi-fl__row:last-child { border-bottom: 0; }
.abvi-fl__row:hover { background: #f3f6f3; }
.abvi-fl__row--up { font-weight: 600; color: var(--abvi-gris); }
.abvi-item--doc { cursor: grab; }
.abvi-item--doc.is-dragging { opacity: .4; }
.abvi-fl__name { display: flex; align-items: center; gap: 11px; min-width: 0; text-decoration: none; color: inherit; font-weight: 600; font-size: 14.5px; }
a.abvi-fl__name:hover { color: var(--abvi-vert); }
.abvi-fl__icon { flex: 0 0 auto; display: grid; place-items: center; width: 28px; }
.abvi-fl__icon--folder { color: var(--abvi-jaune); }
.abvi-fl__icon--folder svg { width: 26px; height: 26px; }
.abvi-fl__icon .abvi-fileicon { width: 24px; height: 29px; font-size: 8px; border-radius: 4px 4px 4px 1px; }
.abvi-fl__text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.abvi-fl__text em { color: var(--abvi-gris); font-weight: 400; font-size: 12px; font-style: normal; margin-left: 6px; }
.abvi-fl__date { font-size: 13px; color: var(--abvi-gris); }
.abvi-fl__act { text-align: right; }
.abvi-fl__act form { margin: 0; }
.abvi-fl__trash { background: none; border: 0; color: #c0c7c0; cursor: pointer; padding: 5px; border-radius: 6px; opacity: .5; transition: color .12s, background .12s, opacity .12s; }
.abvi-fl__row:hover .abvi-fl__trash { opacity: 1; }
.abvi-fl__trash svg { width: 17px; height: 17px; display: block; }
.abvi-fl__trash:hover { color: #c0392b; background: #fdecea; }
.abvi-fl__row--folder.abvi-dropover, .abvi-fl__row--up.abvi-dropover { background: #e7f0ea !important; box-shadow: inset 0 0 0 2px var(--abvi-vert); }
.abvi-fl__empty { padding: 24px 12px; color: var(--abvi-gris); text-align: center; }
@media (max-width: 560px) {
	.abvi-fl__head .abvi-fl__date, .abvi-fl__row > .abvi-fl__date { display: none; }
	.abvi-fl__head, .abvi-fl__row { grid-template-columns: 1fr 38px; }
}

/* Mini-calendrier du tableau de bord */
.abvi-minical { }
.abvi-minical__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.abvi-minical__head strong { font-size: 16px; text-transform: capitalize; }
.abvi-minical__head a { font-size: 13px; font-weight: 600; color: var(--abvi-vert); text-decoration: none; }
.abvi-minical__head a:hover { text-decoration: underline; }
.abvi-minical__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; background: var(--abvi-carte); border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); padding: 10px; }
.abvi-minical__h { text-align: center; font-size: 10.5px; font-weight: 700; color: var(--abvi-gris); padding-bottom: 4px; }
.abvi-minical__d { position: relative; aspect-ratio: 1; display: grid; place-items: center; font-size: 13px; color: var(--abvi-encre); text-decoration: none; border-radius: 8px; }
.abvi-minical__d:hover { background: #f3f6f3; }
.abvi-minical__d.is-out { visibility: hidden; }
.abvi-minical__d.has-item { font-weight: 700; }
.abvi-minical__d.is-today { background: var(--abvi-vert); color: #fff; }
.abvi-minical__dot { position: absolute; bottom: 4px; left: 50%; transform: translateX(-50%); width: 5px; height: 5px; border-radius: 50%; background: var(--abvi-vert); }
.abvi-minical__d.is-today .abvi-minical__dot { background: #fff; }
.abvi-minical__next { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 6px; }
.abvi-minical__next a { display: flex; align-items: center; gap: 10px; padding: 8px 10px; background: var(--abvi-carte); border: 1px solid var(--abvi-bord); border-radius: 9px; text-decoration: none; color: inherit; }
.abvi-minical__next a:hover { border-color: var(--abvi-vert); }
.abvi-minical__nd { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; background: var(--abvi-vert); }
.abvi-minical__nday { font-size: 12.5px; font-weight: 700; color: var(--abvi-gris); flex: 0 0 auto; min-width: 44px; }
.abvi-minical__ntitle { font-size: 13.5px; font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.abvi-badge--seance.abvi-minical__nd, .abvi-minical__nd.abvi-badge--seance { background: #1f5a40; }
.abvi-minical__nd.abvi-badge--regate { background: #b9910b; }
.abvi-minical__nd.abvi-badge--sortie { background: #1b4e8a; }
.abvi-minical__nd.abvi-badge--manifestation { background: #9a4210; }
.abvi-minical__nd.abvi-badge--reunion { background: #5a3b8c; }

/* Flèche de retour (explorateur) */
.abvi-crumbsrow { display: flex; align-items: center; gap: 10px; min-width: 0; }
.abvi-upbtn { flex: 0 0 auto; width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--abvi-bord); border-radius: 9px; color: var(--abvi-encre); background: #fff; text-decoration: none; }
.abvi-upbtn:hover { border-color: var(--abvi-vert); color: var(--abvi-vert); background: #f3f6f3; }
.abvi-upbtn svg { width: 18px; height: 18px; }
.abvi-upbtn.abvi-dropover { background: #e7f0ea; border-color: var(--abvi-vert); box-shadow: inset 0 0 0 2px var(--abvi-vert); }

/* =========================================================================
   Tâches — kanban
   ========================================================================= */
.abvi-tbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.abvi-filters { display: flex; gap: 8px; flex-wrap: wrap; }
.abvi-filters select { padding: 8px 12px; border: 1px solid var(--abvi-bord); border-radius: 9px; font: inherit; font-size: 13.5px; background: #fff; cursor: pointer; }
.abvi-filters select:focus { outline: none; border-color: var(--abvi-vert); }

.abvi-kanban { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; align-items: start; }
.abvi-kcol { background: #eef1ee; border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); display: flex; flex-direction: column; min-height: 120px; }
.abvi-kcol.is-over { outline: 2px dashed var(--abvi-vert); outline-offset: -2px; background: #e7f0ea; }
.abvi-kcol__head { font-weight: 700; font-size: 14px; padding: 11px 14px; border-bottom: 2px solid var(--abvi-bord); display: flex; align-items: center; gap: 8px; }
.abvi-kcol__head--todo { border-bottom-color: #d6a400; }
.abvi-kcol__head--doing { border-bottom-color: #1b4e8a; }
.abvi-kcol__head--done { border-bottom-color: #1f5a40; }
.abvi-kcol__body { padding: 10px; display: flex; flex-direction: column; gap: 9px; flex: 1 1 auto; }
.abvi-kcol__empty { color: #b3bbb4; text-align: center; margin: 6px 0; }

.abvi-kcard { display: block; background: #fff; border: 1px solid var(--abvi-bord); border-radius: 9px; padding: 12px 13px; text-decoration: none; color: inherit; cursor: grab; box-shadow: 0 1px 2px rgba(20,33,28,.05); }
.abvi-kcard:hover { border-color: var(--abvi-vert); }
.abvi-kcard.is-dragging { opacity: .4; }
.abvi-kcard.is-done .abvi-kcard__title { color: var(--abvi-gris); }
.abvi-kcard__title { display: block; font-weight: 600; font-size: 14.5px; margin-bottom: 8px; }
.abvi-kcard__meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.abvi-kcard__who .abvi-ava { width: 24px; height: 24px; font-size: 11px; }
.abvi-kcards { display: grid; gap: 9px; }
.abvi-kcards .abvi-kcard { cursor: pointer; }

/* Sélecteur de statut (détail) */
.abvi-statuspick { display: inline-flex; border: 1px solid var(--abvi-bord); border-radius: 9px; overflow: hidden; margin-bottom: 18px; }
.abvi-statuspick .abvi-inlineform { display: inline; }
.abvi-statuspick__btn { background: #fff; border: 0; border-left: 1px solid var(--abvi-bord); padding: 9px 16px; font: inherit; font-size: 13.5px; font-weight: 600; color: var(--abvi-gris); cursor: pointer; }
.abvi-statuspick .abvi-inlineform:first-child .abvi-statuspick__btn { border-left: 0; }
.abvi-statuspick__btn:hover { background: #f3f6f3; }
.abvi-statuspick__btn.is-active { background: var(--abvi-vert); color: #fff; }

@media (max-width: 720px) {
	.abvi-kanban { grid-template-columns: 1fr; }
	.abvi-statuspick { display: flex; width: 100%; }
	.abvi-statuspick .abvi-inlineform { flex: 1 1 0; }
	.abvi-statuspick__btn { width: 100%; }
}

/* Modale intégrée */
.abvi-modal { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 20px; }
.abvi-modal[hidden] { display: none; }
.abvi-modal__backdrop { position: absolute; inset: 0; background: rgba(20,33,28,.5); }
.abvi-modal__dialog { position: relative; background: #fff; border-radius: 14px; padding: 24px; width: 100%; max-width: 400px; box-shadow: 0 24px 60px rgba(0,0,0,.28); }
.abvi-modal__title { margin: 0 0 16px; font-size: 18px; font-weight: 800; }
.abvi-modal__input { width: 100%; padding: 12px 14px; border: 1px solid var(--abvi-bord); border-radius: 9px; font: inherit; font-size: 15px; }
.abvi-modal__input:focus { outline: none; border-color: var(--abvi-vert); box-shadow: 0 0 0 3px rgba(31,90,64,.14); }
.abvi-modal__actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }

/* Bascule de vue (tâches) */
.abvi-tbar__left { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.abvi-viewtoggle { display: inline-flex; border: 1px solid var(--abvi-bord); border-radius: 9px; overflow: hidden; background: #fff; }
.abvi-viewtoggle__btn { padding: 8px 14px; font-size: 13px; font-weight: 600; color: var(--abvi-gris); text-decoration: none; border-left: 1px solid var(--abvi-bord); }
.abvi-viewtoggle__btn:first-child { border-left: 0; }
.abvi-viewtoggle__btn.is-active { background: var(--abvi-vert); color: #fff; }

/* Édition en ligne */
.abvi-inline { position: relative; }
.abvi-inline .abvi-inline__view { margin: 0; }
.abvi-inline h1.abvi-inline__view { font-size: 27px; font-weight: 1000; letter-spacing: -.01em; padding-right: 40px; }
.abvi-inline__view.is-empty { color: var(--abvi-gris); font-style: italic; cursor: text; }
.abvi-inline div.abvi-inline__view.is-empty { font-weight: 400; }
.abvi-inline__edit { position: absolute; top: 0; right: 0; width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--abvi-bord); background: #fff; border-radius: 8px; color: var(--abvi-gris); cursor: pointer; opacity: 0; transition: opacity .12s, color .12s, border-color .12s; }
.abvi-inline:hover .abvi-inline__edit, .abvi-inline:focus-within .abvi-inline__edit { opacity: 1; }
.abvi-inline__edit:hover { color: var(--abvi-vert); border-color: var(--abvi-vert); }
.abvi-inline__edit svg { width: 15px; height: 15px; }
.abvi-inline__input { width: 100%; padding: 11px 13px; border: 1px solid var(--abvi-bord); border-radius: 9px; font: inherit; font-size: 15px; background: #fff; }
.abvi-inline__input:focus { outline: none; border-color: var(--abvi-vert); box-shadow: 0 0 0 3px rgba(31,90,64,.14); }
h1 ~ .abvi-inline__editor .abvi-inline__input, input.abvi-inline__input { font-size: 20px; font-weight: 700; }
textarea.abvi-inline__input { min-height: 120px; resize: vertical; }
.abvi-inline__actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }

/* Masquer la bannière cookies (inutile dans l'espace interne) */
#cookie-notice, .cookie-notice-container, #cookie-law-info-bar { display: none !important; }

/* Menus déroulants intégrés (filtres) */
.abvi-tbar__right { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.abvi-dd { position: relative; }
.abvi-dd__btn { display: inline-flex; align-items: center; gap: 7px; background: #fff; border: 1px solid var(--abvi-bord); border-radius: 9px; padding: 8px 12px; font: inherit; font-size: 13.5px; font-weight: 600; color: var(--abvi-encre); cursor: pointer; }
.abvi-dd__btn:hover { border-color: var(--abvi-vert); }
.abvi-dd__btn svg { width: 15px; height: 15px; color: var(--abvi-gris); transition: transform .15s; }
.abvi-dd.is-open .abvi-dd__btn { border-color: var(--abvi-vert); }
.abvi-dd.is-open .abvi-dd__btn svg { transform: rotate(180deg); }
.abvi-dd__panel { position: absolute; top: calc(100% + 6px); right: 0; min-width: 190px; max-height: 320px; overflow-y: auto; background: #fff; border: 1px solid var(--abvi-bord); border-radius: 10px; box-shadow: 0 14px 36px rgba(20,33,28,.16); padding: 6px; z-index: 60; }
.abvi-dd__opt { display: block; padding: 9px 12px; border-radius: 7px; text-decoration: none; color: var(--abvi-encre); font-size: 14px; }
.abvi-dd__opt:hover { background: #f3f6f3; }
.abvi-dd__opt.is-active { background: #e7f0ea; color: var(--abvi-vert-fonce); font-weight: 700; }

/* Colonne « Terminé » repliée (kanban) + placeholder */
.abvi-kcol__hidden { text-align: center; color: var(--abvi-gris); font-size: 13.5px; padding: 14px 8px; line-height: 1.7; }
.abvi-kcol__hidden a { color: var(--abvi-vert); font-weight: 600; text-decoration: none; }
.abvi-kcol__hidden a:hover { text-decoration: underline; }

/* Gestion des séances (vue d'ensemble + inscription rapide) */
.abvi-seances { display: grid; gap: 8px; }
.abvi-seance { display: flex; align-items: center; gap: 14px; background: var(--abvi-carte); border: 1px solid var(--abvi-bord); border-radius: var(--abvi-rayon); padding: 11px 14px; }
.abvi-seance__day { flex: 0 0 auto; width: 44px; text-align: center; }
.abvi-seance__day strong { display: block; font-size: 19px; }
.abvi-seance__day span { font-size: 11px; text-transform: uppercase; color: var(--abvi-gris); }
.abvi-seance__info { flex: 0 0 auto; width: 190px; display: flex; flex-direction: column; gap: 2px; }
.abvi-seance__title { font-weight: 600; }
.abvi-seance__sub { color: var(--abvi-gris); font-size: 13px; }
.abvi-seance__people { flex: 1 1 auto; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.abvi-seance__nobody { color: #b3bbb4; font-style: italic; font-size: 13.5px; }
.abvi-seance__btn { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; border: 2px solid var(--abvi-vert); background: #fff; color: var(--abvi-vert); font-size: 20px; line-height: 1; cursor: pointer; display: grid; place-items: center; transition: background .12s; }
.abvi-seance__btn:hover { background: #e7f0ea; }
.abvi-seance__btn.is-in { background: var(--abvi-vert); color: #fff; font-size: 16px; }
.abvi-seance__btn:disabled { opacity: .5; cursor: default; }
@media (max-width: 620px) {
	.abvi-seance { flex-wrap: wrap; }
	.abvi-seance__info { width: auto; flex: 1 1 auto; }
	.abvi-seance__people { flex-basis: 100%; order: 3; }
}

/* Visualiseur de documents (PDF / images) */
.abvi-viewer { position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; padding: 20px; }
.abvi-viewer[hidden] { display: none; }
.abvi-viewer__backdrop { position: absolute; inset: 0; background: rgba(10,15,12,.75); }
.abvi-viewer__panel { position: relative; background: #fff; border-radius: 12px; width: 100%; max-width: 1000px; height: 90vh; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 24px 60px rgba(0,0,0,.4); }
.abvi-viewer__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px 10px 16px; border-bottom: 1px solid var(--abvi-bord); }
.abvi-viewer__title { font-weight: 700; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.abvi-viewer__actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.abvi-viewer__close { width: 34px; height: 34px; border: 0; background: none; font-size: 26px; line-height: 1; cursor: pointer; color: var(--abvi-gris); border-radius: 8px; }
.abvi-viewer__close:hover { background: #f3f6f3; color: var(--abvi-encre); }
.abvi-viewer__body { flex: 1 1 auto; overflow: auto; background: #eef1ee; display: grid; place-items: center; }
.abvi-viewer__frame { width: 100%; height: 100%; border: 0; }
.abvi-viewer__img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
@media (max-width: 640px) { .abvi-viewer { padding: 0; } .abvi-viewer__panel { height: 100vh; max-width: none; border-radius: 0; } .abvi-viewer__tab { display: none; } }

/* Calendrier des séances (cellules plus hautes, blocs séance par jour) */
.abvi-cal--seances .abvi-cal__cell { min-height: 118px; }
.abvi-scell { background: #e7f0ea; border-radius: 7px; padding: 5px 6px; margin-top: 3px; }
.abvi-scell__head { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.abvi-scell__t { font-size: 11.5px; font-weight: 700; color: var(--abvi-vert-fonce); }
.abvi-scell .abvi-seance__btn { width: 22px; height: 22px; font-size: 15px; border-width: 1.5px; }
.abvi-scell .abvi-seance__btn.is-in { font-size: 12px; }
.abvi-scell .abvi-seance__people { gap: 3px; margin-top: 4px; }
.abvi-scell .abvi-chip { font-size: 10.5px; padding: 1px 6px; }
.abvi-scell .abvi-seance__nobody { font-size: 10.5px; }
@media (max-width: 680px) {
	.abvi-cal--seances .abvi-cal__cell { min-height: 76px; }
	.abvi-scell__t { font-size: 10px; }
	.abvi-scell .abvi-seance__people { display: none; }
}

/* Images dans le contenu (wiki, descriptions) */
.abvi-prose img { max-width: 100%; height: auto; border-radius: 8px; margin: 8px 0; display: block; }
