/* ══ L'ACTIVITÉ, À LA MANIÈRE DE RICH CIRCLES (fondateur, 15/10/2026) ══════════
   `team_activite.html` : ce que le volet de Ma journée ouvre au clic sur une
   ligne. L'historique à gauche, l'activité à droite. Carnet :
   `docs/notes/NOTES-reprise-rich-circles.md`. */

/* Dans le volet, la page prend toute la hauteur, sans marge. */
body.en-volet .main:has(.av) { padding: 0; }
.av { display: flex; flex-direction: column; min-height: 100vh; background: var(--background); }
body:not(.en-volet) .av { min-height: calc(var(--fenetre, 100vh) - 140px); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }

.av-barre { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--border);
            background: var(--card); position: sticky; top: 0; z-index: 3; }
.av-barre b { font-size: var(--text-sm); font-weight: 600; }
.av-barre-ic { width: 26px; height: 26px; border-radius: 7px; display: grid; place-items: center; background: var(--muted); color: var(--success); }
.av-barre-ic--fil { color: var(--info); }
.av-barre-ic--decroche { color: var(--error); }
.av-barre-ic--rdv { color: var(--accent); }
.av-barre-d { margin-left: auto; display: flex; gap: 4px; }
.av-x { width: 30px; height: 30px; display: grid; place-items: center; border: 0; border-radius: 6px; background: none;
        color: var(--muted-foreground); cursor: pointer; }
.av-x:hover { color: var(--foreground); background: var(--muted); }

.av-corps { flex: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 0; }
body.histo-ferme .av-corps { grid-template-columns: minmax(0, 1fr); }
body.histo-ferme .av-histo { display: none; }

/* ── L'historique ── */
.av-histo { border-right: 1px solid var(--border); background: var(--card); display: flex; flex-direction: column; min-width: 0; }
.av-histo-tete { display: flex; align-items: center; gap: 8px; padding: 14px 16px 10px; font-size: var(--text-sm); color: var(--muted-foreground); }
.av-histo-tete b { color: var(--foreground); font-weight: 600; }
.av-histo-filtres { display: flex; gap: 2px; margin: 0 12px 10px; padding: 3px; border-radius: 8px; background: var(--muted); }
.av-histo-filtres button { flex: 1; padding: 5px 6px; border: 0; border-radius: 6px; background: none; color: var(--muted-foreground);
                           font: inherit; font-size: var(--text-xs); cursor: pointer; }
.av-histo-filtres button[aria-pressed="true"] { background: var(--card); color: var(--foreground); font-weight: 500; }
.av-histo-q { margin: 0 12px 8px; width: calc(100% - 24px); }
.av-histo-liste { flex: 1; overflow: auto; padding: 0 6px 16px; }
.av-ev { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 10px; padding: 9px 10px; border-radius: 8px; }
.av-ev:hover { background: var(--accent-wash); }
.av-ev[hidden] { display: none; }
.av-ev.annule { opacity: .55; }
.av-ev-ic { --t: var(--muted-foreground); width: 24px; height: 24px; border-radius: 6px; display: grid; place-items: center;
            background: var(--muted); color: var(--t); }
.av-ev-ic[data-c="success"] { --t: var(--success); }
.av-ev-ic[data-c="info"] { --t: var(--info); }
.av-ev-ic[data-c="accent"] { --t: var(--accent); }
.av-ev-ic[data-c="error"] { --t: var(--error); }
.av-ev-ic[data-c="warning"] { --t: var(--warning-text); }
.av-ev-t { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.av-ev-t b { font-size: var(--text-sm); font-weight: 500; }
.av-ev-t small { font-size: var(--text-xs); color: var(--muted-foreground); display: -webkit-box; -webkit-line-clamp: 2;
                 -webkit-box-orient: vertical; overflow: hidden; }
.av-ev-q { font-size: var(--text-2xs); color: var(--muted-foreground); white-space: nowrap; text-align: right; }
.av-vide { padding: 18px 12px; color: var(--muted-foreground); font-size: var(--text-sm); text-align: center; }

/* ── L'activité ── */
.av-act { padding: 16px 20px 28px; display: flex; flex-direction: column; gap: 12px; min-width: 0; overflow: auto; }
.av-tete { display: flex; align-items: flex-start; gap: 12px; }
.av-av { width: 40px; height: 40px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--muted);
         font-weight: 600; font-size: var(--text-sm); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
.av-qui { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.av-nom-ligne { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.av-nom { font-size: var(--text-md); font-weight: 600; color: var(--foreground); text-decoration: none; }
.av-nom:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.av-sous { font-size: var(--text-xs); color: var(--muted-foreground); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.av-sous b { color: var(--foreground); font-weight: 500; }
.av-coord { display: flex; gap: 14px; flex-wrap: wrap; font-size: var(--text-xs); color: var(--muted-foreground); }
.av-coord a, .av-coord span { display: inline-flex; align-items: center; gap: 5px; color: inherit; text-decoration: none; }
.av-coord a:hover { color: var(--foreground); }
.av-badge { display: inline-flex; align-items: center; padding: 1px 8px; border-radius: var(--radius-pill); font-size: var(--text-2xs);
            background: var(--muted); color: var(--foreground); font-weight: 500; }
.av-badge--mail { color: var(--accent); }
.av-badge--rouge { color: var(--error); }
.av-badge--rdv { color: var(--accent); }
.av-sous .av-badge { background: rgba(251,191,36,.12); color: var(--warning-text); }
.av-rouge { color: var(--error); }
.av-fiche { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid var(--border); border-radius: 7px;
            font-size: var(--text-xs); color: var(--muted-foreground); text-decoration: none; }
.av-fiche:hover { color: var(--foreground); border-color: var(--border-strong); }
button.av-fiche { background: none; font: inherit; font-size: var(--text-xs); cursor: pointer; color: var(--muted-foreground); }
button.av-fiche[aria-pressed="true"] { color: var(--foreground); border-color: var(--border-strong); background: rgba(255,255,255,.04); }
.av-repondu { display: flex; align-items: center; gap: 6px; margin: 0; font-size: var(--text-sm); color: var(--info); }

.av-carte { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; }
.av-carte--alerte { border-color: rgba(248,113,113,.3); }
.av-carte-tete { display: flex; align-items: center; gap: 8px; margin: 0; font-size: var(--text-sm); font-weight: 500; flex-wrap: wrap; }
.av-carte-texte { margin: 8px 0 0; font-size: var(--text-sm); color: var(--muted-foreground); }
.av-carte .btn { margin-top: 10px; }

/* L'appel : le numéro, le compte rendu. */
.av-echange { padding: 0; }
.av-ligne-coord { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-bottom: 1px solid var(--border); font-size: var(--text-sm); }
.av-composer { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: rgba(74,222,128,.14);
               color: var(--success); text-decoration: none; }
.av-composer--sans { color: var(--muted-foreground); background: var(--muted); }
.av-et { color: var(--muted-foreground); }
.av-sans { color: var(--muted-foreground); font-style: italic; }
.av-chrono { margin-left: auto; font-variant-numeric: tabular-nums; color: var(--muted-foreground); font-size: var(--text-xs); }
.av-echange textarea { display: block; width: 100%; min-height: 150px; border: 0; resize: vertical; padding: 12px 14px;
                       background: transparent; color: var(--foreground); font: inherit; font-size: var(--text-sm); }
.av-echange textarea:focus { outline: none; box-shadow: inset 0 0 0 1px var(--ring); }

/* Le pied : « … », Annuler, puis Pas répondu · Autre · Répondu. */
.av-pied { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.av-pied--resultat { margin-top: 0; }
.av-pied-d { margin-left: auto; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.av-pied-d form { margin: 0; }
/* Mesures et couleurs RELEVÉES sur le volet de Rich Circles (`.rc-v-points`,
   `.rc-v-pasrepondu`, `.rc-v-repondu`, 15/10/2026). */
.av-points { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--border-strong); border-radius: 10px;
             cursor: pointer; list-style: none; color: var(--muted-foreground); background: transparent; }
.av-points::-webkit-details-marker { display: none; }
.av-plus .menu-panneau { bottom: calc(100% + 6px); top: auto; }
.av-plus .menu-panneau button.menu-item { width: 100%; text-align: left; background: none; border: 0; font-family: inherit; cursor: pointer; }
.av-plus .menu-titre { padding: 6px 12px 4px; font-size: var(--text-2xs); letter-spacing: .09em; text-transform: uppercase; color: var(--muted-foreground); }
.av-annuler { border: 0; background: none; color: var(--muted-foreground); font: inherit; font-size: var(--text-sm); cursor: pointer; text-decoration: none; padding: 6px 8px; }
.av-annuler:hover { color: var(--foreground); }
.av-res { position: relative; display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px; border-radius: 8px;
          border: 1px solid rgba(255,255,255,.14); font-size: calc(13px * var(--echelle-texte)); font-weight: 500; cursor: pointer; list-style: none;
          user-select: none; }
.av-res::-webkit-details-marker { display: none; }
.av-res input, .av-autre-it input { position: absolute; opacity: 0; pointer-events: none; }
.av-res--non { color: #FBBF24; border-color: rgba(251,191,36,.5); background: rgba(251,191,36,.08); }
.av-res--non:hover { background: rgba(251,191,36,.16); }
.av-res--autre { color: var(--foreground); background: #14161F; }
.av-res--autre:hover { background: #1A1D27; }
.av-res--autre svg { transform: rotate(0deg); }
.av-res--oui { color: #0A0B10; background: #4ADE80; border: 0; font-weight: 600; }
.av-res--oui:hover { filter: brightness(1.08); }
.av-res:has(input:checked), .av-autre.est-choisi > .av-res { box-shadow: 0 0 0 2px var(--background), 0 0 0 4px var(--ring); }
.av-autre { position: relative; }
.av-autre-pop { position: absolute; right: 0; bottom: calc(100% + 6px); z-index: 6; min-width: 230px; padding: 6px;
                display: flex; flex-direction: column; gap: 2px; background: var(--muted); border: 1px solid var(--border-strong);
                border-radius: 10px; box-shadow: 0 16px 40px rgba(0,0,0,.5); }
.av-autre-it { position: relative; display: block; padding: 8px 10px; border-radius: 6px; font-size: var(--text-sm); cursor: pointer; }
.av-autre-it:hover, .av-autre-it:has(input:checked) { background: var(--accent-wash); }

/* Le bilan n'apparaît qu'une fois le résultat choisi (sans script : `:has`). */
.av-bilan { display: none; }
form:has(input[name="result"]:checked) .av-bilan { display: block; }
.av-bilan-ok { display: flex; align-items: center; gap: 6px; margin: 0 0 10px; color: var(--success); font-weight: 600; font-size: var(--text-sm); }
/* « Message vocal laissé » : seulement quand personne n'a décroché. */
.av-vocal { display: none; margin-bottom: 8px; }
form:has(input[name="result"][value="nrp"]:checked) .av-vocal,
form:has(input[name="result"][value="messagerie"]:checked) .av-vocal { display: flex; }
.av-bilan .fc-clore { margin-top: 4px; }
.av-clore .fc-clore { margin: 0; }

/* La conversation et la réponse. */
.av-msgs { display: flex; flex-direction: column; gap: 10px; max-height: 46vh; overflow: auto; }
.av-msg { max-width: 82%; padding: 10px 12px; border-radius: 12px; background: var(--muted); font-size: var(--text-sm); }
.av-msg--client { align-self: flex-start; border-bottom-left-radius: 4px; }
.av-msg--equipe, .av-msg--assistant { align-self: flex-end; background: rgba(139,127,224,.18); border-bottom-right-radius: 4px; }
.av-msg--note { align-self: flex-end; background: rgba(251,191,36,.10); border: 1px dashed rgba(251,191,36,.35); }
.av-msg-corps { white-space: pre-line; }
.av-msg-qui { margin-top: 4px; font-size: var(--text-2xs); color: var(--muted-foreground); }
.av-repondre textarea { width: 100%; min-height: 110px; border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px;
                        background: var(--background); color: var(--foreground); font: inherit; font-size: var(--text-sm); resize: vertical; }

/* Une note, en bas. */
.av-note { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.av-note-pied { margin-top: 0; }
.av-note .saisie { flex: 1; }

@media (max-width: 900px) {
  .av-corps { grid-template-columns: minmax(0, 1fr); }
  .av-histo { order: 2; border-right: 0; border-top: 1px solid var(--border); max-height: 50vh; }
  .av-act { padding: 14px 14px 24px; }
  .av-res { padding: 0 12px; }
  /* Au téléphone, les marges générales d'une page (un `header`, le corps)
     s'ajoutaient à celles du volet : le nom passait sur trois lignes. Et
     l'historique est déjà dessous : son bouton ne sert à rien. */
  .av-corps, .av-act > .av-tete { padding-left: 0; padding-right: 0; }
  .av-tete [data-histo-bascule] { display: none; }
  body.histo-ferme .av-histo { display: flex; }
}

/* ══ La boîte à outils : « Messages types », « Mes liens et fichiers » ══ */
.onglets-outils { margin: 4px 0 18px; }
.ot-grille { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, 1fr); gap: 16px; align-items: start; }
.ot-cote { display: flex; flex-direction: column; gap: 16px; }
.ot-form { display: flex; flex-direction: column; gap: 12px; padding: 14px 16px 16px; }
.ot-champ { display: flex; flex-direction: column; gap: 6px; font-size: var(--text-sm); font-weight: 500; }
.ot-champ small { color: var(--muted-foreground); font-weight: 400; }
.ot-canaux { display: flex; gap: 8px; flex-wrap: wrap; border: 0; padding: 0; margin: 0; }
.ot-canaux legend { font-size: var(--text-sm); font-weight: 500; margin-bottom: 6px; padding: 0; }
.ot-case { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid var(--border-strong);
           border-radius: 8px; font-size: var(--text-sm); cursor: pointer; }
.ot-case:has(input:checked) { background: rgba(180,168,255,.10); border-color: rgba(180,168,255,.45); }
.ot-variables { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: var(--text-xs); color: var(--muted-foreground); }
.ot-var { padding: 3px 9px; border-radius: 99px; border: 1px solid rgba(180,168,255,.35); background: rgba(180,168,255,.08);
          color: var(--accent); font: inherit; font-size: var(--text-xs); cursor: pointer; }
.ot-pied { display: flex; justify-content: flex-end; }
.ot-aide { margin: -4px 0 0; font-size: var(--text-xs); color: var(--muted-foreground); }
.ot-item { border-top: 1px solid var(--border); }
.ot-item > summary { display: flex; align-items: center; gap: 10px; padding: 12px 16px; cursor: pointer; list-style: none; }
.ot-item > summary::-webkit-details-marker { display: none; }
.ot-item-nom { font-weight: 500; }
.ot-item-canaux { display: flex; gap: 6px; margin-left: auto; }
.ot-pastille { padding: 2px 8px; border-radius: 99px; background: var(--muted); font-size: var(--text-2xs); color: var(--muted-foreground); }
.ot-item-corps { padding: 0 0 10px; }
.ot-item-corps > form:last-child { padding: 0 16px; }
.ot-retirer { display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; color: var(--error);
              font: inherit; font-size: var(--text-xs); cursor: pointer; padding: 4px 0; }
.ot-retirer--icone { padding: 6px; border-radius: 6px; }
.ot-retirer--icone:hover { background: rgba(248,113,113,.10); }
.ot-ressource { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto auto; gap: 12px; align-items: center;
                padding: 11px 16px; border-top: 1px solid var(--border); }
.ot-ressource form { margin: 0; }
.ot-ressource-ic { width: 32px; height: 32px; border-radius: 8px; display: grid; place-items: center; background: var(--muted); color: var(--info); }
.ot-ressource-ic--fichier { color: var(--warning-text); }
.ot-ressource-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ot-ressource-t small { color: var(--muted-foreground); font-size: var(--text-xs); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ot-ouvrir { color: var(--muted-foreground); padding: 6px; border-radius: 6px; }
.ot-ouvrir:hover { color: var(--foreground); background: var(--muted); }
@media (max-width: 900px) { .ot-grille { grid-template-columns: minmax(0, 1fr); } }

/* ══ La boîte à outils du volet (relevée sur Rich Circles, `.rc-echange-outils`,
   `.rc-v-tag`, `.rc-echange-carte-pm`, `.rc-pm-modele`, 15/10/2026) ══ */
.av-outils { position: relative; display: flex; flex-wrap: wrap; gap: 6px; align-items: flex-start; padding: 8px 14px;
             border-top: 1px solid var(--border); }
.av-repondre .av-outils { padding: 8px 0 0; border-top: 0; }
.av-tag { display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 11px; border-radius: 6px;
          border: 1px solid var(--border-strong); color: var(--foreground); font: inherit; font-size: var(--text-xs);
          cursor: pointer; background: transparent; }
.av-tag svg { color: var(--accent); }
.av-tag:hover { border-color: var(--accent); }
.av-tag[aria-expanded="true"] { background: var(--accent-wash); border-color: var(--accent); color: var(--accent); }
.av-accolades { color: var(--accent); font-weight: 600; letter-spacing: -.05em; }
/* Rédiger avec SON IA : poussé à droite, « Préparer » en violet de marque. */
.av-outils-ia { display: inline-flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
a.av-tag { text-decoration: none; }
.av-tag--ia { border-color: rgba(139,127,224,.55); background: rgba(139,127,224,.12); }
.av-ia-arrive { flex-basis: 100%; display: flex; align-items: center; gap: 10px; margin: 2px 0 0; padding: 8px 10px 8px 12px;
                border: 1px solid rgba(139,127,224,.55); background: rgba(139,127,224,.12); border-radius: 10px;
                font-size: var(--text-sm); }
.av-ia-arrive[hidden] { display: none; }
.av-ia-arrive > svg { color: var(--accent); flex: none; }
.av-ia-arrive > span { flex: 1 1 150px; }
.av-ia-arrive { flex-wrap: wrap; }
/* « Écrire avec l'IA » (29/10/2026, comme ReachCircles) : la carte au-dessus de
   la barre, à droite, sous le même habit que la carte des outils. */
.av-ia-carte { position: absolute; left: 0; right: 0; bottom: calc(100% + 8px); z-index: 30;
               display: flex; flex-direction: column; gap: 10px; padding-bottom: 14px; background: var(--card);
               border: 1px solid var(--border-strong); border-radius: 12px; box-shadow: 0 18px 48px rgba(0,0,0,.55); }
.av-ia-carte[hidden] { display: none; }
.av-ia-carte .av-outils-tete b { display: inline-flex; align-items: center; gap: 6px; }
.av-ia-carte .av-outils-tete svg { color: var(--accent); }
.av-ia-indic { display: flex; flex-direction: column; gap: 6px; margin: 0 14px; font-size: var(--text-xs); color: var(--muted-foreground); }
.av-ia-indic small { color: var(--disabled-foreground); }
.av-ia-indic textarea { min-height: 72px; resize: vertical; font-size: var(--text-sm); }
.av-ia-gestes { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 14px; }
.av-ia-gestes .btn[disabled] { opacity: .55; cursor: progress; }
.av-ia-etat { margin: 0 14px; min-height: 1em; font-size: var(--text-xs); color: var(--muted-foreground); }
.av-ia-etat:empty { display: none; }
.av-ia-etat.est-erreur { color: var(--error); }
.av-ia-note { margin: 0 14px; font-size: var(--text-2xs); color: var(--disabled-foreground); }
.av-outils-carte { position: absolute; left: 0; bottom: calc(100% + 8px); z-index: 30; width: min(380px, calc(100vw - 40px));
                   max-height: min(440px, 62vh); display: flex; flex-direction: column; background: var(--card);
                   border: 1px solid var(--border-strong); border-radius: 12px; box-shadow: 0 18px 48px rgba(0,0,0,.55); overflow: hidden; }
.av-outils-carte[hidden] { display: none; }
.av-outils-tete { flex: none; display: flex; align-items: center; gap: 8px; padding: 10px 10px 10px 16px;
                  border-bottom: 1px solid var(--border); font-size: var(--text-sm); }
.av-outils-tete .av-x { margin-left: auto; }
.av-outils-recherche { display: flex; align-items: center; gap: 8px; margin: 12px 14px 4px; padding: 0 10px;
                       border: 1px solid var(--border); border-radius: 8px; background: var(--muted); color: var(--muted-foreground); }
.av-outils-recherche:focus-within { border-color: var(--accent); }
.av-outils-recherche input { flex: 1; border: 0; background: transparent; min-height: 36px; padding-left: 0; box-shadow: none; }
.av-outils-recherche input:focus { outline: none; box-shadow: none; }
.av-outils-liste { flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 6px; padding: 8px 14px 16px; }
.av-outils-groupe { margin: 6px 0 0; font-size: var(--text-2xs); letter-spacing: .14em; text-transform: uppercase;
                    font-weight: 600; color: var(--disabled-foreground); }
.av-outils-it { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 9px 12px; width: 100%;
                border: 1px solid var(--border); border-radius: 8px; background: transparent; color: var(--foreground);
                font: inherit; text-align: left; cursor: pointer; }
.av-outils-it:hover { border-color: rgba(180,168,255,.45); background: rgba(180,168,255,.06); }
.av-outils-it b { font-size: var(--text-sm); font-weight: 500; }
.av-outils-it small { font-size: var(--text-2xs); color: var(--muted-foreground); max-width: 100%; overflow: hidden;
                      text-overflow: ellipsis; white-space: nowrap; }
.av-outils-vide { margin: 8px 0; font-size: var(--text-sm); color: var(--muted-foreground); }
.av-outils-vide a { color: var(--accent); }
.av-ev-note { font-size: var(--text-xs); color: var(--muted-foreground); }

/* ══ LA CARTE DU RENDEZ-VOUS (cadrage du 28/10/2026), à l'image de Rich Circles ══
   Mesures relevées sur Rich Circles (`activites.css`, `.rc-r2-*`) : la carte à
   rayon 14, la date en pavé de 54 px, le titre à 15 px, « Comment ça s'est
   passé ? » en boutons de 36 px. */
.av-r2 { display: flex; flex-direction: column; gap: 12px; padding: 14px; border-radius: 14px; border: 1px solid var(--border-strong); background: rgba(255,255,255,.015); }
.av-r2-l1 { display: flex; align-items: flex-start; gap: 12px; }
.av-r2-date { flex: none; width: 54px; padding: 5px 0 6px; border-radius: 12px; background: var(--card); border: 1px solid var(--border-strong);
  display: flex; flex-direction: column; align-items: center; line-height: 1.15; }
.av-r2-date small { font-size: calc(10px * var(--echelle-texte)); letter-spacing: .06em; text-transform: uppercase; color: var(--muted-foreground); }
.av-r2-date small:first-child { color: var(--accent-hi); }
.av-r2-date--auj small:first-child { color: var(--warning); }
.av-r2-date b { font-size: calc(21px * var(--echelle-texte)); font-weight: 600; }
.av-r2-quoi { flex: 1; min-width: 0; }
.av-r2-quoi h3 { margin: 0; font-size: calc(15px * var(--echelle-texte)); font-weight: 600; line-height: 1.3; }
.av-r2-quoi p { margin: 4px 0 0; color: var(--muted-foreground); font-size: calc(12.5px * var(--echelle-texte)); }
.av-r2-discret { color: var(--disabled-foreground); }
.av-r2-ou { display: flex; align-items: center; gap: 6px; }
.av-r2-ou > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.av-r2-etat { flex: none; padding: 2px 10px; border-radius: 99px; font-size: calc(12px * var(--echelle-texte)); background: var(--muted); color: var(--muted-foreground); }
.av-r2-etat--a_confirmer, .av-r2-etat--avenir { background: rgba(180,168,255,.12); color: var(--accent-hi); }
.av-r2-etat--a_completer, .av-r2-etat--a_animer { background: rgba(251,191,36,.12); color: var(--warning); }
.av-r2-etat--presence_tenu, .av-r2-etat--confirme { background: rgba(74,222,128,.12); color: var(--success); }
.av-r2-etat--presence_absent { background: rgba(248,113,113,.12); color: var(--error); }
.av-r2-gestes { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.av-r2-gestes form { margin: 0; }
.av-r2-gestes .btn { display: inline-flex; align-items: center; gap: 6px; }
.av-r2-esp { flex: 1; }
.av-r2-ib { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; border: 1px solid var(--border-strong); color: var(--muted-foreground); cursor: pointer; list-style: none; }
.av-r2-ib::-webkit-details-marker { display: none; }
.av-r2-ib:hover, .av-r2-menu[open] > .av-r2-ib { border-color: var(--accent); color: var(--accent); }
.av-r2-menu { position: relative; }
.av-r2-menu-pop { position: absolute; right: 0; top: calc(100% + 6px); z-index: 5; width: 280px; display: flex; flex-direction: column; padding: 6px;
  border-radius: 12px; background: var(--card); border: 1px solid var(--border-strong); box-shadow: 0 12px 32px rgba(0,0,0,.45); }
.av-r2-menu-pop > button, .av-r2-sous > summary { display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 10px; border: 0; border-radius: 8px;
  background: none; color: var(--foreground); font: inherit; font-size: calc(13px * var(--echelle-texte)); text-align: left; cursor: pointer; list-style: none; }
.av-r2-sous > summary::-webkit-details-marker { display: none; }
.av-r2-menu-pop > button:hover, .av-r2-sous > summary:hover { background: var(--muted); }
.av-r2-danger { color: var(--error) !important; }
.av-r2-sous-f { display: flex; flex-direction: column; gap: 8px; padding: 4px 10px 10px; color: var(--muted-foreground); font-size: calc(12.5px * var(--echelle-texte)); }
.av-r2-danger-plein { border-color: rgba(248,113,113,.5); color: var(--error); }
.av-r2-bilan { display: flex; flex-direction: column; gap: 10px; padding: 12px; border-radius: 14px; border: 1px solid var(--border); background: var(--card); margin-top: 10px; }
.av-r2-bilan b { font-size: calc(13.5px * var(--echelle-texte)); font-weight: 600; }
.av-r2-seg { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; }
.av-r2-seg a { height: 36px; display: grid; place-items: center; border-radius: 10px; border: 1px solid var(--border-strong); background: var(--card);
  color: var(--foreground); text-decoration: none; font-size: calc(13px * var(--echelle-texte)); }
.av-r2-seg-tenu:hover { border-color: rgba(74,222,128,.55); background: rgba(74,222,128,.08); color: var(--success); }
.av-r2-seg-absent:hover { border-color: rgba(251,191,36,.55); background: rgba(251,191,36,.08); color: var(--warning); }

/* ══ LA FENÊTRE D'UNE TÂCHE LIBRE (lot 4, 29/10/2026), à l'image de Rich Circles ══
   Mesures relevées sur Rich Circles (`activites.css`, `.rc-tb-*`) : tête de
   12 px, icône de 30 px, échéance en pastille de 26 px, fil centré, commentaires
   en bulles à droite, boutons de 34 px, « Fait » vert plein. */
.tb { min-height: 100vh; display: flex; flex-direction: column; background: var(--card); }
.tb-tete { flex: none; display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--border); }
.tb-ico { flex: none; width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; background: var(--muted); color: var(--muted-foreground); }
.tb-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.tb-t b { font-size: calc(14px * var(--echelle-texte)); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tb-t small { font-size: calc(12px * var(--echelle-texte)); color: var(--muted-foreground); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.tb-ech { flex: none; display: inline-flex; align-items: center; gap: 5px; height: 26px; padding: 0 10px; border-radius: 99px;
  border: 1px solid var(--border-strong); font-size: calc(12px * var(--echelle-texte)); color: var(--muted-foreground); }
.tb-ech--retard { color: #F87171; border-color: rgba(248,113,113,.35); background: rgba(248,113,113,.07); }
.tb-qui { display: flex; align-items: center; gap: 10px; margin: 10px 16px 0; padding: 8px 12px; border-radius: 10px; border: 1px solid var(--border);
  color: var(--foreground); text-decoration: none; }
.tb-qui:hover { background: var(--accent-wash); }
.tb-av { flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--muted); font-size: calc(11px * var(--echelle-texte)); font-weight: 600; }
.tb-qui-t { flex: 1; min-width: 0; font-size: calc(13px * var(--echelle-texte)); }
.tb-qui-ouvrir { display: inline-flex; align-items: center; gap: 4px; font-size: calc(12px * var(--echelle-texte)); color: var(--accent); }
.tb-corps { flex: 1; min-height: 0; overflow-y: auto; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.tb-close { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 10px; border: 1px solid var(--border);
  font-size: calc(12.5px * var(--echelle-texte)); color: var(--muted-foreground); }
.tb-close form { margin: 0 0 0 auto; }
.tb-issue { padding: 2px 10px; border-radius: 99px; background: var(--muted); color: var(--foreground); }
.tb-issue--faite { background: rgba(74,222,128,.12); color: var(--success); }
.tb-issue--annulee { background: rgba(248,113,113,.10); color: var(--error); }
.tb-desc, .tb-nouvelle { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.tb-desc textarea, .tb-nouvelle textarea { width: 100%; min-height: 96px; resize: vertical; line-height: 1.45; }
.tb-desc-pied { display: flex; justify-content: flex-end; }
.tb-quand { max-width: 360px; }
.tb-eyebrow { margin: 6px 0 0; font-size: calc(10.5px * var(--echelle-texte)); letter-spacing: .1em; text-transform: uppercase; color: var(--disabled-foreground); text-align: center; }
.tb-fil { display: flex; flex-direction: column; gap: 8px; }
.tb-evt { align-self: center; display: inline-flex; align-items: center; gap: 7px; margin: 0; padding: 5px 12px; border-radius: 99px;
  background: var(--muted); font-size: calc(12px * var(--echelle-texte)); color: var(--muted-foreground); }
.tb-evt b { color: var(--foreground); font-weight: 500; }
.tb-com { align-self: flex-end; max-width: 85%; padding: 9px 12px 6px; border-radius: 12px 12px 4px 12px; background: rgba(139,127,224,.16); }
.tb-com p { margin: 0; font-size: calc(13px * var(--echelle-texte)); white-space: pre-wrap; overflow-wrap: anywhere; }
.tb-com time { display: block; text-align: right; margin-top: 3px; font-size: calc(11px * var(--echelle-texte)); color: var(--disabled-foreground); }
.tb-barre { flex: none; border-top: 1px solid var(--border); padding: 8px 12px 12px; display: flex; flex-direction: column; gap: 8px; }
.tb-ecrire { position: relative; margin: 0; }
.tb-ecrire textarea, .tb-ecrire textarea.saisie { width: 100%; max-width: none; display: block; min-height: 38px; max-height: 140px; resize: none; padding: 9px 96px 9px 12px; border-radius: 10px; }
.tb-ecrire kbd { position: absolute; right: 44px; top: 10px; font-size: calc(11px * var(--echelle-texte)); color: var(--disabled-foreground); }
.tb-actions { display: flex; align-items: center; gap: 6px; }
.tb-actions form, .tb-actions details { margin: 0; }
.tb-esp { flex: 1; }
.tb-menu { position: relative; }
.tb-ib { list-style: none; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; border: 1px solid var(--border-strong);
  color: var(--muted-foreground); cursor: pointer; }
.tb-ib::-webkit-details-marker { display: none; }
.tb-ib:hover, .tb-menu[open] > .tb-ib { color: var(--foreground); border-color: var(--accent); }
.tb-pop { position: absolute; right: 0; bottom: calc(100% + 6px); z-index: 5; width: 280px; display: flex; flex-direction: column; gap: 6px; padding: 10px;
  border-radius: 12px; background: var(--card); border: 1px solid var(--border-strong); box-shadow: 0 12px 32px rgba(0,0,0,.45); }
.tb-pop b { font-size: calc(13px * var(--echelle-texte)); }
.tb-pop form { margin: 0; }
.tb-pop-l { width: 100%; text-align: left; padding: 7px 10px; border: 0; border-radius: 8px; background: none; color: var(--foreground); font: inherit; cursor: pointer; }
.tb-pop-l:hover { background: var(--muted); }
.tb-pop-date { display: flex; flex-direction: column; gap: 6px; padding-top: 6px; border-top: 1px solid var(--border); }
.tb-fait { background: #4ADE80; border-color: #4ADE80; color: #0A0B10; display: inline-flex; align-items: center; gap: 6px; }
.tb-fait:hover { filter: brightness(1.08); color: #0A0B10; }
