/*
 * EARONTECH — REPÈRES DE MAINTENANCE
 * Écrans : Salons et événements : galerie, liste, calendrier, éditions et exposants.
 * Chargement : private/view.php.
 * Les couleurs et tailles paramétrables utilisent les variables --app-* / --product-*.
 * Les blocs @media adaptent la même interface à la largeur de l’écran.
 * Conserver l’ordre des règles : les ajustements spécialisés suivent le socle commun.
 */

/* SALONS & ÉVÈNEMENTS — styles indépendants, réservés à cette rubrique. */
/* Titres, actions et liens vers les sections. */
.events-heading  {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin:16px 0;
}

.events-heading h1,.events-heading h2  {
  margin:0 0 8px;
}

.events-tabs  {
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  margin:20px 0;
}

.events-tabs a  {
  font-weight:600;
}

/* Galerie de salons et historique des éditions : cartes compactes. */
.events-grid  {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin:20px 0;
}

.event-card  {
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
  margin:0;
  padding:18px;
  overflow-wrap:anywhere;
}

.event-card h2  {
  font-size:calc(17px * var(--app-font-scale, 1));
  line-height:1.3;
  margin:0;
}

.event-card h3,.event-card p  {
  margin:0;
}

.event-card-top  {
  display:flex;
  align-items:flex-start;
  gap:10px;
}

.event-symbol  {
  color:var(--app-primary-color, #1c75bc);
  font-size:calc(24px * var(--app-font-scale, 1));
  line-height:1;
}

.events-tags  {
  display:flex;
  gap:5px;
  flex-wrap:wrap;
}

.events-tags span  {
  color:var(--app-button-hover, #175f99);
  background:var(--app-primary-soft, #edf5fb);
  border-radius:5px;
  padding:3px 7px;
  font-size:calc(12px * var(--app-font-scale, 1));
}

.event-card footer  {
  margin-top:auto;
  border-top:1px solid #e5eaf0;
  padding-top:12px;
  font-size:calc(12px * var(--app-font-scale, 1));
}

.event-card footer div  {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}

/* Filtres et navigation paginée. */
.events-filters  {
  display:flex;
  gap:12px;
  align-items:end;
  flex-wrap:wrap;
}

.events-filters > label  {
  flex:1 1 130px;
  margin:0;
}

.events-filters input:not([type=checkbox]),.events-filters select  {
  width:100%;
  display:block;
  margin-top:6px;
}

.events-inline  {
  display:flex;
  align-items:center;
  gap:8px;
}

.events-inline input[type=checkbox],.events-checks input[type=checkbox]  {
  width:16px;
  height:16px;
  flex:0 0 16px;
  margin:0;
}

.events-pagination  {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin:20px;
}

.events-import  {
  border-left:4px solid var(--app-primary-color, #1c75bc);
}

/* Formulaires : trois colonnes et sélections multiples lisibles. */
#event-form,#edition-form,#event-history,.events-filters,.events-import  {
  padding:18px;
}

.events-fields  {
  border:0;
  margin:0;
  padding:0;
  min-width:0;
}

.events-fields > legend  {
  font-size:calc(20px * var(--app-font-scale, 1));
  font-weight:600;
  margin-bottom:18px;
}

.events-choices  {
  border:1px solid #dce3eb;
  border-radius:8px;
  padding:12px;
  margin:0 0 18px;
  min-width:0;
}

.events-choices legend  {
  font-weight:600;
  font-size:calc(14px * var(--app-font-scale, 1));
  padding:0 5px;
}

.events-checks  {
  max-height:270px;
  overflow:auto;
  display:grid;
  gap:9px;
  padding:2px;
}

.events-checks label  {
  display:flex;
  align-items:flex-start;
  gap:8px;
  font-size:calc(13px * var(--app-font-scale, 1));
  line-height:1.4;
}

.events-checks label[hidden]  {
  display:none;
}

.events-choices small  {
  display:block;
  margin-top:10px;
}

#event-history  {
  margin-top:24px;
}

#event-history li  {
  margin:8px 0;
}

/* Adaptation tablette et téléphone. */
@media(max-width:1200px)  {
  .events-grid  {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

}

@media(max-width:850px)  {
  .events-columns,.events-grid  {
    grid-template-columns:1fr;
  }

  .events-heading  {
    flex-wrap:wrap;
  }

  .events-filters > label  {
    flex-basis:100%;
  }

}

/* Accueil : filtres 3/12, résultats 9/12 ; modes galerie, liste et carte. */
.events-browser  {
  display:grid;
  grid-template-columns:minmax(0,3fr) minmax(0,9fr);
  gap:22px;
  align-items:start;
}

.events-browser > *  {
  min-width:0;
}

.events-browser .events-filters  {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:16px;
  margin:0;
}

.events-browser .events-filters > label  {
  flex:none;
}

.events-filters h2  {
  font-size:calc(18px * var(--app-font-scale, 1));
  margin:0;
}

.events-filter-actions,.events-view-switch  {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
}

.events-view-switch  {
  margin-bottom:20px;
}

.events-view-switch [aria-current=page],.events-tabs [aria-current=page]  {
  color:var(--app-button-text, #fff);
  background:var(--app-primary-color, #1c75bc);
  border-color:var(--app-primary-color, #1c75bc);
}

.events-region-picker  {
  border:1px solid #ccd6e4;
  border-radius:8px;
  padding:10px;
}

.events-region-picker summary  {
  cursor:pointer;
  font-size:calc(14px * var(--app-font-scale, 1));
}

.events-region-picker .events-checks  {
  margin-top:14px;
}

.events-results > .events-grid  {
  margin-top:0;
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.events-list  {
  display:grid;
  gap:12px;
}

.events-list .event-catalog-card  {
  display:grid;
  grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(150px,3fr);
  align-items:center;
  gap:18px;
}

.events-list .event-catalog-card footer  {
  border-top:0;
  border-left:1px solid #e5eaf0;
  margin:0;
  padding:0 0 0 14px;
}

.event-identity .events-tags,.event-classification p + p  {
  margin-top:10px;
}

/* Fiche salon : quatre colonnes de même largeur et deux vrais onglets. */
.events-tabs a  {
  padding:10px 16px;
  border:1px solid #ccd6e4;
  border-radius:8px;
  text-decoration:none;
}

[data-event-panel][hidden],[data-event-save][hidden]  {
  display:none;
}

.events-info-columns  {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

.events-info-columns > div  {
  min-width:0;
}

.events-website  {
  font-size:calc(13px * var(--app-font-scale, 1));
  overflow-wrap:anywhere;
  margin:0 0 20px;
}

.events-next h2  {
  font-size:calc(18px * var(--app-font-scale, 1));
  margin:0 0 18px;
}

.events-next .event-card  {
  padding:14px;
}

/* Couleurs temporelles indépendantes de la participation. */
.event-edition-upcoming  {
  background:#eaf7ee;
  border-color:#91c7a1;
}

.event-edition-current  {
  background:#fff0d9;
  border-color:#f0b661;
}

.event-edition-past,.event-edition-past a,.event-edition-past .event-participation-label  {
  color:#737b86;
}

.event-edition .events-heading  {
  margin:0;
  gap:8px;
  flex-wrap:wrap;
}

.event-state  {
  font-size:calc(12px * var(--app-font-scale, 1));
}

.events-edition-legend  {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  font-size:calc(12px * var(--app-font-scale, 1));
}

.events-edition-legend span  {
  padding:5px 9px;
  border-radius:5px;
}

/* Carte locale : réutilise le fond et les repères des fournisseurs. */
#events-world  {
  display:block;
  width:100%;
  min-height:340px;
  background:#f7fbfd;
  border-radius:10px;
  cursor:grab;
  touch-action:none;
}

#events-world:active  {
  cursor:grabbing;
}

.events-map-countries  {
  margin-top:16px;
}

/* World map: keep the map visible while browsing the selected country's editions. */
.events-world-layout { display:grid;grid-template-columns:minmax(0,7fr) minmax(180px,2fr);gap:16px;align-items:start; }
.events-world-layout > * { min-width:0; }
/* Carte mondiale des salons : commandes à gauche, légende à droite. */
.events-world-toolbar { display:flex;align-items:center;justify-content:space-between;gap:10px 20px;flex-wrap:wrap;padding:14px 14px 0; }
.events-world-toolbar .world-controls { flex:none;margin:0;padding:0; }
.events-world-toolbar .events-world-legend { flex:1;margin:0;justify-content:flex-end; }
.events-world-editions { padding:14px;background:var(--panel,#fff);border:1px solid var(--line,#d9e0e8);border-radius:10px;max-height:680px;overflow-y:auto; }
.events-world-editions h2 { margin:0 0 6px;font-size:calc(16px * var(--app-font-scale,1)); }
.events-world-editions p { margin:0 0 10px; }
.events-world-past-toggle { display:flex;align-items:center;gap:6px;margin-bottom:12px;font-size:calc(11px * var(--app-font-scale,1)); }
.events-world-edition-title .event-sector-dot { width:9px;height:9px;margin-right:4px; }
.events-world-edition-list { display:grid;gap:10px; }
.events-world-edition-card { padding:10px;border:1px solid var(--line,#d9e0e8);border-radius:8px;display:flex;flex-direction:column;gap:8px; }
body.platform-appearance .events-world-editions .events-world-edition-title { width:100%;height:auto !important;max-height:none !important;padding:6px !important;white-space:normal;text-align:left;justify-content:flex-start; }
.events-world-edition-title .event-logo { flex:none;width:48px;height:40px;object-fit:contain;background:#fff;margin:0; }
.events-world-edition-card .event-calendar-caption { color:var(--text,#222);text-align:left;font-size:calc(12px * var(--app-font-scale,1)); }
.events-world-edition-card small { color:var(--muted,#687786); }
#events-world .world-country-interactive { cursor:pointer; }
#events-world .world-country-selected { fill:var(--app-primary-color,#1c75bc);fill-opacity:.35; }
#events-world .world-country-interactive:focus-visible { stroke:var(--app-primary-color,#1c75bc);stroke-width:2;outline:none; }
#events-world .world-pin-selected circle { stroke:#172b45;stroke-width:3; }
#events-world .world-pins [role=button] { cursor:pointer;outline:none; }
#events-world .world-pins [role=button]:hover circle,#events-world .world-pins [role=button]:focus-visible circle { stroke:#172b45;stroke-width:3; }
@media(max-width:800px){.events-world-layout{grid-template-columns:1fr;}.events-world-editions{max-height:440px;}}

@media(max-width:1050px)  {
  .events-info-columns  {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .events-list .event-catalog-card  {
    grid-template-columns:1fr 1fr;
  }

  .events-list .event-catalog-card footer  {
    grid-column:1/-1;
    border-left:0;
    padding:8px 0 0;
    border-top:1px solid #e5eaf0;
  }

}

@media(max-width:850px)  {
  .events-browser,.events-info-columns,.events-results > .events-grid,.events-list .event-catalog-card  {
    grid-template-columns:1fr;
  }

  .events-list .event-catalog-card footer  {
    grid-column:auto;
  }

}

/* PERSONNALISATIONS : ajoutez vos ajustements ci-dessous. */
.event-edition-preview  {
  border-top:1px solid #dce3eb;
  margin-top:12px;
  padding-top:10px;
  font-size:calc(13px * var(--app-font-scale, 1));
}

.event-edition-preview p  {
  margin:6px 0;
}

.event-edition-preview button  {
  margin-top:6px;
  font-size:calc(12px * var(--app-font-scale, 1));
}

.event-detail-dialog  {
  width:min(680px,calc(100vw - 32px));
  max-width:680px;
  max-height:90vh;
  overflow:auto;
  border:0;
  border-radius:12px;
  padding:24px;
}

.event-detail-dialog::backdrop  {
  background:rgba(15,30,50,.55);
}

.event-detail-dialog h2,.event-detail-dialog a  {
  overflow-wrap:anywhere;
}

.event-dialog-close  {
  display:block;
  margin-left:auto;
  margin-bottom:12px;
}

.events-client-info  {
  padding:20px;
  overflow-wrap:anywhere;
}

.events-client-carousel  {
  max-width:720px;
  margin-top:22px;
}

.events-client-carousel > [data-work-slide][hidden]  {
  display:none;
}

[data-events-results][aria-busy=true]  {
  opacity:.65;
}

/* Carte compacte réservée au carrousel du tableau de bord client. */
.event-dashboard-card  {
  border:1px solid #dce3eb;
  border-radius:10px;
  padding:14px;
  overflow-wrap:anywhere;
}

.event-dashboard-card.event-edition-upcoming  {
  border-color:#91c7a1;
}

.event-dashboard-card.event-edition-current  {
  border-color:#f0b661;
}

.event-dashboard-card h3  {
  font-size:calc(16px * var(--app-font-scale, 1));
  margin:8px 0 12px;
  line-height:1.3;
}

.event-dashboard-card p  {
  font-size:calc(13px * var(--app-font-scale, 1));
  margin:8px 0;
}

.event-dashboard-actions  {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin-top:12px;
  font-size:calc(13px * var(--app-font-scale, 1));
}

.event-dashboard-actions button  {
  padding:7px 10px;
  font-size:calc(13px * var(--app-font-scale, 1));
}

.event-dashboard-all  {
  display:inline-block;
  margin-top:12px;
}

/* Fiche salon : onglets alignés sur les autres fiches, action IA à droite. */
.event-tabs-bar  {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 10px 10px 0 0;
  padding: 0 14px;
}

.event-tabs-bar .events-tabs  {
  display: flex;
  flex: 1;
  gap: 4px;
  margin: 0;
  border-bottom: 0;
}

.event-tabs-bar .events-tabs a  {
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  padding: 14px 12px;
  font-size: calc(13px * var(--app-font-scale, 1));
  font-weight: 500;
}

.event-tabs-bar .events-tabs a[aria-current=page]  {
  background: var(--app-primary-soft, #edf5fb);
  color:var(--app-primary-color, #1c75bc);
  border-bottom-color: var(--app-primary-color, #1c75bc);
}

.event-tabs-bar > button, .event-edition-actions button  {
  font-size: calc(12px * var(--app-font-scale, 1));
  padding: 6px 9px;
}

.event-edition-actions  {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.event-exhibitor-count  {
  background: transparent;
  border: 0;
  color: var(--app-primary-color, #1c75bc);
  text-decoration: underline;
  padding: 0;
  font-size: calc(12px * var(--app-font-scale, 1));
}

/* Fiche édition : largeur augmentée de 30 %, avec une marge sur les petits écrans. */
dialog.event-detail-dialog  {
  width: min(1274px,calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  box-sizing: border-box;
}

.event-ai-dialog  {
  width: min(960px,calc(100vw - 32px));
  max-height: 90vh;
  overflow: auto;
  border: 0;
  border-radius: 12px;
  padding: 24px;
}

.event-ai-dialog::backdrop  {
  background: rgba(15,30,50,.55);
}

.event-modal-tabs  {
  margin: 12px 0;
}

.event-detail-dialog .field  {
  margin-bottom: 10px;
}

.event-detail-dialog [data-edition-panel][hidden]  {
  display: none;
}

/* Exposants : cartes de 220 px, notes et suivi réservés à EARON. */
.event-exhibitor-grid  {
  display: grid;
  grid-template-columns: repeat(auto-fill,220px);
  gap: 12px;
  margin-top: 12px;
}

.event-exhibitor-card  {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
  overflow-wrap: anywhere;
}

.event-exhibitor-card h3  {
  font-size: calc(14px * var(--app-font-scale, 1));
  margin: 0 0 8px;
}

.event-exhibitor-card p, .event-exhibitor-card label, .event-exhibitor-card a  {
  font-size: calc(12px * var(--app-font-scale, 1));
}

.event-exhibitor-card textarea  {
  min-height: 70px;
  width: 100%;
}

.event-exhibitor-card .events-inline  {
  margin: 10px 0;
}

.event-ai-candidate  {
  border: 1px solid var(--line);
  border-radius: 8px;
  margin: 10px 0;
  padding: 12px;
}

.event-ai-candidate p  {
  margin: 6px 0;
}

[data-event-prompt]  {
  width: 100%;
  font-size: calc(12px * var(--app-font-scale, 1));
}

@media(max-width:700px)  {
  .event-tabs-bar  {
    flex-wrap: wrap;
    padding-bottom: 10px;
  }

  .event-exhibitor-grid  {
    grid-template-columns: repeat(auto-fill,minmax(min(220px,100%),220px));
  }

}

/* Espacement condensé des petites cartes exposants. */
.event-exhibitor-card p  {
  margin: 6px 0;
  line-height: 1.4;
}

.event-exhibitor-card textarea  {
  font-size: calc(12px * var(--app-font-scale, 1));
  padding: 7px;
}

.event-exhibitor-card button  {
  font-size: calc(12px * var(--app-font-scale, 1));
  padding: 6px 9px;
}

.event-exhibitor-card [role=status]:empty  {
  display: none;
}

/* Navigation alphabétique des exposants, avec retour à la ligne sur mobile. */
.event-exhibitor-alphabet  {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 12px;
}

.event-exhibitor-alphabet button  {
  min-width: 30px;
  padding: 5px 7px;
  font-size: calc(12px * var(--app-font-scale, 1));
}

.event-exhibitor-alphabet button[aria-pressed="true"]  {
  background: var(--app-primary-color, #1c75bc);
  color:var(--app-button-text, #fff);
  border-color: var(--app-primary-color, #1c75bc);
}

.event-exhibitor-alphabet button:disabled  {
  opacity: .4;
  cursor: default;
}

.event-exhibitor-card[hidden]  {
  display: none;
}

/* Fenêtre compacte de coordonnées, indépendante des notes en cours de saisie. */
.event-exhibitor-coordinates-dialog  {
  width: min(420px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  max-height: 85vh;
  overflow: auto;
  box-sizing: border-box;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow-wrap: anywhere;
}

.event-exhibitor-coordinates-dialog::backdrop  {
  background: rgb(0 0 0 / 35%);
}

.event-exhibitor-coordinates-dialog h2  {
  font-size: calc(18px * var(--app-font-scale, 1));
  margin-top: 0;
}

.event-exhibitor-coordinates-dialog dt  {
  font-size: calc(12px * var(--app-font-scale, 1));
  color:var(--app-primary-color, #1c75bc);
  margin-top: 10px;
}

.event-exhibitor-coordinates-dialog dd  {
  margin: 2px 0 0;
  font-size: calc(14px * var(--app-font-scale, 1));
}

/* Fournisseurs identifiés parmi les exposants. */
.event-exhibitor-card.event-exhibitor-supplier  {
  background: #fff0d6;
  border-color: #f9b233;
}

.event-supplier-match  {
  background: #fff0d6;
  border-left: 3px solid #f9b233;
  padding: 8px;
}

/* Catalogue salons : initiale cumulée avec les filtres, galerie et liste. */
/* Catalogue heading and client submission dialog. Modes stay centred above results. */
.events-heading.events-catalog-heading { display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px; }
.events-catalog-heading .events-view-switch { margin:0;justify-content:center; }
.events-catalog-create { justify-self:end; }
.client-event-pending-alert { padding:12px;margin:12px 0;border:1px solid #d7a13a;border-radius:9px;background:#fff6dc;color:#30281a; }
.client-event-pending-alert summary { cursor:pointer;font-weight:600; }
.client-event-pending-alert ul { margin:8px 0 0;padding:0;list-style:none; }
.client-event-pending-alert li { display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0; }
.client-event-pending-label { display:block;color:#875b0a;font-weight:600; }
dialog.client-event-create-dialog { width:70vw;max-width:1100px;max-height:85dvh;padding:0;border:1px solid var(--line,#ddd);border-radius:12px; }
.client-event-create-dialog > header { display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line,#ddd); }
.client-event-create-dialog > header h2 { flex:1;margin:0;font-size:calc(18px * var(--app-font-scale,1)); }
.client-event-create-body { padding:16px;max-height:calc(85dvh - 74px);overflow:auto; }
.client-event-create-columns { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px; }
.client-event-create-columns section { min-width:0; }
.client-event-create-dates { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
.client-event-create-dialog .field { margin-bottom:10px; }
@media(max-width:800px){.events-heading.events-catalog-heading{grid-template-columns:1fr auto;}.events-catalog-heading .events-view-switch{grid-row:2;grid-column:1/-1;}.client-event-create-columns{grid-template-columns:1fr;}dialog.client-event-create-dialog{width:94vw;}.client-event-pending-alert li{flex-wrap:wrap;}}
.events-alphabet  {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 12px 0;
}

/* Même gabarit pour les liens disponibles et les lettres désactivées. */
.events-alphabet .button  {
  min-width: 30px;
  padding: 5px 8px;
  font-size: calc(12px * var(--app-font-scale, 1));
  text-align: center;
}

.events-alphabet a[aria-current="page"]  {
  background: var(--app-primary-color, #1c75bc);
  color:var(--app-button-text, #fff);
  border-color: var(--app-primary-color, #1c75bc);
}

/* Actions compactes dans le pied des cartes ; participation EARON en rose. */
.event-catalog-actions  {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 5px;
  margin-left: auto;
}

.event-catalog-actions a.button,.event-preview-heading button.button  {
  font-size: calc(11px * var(--app-font-scale, 1));
  padding: 4px 7px;
  margin: 0;
  white-space: nowrap;
}

.event-card-top h2  {
  flex: 1;
  min-width: 0;
}

.event-preview-heading  {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.event-catalog-card.event-catalog-participating  {
  background: #fce3f1;
  border-color: rgb(227,22,132);
}

.events-list .event-catalog-card  {
  grid-template-columns: minmax(0,1fr);
}

.events-list .event-catalog-card footer  {
  border-left: 0;
  border-top: 1px solid #e5eaf0;
  padding: 8px 0 0;
}

@media(max-width:550px)  {
  .event-card-top  {
    flex-wrap: wrap;
  }

}

/* EXPOSANTS — sous-menu et catalogue global des participations. */
.exhibitors-browser  {
  grid-template-columns: minmax(0,3fr) minmax(0,9fr);
}

.exhibitors-legend  {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
  font-size: calc(12px * var(--app-font-scale, 1));
}

.exhibitors-legend span  {
  padding: 5px 9px;
  background: #fff;
  border: 1px solid #dce3eb;
  border-radius: 6px;
}

.exhibitors-legend .exhibitor-supplier-key  {
  background: #fff0d6;
  border-color: #f9b233;
}

/* Galerie compacte : trois cartes par ligne si la largeur le permet. */
.exhibitors-gallery  {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 12px;
}

.exhibitor-catalog-card  {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: calc(12px * var(--app-font-scale, 1));
}

.exhibitor-catalog-card h2  {
  font-size: calc(15px * var(--app-font-scale, 1));
  margin: 0 0 6px;
}

.exhibitor-catalog-card .exhibitor-kind  {
  font-size: calc(11px * var(--app-font-scale, 1));
  font-weight: 600;
}

.exhibitor-catalog-card .exhibitor-description  {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.exhibitor-catalog-edition  {
  border-top: 1px solid #dce3eb;
  padding-top: 8px;
}

.exhibitor-catalog-card footer  {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: auto;
}

.exhibitor-catalog-card footer .button,.exhibitor-catalog-card footer button  {
  font-size: calc(11px * var(--app-font-scale, 1));
  padding: 5px 7px;
  margin: 0;
}

/* Vue liste : identité, activité, édition, puis actions sur quatre colonnes. */
.exhibitors-list  {
  display: grid;
  gap: 8px;
}

.exhibitors-list .exhibitor-catalog-card  {
  display: grid;
  grid-template-columns: minmax(0,2fr) minmax(0,3fr) minmax(0,3fr) minmax(100px,1fr);
  align-items: start;
}

.exhibitors-list .exhibitor-catalog-edition  {
  border-top: 0;
  padding-top: 0;
}

.exhibitors-list .exhibitor-catalog-card footer  {
  margin: 0;
}

/* Sur petit écran les filtres passent au-dessus des résultats. */
@media(max-width:1100px)  {
  /* Présentation commune à ces éléments ; mêmes propriétés et même contexte d’écran. */
  .exhibitors-gallery, .exhibitors-list .exhibitor-catalog-card  {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }

}

@media(max-width:800px)  {
  .exhibitors-browser  {
    grid-template-columns: minmax(0,1fr);
  }

}

@media(max-width:550px)  {
  .exhibitors-gallery,.exhibitors-list .exhibitor-catalog-card  {
    grid-template-columns: minmax(0,1fr);
  }

}

/* Drapeaux des pays des exposants : même hauteur que le texte, y compris en modale. */
.event-exhibitor-card .supplier-country-flag, .event-exhibitor-coordinates-dialog .supplier-country-flag, .event-ai-candidate .supplier-country-flag, .events-map-countries .supplier-country-flag  {
  width: 1.2em;
  height: .85em;
  object-fit: contain;
  vertical-align: -.08em;
  margin-right: .35em;
}

/* Salons clients : choix personnels et retours de sauvegarde discrets. */
.event-personal-choice  {
  margin:10px 0 5px;
  font-size:calc(13px * var(--app-font-scale, 1));
}

.event-personal-status  {
  display:block;
  color:#576474;
  font-size:calc(12px * var(--app-font-scale, 1));
  min-height:1em;
}

.event-detail-dialog [data-event-roadmap]  {
  font-size:calc(13px * var(--app-font-scale, 1));
}

/* Sélection personnelle des exposants client : indépendante du statut fournisseur. */
.event-exhibitor-card.event-visit-selected  {
  background:#e8f6ec;
  border-color:#82bd93;
}

.event-exhibitor-card .event-personal-status:empty  {
  display:none;
}

/* Fiche édition : en-tête commun, informations compactes et documents privés. */
.edition-dialog-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:8px
}

.edition-dialog-heading h2 {
  margin:0;
  font-size:calc(19px * var(--app-font-scale, 1))
}

.edition-dialog-actions {
  display:flex;
  align-items:center;
  gap:8px;
  flex-shrink:0
}

.edition-dialog-heading .event-dialog-close {
  float:none;
  margin:0;
  position:static
}

.edition-participation {
  margin:0 0 12px;
  font-size:calc(13px * var(--app-font-scale, 1))
}

.edition-information-columns {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px
}

.edition-information-columns .field {
  margin:0 0 9px;
  gap:3px;
  font-size:calc(13px * var(--app-font-scale, 1))
}

.edition-information-columns input,.edition-information-columns select,.edition-information-columns textarea {
  font-size:calc(13px * var(--app-font-scale, 1));
  padding:7px 9px;
  min-height:0
}

.edition-information-columns small {
  display:block;
  margin-bottom:8px;
  font-size:calc(11px * var(--app-font-scale, 1))
}

.edition-document-actions {
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap
}

.edition-document-actions form {
  margin:0
}

.edition-document-actions button,.edition-document-actions a {
  font-size:calc(12px * var(--app-font-scale, 1))
}

.edition-documents .technology-detail-columns {
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)
}

@media(max-width:700px) {
  .edition-information-columns,.edition-documents .technology-detail-columns {
    grid-template-columns:1fr
  }

  .edition-dialog-heading {
    align-items:flex-start;
    flex-direction:column
  }

  .edition-dialog-heading h2 {
    font-size:calc(17px * var(--app-font-scale, 1))
  }

}

/* Logos et édition compacte : détails complets dans la modale. */
.event-logo  {
  width:52px;
  height:44px;
  object-fit:contain;
  flex:0 0 52px;
  background:#fff;
  border-radius:5px;
  padding:3px;
}

.event-logo-preview  {
  width:120px;
  height:80px;
  margin-bottom:8px;
}

.events-info-columns  {
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.event-edition.event-card  {
  gap:5px;
  padding:14px;
}

.event-edition .events-heading  {
  gap:8px;
}

.event-edition h3  {
  font-size:calc(14px * var(--app-font-scale, 1));
  margin:0;
}

.event-edition p  {
  margin:0;
}

.event-edition > strong  {
  font-size:calc(12px * var(--app-font-scale, 1));
}

.edition-card-details  {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3px 10px;
  font-size:calc(11px * var(--app-font-scale, 1));
  line-height:1.25;
}

.edition-card-details p  {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  overflow-wrap:anywhere;
}

.edition-card-details span  {
  color:var(--app-primary-color, #1c75bc);
  font-weight:600;
}

.edition-card-details .edition-place  {
  grid-column:1/-1;
  font-weight:600;
}

.event-edition .events-inline,.event-edition button,.event-edition .event-state  {
  font-size:calc(11px * var(--app-font-scale, 1));
}

.event-edition button  {
  padding:4px 7px;
}

.event-edition [data-edition-card-status]:empty  {
  display:none;
}

@media(max-width:1000px)  {
  .events-info-columns  {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

}

@media(max-width:700px)  {
  .events-info-columns  {
    grid-template-columns:1fr;
  }

}

/* Relecture des correspondances exposants / fournisseurs. */
.event-reconcile-grid  {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));
  gap:14px;
  margin:16px 0;
}

.event-reconcile-grid .panel  {
  min-width:0;
  padding:14px;
}

.event-reconcile-grid h2  {
  font-size:calc(16px * var(--app-font-scale, 1));
}

.event-reconcile-grid p  {
  font-size:calc(13px * var(--app-font-scale, 1));
  margin:6px 0;
}

.event-reconcile-grid select  {
  max-width:100%;
}

/* Répertoire partagé des exposants : choix ambigus à vérifier. */
.event-central-warning  {
  color:#a3450b;
  background:#fff2df;
  padding:9px;
  border-radius:6px;
}

.exhibitor-catalog-edition details p  {
  font-size:calc(12px * var(--app-font-scale, 1));
  border-top:1px solid #ddd;
  padding-top:8px;
}

.exhibitor-registry-info  {
  padding:18px;
  margin:16px 0;
}

.exhibitor-registry-info h2  {
  font-size:calc(18px * var(--app-font-scale, 1));
  margin-bottom:10px;
}

.exhibitor-registry-info p  {
  margin:8px 0;
}

/* Paramètres salon : référentiel partagé, colonnes lisibles et aide des segments. */
.salon-tax-grid  {
  display: grid;
  grid-template-columns: minmax(250px, 1fr) minmax(0, 2fr);
  gap: 16px;
  align-items: start;
}

.salon-tax-grid > .panel  {
  min-width: 0;
  padding: 16px;
}

.salon-tax-entry  {
  border-bottom: 1px solid #dbe3eb;
  padding: 10px 0;
}

.salon-tax-entry[hidden]  {
  display: none;
}

.salon-tax-entry > summary  {
  cursor: pointer;
  color:var(--app-primary-color, #1c75bc);
  font-weight: 600;
  overflow-wrap: anywhere;
}

.salon-tax-entry > summary small  {
  display: block;
  color: #6b7280;
  font-weight: 400;
}

.salon-tax-entry form  {
  margin-top: 12px;
}

.salon-tax-entry .field  {
  margin-bottom: 10px;
}

.salon-tax-texts  {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.salon-tax-replace  {
  margin-top: 14px;
  padding: 10px;
  background: #fff5e6;
  border-radius: 8px;
  font-size: calc(.85rem * var(--app-font-scale, 1));
}

.salon-tax-search  {
  max-width: 650px;
}

.salon-segment-label  {
  overflow-wrap: anywhere;
}

.salon-segment-help  {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 19px;
  height: 19px;
  min-height: 0;
  padding: 0;
  border: 1px solid var(--app-primary-color, #1c75bc);
  border-radius: 50%;
  color: var(--app-primary-color, #1c75bc);
  background: #fff;
  font-size: calc(11px * var(--app-font-scale, 1));
  vertical-align: middle;
}

.salon-segment-dialog  {
  max-width: min(640px, 92vw);
  border: 0;
  border-radius: 12px;
  padding: 22px;
  color: #374151;
}

.salon-segment-dialog::backdrop  {
  background: rgb(0 0 0 / 40%);
}

.salon-segment-dialog p  {
  white-space: pre-line;
  line-height: 1.5;
}

[data-salon-keywords]  {
  background: #f4f8fc;
  font-size: calc(.8rem * var(--app-font-scale, 1));
}

@media (max-width: 850px)  {
  .salon-tax-grid, .salon-tax-texts  {
    grid-template-columns: 1fr;
  }

}

/* SALONS — compteur à gauche et accès à la fiche / au site à droite. */
.event-catalog-card .event-catalog-footer  {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.event-catalog-footer > span  {
  flex: 1;
  min-width: 0;
}

.event-catalog-card .event-catalog-footer .event-catalog-actions  {
  flex: 0 0 auto;
  flex-wrap: nowrap;
  margin-top: 0;
  margin-left: auto;
  gap: 5px;
}

/* FICHE SALON — régions et formats côte à côte, segments sans défilement interne. */
.event-region-format-row  {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  align-items: start;
}

.event-region-format-row .events-choices  {
  padding: 8px;
}

/* Présentation commune à ces éléments ; mêmes propriétés et même contexte d’écran. */
.event-region-format-row .events-choices legend, .event-region-format-row .events-checks label  {
  font-size: calc(12px * var(--app-font-scale, 1));
}

.event-classification-column [data-event-group="segments"] .events-checks  {
  max-height: none;
  overflow: visible;
}

@media (max-width: 550px)  {
  .event-region-format-row  {
    grid-template-columns: 1fr;
  }

}

/* Import exposants : comparaison accessible et erreurs près de la validation. */
.event-central-comparison  {
  margin: 10px 0;
  padding: 10px;
  background: #f0f6fc;
  border-radius: 8px;
}

.event-central-comparison section  {
  border-top: 1px solid #cfdeec;
  padding: 8px 0;
}

.event-central-comparison p  {
  margin: 4px 0;
  overflow-wrap: anywhere;
}

.event-central-comparison section > div  {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.event-central-comparison .button, .event-central-comparison button  {
  font-size: calc(12px * var(--app-font-scale, 1));
  padding: 5px 8px;
}

.event-ai-candidate.event-ai-needs-choice  {
  border: 2px solid #b42318;
  background: #fff2ef;
}

.event-ai-apply-status:not(:empty)  {
  padding: 12px;
  border-left: 4px solid var(--app-primary-color, #1c75bc);
  background: var(--app-primary-soft, #edf5fb);
  font-weight: 600;
}

/* Cartes salons (galerie et liste) : présentation avant les segments.
   Les segments restent lisibles et conservent leurs infobulles. */
/* Éditions à venir : navigation compacte et glissement à chaque changement. */
[data-editions-carousel]  {
  min-width: 0;
}

[data-editions-carousel] > [data-editions-slide][hidden]  {
  display: none !important;
}

[data-editions-carousel] > [data-editions-slide]:not([hidden])  {
  animation: event-edition-slide-in .3s ease-out;
}

.event-editions-controls  {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  font-size: calc(.75rem * var(--app-font-scale, 1));
}

.event-editions-controls button  {
  padding: 4px 8px;
  font-size: calc(.75rem * var(--app-font-scale, 1));
}

@keyframes event-edition-slide-in  {
  from  {
    opacity: .3;
    transform: translateX(12px);
  }

  to  {
    opacity: 1;
    transform: translateX(0);
  }

}

@media (prefers-reduced-motion: reduce)  {
  [data-editions-carousel] > [data-editions-slide]:not([hidden])  {
    animation: none;
  }

}

/* En-tête d’édition et menu d’actions compact, commun aux fenêtres de détail. */
#event-dialog-title  {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

#event-dialog-title .edition-heading-logo  {
  width: 64px;
  height: 48px;
  object-fit: contain;
  flex: none;
  margin: 0;
}

#event-dialog-title span  {
  overflow-wrap: anywhere;
}

.edition-tabs-row  {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.edition-tabs-row .event-modal-tabs  {
  margin: 0;
}

.edition-tabs-row > button  {
  margin-left: auto;
  font-size: calc(.8rem * var(--app-font-scale, 1));
  white-space: nowrap;
}

.edition-options  {
  position: relative;
  font-size: calc(.8rem * var(--app-font-scale, 1));
}

.edition-options > summary  {
  cursor: pointer;
  padding: 7px 10px;
  border: 1px solid #ccd6e4;
  border-radius: 7px;
  white-space: nowrap;
}

.edition-options-menu  {
  position: absolute;
  top: calc(100% + 5px);
  right: 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px;
  width: 240px;
  max-width: calc(100vw - 48px);
  background: #fff;
  border: 1px solid #ccd6e4;
  border-radius: 8px;
  box-shadow: 0 5px 20px #0002;
}

.edition-options-menu .button,.edition-options-menu button  {
  width: 100%;
  text-align: left;
  margin: 0;
  font-size: calc(.8rem * var(--app-font-scale, 1));
}

.edition-document-type  {
  font-size: calc(.75rem * var(--app-font-scale, 1));
}

@media (max-width: 600px)  {
  #event-dialog-title .edition-heading-logo  {
    width: 48px;
    height: 36px;
  }

}

/* Catalogue salons : accordéons compacts, ligne en trois colonnes. */
.edition-website-row  {
  display: flex;
  align-items: center;
  gap: 6px;
}

.edition-website-row input  {
  flex: 1;
  min-width: 0;
}

.edition-website-row .button  {
  padding: 6px 9px;
  flex: none;
}

.edition-website-row [hidden]  {
  display: none;
}

.event-card-accordions  {
  font-size: calc(.75rem * var(--app-font-scale, 1));
  line-height: 1.4;
}

.event-card-accordions details  {
  margin: 0 0 6px;
}

.event-card-accordions summary  {
  cursor: pointer;
  font-weight: 600;
  padding: 5px 0;
}

.event-description-clamp  {
  display: -webkit-box;
  -webkit-line-clamp: 10;
  -webkit-box-orient: vertical;
  overflow: hidden;
  overflow-wrap: anywhere;
  line-height: 1.4;
  max-height: 14em;
}

.event-card-accordions ul  {
  padding-left: 18px;
  margin: 6px 0;
}

.event-card-accordions li  {
  margin: 4px 0;
  overflow-wrap: anywhere;
}

.event-card-geography  {
  font-size: calc(.75rem * var(--app-font-scale, 1));
  line-height: 1.4;
}

.event-identity-actions  {
  border-top: 1px solid #d9e0e8;
  padding-top: 10px;
  margin-top: 10px;
}

.events-list .event-three-columns  {
  grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);
  align-items: start;
}

.event-three-columns > *  {
  min-width: 0;
}

.event-three-columns > form  {
  grid-column: 1 / -1;
}

.event-catalog-editions  {
  margin-top: 10px;
}

.event-three-columns .event-catalog-editions  {
  margin-top: 0;
}

.event-edition-total  {
  font-size: calc(.75rem * var(--app-font-scale, 1));
  margin: 0 0 8px;
}

.event-edition-preview.event-edition-upcoming  {
  background: #e5f4e8;
}

.event-edition-preview.event-edition-current  {
  background: #fff0d8;
}

.event-edition-preview.event-edition-past  {
  color: #808080;
  background: #f4f5f6;
}

.events-alphabet .event-letter-empty  {
  opacity: .38;
  cursor: default;
  background: #edf0f3;
  color: #6e7680;
}

/* Calendrier annuel : 12 mois, couleurs de secteurs et affichage adaptatif. */
.event-calendar-years,.event-calendar-legend  {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}

.event-calendar-legend  {
  font-size: calc(.75rem * var(--app-font-scale, 1));
  gap: 8px 16px;
}

.event-calendar-legend span  {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.event-calendar-legend i,.event-calendar-dots i  {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

.event-calendar-months  {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 12px;
}

.event-calendar-month  {
  min-width: 0;
  min-height: 145px;
  border: 1px solid #d9e0e8;
  border-radius: 10px;
  background: #fff;
  padding: 12px;
}

.event-calendar-month h3  {
  margin: 0 0 10px;
  font-size: calc(.9rem * var(--app-font-scale, 1));
}

.event-calendar-month > p  {
  font-size: calc(.75rem * var(--app-font-scale, 1));
}

.event-calendar-entry  {
  display: flex;
  flex-direction: column;
  gap: 3px;
  width: 100%;
  text-align: left;
  margin: 6px 0;
  border: 1px solid #d9e0e8;
  border-left: 5px solid var(--event-sector-color);
  background: #f8fafc;
  padding: 8px;
  font-size: calc(.75rem * var(--app-font-scale, 1));
  overflow-wrap: anywhere;
  white-space: normal;
}

@media (max-width: 1100px)  {
  .event-calendar-months  {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }

}

@media (max-width: 800px)  {
  .event-calendar-months  {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }

  .events-list .event-three-columns  {
    grid-template-columns: 1fr;
  }

}

@media (max-width: 480px)  {
  .event-calendar-months  {
    grid-template-columns: 1fr;
  }

}

/* Calendrier annuel : cartes compactes, secteur en fond et logo sur blanc. */
.event-calendar-tiles  {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 6px;
}

.event-calendar-entry.event-calendar-tile  {
  background: var(--event-sector-color, #697586);
  border: 0;
  border-radius: 14px;
  margin: 0;
  padding: 6px;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  min-height: 0;
  cursor: pointer;
  color: #fff;
  text-align: center;
  transition: transform .15s, box-shadow .15s;
}

.event-calendar-tile:hover  {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px #0003;
}

.event-calendar-tile:focus-visible  {
  outline: 3px solid #172b45;
  outline-offset: 3px;
}

.event-calendar-logo  {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 44px;
  border-radius: 8px;
  background: #fff;
  color: #222;
  padding: 0;
  overflow: hidden;
}

/* Agrandissement proportionnel dans 98 % du cadre ; annule la base flex de 52 px des autres logos. */
/* Le logo conserve ses proportions sur le cadre blanc. */
.event-calendar-logo .event-logo  {
  background: transparent;
  flex: none;
  width: 98%;
  height: 98%;
  max-width: 98%;
  max-height: 98%;
  padding: 0;
  margin: 0;
  object-fit: contain;
  object-position: center;
}

.event-calendar-logo strong  {
  font-size: calc(.75rem * var(--app-font-scale, 1));
  overflow-wrap: anywhere;
}

/* Dates et lieu lisibles sans survol, sous le logo des cartes du calendrier. */
.event-calendar-caption {
  width:100%;
  display:flex;
  flex-direction:column;
  gap:2px;
  color:#fff;
  font-size:calc(10px * var(--app-font-scale,1));
  line-height:1.25;
  text-align:center;
  overflow-wrap:anywhere;
}
.event-calendar-dates { font-weight:600; }

.salon-sector-color-form  {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  flex-wrap: wrap;
  margin: 12px 0;
}

.salon-sector-color-form .field  {
  margin: 0;
}

.salon-sector-color-form input[type=color]  {
  width: 90px;
  height: 38px;
  padding: 3px;
  cursor: pointer;
}

@media (prefers-reduced-motion: reduce)  {
  .event-calendar-entry.event-calendar-tile  {
    transition: none;
  }

  .event-calendar-tile:hover  {
    transform: none;
  }

}

/* Légende du calendrier : même couleur que les pavés, compatible CSP. */
.event-calendar-legend i  {
  background: var(--event-sector-color, #697586);
}

/* Années sélectionnées et éditions terminées. La pastille garde la couleur du secteur. */
.event-calendar-heading  {
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:16px;
}

.event-calendar-heading h2  {
  margin:0;
}

.event-calendar-year-picker  {
  min-width:160px;
  margin:0;
}

.event-calendar-year-title  {
  font-size:calc(1.2rem * var(--app-font-scale, 1));
  margin:22px 0 10px;
}

.event-calendar-entry.event-calendar-tile-past  {
  background:#858b93;
  position:relative;
}

.event-calendar-sector-dot  {
  position:absolute;
  top:5px;
  right:5px;
  width:14px;
  height:14px;
  border-radius:50%;
  background:var(--event-sector-color, #697586);
  border:2px solid white;
}

/* Couleur du secteur conservée en galerie, liste et légende de la carte. */
.event-sector-tag,.events-tags .event-sector-tag  {
  display:inline-block;
  border-left:5px solid var(--event-sector-color,#697586);
  background:#f5f7fa;
  background:color-mix(in srgb,var(--event-sector-color,#697586) 16%,white);
  color:#26364a;
  border-radius:5px;
  padding:3px 7px;
  font-size:calc(12px * var(--app-font-scale, 1));
}

.event-sector-dot  {
  display:inline-block;
  width:12px;
  height:12px;
  border-radius:50%;
  background:var(--event-sector-color,#697586);
  margin-right:6px;
  border:1px solid #fff;
  vertical-align:middle;
}

/* Actions du calendrier : blanc sur le même fond sombre translucide que la localisation. */
.event-calendar-actions  {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  justify-content:center;
  align-items:center;
  gap:3px;
  width:100%;
}

.event-calendar-actions button,.event-calendar-actions a  {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:3px;
  width:100%;
  height:var(--app-control-height,24px);
  min-width:0;
  min-height:0;
  padding:0;
  border:0;
  border-radius:5px;
  background:#0006;
  color:#fff;
  font-size:calc(11px * var(--app-font-scale, 1));
  text-decoration:none;
  line-height:1;
}

.event-calendar-actions button:hover,.event-calendar-actions a:hover  {
  background:#0009;
}

.event-calendar-actions button:disabled  {
  opacity:.5;
  cursor:default;
}

.event-calendar-actions :focus-visible,.event-calendar-logo:focus-visible  {
  outline:2px solid white;
  outline-offset:2px;
}

/* Exposants occupe la première ligne ; les deux autres actions se partagent la suivante. */
.event-calendar-actions button[data-edition-open-tab="exhibitors"]  {
  grid-column:1 / -1;
  width:100%;
  min-width:0;
  padding:0 4px;
  white-space:nowrap;
}

.event-calendar-actions svg  {
  flex-shrink:0;
  width:14px;
  height:14px;
}

.event-calendar-logo  {
  border:0;
  cursor:pointer;
}

.event-calendar-info-columns  {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  font-size:calc(.85rem * var(--app-font-scale, 1));
}

.event-calendar-info-columns p  {
  white-space:normal;
  overflow-wrap:anywhere;
}

.event-calendar-info-columns dt  {
  color:var(--app-primary-color, #1c75bc);
  font-weight:600;
  margin-top:8px;
}

.event-calendar-info-columns dd  {
  margin:2px 0;
  overflow-wrap:anywhere;
}

@media(max-width:600px)  {
  .event-calendar-info-columns  {
    grid-template-columns:1fr;
    gap:12px;
  }

}

/* Import exposants : trois cartes sur ordinateur, correspondances à la fin. */
.event-ai-dialog.event-ai-exhibitors-dialog  {
  width:min(1440px,calc(100vw - 32px));
  max-width:calc(100vw - 32px);
  box-sizing:border-box;
}

.event-ai-exhibitor-grid  {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  align-items:start;
  margin:12px 0;
}

.event-ai-exhibitor-grid .event-ai-candidate  {
  margin:0;
  min-width:0;
  overflow-wrap:anywhere;
}

.event-ai-exhibitor-grid select  {
  max-width:100%;
}

@media(max-width:1000px)  {
  .event-ai-exhibitor-grid  {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

}

@media(max-width:650px)  {
  .event-ai-exhibitor-grid  {
    grid-template-columns:1fr;
  }

  .event-ai-dialog.event-ai-exhibitors-dialog  {
    padding:16px;
  }

}

/* Fenêtre IA exposants : commandes et prompt, puis grille pleine largeur. */
.event-ai-prompt-layout  {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:24px;
  align-items:stretch;
}

.event-ai-prompt-controls,.event-ai-prompt-text  {
  min-width:0;
  overflow-wrap:anywhere;
}

.event-ai-prompt-controls p  {
  margin:10px 0;
  font-size:calc(.85rem * var(--app-font-scale, 1));
}

.event-ai-prompt-text  {
  display:flex;
}

.event-ai-prompt-text .field  {
  display:flex;
  flex-direction:column;
  flex:1;
  margin:0;
  min-width:0;
}

.event-ai-prompt-text textarea[data-event-prompt]  {
  flex:1;
  width:100%;
  min-height:420px;
  max-height:65vh;
  font-size:calc(12px * var(--app-font-scale, 1));
  line-height:1.45;
  resize:vertical;
}

.event-ai-full-review  {
  width:100%;
  margin-top:20px;
}

@media(max-width:750px)  {
  .event-ai-prompt-layout  {
    grid-template-columns:1fr;
    gap:16px;
  }

  .event-ai-prompt-text textarea[data-event-prompt]  {
    min-height:250px;
  }

}

/* Trois pavés par mois ; mêmes dimensions de boutons à toutes les largeurs. */
.event-calendar-tile  {
  min-width:0;
  container-type:inline-size;
}

.event-calendar-tile .event-calendar-actions  {
  gap:2px;
}

.event-calendar-tile .event-calendar-actions button, .event-calendar-tile .event-calendar-actions a  {
  width:100%;
  min-width:0;
  height:var(--app-control-height,24px);
}

/* Le logo est une surface de consultation, pas un bouton d’action compact. */
body.platform-appearance .event-calendar-tile .event-calendar-logo {
  height:44px !important;
  min-height:44px !important;
  max-height:44px !important;
  padding:3px !important;
  background:#fff;
  color:#222;
  white-space:normal;
}

@container (max-width:120px)  {
  .event-calendar-actions  {
    gap:1px;
  }

  .event-calendar-actions svg  {
    width:11px;
    height:11px;
  }

  .event-calendar-actions button[data-edition-open-tab="exhibitors"]  {
    gap:1px;
  }

}

/* Fiche commune exposant : informations et classement en deux colonnes. */
.exhibitor-edit-dialog  {
  width: min(1040px, calc(100vw - 32px));
}

.exhibitor-edit-header  {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.exhibitor-edit-header > div, .exhibitor-edit-tabs  {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.exhibitor-edit-tabs  {
  margin:12px 0;
}

.exhibitor-edit-tabs [aria-selected="true"]  {
  background:var(--app-primary-color, #1c75bc);
  color:var(--app-button-text, #fff);
}

.exhibitor-edit-columns, .exhibitor-edit-editions  {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}

.exhibitor-edit-columns .field  {
  margin-bottom:8px;
}

.exhibitor-edit-columns fieldset  {
  margin:0 0 10px;
  min-width:0;
}

@media(max-width:650px)  {
  .exhibitor-edit-columns, .exhibitor-edit-editions  {
    grid-template-columns:1fr;
  }

}

/* Participations de l’exposant : cartes compactes et zone de notes confortable. */
.exhibitor-edit-editions .exhibitor-participation-card  {
  padding:16px;
  border:1px solid var(--line);
  border-radius:10px;
}

.exhibitor-participation-heading  {
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:5px;
}

.exhibitor-participation-heading .event-logo  {
  width:64px;
  height:48px;
  object-fit:contain;
  flex-shrink:0;
}

.exhibitor-participation-card h3  {
  margin:0;
  font-size:calc(14px * var(--app-font-scale, 1));
  line-height:1.25;
}

.exhibitor-participation-card p  {
  margin:3px 0;
  font-size:calc(12px * var(--app-font-scale, 1));
  line-height:1.3;
}

.exhibitor-participation-card .field  {
  margin:8px 0 0;
  gap:4px;
}

.exhibitor-participation-card textarea  {
  min-height:140px;
  font-size:calc(13px * var(--app-font-scale, 1));
  line-height:1.35;
}

.exhibitor-participation-card.event-edition-upcoming  {
  background:#eaf7ee;
  border-color:#91c7a1;
}

.exhibitor-participation-card.event-edition-current  {
  background:#fff0d9;
  border-color:#f0b661;
}

.exhibitor-participation-card.event-edition-past  {
  background:#f4f5f6;
  color:#737b86;
}

/* Modale édition : le titre, les onglets et le tri restent hors de la liste défilante. */
.event-detail-dialog.edition-results-fixed  {
  height:90vh;
  height:90dvh;
  max-height:90dvh;
  overflow:hidden;
  box-sizing:border-box;
}

.edition-results-fixed .event-exhibitor-grid.results-scroll-zone  {
  padding-right:6px;
}

/* Aucun espace réservé sous les exposants dans la modale. */
.event-detail-dialog.edition-results-fixed  {
  padding-bottom:0;
}

.edition-results-fixed [data-exhibitor-page-content], .edition-results-fixed [data-edition-panel="exhibitors"]  {
  padding-bottom:0;
  margin-bottom:0;
}

.edition-results-fixed .events-pagination  {
  display:none;
}
/* Fiche salon en consultation client : informations sans champs modifiables. */
.event-client-readonly-info {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  padding:12px 0;
}
.event-client-readonly-info > div { min-width:0; }
.event-client-fact { margin-bottom:16px; overflow-wrap:anywhere; }
.event-client-fact h3 { font-size:1em; margin:0 0 5px; }
.event-client-fact p { margin:0; line-height:1.5; }
/* Modale salon : barre d'onglets fixe, un défilement par panneau. */
body.event-record-embedded .content { overflow:hidden; }
.event-record-embedded .event-record { display:flex; flex-direction:column; flex:1; min-height:0; overflow:hidden; }
.event-record-embedded [data-event-record-heading],
.event-record-embedded [data-event-record-delete] { display:none; }
.event-record-embedded .event-tabs-bar { flex-shrink:0; margin:0 0 8px; }
.event-record-embedded .event-record>[data-event-panel] { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; padding:0 8px 12px 0; }
.event-record-embedded .event-record>[data-event-panel][hidden] { display:none; }
.event-record .events-heading h1 { display:flex; align-items:center; gap:10px; }
.event-record .events-heading h1 .event-logo { width:54px; height:36px; object-fit:contain; }
.event-record #event-form { border:0; box-shadow:none; padding:4px; margin:0; }
.event-record .events-info-columns { gap:14px; }
.event-record .field { margin-bottom:8px; gap:3px; }
.event-record .field,.event-record .events-checks label,.event-record .events-choices legend,
.event-record .event-client-fact,.event-record .event-segments { font-size:calc(12px * var(--app-font-scale,1)); line-height:1.35; }
.event-record input:not([type=checkbox]):not([type=radio]),.event-record select,.event-record textarea {
 font-size:calc(12px * var(--app-font-scale,1)); line-height:1.35; padding:5px 7px; min-height:0;
}
.event-record .events-choices { padding:6px; margin:0 0 8px; }
.event-record .events-checks { gap:3px 7px; }
.event-record .events-checks label { margin:0; padding:2px 0; }
.event-record textarea[data-salon-keywords] { height:calc(4.5em + 10px); }
.event-record .event-segments { margin:0 0 10px; border:1px solid var(--app-primary-border,#d8e0e6); border-radius:6px; }
.event-record .event-segments summary { padding:8px; cursor:pointer; color:var(--app-primary-color,#227e9d); font-weight:600; }
.event-record [data-event-selected-segments] { font-weight:400; font-size:.95em; color:var(--app-text-color,#333); overflow-wrap:anywhere; }
.event-record .event-segments .events-choices { border:0; }
.event-record .event-website-input { display:flex; align-items:center; gap:6px; }
.event-record .event-website-input input { flex:1; min-width:0; width:0; }
.event-record .event-website-input a { flex-shrink:0; }
.event-record [data-event-website-link][aria-disabled=true] { opacity:.45; cursor:default; }
/* Cartes éditions client : identité en tête, détails à gauche, actions à droite. */
.event-edition.client-edition-card { padding:10px; gap:10px; }
.client-edition-card .client-edition-card-heading { display:flex; align-items:center; gap:8px; min-width:0; }
.client-edition-card-heading .event-logo { width:44px; height:40px; object-fit:contain; flex:0 0 44px; background:white; }
.client-edition-card-heading>div { min-width:0; flex:1; }
.client-edition-card-heading h3 { font-size:calc(13px * var(--app-font-scale,1)); line-height:1.3; margin:0; }
.client-edition-card-columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; align-items:start; }
.client-edition-card-information,.client-edition-card-controls { min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:7px; font-size:calc(11px * var(--app-font-scale,1)); line-height:1.35; }
.client-edition-card-controls>button { max-width:100%; white-space:normal; }
.client-edition-card-controls .events-inline { margin:0; }
.client-edition-card-controls .event-personal-status:empty { display:none; }
.client-edition-card-controls .event-edition-actions { display:flex; gap:5px; flex-wrap:wrap; margin:0; }
.events-grid.client-editions-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; align-items:start; margin:10px 0; }
@media(max-width:450px) {
 .events-grid.client-editions-grid { grid-template-columns:minmax(0,1fr); }
}
/* Éditions en consultation client : mêmes dimensions compactes que le salon. */
dialog.event-detail-dialog.client-edition-dialog {
 width:40vw; max-width:800px; height:68vh; max-height:68vh;
 overflow:auto; padding:16px;
}
/* Une édition ouverte depuis le salon occupe la modale déjà réduite,
   sans appliquer une deuxième réduction à l'intérieur de son iframe. */
.event-record-embedded dialog.event-detail-dialog.client-edition-dialog {
 width:95vw; max-width:95vw; height:90vh; max-height:90vh;
}
@media(max-width:750px) {
 dialog.event-detail-dialog.client-edition-dialog {
  width:calc(100vw - 24px); max-width:calc(100vw - 24px); height:74dvh; max-height:74dvh;
 }
}
@media(max-width:700px) {
  .event-client-readonly-info { grid-template-columns:1fr; }
}
