/* app.css — styles sobres en complément de DSFR (vendoré). Aucun CDN. */
:root{
  --anr:#4A5FD8; --cdc:#B34000; --blue-ink:#2f3d95;
  --ink:#161616; --muted:#666; --line:#e5e5e5;
}
.tc-hero{background:#f5f7fd;border-bottom:1px solid #dde3f8;}
.tc-section{scroll-margin-top:5rem;}
.tc-kpi{border:1px solid var(--line);border-radius:.5rem;padding:1rem 1.25rem;height:100%;background:#fff;}
.tc-kpi .tc-kpi-val{font-size:2rem;line-height:1.1;font-weight:700;color:var(--blue-ink);font-variant-numeric:tabular-nums;}
.tc-kpi .tc-kpi-lbl{font-size:.85rem;color:var(--muted);margin-top:.25rem;}
.tc-kpi.om .tc-kpi-val{color:#7e3a93;}
.tc-kpi.warn .tc-kpi-val{color:#a16607;}
.tc-chart{margin:.5rem 0 1rem;}
.tc-bar-row{display:flex;align-items:center;gap:.5rem;margin:.2rem 0;font-size:.82rem;}
.tc-bar-lbl{flex:0 0 34%;max-width:34%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);}
.tc-bar-track{display:block;flex:1 1 auto;background:#f0f0f2;border-radius:3px;height:16px;position:relative;overflow:hidden;}
/* display:block indispensable : sur un span inline, width/height sont ignorés et la barre reste vide */
.tc-bar-fill{display:block;height:100%;border-radius:3px;background:var(--anr);min-width:2px;}
.tc-bar-fill.cdc{background:var(--cdc);}
/* Conversion places ouvertes → personnes formées */
.tc-conv-wrap{overflow-x:auto;}
table.tc-conv{width:100%;border-collapse:collapse;font-size:.82rem;}
table.tc-conv th,table.tc-conv td{border-bottom:1px solid var(--line);padding:.35rem .55rem;text-align:left;vertical-align:middle;}
table.tc-conv th{background:#f6f6f8;white-space:nowrap;}
table.tc-conv td.num,table.tc-conv th.num{text-align:right;font-variant-numeric:tabular-nums;}
table.tc-conv tr.total td{font-weight:700;background:#f5f7fd;border-top:2px solid var(--blue-ink);}
.tc-conv-pct{font-weight:700;color:var(--blue-ink);white-space:nowrap;}
.tc-conv-pct.over{color:#a16607;}
.tc-conv-bar{display:block;background:#f0f0f2;border-radius:3px;height:10px;overflow:hidden;min-width:90px;}
.tc-conv-bar span{display:block;height:100%;border-radius:3px;background:var(--anr);}
.tc-conv-bar span.over{background:#c9a227;}
.tc-conv-note{display:block;font-size:.7rem;color:#a16607;font-weight:400;white-space:nowrap;}
.tc-bar-val{flex:0 0 92px;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);}
.tc-bar-row:hover .tc-bar-lbl{font-weight:700;}
.tc-legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;font-size:.78rem;color:var(--muted);margin:.25rem 0 .5rem;}
.tc-legend span{display:inline-flex;align-items:center;gap:.35rem;}
.tc-dot{width:11px;height:11px;border-radius:50%;display:inline-block;}
.tc-diamond{width:10px;height:10px;display:inline-block;transform:rotate(45deg);border-radius:2px;}
.tc-note{font-size:.82rem;color:var(--muted);border-left:3px solid var(--anr);padding-left:.6rem;margin:.5rem 0;}
.tc-src{font-size:.78rem;color:var(--muted);}
.tc-anchor-nav{position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid var(--line);}
.tc-anchor-nav ul{display:flex;flex-wrap:wrap;gap:.25rem 1rem;list-style:none;margin:0;padding:.5rem 0;font-size:.85rem;}
.tc-anchor-nav a{color:var(--blue-ink);text-decoration:none;background:none;}
.tc-anchor-nav a:hover{text-decoration:underline;}
.tc-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
/* Carte */
.tc-map-wrap{background:#fff;border:1px solid var(--line);border-radius:.5rem;padding:1rem;}
.tc-map-wrap svg{width:100%;height:auto;display:block;}
.tc-map-wrap a.map-marker{background:none;}
.tc-map-wrap a.map-marker:hover text{text-decoration:underline;}
/* Cartes dossiers */
.tc-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem;}
.tc-card{border:1px solid var(--line);border-radius:.5rem;background:#fff;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.4rem;scroll-margin-top:5rem;}
.tc-card.om{border-left:4px solid #7e3a93;}
.tc-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;flex-wrap:wrap;}
.tc-card-head h3{font-size:1.05rem;margin:0;}
.tc-card-sub{font-size:.85rem;color:var(--ink);margin:0;}
.tc-card-meta{font-size:.76rem;color:var(--muted);margin:0;}
.tc-badges{display:flex;flex-wrap:wrap;gap:.3rem;}
.tc-badge{font-size:.7rem;font-weight:700;border-radius:3px;padding:.1rem .4rem;white-space:nowrap;}
.tc-badge.anr{background:#e6eafb;color:#2f3d95;}
.tc-badge.cdc{background:#fbe9e0;color:#8a3200;}
.tc-badge.prio{background:#f0f0f2;color:#444;font-weight:500;}
.tc-badge.omb{background:#f4ecf8;color:#7e3a93;}
.tc-resume{font-size:.84rem;line-height:1.4;color:#1a1a1a;margin:0;}
.tc-chiffres{font-size:.79rem;color:#1a1a1a;background:#f5f7fd;border-radius:.35rem;padding:.45rem .6rem;margin:0;}
.tc-budget{font-size:.82rem;font-weight:700;color:var(--blue-ink);margin:0;}
.tc-tags{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.1rem;}
.tc-tag{background:#f0f0f2;color:#555;border-radius:3px;padding:.05rem .4rem;font-size:.7rem;white-space:nowrap;}
.tc-cma{font-size:.78rem;color:#15662f;background:#e8f8ee;border-radius:.35rem;padding:.4rem .6rem;margin:0;}
.tc-cma.no{color:#777;background:#f0f0f2;}
.tc-card details{margin-top:.2rem;}
.tc-card details summary{font-size:.78rem;color:var(--blue-ink);cursor:pointer;}
.tc-card details .tc-long{font-size:.78rem;line-height:1.45;color:#333;white-space:pre-line;max-height:22rem;overflow-y:auto;margin-top:.4rem;border-left:2px solid #dde3f8;padding-left:.6rem;}
/* Filtres */
.tc-filters{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;margin:.75rem 0 1rem;}
.tc-filters label{font-size:.8rem;color:var(--muted);display:inline-flex;align-items:center;gap:.35rem;}
.tc-filters select,.tc-filters input[type=search]{font-size:.85rem;padding:.25rem .5rem;border:1px solid #ccc;border-radius:.25rem;background:#fff;}
.tc-count{font-size:.8rem;color:var(--muted);}
/* Tableau */
.tc-table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:.5rem;}
table.tc-table{width:100%;border-collapse:collapse;font-size:.8rem;}
table.tc-table th,table.tc-table td{border-bottom:1px solid var(--line);padding:.4rem .55rem;text-align:left;vertical-align:top;}
table.tc-table th{background:#f6f6f8;cursor:pointer;white-space:nowrap;user-select:none;}
table.tc-table th:hover{background:#eceef4;}
table.tc-table td.num,table.tc-table th.num{text-align:right;font-variant-numeric:tabular-nums;}
@media (max-width:48em){.tc-grid-2{grid-template-columns:1fr;}.tc-bar-lbl{flex-basis:42%;max-width:42%;}.tc-cards{grid-template-columns:1fr;}}
@media print{.tc-anchor-nav{display:none;}.tc-card{break-inside:avoid;}}
