/* Fibre Herd — Aujourd'hui, Premiers pas, Tontes, Démo (26/09/2026) */
.fh-app-head { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:.5rem 1rem; margin-bottom:.75rem; }
.fh-app-head h1 { margin:.25rem 0 0; }
.fh-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.75rem; margin:0 0 1rem; }
.fh-kpi { background:var(--fh-card,#fff); border:1px solid var(--fh-line,#e4e1d8); border-radius:12px; padding:.8rem .9rem; text-decoration:none; color:inherit; display:block; min-width:0; }
a.fh-kpi:hover { border-color:var(--fh-green,#5b7a3a); }
.fh-kpi-num { display:block; font-size:1.6rem; font-weight:800; line-height:1.15; color:#2f3a24; overflow-wrap:anywhere; }
.fh-kpi-label { display:block; font-size:.86rem; color:#5d5d57; margin-top:.15rem; }
.fh-kpi-warn .fh-kpi-num { color:#8a5a00; }
.fh-today-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1rem; margin-bottom:1rem; }
.fh-today-grid .fh-card { margin:0; min-width:0; }
.fh-today-grid h2 { font-size:1.08rem; margin:0 0 .5rem; }
.fh-dolist { list-style:none; margin:0; padding:0; }
.fh-dolist li { display:flex; gap:.6rem; align-items:baseline; padding:.45rem 0; border-top:1px solid var(--fh-line,#e4e1d8); }
.fh-dolist li:first-child { border-top:0; }
.fh-dolist .fh-when { flex:0 0 5.6rem; font-weight:700; font-size:.88rem; color:#484844; }
.fh-dolist .fh-when.is-late { color:#a4361b; }
.fh-dolist .fh-what { flex:1 1 auto; min-width:0; overflow-wrap:anywhere; }
.fh-shortcuts { display:flex; flex-wrap:wrap; gap:.5rem; }
.fh-reassure { border:1px solid #cfe0bd; background:#f5f9ef; border-radius:12px; padding:.9rem 1.1rem; margin:1rem 0; }
.fh-reassure strong:first-child { display:block; margin-bottom:.2rem; color:#2f4a1c; }
.fh-reassure p { margin:.2rem 0 0; }
.fh-steps { list-style:none; margin:0 0 1rem; padding:0; display:flex; flex-wrap:wrap; gap:.4rem; }
.fh-steps li { font-size:.85rem; padding:.3rem .7rem; border-radius:999px; background:#f1efe8; color:#5d5d57; }
.fh-steps li.is-current { background:#2f4a1c; color:#fff; font-weight:700; }
.fh-steps li.is-done { background:#e2eed5; color:#2f4a1c; }
.fh-choice-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:.5rem; margin:.5rem 0 1rem; }
.fh-choice { display:flex; gap:.5rem; align-items:center; border:1px solid var(--fh-line,#e4e1d8); border-radius:10px; padding:.6rem .75rem; cursor:pointer; background:#fff; }
.fh-choice input { margin:0; }
.fh-actions { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin-top:1rem; }
.fh-linkbtn { background:none; border:0; padding:0; color:#484844; text-decoration:underline; cursor:pointer; font:inherit; }
.fh-kg { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.fh-table tr.fh-subtotal td { font-weight:700; background:#f7f6f1; }
.fh-table tr.fh-grandtotal td { font-weight:800; background:#eef4e6; }
.fh-mode { display:flex; flex-wrap:wrap; gap:.75rem 1.25rem; margin:.4rem 0 .6rem; }
.fh-mode label { display:flex; gap:.4rem; align-items:center; font-weight:600; margin:0; }
.fh-mode input[type=radio] { width:auto; min-width:0; margin:0; flex:0 0 auto; }
.fh-mode label { white-space:nowrap; }
.fh-qgrid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem; }
@media (max-width:520px) { .fh-qgrid { grid-template-columns:1fr; } .fh-dolist .fh-when { flex-basis:4.8rem; } }
.fh-demo-banner { background:#fff4d6; border:2px dashed #d9a520; color:#4a3a00; border-radius:12px; padding:.75rem 1rem; margin:0 0 1rem; }
.fh-demo-banner strong { display:block; font-size:1.02rem; }
.fh-demo-nav { display:flex; flex-wrap:wrap; gap:.4rem; margin:0 0 1rem; }
.fh-demo-nav a { padding:.35rem .8rem; border-radius:999px; border:1px solid var(--fh-line,#e4e1d8); text-decoration:none; color:#484844; background:#fff; font-size:.9rem; }
.fh-demo-nav a[aria-current="page"] { background:#2f4a1c; color:#fff; border-color:#2f4a1c; }
.fh-nowrap { white-space:nowrap; }

/* Tableaux défilants : garder les libellés masqués (lecteurs d’écran) dans la zone de défilement */
.fh-table-wrap { position: relative; max-width: 100%; }

/* 27/09 : mise en avant « Inscription gratuite et sans engagement, avec outil de démo » */
.fh-signup-demo { border:2px solid #6A9440; background:#fbfdf6; border-radius:12px; padding:1rem 1.15rem; margin:1rem 0; }
.fh-signup-demo strong:first-child { display:block; font-size:1.08rem; color:#2f4a1c; margin-bottom:.25rem; }
.fh-signup-demo p { margin:.2rem 0 0; }
.fh-signup-demo .fh-signup-demo-cta { margin-top:.65rem; }

/* Carnet / Toison / Saillie génétique v1.2 (local, 29/09/2026) */
.fh-carnet-brand { display:flex; flex-direction:column; gap:.15rem; margin:0 0 1rem; }
.fh-carnet-brand .fh-brand-name { font-size:1.35rem; font-weight:800; color:#2f4a1c; letter-spacing:.01em; }
.fh-carnet-brand .fh-brand-tag { font-size:.78rem; font-weight:700; letter-spacing:.12em; color:#5b7a3a; text-transform:uppercase; }
.fh-carnet-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem; margin:1rem 0; }
.fh-carnet-card { background:#fff; border:1px solid var(--fh-line,#e4e1d8); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; min-width:0; }
.fh-carnet-photo, .fh-toison-photo, .fh-ambiance {
  border-radius:16px; overflow:hidden; background:#e8ebe3; border:1px solid #d5dacb;
  aspect-ratio: 4 / 3; display:flex; align-items:center; justify-content:center; color:#5d5d57; text-align:center; padding:.75rem; font-size:.9rem;
}
.fh-carnet-card .fh-carnet-photo { border-radius:0; border:0; border-bottom:1px solid #d5dacb; }
.fh-carnet-body { padding:.85rem 1rem 1rem; }
.fh-carnet-body h2 { margin:0 0 .25rem; font-size:1.1rem; }
.fh-carnet-meta { margin:0 0 .55rem; color:#5d5d57; font-size:.92rem; }
.fh-carnet-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.4rem; margin:0; padding:0; list-style:none; }
.fh-carnet-metrics li { background:#f7f6f1; border-radius:10px; padding:.45rem .5rem; }
.fh-carnet-metrics span { display:block; font-size:.72rem; color:#5d5d57; text-transform:uppercase; letter-spacing:.04em; }
.fh-carnet-metrics strong { font-size:1rem; font-variant-numeric:tabular-nums; }
.fh-ambiance { margin:1rem 0; min-height:180px; }
.fh-toison-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1rem; margin:1rem 0; }
.fh-toison-card { background:#fff; border:1px solid var(--fh-line,#e4e1d8); border-radius:16px; padding:1rem; }
.fh-toison-card h2 { margin:.15rem 0 .5rem; font-size:1.15rem; }
.fh-toison-photos { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; margin-bottom:.75rem; }
@media (max-width:520px) { .fh-toison-photos { grid-template-columns:1fr; } }
.fh-saillie-pair { display:grid; grid-template-columns:1fr auto 1fr; gap:.75rem; align-items:stretch; margin:1rem 0; }
@media (max-width:720px) { .fh-saillie-pair { grid-template-columns:1fr; } }
.fh-saillie-animal { background:#fff; border:1px solid var(--fh-line,#e4e1d8); border-radius:14px; padding:.9rem 1rem; }
.fh-saillie-vs { align-self:center; font-weight:800; color:#2f4a1c; text-align:center; }
.fh-saillie-result { border-radius:12px; padding:.85rem 1rem; margin:.75rem 0; }
.fh-saillie-result.is-warn { background:#fffbeb; border:1px solid #e8c96a; }
.fh-saillie-result.is-block { background:#fdeceb; border:1px solid #e3a39a; }
.fh-saillie-result.is-info { background:#f5f9ef; border:1px solid #cfe0bd; }
.fh-saillie-banner { background:#fdeceb; border:1px solid #e3a39a; border-radius:12px; padding:.85rem 1rem; margin:1rem 0; }

.fh-carnet-photo:has(> img),
.fh-toison-photo:has(> img),
.fh-ambiance:has(> img) { padding:0; }
.fh-carnet-photo > img,
.fh-toison-photo > img,
.fh-ambiance > img { width:100%; height:100%; object-fit:cover; display:block; border-radius:0; }

.fh-today-blocks { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1rem; margin:0 0 1rem; }
.fh-today-block { background:#fff; border:1px solid var(--fh-line,#e4e1d8); border-radius:16px; padding:1.05rem 1.1rem; min-height:8.5rem; }
.fh-today-block h2 { font-size:1.35rem; line-height:1.2; margin:0 0 .65rem; }
.fh-today-block .fh-dolist .fh-what { font-size:1.05rem; }
.fh-today-block.is-alert { border-color:#e0b4a8; background:#fff7f4; }
.fh-rank-card { border:1px solid var(--fh-line,#e4e1d8); border-radius:14px; padding:.85rem 1rem; margin:.6rem 0; background:#fff; }
.fh-rank-card.is-block { border-color:#e3a39a; background:#fdeceb; }
.fh-rank-card.is-warn { border-color:#e8c96a; background:#fffbeb; }
