/* fonctions/agenda/agenda.css — agenda
   Extrait de styles.css à l'étape 8 du découpage. L'ordre de chargement (index.html) est celui
   de l'ancienne feuille : à spécificité égale, la dernière règle l'emporte (voir CARTE.md, CSS). */
/* ==================== AGENDA ====================
 Trois couches séparées : l'état de la journée (planning, fond et bandeau),
 les jours fériés (nom), et les cartes datées (pastilles). Quatre échelles :
 mois, 3 mois, 6 mois et année ; plus la période est large, moins on montre
 de texte et plus la couleur du planning porte l'information. */
 .agenda-wrap{flex:1; min-height:0; overflow:hidden; padding:calc(12px * var(--ui-scale-factor)) calc(14px * var(--ui-scale-factor)) calc(26px * var(--ui-scale-factor)); display:flex; flex-direction:column; gap:calc(9px * var(--ui-scale-factor));}
 .agenda-wrap.hidden{display:none;}
 .agenda-wrap.agenda-search-active .agenda-chip:not(.agenda-search-match),
 .agenda-wrap.agenda-search-active .agenda-day-card:not(.agenda-search-match){
  opacity:.32;
  filter:saturate(.55);
  transition:opacity .18s ease,filter .18s ease;
 }
 .agenda-toolbar{display:flex; align-items:center; justify-content:space-between; gap:calc(10px * var(--ui-scale-factor)); flex-wrap:wrap; flex-shrink:0;}
 .agenda-nav{display:flex; align-items:center; gap:calc(5px * var(--ui-scale-factor)); min-width:0;}
 .agenda-nav-btn{width:calc(26px * var(--ui-scale-factor)); height:calc(26px * var(--ui-scale-factor)); display:inline-flex; align-items:center; justify-content:center; padding:0; background:var(--surface-2); border:calc(1px * var(--ui-scale-factor)) solid var(--border-soft); color:var(--text); border-radius:calc(7px * var(--ui-scale-factor)); font-size:calc(15px * var(--ui-scale-factor)); line-height:1;}
 .agenda-nav-btn:hover{border-color:var(--text-faint);}
 .agenda-title{margin:0 calc(8px * var(--ui-scale-factor)) 0 calc(6px * var(--ui-scale-factor)); font-size:calc(17px * var(--ui-scale-factor)); font-weight:650; letter-spacing:-.01em; white-space:nowrap; font-variant-numeric:tabular-nums;}
 .agenda-title-year{color:var(--text-dim); font-weight:500; margin-left:calc(6px * var(--ui-scale-factor));}
 .agenda-today-btn{padding:calc(4.5px * var(--ui-scale-factor)) calc(10px * var(--ui-scale-factor));}
 .agenda-tools{display:flex; align-items:center; gap:calc(8px * var(--ui-scale-factor));}
 .agenda-seg{display:flex; padding:calc(2.25px * var(--ui-scale-factor)); background:var(--surface-2); border:calc(1px * var(--ui-scale-factor)) solid var(--border-soft); border-radius:calc(7px * var(--ui-scale-factor)); gap:calc(2px * var(--ui-scale-factor));}
 .agenda-seg button{border:0; background:transparent; color:var(--text-dim); font:600 calc(10px * var(--ui-scale-factor)) system-ui,sans-serif; padding:calc(4.5px * var(--ui-scale-factor)) calc(10px * var(--ui-scale-factor)); border-radius:calc(5px * var(--ui-scale-factor)); white-space:nowrap;}
 .agenda-seg button:hover{color:var(--text);}
 .agenda-seg button[aria-pressed="true"]{background:var(--surface-3); color:var(--text); box-shadow:0 calc(1px * var(--ui-scale-factor)) calc(2px * var(--ui-scale-factor)) rgba(0,0,0,.35);}
 .agenda-planning-btn{display:inline-flex; align-items:center; gap:calc(6px * var(--ui-scale-factor));}
 .agenda-planning-btn .glyph{width:calc(10px * var(--ui-scale-factor)); height:calc(10px * var(--ui-scale-factor)); border-radius:calc(3px * var(--ui-scale-factor)); background:linear-gradient(135deg,var(--accent) 0 50%,color-mix(in srgb,var(--accent) 35%,transparent) 50% 100%);}
 /* Légende du planning, avec le décompte de la période affichée. */
 .agenda-legend{display:flex; align-items:center; gap:calc(6px * var(--ui-scale-factor)); flex-wrap:wrap; min-height:calc(22px * var(--ui-scale-factor)); flex-shrink:0;}
 .agenda-legend-item{display:inline-flex; align-items:center; gap:calc(6px * var(--ui-scale-factor)); padding:calc(3px * var(--ui-scale-factor)) calc(9px * var(--ui-scale-factor)) calc(3px * var(--ui-scale-factor)) calc(7px * var(--ui-scale-factor)); border-radius:calc(999px * var(--ui-scale-factor)); background:color-mix(in srgb,var(--st) 13%,transparent); border:calc(1px * var(--ui-scale-factor)) solid color-mix(in srgb,var(--st) 30%,transparent); font-size:calc(9.5px * var(--ui-scale-factor)); font-weight:600; color:var(--text); white-space:nowrap;}
 .agenda-legend-item .sw{width:calc(8px * var(--ui-scale-factor)); height:calc(8px * var(--ui-scale-factor)); border-radius:calc(2.5px * var(--ui-scale-factor)); background:var(--st);}
 .agenda-legend-item .n{color:var(--text-dim); font-weight:500; font-variant-numeric:tabular-nums;}
 .agenda-legend-item.zero{opacity:.55;}
 .agenda-legend-hint{font-size:calc(9.5px * var(--ui-scale-factor)); color:var(--text-faint);}
 .agenda-link-btn{background:none; border:0; color:var(--accent); font:600 calc(9.5px * var(--ui-scale-factor)) system-ui,sans-serif; padding:calc(3px * var(--ui-scale-factor)) calc(4px * var(--ui-scale-factor)); border-radius:calc(4px * var(--ui-scale-factor)); cursor:pointer;}
 .agenda-link-btn:hover{text-decoration:underline;}
 .agenda-body{flex:1; min-height:0; display:flex; gap:calc(12px * var(--ui-scale-factor));}
 .agenda-canvas{flex:1; min-width:0; min-height:0; overflow:auto; padding:calc(1px * var(--ui-scale-factor));}
 .agenda-canvas.span-1{display:flex; flex-direction:column;}
 .agenda-canvas.multi{display:grid; gap:calc(18px * var(--ui-scale-factor)) calc(16px * var(--ui-scale-factor)); align-content:start;}
 .agenda-canvas.span-3{grid-template-columns:repeat(3,minmax(0,1fr));}
 .agenda-canvas.span-6{grid-template-columns:repeat(3,minmax(0,1fr));}
 .agenda-canvas.span-12{grid-template-columns:repeat(4,minmax(0,1fr)); gap:calc(16px * var(--ui-scale-factor)) calc(18px * var(--ui-scale-factor));}
 .agenda-month{display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:calc(3px * var(--ui-scale-factor)); align-content:start;}
 .span-1 .agenda-month{flex:1; min-height:0; gap:calc(4px * var(--ui-scale-factor)); grid-template-rows:auto repeat(var(--rows,6),minmax(calc(92px * var(--ui-scale-factor)),1fr));}
 .agenda-month-head{grid-column:1/-1; display:flex; align-items:baseline; justify-content:space-between; gap:calc(6px * var(--ui-scale-factor)); padding:0 calc(2px * var(--ui-scale-factor)) calc(3px * var(--ui-scale-factor));}
 .agenda-month-name{background:none; border:0; padding:0; color:var(--text); font:650 calc(12px * var(--ui-scale-factor)) system-ui,sans-serif; cursor:pointer;}
 .agenda-month-name:hover{color:var(--accent);}
 .agenda-month-stats{font-size:calc(8.5px * var(--ui-scale-factor)); color:var(--text-faint); font-variant-numeric:tabular-nums; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
 .agenda-dow{font-size:calc(8.5px * var(--ui-scale-factor)); font-weight:600; color:var(--text-dim); padding:0 calc(6px * var(--ui-scale-factor)) calc(2px * var(--ui-scale-factor));}
 .agenda-dow.we{color:var(--text-faint);}
 .multi .agenda-dow{text-align:center; padding:0 0 calc(2px * var(--ui-scale-factor)); font-size:calc(7.5px * var(--ui-scale-factor));}
 .agenda-cell{position:relative; background-color:var(--surface); border:calc(1px * var(--ui-scale-factor)) solid var(--border-soft); border-radius:calc(6px * var(--ui-scale-factor)); min-width:0; cursor:pointer; user-select:none; -webkit-user-select:none;
  background-image:linear-gradient(var(--tint-angle,90deg),var(--am-tint,transparent) 0 50%,var(--pm-tint,transparent) 50% 100%);}
 .agenda-cell:hover{border-color:color-mix(in srgb,var(--text-faint) 80%,transparent);}
 .agenda-cell.we{background-color:color-mix(in srgb,var(--surface) 80%,#000);}
 .agenda-cell.other-month{opacity:.36;}
 .agenda-cell.blank{visibility:hidden; pointer-events:none;}
 .agenda-cell.selected{border-color:color-mix(in srgb,var(--text) 60%,transparent); box-shadow:0 0 0 calc(1px * var(--ui-scale-factor)) color-mix(in srgb,var(--text) 30%,transparent);}
 .agenda-cell.in-range{border-color:var(--accent); box-shadow:inset 0 0 0 calc(1px * var(--ui-scale-factor)) var(--accent);}
 .agenda-cell.in-range::before{content:''; position:absolute; inset:0; border-radius:inherit; background:color-mix(in srgb,var(--accent) 16%,transparent); pointer-events:none;}
 .agenda-cell-head{display:flex; align-items:center; gap:calc(5px * var(--ui-scale-factor)); min-height:calc(18px * var(--ui-scale-factor)); min-width:0;}
 .agenda-num{flex-shrink:0; font-size:calc(10px * var(--ui-scale-factor)); font-weight:650; color:var(--text-dim); font-variant-numeric:tabular-nums; min-width:calc(18px * var(--ui-scale-factor)); height:calc(18px * var(--ui-scale-factor)); padding:0 calc(4px * var(--ui-scale-factor)); display:inline-flex; align-items:center; justify-content:center; border-radius:calc(999px * var(--ui-scale-factor));}
 .agenda-cell.is-today .agenda-num{background:var(--accent); color:#0e1512;}
 .agenda-ovr{flex-shrink:0; width:calc(4px * var(--ui-scale-factor)); height:calc(4px * var(--ui-scale-factor)); border-radius:50%; background:var(--text-dim);}
 .agenda-holiday{min-width:0; font-size:calc(8px * var(--ui-scale-factor)); font-weight:600; color:var(--hol,#df786f); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
 .agenda-add-btn{margin-left:auto; flex-shrink:0; width:calc(18px * var(--ui-scale-factor)); height:calc(18px * var(--ui-scale-factor)); border:calc(1px * var(--ui-scale-factor)) solid transparent; background:transparent; color:var(--text-faint); border-radius:calc(5px * var(--ui-scale-factor)); font:600 calc(13px * var(--ui-scale-factor))/1 system-ui,sans-serif; display:inline-flex; align-items:center; justify-content:center; padding:0; opacity:0; transition:opacity .12s;}
 .agenda-cell:hover .agenda-add-btn,.agenda-add-btn:focus-visible{opacity:1;}
 .agenda-add-btn:hover{background:var(--surface-3); color:var(--text); border-color:var(--border);}
 @media (hover:none){.agenda-add-btn{opacity:.8;}}
 /* Bandeau de l'état de la journée : moitié gauche = matin, moitié droite = après-midi. */
 .agenda-rail{display:flex; gap:calc(2px * var(--ui-scale-factor)); height:calc(14px * var(--ui-scale-factor)); flex-shrink:0;}
 .agenda-rail span{flex:1; min-width:0; border-radius:calc(4px * var(--ui-scale-factor)); background:color-mix(in srgb,var(--st) 17%,transparent); box-shadow:inset 0 calc(-1.5px * var(--ui-scale-factor)) 0 var(--st); color:color-mix(in srgb,var(--st) 35%,#fff); font-size:calc(7.5px * var(--ui-scale-factor)); font-weight:650; line-height:calc(14px * var(--ui-scale-factor)); padding:0 calc(5px * var(--ui-scale-factor)); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
 .agenda-rail span.none{background:transparent; box-shadow:inset 0 0 0 calc(1px * var(--ui-scale-factor)) var(--border-soft);}
 .span-1 .agenda-cell{min-height:0; padding:calc(5px * var(--ui-scale-factor)) calc(5px * var(--ui-scale-factor)) calc(4px * var(--ui-scale-factor)); display:flex; flex-direction:column; gap:calc(3px * var(--ui-scale-factor)); overflow:hidden;}
 .agenda-chips{flex:1; min-height:0; display:flex; flex-direction:column; gap:calc(2.5px * var(--ui-scale-factor)); overflow:hidden;}
 .agenda-chip{position:relative; flex-shrink:0; display:flex; align-items:center; gap:calc(5px * var(--ui-scale-factor)); min-height:calc(17px * var(--ui-scale-factor)); padding:calc(2px * var(--ui-scale-factor)) calc(16px * var(--ui-scale-factor)) calc(2px * var(--ui-scale-factor)) calc(8px * var(--ui-scale-factor)); border-radius:calc(4px * var(--ui-scale-factor)); background:color-mix(in srgb,var(--surface-3) 78%,transparent); border:calc(1px * var(--ui-scale-factor)) solid transparent; color:var(--text); font-size:calc(8.5px * var(--ui-scale-factor)); font-weight:550; cursor:pointer; overflow:hidden;}
 .agenda-chip::before{content:''; position:absolute; left:calc(2px * var(--ui-scale-factor)); top:calc(3px * var(--ui-scale-factor)); bottom:calc(3px * var(--ui-scale-factor)); width:calc(2.5px * var(--ui-scale-factor)); border-radius:calc(2px * var(--ui-scale-factor)); background:var(--agenda-card-border,var(--border));}
 .agenda-chip:hover{background:var(--surface-3); border-color:var(--border);}
 .agenda-chip.hidden-overflow{display:none;}
 .agenda-chip-title{flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
 .agenda-chip-board{flex-shrink:0; font-size:calc(7px * var(--ui-scale-factor)); font-weight:650; color:var(--text-faint); border:calc(1px * var(--ui-scale-factor)) solid var(--border-soft); border-radius:calc(3px * var(--ui-scale-factor)); padding:0 calc(3px * var(--ui-scale-factor)); line-height:calc(10px * var(--ui-scale-factor));}
 .agenda-chip-delete{position:absolute; right:calc(1px * var(--ui-scale-factor)); top:50%; transform:translateY(-50%); width:calc(14px * var(--ui-scale-factor)); height:calc(14px * var(--ui-scale-factor)); border:0; background:transparent; color:var(--text-dim); border-radius:calc(3px * var(--ui-scale-factor)); padding:0; font-size:calc(11px * var(--ui-scale-factor)); line-height:calc(14px * var(--ui-scale-factor)); opacity:0;}
 .agenda-chip:hover .agenda-chip-delete,.agenda-chip-delete:focus-visible{opacity:1;}
 .agenda-chip-delete:hover{background:rgba(255,255,255,.1); color:#fff;}
 .agenda-more{flex-shrink:0; align-self:flex-start; background:none; border:0; padding:calc(1px * var(--ui-scale-factor)) calc(4px * var(--ui-scale-factor)); color:var(--text-dim); font:600 calc(8px * var(--ui-scale-factor)) system-ui,sans-serif; cursor:pointer; border-radius:calc(3px * var(--ui-scale-factor));}
 .agenda-more:hover{color:var(--text); background:var(--surface-3);}
 /* 1 mois : états en pastilles modernes (point lumineux, fond translucide, largeur ajustée
    au texte). Journée coupée : deux pastilles, l'icône demi-disque indique matin ou après-midi.
    La teinte du jour devient une lueur venue du haut de la case, qui s'efface vers le bas.
    Réservé aux écrans assez larges : en dessous de 680 px, la barre fine d'origine reste. */
 @media (min-width:681px){
  .span-1 .agenda-cell{--cell-bg:var(--surface);
   background-image:linear-gradient(180deg,transparent 0,var(--cell-bg) 78%),linear-gradient(var(--tint-angle,90deg),var(--am-tint,transparent) 0 50%,var(--pm-tint,transparent) 50% 100%);}
  .span-1 .agenda-cell.we{--cell-bg:color-mix(in srgb,var(--surface) 80%,#000);}
  .span-1 .agenda-rail{height:auto; gap:calc(4px * var(--ui-scale-factor)); flex-wrap:nowrap; min-width:0; padding:calc(1px * var(--ui-scale-factor)) 0;}
  .span-1 .agenda-rail span{
   flex:0 1 auto; min-width:0; display:inline-flex; align-items:center; gap:calc(5px * var(--ui-scale-factor));
   height:calc(17px * var(--ui-scale-factor)); padding:0 calc(8px * var(--ui-scale-factor)) 0 calc(6px * var(--ui-scale-factor));
   border-radius:calc(999px * var(--ui-scale-factor));
   background:color-mix(in srgb,var(--st) 16%,transparent);
   border:calc(1px * var(--ui-scale-factor)) solid color-mix(in srgb,var(--st) 34%,transparent);
   box-shadow:0 calc(1px * var(--ui-scale-factor)) calc(6px * var(--ui-scale-factor)) color-mix(in srgb,var(--st) 14%,transparent),inset 0 calc(1px * var(--ui-scale-factor)) 0 rgba(255,255,255,.06);
   color:color-mix(in srgb,var(--st) 42%,var(--text));
   font-size:calc(8.5px * var(--ui-scale-factor)); font-weight:650; letter-spacing:.01em; line-height:1;
   white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
   -webkit-backdrop-filter:blur(calc(4px * var(--ui-scale-factor))); backdrop-filter:blur(calc(4px * var(--ui-scale-factor)));}
  .span-1 .agenda-rail span::before{
   content:''; flex-shrink:0; width:calc(6px * var(--ui-scale-factor)); height:calc(6px * var(--ui-scale-factor)); border-radius:50%;
   background:var(--st); box-shadow:0 0 0 calc(2px * var(--ui-scale-factor)) color-mix(in srgb,var(--st) 22%,transparent),0 0 calc(6px * var(--ui-scale-factor)) color-mix(in srgb,var(--st) 70%,transparent);}
  /* Demi-journée : demi-disque plein à gauche (matin) ou à droite (après-midi). */
  .span-1 .agenda-rail span.am::before,.span-1 .agenda-rail span.pm::before{width:calc(8px * var(--ui-scale-factor)); height:calc(8px * var(--ui-scale-factor)); box-shadow:inset 0 0 0 calc(1px * var(--ui-scale-factor)) var(--st),0 0 calc(5px * var(--ui-scale-factor)) color-mix(in srgb,var(--st) 55%,transparent);}
  .span-1 .agenda-rail span.am::before{background:linear-gradient(90deg,var(--st) 0 50%,transparent 50%);}
  .span-1 .agenda-rail span.pm::before{background:linear-gradient(90deg,transparent 50%,var(--st) 50%);}
  /* Demi-journée sans état : pastille en pointillés, discrète. */
  .span-1 .agenda-rail span.none{--st:var(--text-faint); background:transparent; border-style:dashed; border-color:var(--border); box-shadow:none; color:var(--text-faint); font-weight:550; -webkit-backdrop-filter:none; backdrop-filter:none;}
  .span-1 .agenda-rail span.none::before{background:transparent; box-shadow:inset 0 0 0 calc(1px * var(--ui-scale-factor)) var(--text-faint);}
  .span-1 .agenda-rail span.none.am::before{background:linear-gradient(90deg,var(--text-faint) 0 50%,transparent 50%);}
  .span-1 .agenda-rail span.none.pm::before{background:linear-gradient(90deg,transparent 50%,var(--text-faint) 50%);}
  .span-1 .agenda-cell.other-month .agenda-rail span{box-shadow:none;}
  /* Journée coupée : la pastille du matin occupe la moitié gauche de la case et celle de
     l'après-midi la moitié droite, exactement comme la teinte de fond (coupée à 50 %). */
  .span-1 .agenda-rail:has(> span.pm){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:0;}
  .span-1 .agenda-rail:has(> span.pm) > span{justify-self:start;max-width:calc(100% - calc(4px * var(--ui-scale-factor)));}
  .span-1 .agenda-rail > span.pm{grid-column:2;margin-left:calc(4px * var(--ui-scale-factor));}
 }
 /* 3 mois : on garde des pastilles courtes. */
 .span-3 .agenda-cell{height:calc(64px * var(--ui-scale-factor)); padding:calc(3px * var(--ui-scale-factor)); display:flex; flex-direction:column; gap:calc(2px * var(--ui-scale-factor)); overflow:hidden;}
 .span-3 .agenda-num{font-size:calc(8.5px * var(--ui-scale-factor)); min-width:calc(15px * var(--ui-scale-factor)); height:calc(15px * var(--ui-scale-factor)); padding:0 calc(3px * var(--ui-scale-factor));}
 .span-3 .agenda-rail{height:calc(4px * var(--ui-scale-factor));}
 .span-3 .agenda-rail span{font-size:0; padding:0; box-shadow:none; background:var(--st); opacity:.8; border-radius:calc(2px * var(--ui-scale-factor));}
 .span-3 .agenda-rail span.none{background:transparent; box-shadow:none;}
 .span-3 .agenda-chip{min-height:calc(13px * var(--ui-scale-factor)); padding:0 calc(3px * var(--ui-scale-factor)) 0 calc(6px * var(--ui-scale-factor)); font-size:calc(7.5px * var(--ui-scale-factor)); border-radius:calc(3px * var(--ui-scale-factor));}
 .span-3 .agenda-chip::before{top:calc(2px * var(--ui-scale-factor)); bottom:calc(2px * var(--ui-scale-factor)); width:calc(2px * var(--ui-scale-factor)); left:calc(1.5px * var(--ui-scale-factor));}
 .span-3 .agenda-chip-delete,.span-3 .agenda-chip-board{display:none;}
 .span-3 .agenda-more{font-size:calc(7px * var(--ui-scale-factor)); padding:0 calc(2px * var(--ui-scale-factor));}
 /* 6 mois et année : la couleur du planning devient l'information principale. */
 .span-6 .agenda-cell{height:calc(36px * var(--ui-scale-factor)); padding:calc(3px * var(--ui-scale-factor)); display:flex; flex-direction:column; justify-content:space-between;}
 .span-6 .agenda-num{font-size:calc(8.5px * var(--ui-scale-factor)); min-width:calc(14px * var(--ui-scale-factor)); height:calc(14px * var(--ui-scale-factor)); padding:0 calc(3px * var(--ui-scale-factor));}
 .span-12 .agenda-month{gap:calc(2px * var(--ui-scale-factor));}
 .span-12 .agenda-cell{height:clamp(calc(18px * var(--ui-scale-factor)),calc((100dvh - calc(250px * var(--ui-scale-factor))) / 19),calc(40px * var(--ui-scale-factor))); border-radius:calc(4px * var(--ui-scale-factor)); border-color:transparent; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:calc(1px * var(--ui-scale-factor));}
 .span-12 .agenda-cell.we{background-color:color-mix(in srgb,var(--surface) 70%,#000);}
 .span-12 .agenda-num{font-size:calc(8px * var(--ui-scale-factor)); font-weight:600; min-width:0; height:auto; padding:0; color:var(--text);}
 .span-12 .agenda-cell.is-today{box-shadow:0 0 0 calc(1.5px * var(--ui-scale-factor)) var(--accent); border-color:transparent;}
 .span-12 .agenda-cell.is-today .agenda-num{background:none; color:var(--text); font-weight:800;}
 .multi .agenda-cell.is-holiday .agenda-num{color:var(--hol,#df786f); font-weight:750;}
 .agenda-dots{display:flex; gap:calc(2px * var(--ui-scale-factor)); justify-content:flex-start; min-height:calc(4px * var(--ui-scale-factor));}
 .span-12 .agenda-dots{justify-content:center;}
 .agenda-dots i{width:calc(4px * var(--ui-scale-factor)); height:calc(4px * var(--ui-scale-factor)); border-radius:50%; background:var(--c,var(--accent));}
 .span-12 .agenda-dots i{width:calc(3px * var(--ui-scale-factor)); height:calc(3px * var(--ui-scale-factor));}
 .agenda-dots i.search-dim{opacity:.25;}
 /* Panneau du jour sélectionné. */
 .agenda-day-panel{width:calc(252px * var(--ui-scale-factor)); flex-shrink:0; background:var(--surface); border:calc(1px * var(--ui-scale-factor)) solid var(--border-soft); border-radius:calc(8px * var(--ui-scale-factor)); padding:calc(12px * var(--ui-scale-factor)); overflow-y:auto; display:flex; flex-direction:column; gap:calc(12px * var(--ui-scale-factor));}
 .agenda-day-panel.hidden{display:none;}
 .adp-head{display:flex; align-items:flex-start; justify-content:space-between; gap:calc(8px * var(--ui-scale-factor));}
 .adp-head h3{margin:0; font-size:calc(13px * var(--ui-scale-factor)); font-weight:650; line-height:1.25;}
 .adp-sub{font-size:calc(9px * var(--ui-scale-factor)); color:var(--text-faint); margin-top:calc(2px * var(--ui-scale-factor));}
 .adp-close{background:none; border:0; color:var(--text-faint); font-size:calc(15px * var(--ui-scale-factor)); line-height:1; padding:calc(1px * var(--ui-scale-factor)) calc(4px * var(--ui-scale-factor)); border-radius:calc(4px * var(--ui-scale-factor));}
 .adp-close:hover{color:var(--text); background:var(--surface-2);}
 .adp-holiday{align-self:flex-start; display:inline-flex; align-items:center; gap:calc(5px * var(--ui-scale-factor)); font-size:calc(9px * var(--ui-scale-factor)); font-weight:650; color:var(--text); padding:calc(3px * var(--ui-scale-factor)) calc(8px * var(--ui-scale-factor)); border-radius:calc(999px * var(--ui-scale-factor)); background:color-mix(in srgb,var(--hol,#df786f) 18%,transparent); border:calc(1px * var(--ui-scale-factor)) solid color-mix(in srgb,var(--hol,#df786f) 40%,transparent);}
 .adp-section{display:flex; flex-direction:column; gap:calc(6px * var(--ui-scale-factor));}
 .adp-section-title{display:flex; justify-content:space-between; align-items:baseline; font-size:calc(9.5px * var(--ui-scale-factor)); font-weight:650; color:var(--text-dim);}
 .adp-states{display:grid; grid-template-columns:auto 1fr; gap:calc(4px * var(--ui-scale-factor)) calc(8px * var(--ui-scale-factor)); align-items:center;}
 .adp-states .lbl{font-size:calc(9.5px * var(--ui-scale-factor)); color:var(--text-dim);}
 .adp-state-btn{display:flex; align-items:center; gap:calc(7px * var(--ui-scale-factor)); width:100%; min-width:0; padding:calc(5px * var(--ui-scale-factor)) calc(8px * var(--ui-scale-factor)); border-radius:calc(6px * var(--ui-scale-factor)); border:calc(1px * var(--ui-scale-factor)) solid var(--border-soft); background:var(--surface-2); color:var(--text); font:600 calc(10px * var(--ui-scale-factor)) system-ui,sans-serif; text-align:left; cursor:pointer;}
 .adp-state-btn:hover{border-color:var(--text-faint);}
 .adp-state-btn span.t{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
 .adp-state-btn em{font-style:normal; font-size:calc(8px * var(--ui-scale-factor)); font-weight:500; color:var(--text-faint);}
 .sw-box{flex-shrink:0; width:calc(9px * var(--ui-scale-factor)); height:calc(9px * var(--ui-scale-factor)); border-radius:calc(3px * var(--ui-scale-factor)); background:var(--st);}
 .sw-box.none{background:transparent; border:calc(1px * var(--ui-scale-factor)) dashed var(--text-faint);}
 .adp-reset{align-self:flex-start; background:none; border:0; color:var(--text-dim); font:500 calc(9px * var(--ui-scale-factor)) system-ui,sans-serif; padding:0; cursor:pointer;}
 .adp-reset:hover{color:var(--accent);}
 .agenda-day-card{display:flex; align-items:stretch; gap:calc(8px * var(--ui-scale-factor)); padding:calc(7px * var(--ui-scale-factor)) calc(8px * var(--ui-scale-factor)); border-radius:calc(6px * var(--ui-scale-factor)); background:var(--surface-2); border:calc(1px * var(--ui-scale-factor)) solid var(--border-soft); cursor:pointer;}
 .agenda-day-card:hover{border-color:var(--text-faint);}
 .agenda-day-card .bar{width:calc(3px * var(--ui-scale-factor)); border-radius:calc(2px * var(--ui-scale-factor)); flex-shrink:0; background:var(--agenda-card-border,var(--border));}
 .agenda-day-card-body{min-width:0;}
 .agenda-day-card-title{font-size:calc(10.5px * var(--ui-scale-factor)); font-weight:600; line-height:1.3; overflow-wrap:anywhere;}
 .agenda-day-card-meta{font-size:calc(8.5px * var(--ui-scale-factor)); color:var(--text-faint); margin-top:calc(2px * var(--ui-scale-factor));}
 .agenda-day-empty{color:var(--text-faint); font-size:calc(9.5px * var(--ui-scale-factor));}
 .adp-add{width:100%;}
 /* Menu d'état d'une journée ou d'une plage (clic droit, glisser ou panneau). */
 .agenda-state-menu{position:fixed; z-index:13000; width:calc(270px * var(--ui-scale-factor)); background:var(--surface-2); border:calc(1px * var(--ui-scale-factor)) solid var(--border); border-radius:calc(9px * var(--ui-scale-factor)); box-shadow:0 calc(12px * var(--ui-scale-factor)) calc(32px * var(--ui-scale-factor)) rgba(0,0,0,.48); padding:calc(8px * var(--ui-scale-factor)); font-size:calc(10px * var(--ui-scale-factor)); color:var(--text);}
 .asm-head{padding:calc(2px * var(--ui-scale-factor)) calc(4px * var(--ui-scale-factor)) calc(7px * var(--ui-scale-factor));}
 .asm-title{font-weight:650; font-size:calc(10.5px * var(--ui-scale-factor));}
 .asm-title::first-letter{text-transform:uppercase;}
 .asm-sub{font-size:calc(8.5px * var(--ui-scale-factor)); color:var(--text-faint); margin-top:calc(1px * var(--ui-scale-factor));}
 .asm-grid{display:grid; grid-template-columns:minmax(0,1fr) repeat(3,calc(46px * var(--ui-scale-factor))); align-items:center; row-gap:calc(1px * var(--ui-scale-factor));}
 .asm-col{font-size:calc(8px * var(--ui-scale-factor)); color:var(--text-faint); text-align:center; padding-bottom:calc(3px * var(--ui-scale-factor));}
 .asm-label{display:flex; align-items:center; gap:calc(7px * var(--ui-scale-factor)); padding:calc(4px * var(--ui-scale-factor)); font-weight:600; min-width:0;}
 .asm-label span{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
 .asm-pick{justify-self:center; width:calc(26px * var(--ui-scale-factor)); height:calc(20px * var(--ui-scale-factor)); border-radius:calc(5px * var(--ui-scale-factor)); border:calc(1px * var(--ui-scale-factor)) solid transparent; background:transparent; display:flex; align-items:center; justify-content:center; padding:0; cursor:pointer;}
 .asm-pick i{display:block; width:calc(14px * var(--ui-scale-factor)); height:calc(10px * var(--ui-scale-factor)); border-radius:calc(3px * var(--ui-scale-factor)); background:var(--st);}
 .asm-pick[data-part="am"] i{background:linear-gradient(90deg,var(--st) 0 50%,color-mix(in srgb,var(--st) 22%,transparent) 50% 100%);}
 .asm-pick[data-part="pm"] i{background:linear-gradient(90deg,color-mix(in srgb,var(--st) 22%,transparent) 0 50%,var(--st) 50% 100%);}
 .asm-pick.none i{background:transparent; border:calc(1px * var(--ui-scale-factor)) dashed var(--text-faint);}
 .asm-pick:hover{background:var(--surface-3); border-color:var(--border);}
 .asm-pick.current{border-color:var(--text-dim); background:var(--surface-3);}
 .asm-pick:focus-visible{outline:calc(1.5px * var(--ui-scale-factor)) solid var(--accent); outline-offset:calc(1px * var(--ui-scale-factor));}
 .asm-foot{display:flex; flex-wrap:wrap; justify-content:space-between; gap:calc(4px * var(--ui-scale-factor)); border-top:calc(1px * var(--ui-scale-factor)) solid var(--border-soft); margin-top:calc(6px * var(--ui-scale-factor)); padding-top:calc(6px * var(--ui-scale-factor));}
 .asm-foot button{background:none; border:0; color:var(--text-dim); font:600 calc(9px * var(--ui-scale-factor)) system-ui,sans-serif; padding:calc(3px * var(--ui-scale-factor)) calc(4px * var(--ui-scale-factor)); border-radius:calc(4px * var(--ui-scale-factor)); cursor:pointer;}
 .asm-foot button:hover:not(:disabled){color:var(--text); background:var(--surface-3);}
 .asm-foot button:disabled{opacity:.35; cursor:default;}
 @media (prefers-reduced-motion:reduce){.agenda-add-btn{transition:none;}}
