/* app.css — styles sobres en complément de DSFR (vendoré). Aucun CDN. */
:root{
  --green-1:#1c773f; --green-2:#27a658; --green-3:#52b779;
  --ink:#161616; --muted:#666; --line:#e5e5e5;
}
.tac-hero{background:#f6fbf7;border-bottom:1px solid #d9efe1;}
.tac-draft-band{background:#fff4e3;border:1px solid #ffd9a8;border-radius:.25rem;}
.tac-section{scroll-margin-top:5rem;}
.tac-kpi{border:1px solid var(--line);border-radius:.5rem;padding:1rem 1.25rem;height:100%;background:#fff;}
.tac-kpi .tac-kpi-val{font-size:2rem;line-height:1.1;font-weight:700;color:var(--green-1);}
.tac-kpi .tac-kpi-lbl{font-size:.85rem;color:var(--muted);margin-top:.25rem;}
.tac-kpi.alt .tac-kpi-val{color:#2f3d95;}
.tac-kpi.warn .tac-kpi-val{color:#a16607;}
.tac-chart{margin:.5rem 0 1rem;}
.tac-bar-row{display:flex;align-items:center;gap:.5rem;margin:.18rem 0;font-size:.82rem;}
.tac-bar-lbl{flex:0 0 39%;max-width:39%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);}
.tac-bar-track{flex:1 1 auto;background:#f0f0f0;border-radius:3px;height:16px;position:relative;overflow:hidden;}
.tac-bar-fill{height:100%;border-radius:3px;}
.tac-bar-val{flex:0 0 84px;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);}
.tac-bar-row.hl .tac-bar-lbl{font-weight:700;}
.tac-bar-row.hl .tac-bar-val{font-weight:700;color:var(--ink);}
.tac-legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;font-size:.78rem;color:var(--muted);margin:.25rem 0 .5rem;}
.tac-legend span{display:inline-flex;align-items:center;gap:.35rem;}
.tac-dot{width:10px;height:10px;border-radius:50%;display:inline-block;}
.tac-note{font-size:.82rem;color:var(--muted);border-left:3px solid var(--green-3);padding-left:.6rem;margin:.5rem 0;}
.tac-placeholder{border:1px dashed #9aa;border-radius:.5rem;background:repeating-linear-gradient(45deg,#fafafa,#fafafa 10px,#f3f3f3 10px,#f3f3f3 20px);padding:1rem;color:#555;}
.tac-placeholder h4{margin-top:0;}
/* Terra indicator cards */
.tac-terra{border:1px solid var(--line);border-radius:.5rem;padding:.85rem 1rem;height:100%;background:#fff;display:flex;flex-direction:column;}
.tac-terra.prio{border-color:#1c773f;border-width:2px;box-shadow:0 0 0 3px #e7f7ee;}
.tac-terra-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.25rem;}
.tac-terra-ref{font-weight:700;font-size:.92rem;color:#7e3a93;background:#f4ecf8;border-radius:4px;padding:.05rem .4rem;}
.tac-terra h4{font-size:.92rem;line-height:1.25;}
.tac-terra-meta{font-size:.72rem;color:var(--muted);margin:.1rem 0 .35rem;}
.tac-terra-src{color:#7e3a93;}
.tac-terra-mesure{font-size:.76rem;color:#444;margin:0 0 .5rem;border-left:2px solid #e3d6ee;padding-left:.5rem;}
.tac-terra-ecl{margin-top:auto;background:#f4fbf6;border:1px solid #d9efe1;border-radius:.35rem;padding:.5rem .6rem;}
.tac-terra-ecl-t{font-size:.74rem;font-weight:700;color:var(--green-1);margin:0 0 .2rem;text-transform:uppercase;letter-spacing:.02em;}
.tac-terra-ecl p:last-child{font-size:.79rem;color:#1a1a1a;line-height:1.35;}
.tac-pivot-hub{width:100%;height:auto;display:block;margin:.5rem auto;max-width:760px;}
.tac-table-wrap{overflow-x:auto;}
table.tac-table{width:100%;border-collapse:collapse;font-size:.82rem;}
table.tac-table th,table.tac-table td{border-bottom:1px solid var(--line);padding:.35rem .5rem;text-align:left;vertical-align:top;}
table.tac-table th{background:#f6f6f6;position:sticky;top:0;}
table.tac-table td.num{text-align:right;font-variant-numeric:tabular-nums;}
.tac-tag-green{background:#dffbe8;color:#15662f;border-radius:3px;padding:.05rem .35rem;font-size:.72rem;white-space:nowrap;}
.tac-tag-no{background:#f0f0f0;color:#777;border-radius:3px;padding:.05rem .35rem;font-size:.72rem;}
.tac-anchor-nav{position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid var(--line);}
.tac-anchor-nav ul{display:flex;flex-wrap:wrap;gap:.25rem 1rem;list-style:none;margin:0;padding:.5rem 0;font-size:.85rem;}
.tac-anchor-nav a{color:var(--green-1);text-decoration:none;}
.tac-anchor-nav a:hover{text-decoration:underline;}
.tac-src{font-size:.78rem;color:var(--muted);}
.tac-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
@media (max-width:48em){.tac-grid-2{grid-template-columns:1fr;} .tac-bar-lbl{flex-basis:46%;max-width:46%;}}
