/* Ma progression : critères de niveau, estimation, rapport, courbe, tableau des modules. Courbes (.lc) réutilisables. */

.pg-crit { list-style: none; display: grid; gap: 4px; margin-top: 6px; font-size: var(--fs-sm); }
.pg-crit li { color: var(--text-2); }
.pg-crit li.is-ok { color: var(--success); font-weight: 650; }
.pg-estimate { font-size: var(--fs-lg); margin-bottom: var(--space-2); }
.pg-estimate strong { font-size: var(--fs-2xl); color: var(--primary); }
.pg-advice { margin: var(--space-3) 0; padding: 10px 12px; border-radius: var(--radius-sm); background: var(--primary-soft); }
.pg-report { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); margin-bottom: var(--space-3); }
@media (max-width: 860px) { .pg-report { grid-template-columns: minmax(0, 1fr); } }
.pg-switch { margin-top: 0; padding: 6px 10px; }
.pg-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 760px) { .pg-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pg-table td { vertical-align: middle; }
.pg-table__bar { display: flex; align-items: center; gap: 8px; min-width: 150px; }
.pg-table__bar .bar { flex: 1; }
.pg-table__bar span { min-width: 3.2em; text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }
.pg-table tr.is-future { display: none; }
.pg-table.is-all tr.is-future { display: table-row; opacity: .65; }
.pg-legend { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pg-key { display: inline-block; width: 9px; height: 9px; background: var(--primary); }
.pg-key--dot { border-radius: 50%; }
.pg-key--diamond { transform: rotate(45deg); }

/* ---------- Courbe (charts.line) ---------- */
.lc { position: relative; }
.lc__svg { display: block; width: 100%; height: auto; overflow: visible; }
.lc__grid { stroke: var(--border); stroke-width: 1; }
.lc__mark { stroke: var(--text-3); stroke-width: 1; stroke-dasharray: 4 4; }
.lc__axis { fill: var(--text-3); font-size: 11px; }
.lc__axis--mark { fill: var(--text-2); }
.lc__line { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.lc__pt { stroke: var(--surface); stroke-width: 2; }
.lc__hit { fill: transparent; cursor: pointer; }
.lc__hit:focus { outline: none; }
.lc__hit:focus-visible { stroke: var(--focus); stroke-width: 2; }
.lc__guide { stroke: var(--text-3); stroke-width: 1; }
.lc__guide[hidden] { display: none; }
.lc__tip {
  position: absolute; transform: translateX(-50%); pointer-events: none; z-index: 2; width: max-content; max-width: min(260px, 100%); text-align: center;
  padding: 6px 10px; border-radius: 8px; background: var(--text); color: var(--bg); font-size: var(--fs-xs); font-weight: 650; box-shadow: var(--shadow);
}

/* ---------- Impression du rapport ---------- */
@media print {
  .topbar, .sidebar, .nav-backdrop, .toasts, .page-head__actions, .pg-switch { display: none !important; }
  .shell, .main { display: block !important; margin: 0 !important; padding: 0 !important; }
  .card { break-inside: avoid; box-shadow: none !important; }
}
