/* Styles autonomes : aucune règle globale sur le thème WordPress. */
.csvgs-root,.csvgs-catalog{--csvgs-ink:#293b41;--csvgs-muted:#647174;--csvgs-border:#d7dcd9;--csvgs-paper:#fffdfa;--csvgs-accent:#365d6c;color:var(--csvgs-ink);font-family:inherit;max-width:1100px;margin:1.4rem auto;line-height:1.55}
.csvgs-root *,.csvgs-catalog *{box-sizing:border-box}.csvgs-root .csvgs-intro h2{font-weight:650;font-size:clamp(1.3rem,2vw,1.85rem);line-height:1.3;margin:0 0 1.15rem;color:var(--csvgs-ink)}
.csvgs-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:11px;margin:0 0 15px}.csvgs-toolbar label{display:flex;flex-direction:column;gap:5px;min-width:165px;flex:1}.csvgs-toolbar span{font-size:.78rem;font-weight:620;color:var(--csvgs-muted)}
.csvgs-toolbar input,.csvgs-toolbar select,.csvgs-catalog select{width:100%;max-width:100%;min-height:38px;border:1px solid var(--csvgs-border);border-radius:6px;padding:7px 10px;background:#fff;color:var(--csvgs-ink);font-size:.92rem;font-family:inherit;box-shadow:none}
.csvgs-search-label{min-width:210px!important;flex:2!important}.csvgs-figure{border:1px solid var(--csvgs-border);border-radius:10px;background:var(--csvgs-paper);padding:15px 17px}.csvgs-chart-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:36px;flex-wrap:wrap;margin-bottom:9px}.csvgs-count{font-size:.83rem;color:var(--csvgs-muted)}
.csvgs-actions{display:flex;align-items:center;gap:7px}.csvgs-root .csvgs-actions button,.csvgs-pagination button,.csvgs-catalog button{border:1px solid var(--csvgs-border);border-radius:6px;color:var(--csvgs-ink);background:#fff;min-height:31px;min-width:34px;padding:4px 11px;font:inherit;font-size:.85rem;cursor:pointer}.csvgs-actions button:hover,.csvgs-pagination button:hover{border-color:var(--csvgs-accent);background:#f1f5f5}
.csvgs-chart-container{position:relative;max-width:100%;margin:auto;user-select:none}.csvgs-svg{display:block;width:100%;height:auto;aspect-ratio:1000/720;max-height:780px;overflow:visible;touch-action:none}.csvgs-plot-bg{fill:#fff}.csvgs-grid-line{stroke:#e8eae8;stroke-width:1}.csvgs-middle-line{stroke:#aab1ac;stroke-width:1.7;stroke-dasharray:7 5}.csvgs-frame{fill:none;stroke:#b5bdb9;stroke-width:1.3;pointer-events:none}.csvgs-axis-title{font-size:21px;fill:#334b52;font-weight:620}.csvgs-tick{font-size:14px;fill:#728078}.csvgs-point{stroke:#fff;stroke-width:1.2;opacity:.86;cursor:pointer;transition:opacity .1s}.csvgs-point:hover,.csvgs-point:focus{stroke:#192d34;stroke-width:2.5;opacity:1;outline:none}.csvgs-selected-ring{fill:none;stroke:#1a3037;stroke-width:2.3}.csvgs-box-select{fill:#6f8fa844;stroke:#3e6177;stroke-dasharray:5 5;pointer-events:none}.csvgs-category-mark{cursor:pointer;stroke:#fff;stroke-width:1.1}.csvgs-category-mark:hover,.csvgs-category-mark:focus{stroke:#263b42;stroke-width:2.5;outline:none}.csvgs-category-label{font-size:14px;fill:#46575d}.csvgs-value-label{font-size:13px;fill:#3e5257}.csvgs-line{stroke:#406e85;stroke-width:3;fill:none;pointer-events:none}.csvgs-pie-label{fill:#31464b;font-size:17px;font-weight:600}.csvgs-pie-value{fill:#738082;font-size:13px}.csvgs-pie-total{fill:#384c50;font-size:25px;font-weight:650}.csvgs-no-data{fill:#7b8686;font-size:18px}
.csvgs-tooltip{position:absolute;pointer-events:none;z-index:3;display:flex;flex-direction:column;gap:4px;max-width:245px;padding:9px 13px;font-size:.78rem;border:1px solid #c9d2cf;border-radius:8px;background:#fffffff5;box-shadow:0 3px 15px #0001;line-height:1.35}.csvgs-tooltip[hidden]{display:none}.csvgs-tooltip strong{font-size:.85rem}.csvgs-tooltip span{color:#606e6e}
.csvgs-hint{color:var(--csvgs-muted);font-size:.78rem;margin:6px 2px 12px}.csvgs-legend{display:flex;flex-wrap:wrap;gap:7px 16px;margin:6px 0 0}.csvgs-legend-item{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--csvgs-muted);font:inherit;font-size:.74rem;padding:3px 1px;cursor:pointer;text-align:left}.csvgs-legend-item:hover{color:var(--csvgs-ink);text-decoration:underline}.csvgs-swatch{display:inline-block;width:10px;height:10px;border-radius:50%;flex:0 0 10px}
.csvgs-selection{border:1px solid var(--csvgs-border);border-radius:10px;background:#fff;margin:17px 0;padding:15px 18px}.csvgs-selection h3{font-weight:650;color:var(--csvgs-ink);font-size:1.02rem;margin:0 0 10px}.csvgs-selection p{margin:5px 0 9px}.csvgs-note{margin:10px 0;color:var(--csvgs-muted);font-size:.77rem;line-height:1.6}.csvgs-data-position{font-weight:580;color:var(--csvgs-accent)}
.csvgs-table-wrap{overflow:auto;max-width:100%;border:1px solid var(--csvgs-border);border-radius:7px}.csvgs-result-table{width:100%;border-collapse:collapse;white-space:normal;text-align:left;font-size:.82rem;background:#fff}.csvgs-result-table th{background:#f2f5f3;color:#495a5f;font-weight:650;white-space:nowrap}.csvgs-result-table td,.csvgs-result-table th{border-bottom:1px solid #e5e9e6;padding:8px 11px;vertical-align:top;overflow-wrap:anywhere}.csvgs-result-table tr:last-child td{border-bottom:0}.csvgs-result-table .csvgs-click-row{cursor:pointer}.csvgs-result-table .csvgs-click-row:hover{background:#f3f7f7}.csvgs-sort-button{background:transparent;border:0;padding:0;cursor:pointer;font:inherit;color:inherit;font-weight:inherit}.csvgs-all-columns{margin:11px 0 0}.csvgs-all-columns>summary{font-size:.87rem;color:var(--csvgs-accent);font-weight:600;cursor:pointer}.csvgs-dl{display:grid;grid-template-columns:minmax(170px,1fr) 2fr;gap:0 16px;margin-top:12px;border-top:1px solid #e8eae7;font-size:.83rem}.csvgs-dl dt,.csvgs-dl dd{margin:0;padding:8px 0;border-bottom:1px solid #e8eae7;overflow-wrap:anywhere}.csvgs-dl dt{font-weight:600;color:#617074}.csvgs-table-area{margin-top:12px}.csvgs-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin:12px 0 15px;font-size:.82rem}.csvgs-pagination button:disabled{opacity:.35;cursor:not-allowed}.csvgs-catalog{border:1px solid var(--csvgs-border);border-radius:8px;padding:14px}.csvgs-catalog>label{display:inline-block;margin-right:15px;font-weight:600}.csvgs-catalog>select{display:inline-block;width:auto;min-width:260px;max-width:calc(100% - 20px);margin-bottom:10px}.csvgs-catalog-panel[hidden]{display:none}.csvgs-catalog .csvgs-root{margin-bottom:0}
@media(max-width:650px){.csvgs-root{margin:10px 0}.csvgs-figure{padding:7px 7px 12px}.csvgs-svg{min-width:360px}.csvgs-axis-title{font-size:24px}.csvgs-toolbar label{min-width:120px}.csvgs-result-table{font-size:.75rem}.csvgs-dl{grid-template-columns:1fr}.csvgs-dl dt{border-bottom:0;padding-bottom:0}.csvgs-dl dd{padding-top:0}.csvgs-selection{padding:12px}}

/* v2.1 — tableau toujours présent sous la fiche de sélection. */
.csvgs-table-area{margin:17px 0 10px;padding:15px 17px 13px;border:1px solid var(--csvgs-border);border-radius:10px;background:var(--csvgs-paper)}
.csvgs-table-heading{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:0 0 13px}
.csvgs-table-heading h3{font-size:1.02rem;font-weight:650;color:var(--csvgs-ink);margin:0 0 2px}
.csvgs-table-summary{font-size:.78rem;color:var(--csvgs-muted);margin:0}
.csvgs-root .csvgs-columns-menu{position:relative;margin:0;z-index:5;max-width:100%}
.csvgs-root .csvgs-columns-menu>summary{list-style:revert;display:list-item;cursor:pointer;border:1px solid var(--csvgs-border);border-radius:6px;background:#fff;color:var(--csvgs-ink);padding:6px 12px;font-size:.84rem;min-height:34px;font-weight:550}
.csvgs-root .csvgs-columns-menu>summary:hover{background:#f2f6f4}
.csvgs-columns-menu-inner{position:absolute;top:calc(100% + 5px);right:0;width:min(360px,calc(100vw - 48px));max-height:360px;overflow:auto;box-shadow:0 6px 24px #0002;background:#fff;border:1px solid var(--csvgs-border);border-radius:8px;padding:11px 12px;z-index:7}
.csvgs-columns-options{display:grid;grid-template-columns:1fr;gap:0;max-height:238px;overflow:auto}
.csvgs-column-option{display:flex;align-items:center;gap:8px;min-height:29px;font-size:.82rem;padding:3px 5px;cursor:pointer;overflow-wrap:anywhere}
.csvgs-column-option:hover{background:#f4f7f6;border-radius:4px}
.csvgs-column-option input{flex:0 0 auto;width:15px;height:15px;margin:0;accent-color:var(--csvgs-accent)}
.csvgs-columns-actions{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid var(--csvgs-border);margin-top:8px;padding-top:10px}
.csvgs-root .csvgs-columns-actions button,.csvgs-root .csvgs-show-all{font:inherit;font-size:.8rem;background:#fff;color:var(--csvgs-accent);border:1px solid var(--csvgs-border);border-radius:5px;padding:5px 9px;cursor:pointer}
.csvgs-root .csvgs-columns-actions button:hover,.csvgs-root .csvgs-show-all:hover{background:#f2f6f5}
.csvgs-show-all{margin-top:6px}
.csvgs-result-table tr.csvgs-row-selected,.csvgs-result-table tr.csvgs-row-selected:hover{background:#e8f2ef;box-shadow:inset 3px 0 #365d6c}
.csvgs-root .csvgs-result-table th[aria-sort="ascending"] .csvgs-sort-button,.csvgs-root .csvgs-result-table th[aria-sort="descending"] .csvgs-sort-button{color:#173e4e}
.csvgs-sort-button:hover{text-decoration:underline}
.csvgs-empty-row{text-align:center;color:var(--csvgs-muted);padding:18px!important}
.csvgs-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:650px){.csvgs-table-area{padding:12px 9px}.csvgs-columns-menu-inner{right:0}}


/* v2.2 — débordement cadré : le graphique ET ses listes prennent 2/3 du viewport.
   Les styles ne ciblent que les composants de l'extension, pas le thème. */
.csvgs-root.csvgs-layout-large,
.csvgs-catalog.csvgs-layout-large {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: 66.666667vw;
  max-width: calc(100vw - 32px) !important;
  margin: 1.4rem 0 !important;
}
.csvgs-root.csvgs-layout-normal,
.csvgs-catalog.csvgs-layout-normal {
  position: relative;
  left: auto;
  transform: none;
  width: 100%;
  max-width: 1100px;
}
/* Dans un catalogue, le conteneur extérieur gère seul le débordement. */
.csvgs-catalog .csvgs-root {
  position: static;
  left: auto;
  transform: none;
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
}
/* Laisser visible le débordement au niveau du bloc Code court de Gutenberg. */
@supports selector(:has(> .csvgs-root)) {
  .wp-block-shortcode:has(.csvgs-layout-large) { overflow: visible !important; }
}
/* Sur mobile/tablette, exploiter la largeur utile sans défilement horizontal. */
@media (max-width: 900px) {
  .csvgs-root.csvgs-layout-large,
  .csvgs-catalog.csvgs-layout-large {
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px) !important;
    margin: 1rem 0 !important;
  }
  .csvgs-catalog .csvgs-root { width: 100%; max-width: none !important; }
}
@media (max-width: 650px) {
  .csvgs-layout-large .csvgs-svg { min-width: 0; }
}
/* Le module large forme une surface continue devant le cadre plus étroit de l’article. */
.csvgs-root.csvgs-layout-large,
.csvgs-catalog.csvgs-layout-large {
  z-index: 1;
  background: var(--csvgs-paper);
  border: 1px solid var(--csvgs-border);
  border-radius: 10px;
  box-shadow: 0 6px 22px rgb(24 38 35 / 5%);
}
.csvgs-root.csvgs-layout-large { padding: clamp(12px, 1.5vw, 24px); }
.csvgs-catalog .csvgs-root {
  z-index: auto;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.csvgs-root.csvgs-layout-large, .csvgs-catalog.csvgs-layout-large { box-sizing: border-box; }

/* v2.3 — Graphiques avec axes : rapport 1:1 sans étirer les unités à l'écran.
   Le module, la fiche et le tableau conservent la largeur 2/3 de la v2.2.
   Les secteurs et anneaux conservent leur mise en page antérieure (1000×720). */
.csvgs-root .csvgs-svg.csvgs-axis-svg {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  max-height: none;
  min-width: 0;
}
