/* activites : écran Activités (lot 4, session B). Réf. maquette 01-liste-ao.html */
.vue-activites { min-width: 0; max-width: 100%; }

/* En-tête de page : h1 + compteur, action principale à droite */
.vue-activites .page-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3) var(--space-4); margin-bottom: var(--space-4); }
.vue-activites .page-title { display: flex; align-items: baseline; gap: var(--space-3); min-width: 0; }
.vue-activites .page-title h1 { margin: 0; font-size: var(--text-2xl); font-weight: var(--weight-semibold); line-height: var(--leading-tight); color: var(--text); }
.vue-activites .page-count { font-size: var(--text-sm); color: var(--text-2); font-variant-numeric: tabular-nums; }
.vue-activites .page-header-actions { display: flex; gap: var(--space-2); flex-wrap: wrap; }
.vue-activites #act-filtres { margin-bottom: var(--space-4); }
.vue-activites .act-liste { min-width: 0; }

/* Champ de recherche de la barre de filtres (classe .input sans règle globale) */
.vue-activites input.input {
  width: 100%; min-height: var(--control-h); padding: 0 var(--space-3); box-sizing: border-box;
  border: 1.5px solid var(--border-control); border-radius: var(--radius-md);
  font: inherit; font-size: var(--text-md); color: var(--text); background: var(--bg);
}
.vue-activites input.input:focus-visible { outline: var(--focus-width) solid var(--focus-ring); outline-offset: var(--focus-offset); }
.vue-activites .table th { text-transform: none; letter-spacing: 0; font-size: var(--text-sm); }

/* Titre de ligne : bouton qui ouvre l'aperçu */
.vue-activites button.cell-title {
  padding: 0; border: 0; background: none; font: inherit; font-weight: var(--weight-medium);
  text-align: left; cursor: pointer; border-radius: var(--radius-sm);
}
.vue-activites button.cell-title:hover { text-decoration: underline; }
.vue-activites button.cell-title:focus-visible { outline: var(--focus-width) solid var(--focus-ring); outline-offset: var(--focus-offset); }
.vue-activites .col-main { min-width: 10rem; max-width: 28rem; }
@media (min-width: 641px) and (max-width: 1023px) { .vue-activites .table th, .vue-activites .table td { padding-left: var(--space-2); padding-right: var(--space-2); } }
.vue-activites .cell-flag { display: inline-flex; align-items: center; margin-left: var(--space-2); }
.vue-activites .table td:last-child, .vue-activites .table th:last-child { width: 1%; white-space: nowrap; text-align: right; }
.vue-activites .row-actions { display: inline-flex; }
.vue-activites .row-actions .btn { min-width: var(--control-h-sm); }

/* Aperçu : liste de propriétés */
.act-apercu { display: grid; gap: var(--space-5); min-width: 0; }
.act-apercu-meta { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; }
.act-apercu dl { display: grid; grid-template-columns: minmax(0, 9rem) minmax(0, 1fr); gap: var(--space-3) var(--space-4); margin: 0; }
.act-apercu dt { color: var(--text-2); font-size: var(--text-sm); }
.act-apercu dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.act-apercu .act-texte { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.act-apercu h3 { margin: 0 0 var(--space-1); font-size: var(--text-sm); font-weight: var(--weight-medium); color: var(--text-2); }

/* Formulaire dans la modale */
.act-form { min-width: 0; }
.act-form .form-row, .act-form .form-row-3 { gap: var(--space-4); }
.act-form .form-group { min-width: 0; }
.act-form input, .act-form select, .act-form textarea { max-width: 100%; }
.act-form-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: var(--space-2); padding-top: var(--space-2); }
.act-form-erreur:empty { display: none; }
.dialog-footer:empty { display: none; }

@media (max-width: 640px) {
  .vue-activites .page-header-actions { width: 100%; }
  .vue-activites .page-header-actions .btn { flex: 1 1 auto; }
  .vue-activites .page-title h1 { font-size: var(--text-xl); }
  .vue-activites .col-main { max-width: none; }
  .vue-activites .table-stack td:last-child { margin-left: auto; width: auto; }
  .vue-activites .table-stack td .badge { max-width: 100%; }
  .act-apercu dl { grid-template-columns: 1fr; gap: var(--space-1); }
  .act-apercu dd { margin-bottom: var(--space-2); }
  .act-form-actions { flex-direction: column-reverse; }
  .act-form-actions .btn { width: 100%; min-height: var(--touch, 2.75rem); }
}

/* Cibles de 44 px sur tablette et écran tactile */
@media (max-width: 1023px), (pointer: coarse) {
  .vue-activites button.cell-title { min-height: var(--touch, 44px); display: inline-flex; align-items: center; }
  .vue-activites input.input { min-height: var(--touch, 44px); }
}
