/* fonctions/cartes/checklist.css — checklist de la fiche (checklist.js) et pastille « 3/5 » des cartes (rendu.js) */
.checklist .field-label-row{display:flex; align-items:center; justify-content:space-between;}
.checklist-compte{font-size:calc(10px * var(--ui-scale-factor)); font-weight:700; color:var(--text-dim); font-variant-numeric:tabular-nums;}
.checklist.complete .checklist-compte{color:#64d98b;}
.checklist-barre{height:round(calc(4px * var(--ui-scale-factor)),1px); border-radius:round(calc(4px * var(--ui-scale-factor)),1px); background:var(--surface-3); overflow:hidden; margin:round(calc(2px * var(--ui-scale-factor)),1px) 0 round(calc(4px * var(--ui-scale-factor)),1px);}
.checklist-barre[hidden]{display:none;}
.checklist-barre span{display:block; height:100%; width:0; background:var(--accent); transition:width .2s ease;}
.checklist.complete .checklist-barre span{background:#64d98b;}
.checklist{position:relative;}
/* Au-delà d'environ 7 lignes, la liste défile (la fiche garde une hauteur raisonnable) ; scrollbar fine, place réservée
   (scrollbar-gutter) : la largeur des lignes, donc la hauteur calculée de leur texte, ne change pas quand elle apparaît. */
.checklist-lignes{list-style:none; margin:0; padding:0 round(calc(2px * var(--ui-scale-factor)),1px) 0 0; display:flex; flex-direction:column; gap:round(calc(2px * var(--ui-scale-factor)),1px);
 max-height:min(round(calc(190px * var(--ui-scale-factor)),1px),24vh); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-gutter:stable;}
.checklist-ligne{position:relative; display:flex; align-items:flex-start; gap:round(calc(6px * var(--ui-scale-factor)),1px); padding:round(calc(2px * var(--ui-scale-factor)),1px) round(calc(4px * var(--ui-scale-factor)),1px); border-radius:round(calc(6px * var(--ui-scale-factor)),1px);}
.checklist-ligne:hover,.checklist-ligne:focus-within{background:var(--surface-2);}
.checklist-case{flex:none; width:round(calc(14px * var(--ui-scale-factor)),1px); height:round(calc(14px * var(--ui-scale-factor)),1px); margin:round(calc(3px * var(--ui-scale-factor)),1px) 0 0; accent-color:var(--accent); cursor:pointer;}
.checklist-assigner,.checklist-suppr{margin-top:round(calc(1px * var(--ui-scale-factor)),1px);}
/* Texte d'une ligne : champ multiligne sans cadre, à la hauteur de son texte (checklist.js) ; un long texte passe à la ligne.
   .modal .field.checklist : l'emporte sur le gabarit des champs des fiches (.card-editor-modal .field textarea). */
.modal .field.checklist textarea.checklist-texte{flex:1; min-width:0; display:block; width:auto; height:auto; min-height:0; resize:none; overflow:hidden;
 border:0; border-bottom:1px solid transparent; border-radius:0; background:transparent; color:var(--text); font:inherit; font-size:calc(11px * var(--ui-scale-factor)); line-height:1.35;
 padding:round(calc(3px * var(--ui-scale-factor)),1px) 0; outline:none; white-space:pre-wrap; overflow-wrap:anywhere;}
.modal .field.checklist textarea.checklist-texte:focus{border-bottom-color:var(--accent);}
.modal .field.checklist .checklist-ligne.fait textarea.checklist-texte{color:var(--text-faint); text-decoration:line-through;}

.checklist-assigner,.checklist-suppr{flex:none; display:inline-flex; align-items:center; justify-content:center; border:0; padding:0; background:transparent; color:var(--text-faint); cursor:pointer; border-radius:50%;
 width:round(calc(18px * var(--ui-scale-factor)),1px); height:round(calc(18px * var(--ui-scale-factor)),1px);}
.checklist-assigner svg{width:round(calc(12px * var(--ui-scale-factor)),1px); height:round(calc(12px * var(--ui-scale-factor)),1px);}
.checklist-assigner .discussion-avatar{width:round(calc(18px * var(--ui-scale-factor)),1px); height:round(calc(18px * var(--ui-scale-factor)),1px); font-size:calc(9px * var(--ui-scale-factor));}
.checklist-suppr{font-size:calc(14px * var(--ui-scale-factor)); line-height:1; opacity:0;}
.checklist-ligne:hover .checklist-suppr,.checklist-ligne:focus-within .checklist-suppr{opacity:1;}
.checklist-assigner:not(.pris){opacity:0;}
.checklist-ligne:hover .checklist-assigner,.checklist-ligne:focus-within .checklist-assigner{opacity:1;}
.checklist-assigner:hover,.checklist-suppr:hover{color:var(--text); background:var(--surface-3);}
.modal .field.checklist textarea.checklist-ajout{display:block; margin-top:round(calc(4px * var(--ui-scale-factor)),1px); width:100%; height:auto; min-height:0; resize:none; overflow:hidden; box-sizing:border-box; background:var(--surface-2); border:1px dashed var(--border); border-radius:round(calc(6px * var(--ui-scale-factor)),1px); color:var(--text); font:inherit; font-size:calc(11px * var(--ui-scale-factor)); line-height:1.35; padding:round(calc(5px * var(--ui-scale-factor)),1px) round(calc(8px * var(--ui-scale-factor)),1px); white-space:pre-wrap; overflow-wrap:anywhere;}
.modal .field.checklist textarea.checklist-ajout:focus{border-style:solid; border-color:var(--accent); outline:none;}
.checklist-limite{margin-top:round(calc(3px * var(--ui-scale-factor)),1px); text-align:right; font-size:calc(9px * var(--ui-scale-factor)); color:var(--text-faint); font-variant-numeric:tabular-nums;}
.checklist-limite[hidden]{display:none;}
.checklist-limite.pleine{color:var(--remind,#e9a23b);}
.checklist-menu{position:absolute; right:0; top:100%; z-index:5; min-width:round(calc(160px * var(--ui-scale-factor)),1px); display:flex; flex-direction:column; padding:round(calc(4px * var(--ui-scale-factor)),1px); background:var(--surface); border:1px solid var(--border); border-radius:round(calc(8px * var(--ui-scale-factor)),1px); box-shadow:0 round(calc(8px * var(--ui-scale-factor)),1px) round(calc(20px * var(--ui-scale-factor)),1px) rgba(0,0,0,.4);}
.checklist-menu-item{display:flex; align-items:center; gap:round(calc(7px * var(--ui-scale-factor)),1px); border:0; background:transparent; color:var(--text); font:inherit; font-size:calc(11px * var(--ui-scale-factor)); text-align:left; padding:round(calc(4px * var(--ui-scale-factor)),1px) round(calc(6px * var(--ui-scale-factor)),1px); border-radius:round(calc(5px * var(--ui-scale-factor)),1px); cursor:pointer;}
.checklist-menu-item:hover,.checklist-menu-item:focus-visible,.checklist-menu-item.actif{background:var(--surface-2); outline:none;}
/* Pastille « 3/5 » sur la carte du tableau (même gabarit que l'échéance, card-due) */
.card-checklist{display:inline-flex; align-items:center; gap:calc(3px * var(--ui-scale-factor)); font-size:calc(8px * var(--ui-scale-factor)); font-weight:600; font-variant-numeric:tabular-nums;
 color:var(--text-dim); background:var(--surface-3); padding:calc(2.25px * var(--ui-scale-factor)) calc(5.25px * var(--ui-scale-factor)); border-radius:calc(3.75px * var(--ui-scale-factor));}
.card-checklist.complete{color:#9be7b4; background:rgba(100,217,139,.16);}
.card-meta .card-checklist + .card-due,.card-meta .card-due + .card-checklist{margin-left:calc(4px * var(--ui-scale-factor));}
