/* =====================================================================
   Calcul de l'IMC — styles (limités à .imc / .imc-*), variables --ot-*
   ===================================================================== */
.imc { --imc-accent: #0d9488; --imc-thin: #3b82f6; --imc-ok: #16a34a; --imc-over: #f59e0b; --imc-obese: #dc2626; --imc-warn: #b45309; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .imc { --imc-accent: #2dd4bf; --imc-thin: #60a5fa; --imc-ok: #4ade80; --imc-over: #fbbf24; --imc-obese: #f87171; --imc-warn: #fbbf24; }
}
:root[data-theme="dark"] .imc { --imc-accent: #2dd4bf; --imc-thin: #60a5fa; --imc-ok: #4ade80; --imc-over: #fbbf24; --imc-obese: #f87171; --imc-warn: #fbbf24; }

.imc-head h1 { font-size: clamp(1.6rem, 4vw, 2.3rem); }
.imc-warning {
  display: flex; gap: 10px; align-items: flex-start; margin: 0 0 var(--ot-space);
  padding: 12px 16px; border-radius: var(--ot-radius-s); font-size: .92rem;
  border: 1px solid color-mix(in srgb, var(--imc-accent) 40%, transparent);
  background: color-mix(in srgb, var(--imc-accent) 8%, var(--ot-surface));
}
.imc-warning p { margin: 0; }

/* Réglages */
.imc-settings { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; margin-bottom: var(--ot-space); }
.imc-seg { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.imc-seg > span { font-size: .85rem; font-weight: 600; color: var(--ot-text-soft); }

/* Formulaire + résultat */
.imc-main { display: grid; gap: var(--ot-space); grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: start; }
@media (max-width: 820px) { .imc-main { grid-template-columns: 1fr; } }
.imc-form, .imc-result { display: flex; flex-direction: column; gap: 14px; }
.imc-form h2 { font-size: 1.1rem; margin: 0; }
.imc-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.imc-wide { grid-column: 1 / -1; }
.imc-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.imc-field label, .imc-label { font-size: .85rem; font-weight: 600; }
.imc-field .ot-input, .imc-field .ot-select { padding: 8px 10px; min-height: 42px; width: 100%; }
.imc-unit { display: flex; align-items: center; gap: 8px; }
.imc-unit .ot-input { flex: 1 1 0; min-width: 0; font-size: 1.1rem; font-weight: 600; padding: 8px 10px; min-height: 44px; }
.imc-unit span { color: var(--ot-text-soft); font-weight: 600; min-width: 1.6em; }
.imc-radios { display: flex; flex-wrap: wrap; gap: 8px; }
.imc-radios label { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border: 1px solid var(--ot-border);
  border-radius: 999px; cursor: pointer; font-weight: 600; font-size: .92rem; background: var(--ot-surface); }
.imc-radios label:has(input:checked) { border-color: var(--imc-accent); background: color-mix(in srgb, var(--imc-accent) 12%, var(--ot-surface)); }
.imc-radios input { accent-color: var(--imc-accent); }
.imc-more { border-top: 1px solid var(--ot-border); padding-top: 10px; }
.imc-more summary { cursor: pointer; font-weight: 700; font-size: .92rem; color: var(--imc-accent); }
.imc-more[open] > summary { margin-bottom: 10px; }
.imc-more > * + * { margin-top: 10px; }
.imc-check { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: .9rem; cursor: pointer; }
.imc-check input { width: 18px; height: 18px; accent-color: var(--imc-accent); }
.imc-note, .imc-hint { font-size: .82rem; color: var(--ot-text-soft); margin: 0; }
.imc-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.imc-mini { min-height: 32px; padding: 4px 12px; font-size: .82rem; }

.imc-result { border-top: 5px solid var(--imc-accent); }
.imc-result__label { margin: 0; font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ot-text-soft); font-weight: 700; }
.imc-result__value { font-size: clamp(2.6rem, 8vw, 3.6rem); font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.imc-result__value small { font-size: 1rem; font-weight: 600; color: var(--ot-text-soft); }
.imc-result__cat { font-size: 1.25rem; font-weight: 800; }
.imc-result__cat:empty { display: none; }
.imc-result__cat[data-level="0"] { color: var(--imc-thin); }
.imc-result__cat[data-level="1"] { color: var(--imc-ok); }
.imc-result__cat[data-level="2"] { color: var(--imc-warn); }
.imc-result__cat[data-level="3"] { color: var(--imc-obese); }
.imc-gauge svg { width: 100%; max-width: 520px; height: auto; display: block; }
.imc-gauge__t { font-size: 9px; fill: var(--ot-text-soft); }
.imc-gauge__m { fill: var(--ot-text); }
.imc-result__notes p { margin: 0 0 .5em; font-size: .93rem; }
.imc-result__notes p:last-child { margin-bottom: 0; }

/* Cartes */
.imc-grid { display: grid; gap: var(--ot-space); margin-top: var(--ot-space); align-items: start;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); }
.imc-card { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.imc-card--full { grid-column: 1 / -1; }
.imc-card h2 { font-size: 1.1rem; margin: 0; }
.imc-card h3 { font-size: .95rem; margin: 8px 0 0; }
.imc-intro { margin: 0; font-size: .86rem; color: var(--ot-text-soft); }
.imc-body > p { margin: 0 0 .5em; }
.imc-scroll { overflow-x: auto; }
.imc-tab { border-collapse: collapse; width: 100%; font-size: .88rem; font-variant-numeric: tabular-nums; }
.imc-tab th, .imc-tab td { border-bottom: 1px solid var(--ot-border); padding: 6px 8px; text-align: left; white-space: nowrap; }
.imc-tab th { font-size: .78rem; color: var(--ot-text-soft); }
.imc-tab .imc-on td { background: color-mix(in srgb, var(--imc-accent) 14%, transparent); font-weight: 700; }
.imc-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 7px; vertical-align: baseline; }

.imc-stats { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr)); }
.imc-stat { padding: 10px 12px; border-radius: var(--ot-radius-s); background: var(--ot-surface-2); border-left: 4px solid var(--imc-accent); }
.imc-stat[data-level="1"] { border-left-color: var(--imc-ok); }
.imc-stat[data-level="2"] { border-left-color: var(--imc-over); }
.imc-stat[data-level="3"] { border-left-color: var(--imc-obese); }
.imc-stat__t { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--ot-text-soft); font-weight: 700; }
.imc-stat__v { font-size: 1.35rem; font-weight: 800; }
.imc-stat__v small { font-size: .8rem; font-weight: 600; color: var(--ot-text-soft); }
.imc-stat__n { font-size: .78rem; color: var(--ot-text-soft); margin-top: 2px; }
.imc-stat[data-level="2"] .imc-stat__v { color: var(--imc-warn); }
.imc-stat[data-level="3"] .imc-stat__v { color: var(--imc-obese); }
.imc-stats + .imc-stats, .imc-stats + h3 { margin-top: 6px; }

/* Graphiques */
.imc-chart { width: 100%; min-width: 480px; height: auto; display: block; }
.imc-grid-l { stroke: var(--ot-border); stroke-width: 1; }
.imc-ax { font-size: 11px; fill: var(--ot-text-soft); }
.imc-curve { fill: none; stroke: var(--ot-text-soft); stroke-width: 1.2; opacity: .7; }
.imc-curve--strong { stroke: var(--ot-text); stroke-width: 2; opacity: .85; }
.imc-pt { stroke: var(--ot-surface); stroke-width: 2.5; }
.imc-hist-pt { fill: var(--imc-accent); }
.imc-hist-l { fill: none; stroke: var(--imc-accent); stroke-width: 2; }
.imc-line-w { fill: none; stroke: var(--imc-accent); stroke-width: 2.5; }
.imc-line-b { fill: none; stroke: var(--imc-over); stroke-width: 2; stroke-dasharray: 6 4; }
.imc-dot-w { fill: var(--imc-accent); } .imc-dot-b { fill: var(--imc-over); }
.imc-ax--w { fill: var(--imc-accent); } .imc-ax--b { fill: var(--imc-warn); }
.imc-legend { font-size: .82rem; color: var(--ot-text-soft); margin: 0; }
.imc-key { display: inline-block; width: 18px; height: 0; border-top: 3px solid var(--imc-accent); vertical-align: middle; margin: 0 5px 0 0; }
.imc-key--b { border-top: 3px dashed var(--imc-over); margin-left: 12px; }
.imc-preg-st[data-st="1"] strong { color: var(--imc-ok); }
.imc-preg-st[data-st="0"] strong, .imc-preg-st[data-st="2"] strong { color: var(--imc-warn); }

/* Suivi */
.imc-track-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.imc-track-bar .imc-field { flex: 1 1 160px; }
.imc-track-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.imc-del { border: 0; background: transparent; color: var(--ot-text-soft); cursor: pointer; font-size: 1rem; padding: 2px 6px; border-radius: 6px; }
.imc-del:hover { color: var(--imc-obese); background: var(--ot-surface-2); }

/* Aide */
.imc-help { margin-top: calc(var(--ot-space) * 2.5); }
.imc-help code { font-family: var(--ot-mono); font-size: .88em; background: var(--ot-surface-2); padding: 1px 5px; border-radius: 4px; }
.imc-help table { border-collapse: collapse; width: 100%; font-size: .9rem; margin: 0 0 1em; }
.imc-help th, .imc-help td { border-bottom: 1px solid var(--ot-border); padding: 6px 8px; text-align: left; vertical-align: top; }

/* Impression : le résultat et les cartes utiles, sans les réglages ni l'aide */
@media print {
  .imc-settings, .imc-actions, .imc-help, .imc-track-bar, .imc-track-actions, .imc-del, .imc-warning, .imc-more summary { display: none !important; }
  .imc-more { border: 0; padding: 0; }
  .imc-main { grid-template-columns: 1fr 1fr; }
  .imc-card, .imc-result, .imc-form { break-inside: avoid; }
  .imc-chart { min-width: 0; }
}

/* Objectif, lien de partage, fiche imprimable */
.imc-goal { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr)); align-items: end; }
.imc-goal__info { grid-column: 1 / -1; font-size: .9rem; }
.imc-goal__info p { margin: 0 0 .35em; }
.imc-warn { color: var(--imc-warn); }
.imc-note.imc-ok { color: var(--imc-ok); font-weight: 600; }
.imc-goal-l { stroke: var(--imc-accent); stroke-width: 1.5; stroke-dasharray: 2 4; }
.imc-goal-path { stroke: var(--imc-accent); stroke-width: 2; stroke-dasharray: 6 5; opacity: .7; }
.imc-goal-pt { fill: var(--ot-surface); stroke: var(--imc-accent); stroke-width: 2.5; }
.imc-sheet h2 { margin: 0 0 4px; }
.imc-sheet h3 { margin: 18px 0 6px; font-size: 1rem; }
.imc-sheet .imc-chart { min-width: 0; max-width: 100%; }
@media print {
  html.imc-sheet-print #ot-header, html.imc-sheet-print #ot-footer, html.imc-sheet-print .ot-skip,
  html.imc-sheet-print .imc > :not(#imc-sheet) { display: none !important; }
  html.imc-sheet-print #imc-sheet { display: block !important; }
  html.imc-sheet-print .imc-sheet h3 { break-after: avoid; }
  html.imc-sheet-print .imc-sheet svg { break-inside: avoid; }
}

/* Calculateurs de forme (même feuille de style) */
.fo-row { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr)); align-items: end; }
.fo-row > .imc-field:first-child { grid-column: 1 / -1; }
.fo .imc-form { margin-bottom: 0; }
.fo-hr-fields { max-width: 640px; }
