/* Bilan annuel : complément isolé du CSS de la page principale. */
.bilan-page { background:var(--cream,#f5f2e9); color:var(--ink,#10231d); }
.bilan-page .bilan-header { position:sticky; top:0; z-index:20; display:flex; justify-content:space-between; align-items:center; gap:25px; min-height:76px; padding:14px 5vw; background:var(--cream,#f5f2e9); border-bottom:1px solid #b4c0b9; }
.bilan-header-nav { display:flex; align-items:center; gap:24px; }
.bilan-header-nav>a { font-size:14px; font-weight:800; }
.bilan-header-nav>a:not(.button) { text-decoration:underline; text-underline-offset:5px; }
.bilan-main { max-width:1240px; margin:0 auto; padding:75px 40px 85px; }
.bilan-intro { max-width:960px; margin-bottom:48px; }
.bilan-intro .section-kicker { line-height:1.6; }
.bilan-page .bilan-intro h1 { margin:26px 0; font:500 clamp(48px,6vw,86px)/1.03 Georgia,serif; letter-spacing:-.05em; text-shadow:none; }
.bilan-intro h1 em { color:var(--green,#0a4e3a); font-weight:500; }
.bilan-lead { max-width:850px; margin:0; font-size:21px; line-height:1.6; }
.bilan-help { margin:24px 0 18px; color:var(--muted,#587067); font-size:16px; line-height:1.6; }
.bilan-years-nav { display:flex; flex-wrap:wrap; gap:10px; }
.bilan-years-nav a { display:inline-flex; align-items:center; justify-content:center; min-width:76px; min-height:46px; padding:11px 18px; border:1px solid var(--green,#0a4e3a); border-radius:3px; color:var(--green,#0a4e3a); font-size:16px; font-weight:800; }
.bilan-years-nav a:hover { background:var(--green,#0a4e3a); color:#fff; }
.bilan-year-panel { margin:0 0 18px; border:1px solid #aebbb5; background:#fff; scroll-margin-top:100px; }
.bilan-year-panel>summary { display:block; padding:28px 32px; background:var(--cream,#f5f2e9); cursor:pointer; list-style:none; }
.bilan-year-panel>summary::-webkit-details-marker { display:none; }
.bilan-year-panel>summary::marker { content:''; }
.bilan-year-panel>summary:focus-visible { outline:3px solid var(--orange,#ff8a3d); outline-offset:4px; }
.bilan-page .bilan-year-panel>summary h2 { display:grid; grid-template-columns:130px minmax(0,1fr) 30px; gap:26px; align-items:center; margin:0; font-family:Arial,Helvetica,sans-serif; font-weight:400; letter-spacing:normal; line-height:1.3; }
.bilan-year { color:var(--green,#0a4e3a); font:500 48px/1 Georgia,serif; letter-spacing:-.045em; }
.bilan-year-title { font-size:20px; font-weight:700; }
.bilan-toggle { position:relative; width:26px; height:26px; justify-self:end; color:var(--green,#0a4e3a); }
.bilan-toggle::before,.bilan-toggle::after { content:''; position:absolute; top:12px; left:3px; width:20px; height:2px; background:currentColor; }
.bilan-toggle::after { transform:rotate(90deg); }
.bilan-year-panel[open]>.bilan-year-content { border-top:1px solid #aebbb5; }
.bilan-year-panel[open]>summary { background:var(--green,#0a4e3a); color:#fff; }
.bilan-year-panel[open] .bilan-year,.bilan-year-panel[open] .bilan-toggle { color:var(--lime,#d8f06f); }
.bilan-year-panel[open] .bilan-toggle::after { display:none; }
.bilan-year-content { padding:32px; }
.bilan-year-intro { max-width:840px; margin:0 0 30px; color:var(--muted,#587067); font-size:18px; line-height:1.65; }
.bilan-entry { display:grid; grid-template-columns:145px minmax(0,1fr); gap:30px; padding:30px 0; border-top:1px solid #d9e0dc; }
.bilan-entry-meta { display:flex; flex-direction:column; gap:8px; margin:3px 0 0; color:var(--green,#0a4e3a); font-size:15px; font-weight:800; line-height:1.4; }
.bilan-entry-meta span { color:var(--muted,#587067); font-size:13px; font-weight:400; }
.bilan-entry h3 { max-width:800px; margin:0 0 16px; font:500 clamp(25px,2.7vw,32px)/1.16 Georgia,serif; letter-spacing:-.02em; }
.bilan-entry>div>p { max-width:800px; margin:0; font-size:17px; line-height:1.75; }
.bilan-entry>div>p+p { margin-top:16px; }
.bilan-next { display:flex; align-items:center; justify-content:space-between; gap:30px; margin-top:55px; padding:38px; background:var(--lime,#d8f06f); }
.bilan-page .bilan-next h2 { margin:18px 0; font:500 clamp(36px,4vw,52px)/1.06 Georgia,serif; letter-spacing:-.04em; }
.bilan-next p:last-child { margin:0; font-size:17px; line-height:1.6; }
.bilan-next .button { flex-shrink:0; font-size:16px; }
.bilan-footer nav { display:flex; flex-wrap:wrap; gap:18px 24px; }
.bilan-footer nav a { font-size:14px; line-height:1.6; }
.bilan-footer nav a:hover { color:var(--lime,#d8f06f); text-decoration:underline; text-underline-offset:4px; }
@media (max-width:800px) {
  .bilan-main { padding:50px 22px 60px; }
  .bilan-page .bilan-header { padding:13px 20px; gap:15px; }
  .bilan-header-nav { gap:15px; }
  .bilan-lead { font-size:19px; }
  .bilan-year-panel>summary { padding:24px; }
  .bilan-page .bilan-year-panel>summary h2 { grid-template-columns:100px minmax(0,1fr) 26px; gap:16px; }
  .bilan-year { font-size:42px; }
  .bilan-year-title { font-size:18px; }
  .bilan-year-content { padding:26px 24px; }
  .bilan-entry { grid-template-columns:1fr; gap:15px; padding:26px 0; }
  .bilan-entry-meta { flex-direction:row; flex-wrap:wrap; gap:8px 16px; }
  .bilan-entry-meta span { font-size:14px; }
  .bilan-next { flex-direction:column; align-items:flex-start; padding:30px 24px; }
}
@media (max-width:560px) {
  .bilan-page .bilan-header { flex-wrap:wrap; }
  .bilan-header-nav { width:100%; justify-content:space-between; }
  .bilan-header-nav .button { min-height:44px; padding:11px 15px; }
  .bilan-page .bilan-intro h1 { font-size:48px; }
  .bilan-intro .section-kicker { font-size:11px; letter-spacing:.12em; }
  .bilan-page .bilan-year-panel>summary h2 { grid-template-columns:minmax(0,1fr) 26px; gap:12px; }
  .bilan-year { grid-column:1; font-size:42px; }
  .bilan-year-title { grid-column:1; font-size:17px; }
  .bilan-toggle { grid-column:2; grid-row:1 / 3; }
  .bilan-year-panel>summary { padding:22px 20px; }
  .bilan-year-panel { scroll-margin-top:150px; }
  .bilan-year-content { padding:24px 20px; }
  .bilan-year-intro { font-size:17px; }
  .bilan-entry>div>p { font-size:16px; }
  .bilan-next .button { width:100%; }
  .bilan-footer nav { flex-direction:column; gap:14px; }
}
@media print {
  .bilan-header,.bilan-years-nav,.bilan-next,.bilan-footer { display:none; }
  .bilan-main { max-width:none; padding:0; }
  .bilan-year-panel { border:0; }
  .bilan-year-panel>summary { background:#fff!important; color:#000!important; }
  .bilan-year,.bilan-year-title { color:#000!important; }
  .bilan-toggle { display:none; }
  .bilan-entry { break-inside:avoid; }
}
