/* Bulle « Quoi de neuf ? » */
.acs-bulle { --acs-bulle: #1f3a5f; position: fixed; bottom: 20px; z-index: 2147483647; font-family: inherit; font-size: 15px; line-height: 1.4; }
.acs-bulle { bottom: var(--acs-by, 20px); }
.acs-bulle-right { right: var(--acs-bx, 20px); }
.acs-bulle-left { left: var(--acs-bx, 20px); }
/* En haut, par-dessus le menu et l'en-tête (même collés en haut). */
.acs-bulle.acs-bulle-top { bottom: auto; top: var(--acs-by, 20px); z-index: 2147483647; }
.acs-bulle.acs-bulle-anchored { margin-top: 0 !important; }
.admin-bar .acs-bulle.acs-bulle-top { margin-top: 32px; }
@media (max-width: 782px) { .admin-bar .acs-bulle.acs-bulle-top { margin-top: 46px; } }
.acs-bulle-top .acs-bulle-tip, .acs-bulle-top .acs-bulle-panel { bottom: auto; top: 72px; }
.acs-bulle-top .acs-bulle-tip::after { bottom: auto; top: -7px; }
/* Zoom à l'apparition */
.acs-bulle.is-pop .acs-bulle-btn { animation: acs-bulle-pop .65s cubic-bezier(.2,.9,.3,1.3) both; }
.acs-bulle.is-pop.is-alert .acs-bulle-btn { animation: acs-bulle-pop .65s cubic-bezier(.2,.9,.3,1.3) both, acs-bulle-pulse 1.8s ease-out .65s infinite; }
@keyframes acs-bulle-pop { 0% { transform: scale(0); opacity: 0; } 60% { transform: scale(1.25); opacity: 1; } 100% { transform: scale(1); } }
.acs-bulle-btn { position: relative; width: 60px; height: 60px; border-radius: 50%; border: 0; padding: 0; margin: 0; cursor: pointer; background: var(--acs-bulle); color: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.25); display: flex; align-items: center; justify-content: center; transition: transform .15s ease; }
.acs-bulle-btn:hover, .acs-bulle-btn:focus-visible { transform: scale(1.06); }
.acs-bulle-btn:focus-visible { outline: 3px solid #fff; box-shadow: 0 0 0 6px var(--acs-bulle); }
.acs-bulle-ico { width: 28px; height: 28px; }
.acs-bulle-badge { position: absolute; top: -4px; right: -4px; min-width: 24px; height: 24px; padding: 0 6px; box-sizing: border-box; border-radius: 12px; background: #fff; color: var(--acs-bulle); font-weight: 700; font-size: 13px; line-height: 24px; text-align: center; box-shadow: 0 0 0 2px var(--acs-bulle); }
.acs-bulle.is-empty .acs-bulle-badge { display: none; }
.acs-bulle-left .acs-bulle-badge { right: auto; left: -4px; }
.acs-bulle.is-alert .acs-bulle-btn { animation: acs-bulle-pulse 1.8s ease-out infinite; }
@keyframes acs-bulle-pulse {
	0% { box-shadow: 0 6px 18px rgba(0,0,0,.25), 0 0 0 0 var(--acs-bulle); }
	70% { box-shadow: 0 6px 18px rgba(0,0,0,.25), 0 0 0 16px rgba(0,0,0,0); }
	100% { box-shadow: 0 6px 18px rgba(0,0,0,.25), 0 0 0 0 rgba(0,0,0,0); }
}
.acs-bulle-tip { position: absolute; bottom: 72px; display: flex; align-items: flex-start; gap: 4px; width: max-content; max-width: min(280px, calc(100vw - 40px)); background: #fff; color: #1d2327; border-radius: 14px; box-shadow: 0 6px 20px rgba(0,0,0,.2); padding: 10px 8px 10px 14px; }
.acs-bulle-tip[hidden] { display: none; }
.acs-bulle-right .acs-bulle-tip { right: 0; }
.acs-bulle-left .acs-bulle-tip { left: 0; }
.acs-bulle-tip::after { content: ""; position: absolute; bottom: -7px; width: 14px; height: 14px; background: #fff; transform: rotate(45deg); }
.acs-bulle-right .acs-bulle-tip::after { right: 22px; }
.acs-bulle-left .acs-bulle-tip::after { left: 22px; }
.acs-bulle-tip-text { border: 0; background: none; padding: 0; margin: 0; font: inherit; font-weight: 600; color: inherit; text-align: left; cursor: pointer; }
.acs-bulle-tip-x, .acs-bulle-x { border: 0; background: none; padding: 0 4px; margin: 0; font-size: 20px; line-height: 1; color: #646970; cursor: pointer; }
.acs-bulle-panel { position: absolute; bottom: 72px; width: 340px; max-width: calc(100vw - 40px); max-height: min(70vh, 520px); overflow: auto; background: #fff; color: #1d2327; border-radius: 16px; box-shadow: 0 10px 32px rgba(0,0,0,.25); padding: 14px 16px; box-sizing: border-box; }
.acs-bulle-panel[hidden] { display: none; }
.acs-bulle-right .acs-bulle-panel { right: 0; }
.acs-bulle-left .acs-bulle-panel { left: 0; }
.acs-bulle-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.acs-bulle-head strong { font-size: 17px; color: var(--acs-bulle); }
.acs-bulle-text { margin: 0 0 8px; }
.acs-bulle-list { list-style: none; margin: 0 0 8px; padding: 0; }
.acs-bulle-list li { padding: 8px 0; border-top: 1px solid #eee; }
.acs-bulle-list a { display: block; font-weight: 600; color: var(--acs-bulle); text-decoration: none; }
.acs-bulle-list a:hover { text-decoration: underline; }
.acs-bulle-list small { color: #646970; }
.acs-bulle-more { margin: 0 0 8px; color: #646970; font-size: 13px; }
.acs-bulle-go { display: inline-block; margin: 4px 0 8px; padding: 8px 16px; border-radius: 20px; background: var(--acs-bulle); color: #fff !important; font-weight: 600; text-decoration: none !important; }
.acs-bulle-foot { display: flex; justify-content: space-between; gap: 8px; margin: 6px 0 0; padding-top: 8px; border-top: 1px solid #eee; font-size: 13px; }
.acs-bulle-foot a { color: #50575e; }
.acs-bulle-hide { border: 0; background: none; padding: 0; font: inherit; color: #50575e; text-decoration: underline; cursor: pointer; }
@media (max-width: 480px) {
	.acs-bulle-panel { position: fixed; left: 12px; right: 12px; bottom: 86px; width: auto; max-width: none; }
	.acs-bulle-top .acs-bulle-panel { bottom: auto; top: calc(var(--acs-by, 20px) + 72px); }
	.acs-bulle-anchored .acs-bulle-panel { position: absolute; top: 72px; bottom: auto; width: calc(100vw - 24px); }
	.acs-bulle-anchored.acs-bulle-right .acs-bulle-panel { right: -8px; left: auto; }
	.acs-bulle-anchored.acs-bulle-left .acs-bulle-panel { left: -8px; right: auto; }
}
@media (prefers-reduced-motion: reduce) {
	.acs-bulle.is-alert .acs-bulle-btn, .acs-bulle.is-pop .acs-bulle-btn, .acs-bulle.is-pop.is-alert .acs-bulle-btn { animation: none; }
	.acs-bulle.is-alert .acs-bulle-btn { box-shadow: 0 0 0 4px #fff, 0 0 0 7px var(--acs-bulle); }
	.acs-bulle-btn { transition: none; }
}
@media print { .acs-bulle { display: none; } }

/* Réglage des rappels */
.acs-rappels .acs-choices label { margin-right: 12px; white-space: nowrap; }
.acs-rappels-ways { margin: 0 0 8px 18px; padding: 0; }
.acs-rappels-ways li { margin-bottom: 10px; }
.acs-rappels-cal { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
