/* Copié du Masque de données personnelles (css/app.css, version 4.4.19 du 04/11/2026), lignes 1224 à 1271 et 1756 à 1772 : styles des graphiques. Voir PROVENANCE-DES-COPIES.md. */

/* 11/10 (Phil) : graphiques dessinés sur l'appareil (js/graphiques.js). Le rapport téléchargeable reprend ces règles (.g-*). */
.g-fig{position:relative;margin:18px 0;padding:16px 14px 10px;border:1px solid var(--g-trait,rgba(0,0,0,.1));border-radius:16px;background:var(--g-fond,#fff);color:var(--g-texte,#1d1d1f);--g-fond:var(--carte,#fff);--g-texte:var(--texte,#1d1d1f)}
.g-titre{font-weight:700;font-size:1.02rem;margin:0 4px 10px;line-height:1.35}
.g-zone{width:100%;overflow:hidden}
.g-svg{display:block;width:100%;height:auto;overflow:visible;font-family:inherit}
.g-axe{font-size:12px;fill:currentColor;opacity:.62}
.g-ligne{stroke:currentColor;stroke-opacity:.1;stroke-width:1}
.g-zero{stroke:currentColor;stroke-opacity:.35;stroke-width:1.2}
.g-alerte{stroke-width:2;stroke-dasharray:6 5}
.g-zone-alerte{fill:#d55e00;fill-opacity:.07}
.g-lien{stroke:currentColor;stroke-opacity:.35;stroke-dasharray:3 3}
.g-valeur{font-size:11.5px;font-weight:700;fill:currentColor;opacity:.85}
.g-pc{font-size:12px;font-weight:700;fill:#fff;pointer-events:none}
.g-sur-barre{font-size:13px;font-weight:700;fill:#fff;pointer-events:none;paint-order:stroke;stroke:rgba(0,0,0,.25);stroke-width:2px}
.g-hors-barre{font-size:13px;font-weight:700;fill:currentColor;pointer-events:none;paint-order:stroke;stroke:var(--g-fond,#fff);stroke-width:4px;stroke-linejoin:round}
.g-centre-v{font-size:22px;font-weight:800;fill:currentColor}
.g-centre-l{font-size:12px;fill:currentColor;opacity:.65}
.g-point{cursor:pointer;outline:none;transition:opacity .2s ease,filter .2s ease}
.g-survol .g-point:not(.g-actif){opacity:.4}
.g-point.g-actif,.g-point:focus-visible{filter:drop-shadow(0 2px 6px rgba(0,0,0,.28))}
.g-rond.g-actif{stroke-width:4}
.g-sous-alerte{stroke:#d55e00!important}
.g-bulle{position:absolute;z-index:5;pointer-events:none;background:#1d1d1f;color:#fff;border-radius:10px;padding:8px 11px;font-size:.86rem;line-height:1.4;box-shadow:0 8px 24px rgba(0,0,0,.25);max-width:240px}
.g-b-titre{font-weight:700;margin-bottom:2px}
.g-b-ligne{display:flex;align-items:center;gap:6px}
.g-pastille{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none}
.g-legende{display:flex;flex-wrap:wrap;gap:6px 8px;margin:10px 2px 0}
.g-leg{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--g-trait,rgba(0,0,0,.12));background:transparent;color:inherit;border-radius:999px;padding:5px 11px;font:inherit;font-size:.85rem;cursor:pointer;min-height:32px;transition:opacity .2s}
.g-leg.g-off{opacity:.42;text-decoration:line-through}
.g-outils{display:flex;justify-content:flex-end;margin-top:6px}
.g-image{background:transparent;border:0;color:inherit;opacity:.7;font:inherit;font-size:.82rem;text-decoration:underline;cursor:pointer;padding:6px 4px;min-height:32px}
.g-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.g-anime .g-barre{transform-box:fill-box;transform-origin:50% 100%;animation:g-pousse .7s cubic-bezier(.2,.8,.2,1) both}
.g-anime .g-barre.g-neg{transform-origin:50% 0}
.g-anime .g-barre.g-horiz{transform-origin:50% 50%;animation-name:g-large}
.g-anime .g-trait{stroke-dasharray:1;animation:g-trace 1.3s cubic-bezier(.45,0,.2,1) both}
.g-anime .g-aire{animation:g-apparait .9s ease both}
.g-anime .g-rond,.g-anime .g-valeur,.g-anime .g-pc,.g-anime .g-sur-barre,.g-anime .g-hors-barre,.g-anime .g-lien{animation:g-apparait .45s ease both}
.g-anime .g-part{transform-box:view-box;transform-origin:50% 50%;animation:g-tourne .75s cubic-bezier(.2,.8,.2,1) both}
.g-anime .g-centre-v,.g-anime .g-centre-l{animation:g-apparait .6s ease .5s both}
@keyframes g-pousse{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes g-large{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes g-trace{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes g-apparait{from{opacity:0}to{opacity:1}}
@keyframes g-tourne{from{opacity:0;transform:scale(.86) rotate(-12deg)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.g-anime *{animation:none!important}}
@media print{.g-fig{break-inside:avoid;border-color:#ccc}.g-legende,.g-outils,.g-bulle{display:none}.g-anime *{animation:none!important}}
/* 26/10/2026 (Phil : « une qualité graphique exceptionnelle ») : cadre soigné, pistes, lueur, étiquettes */
.g-fig{background:linear-gradient(180deg,color-mix(in srgb,var(--g-fond,#fff) 94%,#7c3aed 6%),var(--g-fond,#fff) 55%);box-shadow:0 1px 2px rgba(0,0,0,.04),0 12px 32px rgba(40,20,90,.08);border-radius:20px;padding:18px 16px 12px}
.g-titre{display:flex;align-items:center;gap:10px;font-size:1.06rem;letter-spacing:-.005em}
.g-titre::before{content:"";flex:none;width:6px;height:1.1em;border-radius:3px;background:linear-gradient(180deg,#a78bfa,#7c3aed)}
.g-piste{fill:currentColor;fill-opacity:.035}
.g-piste-anneau{stroke:currentColor;stroke-opacity:.06}
.g-ligne{stroke-dasharray:3 4;stroke-opacity:.14}
.g-axe{font-size:11.5px;opacity:.58}
.g-valeur{font-size:12px;font-weight:800;opacity:.9}
.g-badge-t{font-size:11.5px;font-weight:800;fill:#fff}
.g-centre-v{font-size:28px;letter-spacing:-.02em}
.g-part{transition:transform .25s cubic-bezier(.2,.8,.2,1),opacity .2s ease;transform-box:view-box;transform-origin:50% 50%}
.g-part.g-actif{transform:scale(1.035)}
.g-bulle{background:rgba(24,24,32,.94);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.08);border-radius:12px}
.g-leg{transition:background .2s ease,opacity .2s ease}.g-leg:hover{background:color-mix(in srgb,currentColor 7%,transparent)}
.g-anime .g-badge{animation:g-apparait .5s ease both}
@media print{.g-fig{box-shadow:none;background:#fff}}
