/* Rentabilité : carte annotée, raccordée aux surfaces et encres du thème. */
.profitability { --rt-ca:color-mix(in srgb,var(--color-ink) 45%,var(--color-surface)); --rt-mb:var(--color-night,var(--color-ink)); --rt-pa:color-mix(in srgb,var(--color-accent) 22%,var(--color-muted)); --rt-net:var(--color-success); --rt-ope:color-mix(in srgb,var(--color-danger) 62%,var(--color-surface)); padding:24px 28px 28px; }
.profitability__headline { font-size:27px; font-weight:600; line-height:1.24; letter-spacing:-.02em; max-width:760px; margin-bottom:18px; color: var(--color-ink); }
.profitability__caption,.profitability__status { color: var(--color-ink-2); font-size:.8rem; margin: .5rem 0 1rem; }
.profitability__map { position:relative; }
.profitability__cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.profitability__card { background:var(--color-surface); border:1px solid var(--color-line); border-radius:14px; padding:14px 16px; display:flex; flex-direction:column; gap:8px; min-width:0; color:var(--color-ink); box-shadow:0 4px 14px #1d15310d; position:relative; z-index:1; }
.profitability__card header { display:flex; align-items:center; gap:8px; font-size:13px; }
.profitability__card header::before { content:''; width:.55rem; height:.55rem; border-radius:3px; background:var(--rt-tone); flex:none; }
.profitability__card h3 { flex:1; font-weight:650; color:var(--color-muted); }
.profitability__card header strong { font-size:20px; letter-spacing:-.01em; white-space:nowrap; font-variant-numeric:tabular-nums; }
.profitability__card p { font-size:12.5px; line-height:1.45; color:var(--color-ink-2); }
.profitability__card footer { margin-top:auto; border-top:1px solid var(--color-line); padding-top:.7rem; display:flex; gap:.5rem; flex-wrap:wrap; }
.profitability__card footer a,.profitability__card footer button { font-size:12.5px; font-weight:650; color:var(--color-accent); cursor:pointer; }
.profitability__card dl > div { display:flex; justify-content:space-between; gap:.5rem; font-size:12px; margin:4px 0; }
.profitability__card dt { color:var(--color-ink-2); }
.profitability__card dd { font-weight:650; text-align:right; font-variant-numeric:tabular-nums; }
.profitability__family { display:flex; align-items:center; gap:.5rem; font-size:12px; padding:2px 0; }
.profitability__family span { flex:1; }
.profitability__family i { width:.5rem; height:.5rem; border-radius:2px; flex:none; }
.profitability__equation { background:var(--color-tile); border-radius:.45rem; padding:.4rem .6rem; font-weight:650; }
.profitability__split { height:6px; border-radius:6px; overflow:hidden; background:repeating-linear-gradient(125deg,var(--color-line),var(--color-line) 3px,var(--color-surface) 3px,var(--color-surface) 6px); }
.profitability__split span { display:block; height:100%; background:var(--rt-mb); }
.profitability__chart { width:100%; height:310px; display:block; position:relative; z-index:1; overflow:visible; }
.profitability__chart text { font-family:inherit; fill:var(--color-ink); font-size:12px; }
.profitability__chart .rt-value { font-size:17px; font-weight:750; }
.profitability__chart .rt-share { font-size:11px; fill:var(--color-ink-2); }
.profitability__ribbon { fill:var(--rt-tone); opacity:.25; transition:opacity .2s; }
.profitability__node { fill:var(--rt-tone); }
.profitability__label { fill:var(--color-surface); stroke:var(--color-line); }
.profitability__wires { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:0; overflow:visible; }
.profitability__wires path { fill:none; stroke:var(--rt-tone); stroke-width:1.4; stroke-dasharray:3 4; }
.profitability__sources { display:grid; gap:0; border:1px solid var(--color-line); border-radius:10px; overflow:hidden; }
.profitability__source { display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--color-line); padding:8px 10px; cursor:pointer; }
.profitability__source > span { flex:1; min-width:0; }
.profitability__source b,.profitability__source small { display:block; font-size:12.5px; }
.profitability__source small { color:var(--color-ink-2); font-size:11px; margin-top:2px; }
.profitability__source em { font-style:normal; font-size:.8rem; font-weight:650; white-space:nowrap; }
.profitability__switch { appearance:none; width:2rem; height:1.15rem; border-radius:2rem; background:var(--color-muted); position:relative; flex:none; cursor:pointer; }
.profitability__switch::before { content:''; position:absolute; width:.8rem; height:.8rem; top:.175rem; left:.175rem; border-radius:50%; background:var(--color-surface); transition:transform .15s; }
.profitability__switch:checked { background:var(--color-accent); }
.profitability__switch:checked::before { transform:translateX(.85rem); }
.profitability__switch:focus-visible { outline:2px solid var(--color-accent); outline-offset:3px; }
.profitability__switch:disabled { opacity:.5; cursor:default; }
.profitability__warning { color:var(--color-warning) !important; font-size:.76rem !important; }
.profitability__read { padding:1rem .4rem; color:var(--color-ink-2); font-size:.82rem; line-height:1.6; }
.profitability__read h3 { color:var(--color-ink); font-weight:700; margin-bottom:.4rem; }
.profitability__families { max-height:15rem; overflow:auto; padding:.5rem; background:var(--color-tile); border-radius:.5rem; }
.profitability__families label { display:flex; gap:.5rem; align-items:center; font-size:.78rem; padding:.3rem 0; }
.profitability__monthly { width:100%; margin-top:1rem; font-size:.82rem; }
.profitability__monthly th,.profitability__monthly td { padding:.65rem; border-bottom:1px solid var(--color-line); text-align:right; }
.profitability__monthly th:first-child,.profitability__monthly td:first-child { text-align:left; }
.rt-ca { --rt-tone:var(--rt-ca); } .rt-mb { --rt-tone:var(--rt-mb); } .rt-pa { --rt-tone:var(--rt-pa); } .rt-net { --rt-tone:var(--rt-net); } .rt-ope { --rt-tone:var(--rt-ope); }
@media(max-width:1200px) { .profitability__card { padding:.85rem; } .profitability__card header { flex-wrap:wrap; } .profitability__card header strong { width:100%; } }
@media(max-width:767px) { .profitability__cards { grid-template-columns:1fr; } .profitability__chart { height:290px; } .profitability__wires { display:none; } .profitability__read { order:3; } }
@media(prefers-reduced-motion:reduce) { .profitability__switch::before { transition:none; } }

.profitability__chart-scroll { overflow-x:auto; }
@media(max-width:767px) { .profitability__chart { min-width:760px; height:330px; } }

.profitability__headline [data-rt=net] { font-weight:800; white-space:nowrap; }
.profitability__headline-gap { color:var(--color-success); font-weight:750; }
.profitability__headline-gap.is-negative { color:var(--color-danger); }
.profitability__caption { font-size:12px; }
.profitability > .profitability__caption { margin-top:-6px; margin-bottom:18px; }
.profitability__chart-scroll { margin:34px 0; }
.profitability__card h4,.profitability__read h3 { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--color-muted); }
.profitability__card.rt-net header strong { color:var(--rt-net); }
.profitability__card.rt-ope header strong { color:var(--color-danger); }
.profitability__card.rt-ca header::before { background:linear-gradient(180deg,#f39c12 0 33%,#1abc9c 33% 66%,#e6007e 66%); }
.profitability__source:last-child { border-bottom:0; }
.profitability__source:has(input:not(:checked)) > span,.profitability__source:has(input:not(:checked)) > em { opacity:.5; }
.profitability__warning { display:flex; gap:8px; align-items:flex-start; padding:8px 10px; border-radius:9px; background:color-mix(in srgb,var(--color-warning) 10%,var(--color-surface)); font-size:12px!important; }
.profitability__card { transition:box-shadow .2s,transform .2s; }
.profitability__card.is-hot { box-shadow:0 0 0 1px var(--rt-tone),0 8px 24px #20173314; }
.profitability__chart [data-rt-key] { cursor:pointer; outline-offset:3px; }
.profitability__chart [data-rt-key]:focus-visible { outline:2px solid var(--rt-tone); }
.profitability__chart [data-rt-key].is-hot .profitability__ribbon { opacity:.48; }
.profitability__chart .rt-net .rt-value { fill:var(--rt-net); }
.profitability__chart .rt-ope .rt-value { fill:var(--color-danger); }
.profitability__chart .rt-pa .rt-value { fill:var(--rt-pa); }
.profitability__label { filter:drop-shadow(0 1px 2px #20173318); stroke:none; }
.profitability__chart .rt-value { font-size:15px; }
.profitability__chart .rt-ca .rt-value,.profitability__chart .rt-net .rt-value { font-size:17px; }
.profitability__chart text { font-size:11.5px; }
.profitability__chart .rt-share { font-size:10.5px; }
.profitability__wires circle { fill:var(--rt-tone); stroke:var(--color-surface); stroke-width:2; }
.profitability__monthly-scroll { overflow:auto; }
@media(max-width:767px) { .profitability { padding:16px 0; } .profitability__headline { font-size:24px; } .profitability__chart-scroll { margin:24px 0; } }

.profitability__ribbon.rt-net { opacity:.45; }
.profitability__ribbon.rt-ope { opacity:.36; }
.profitability__gap { display:inline-block; padding:1px 6px; border-radius:999px; color:var(--color-success); background:color-mix(in srgb,var(--color-success) 10%,transparent); font-style:normal; font-size:11px; }
