/* Case-specific composition; the shared report tokens remain the brand source. */
.case-dashboard .report-content { max-width:1440px; }
.case-dashboard .report-hero { margin-bottom:24px; }
.case-dashboard .report-pagination { margin-top:32px; }
.case-dashboard .report-pagination strong { font-size:var(--report-lead); }
.case-dashboard .report-hero>p:not(.report-label) { max-width:880px; }
.case-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid var(--report-line); background:var(--report-paper); }
.case-facts>div { padding:18px 20px; }
.case-facts>div+div { border-left:1px solid var(--report-line); }
.case-dashboard .case-company-description { margin:16px 0 6px; color:var(--report-muted); }
.case-facts dt { font-size:var(--report-meta); color:var(--report-muted); margin-bottom:8px; }
.case-facts dd { font-size:var(--report-lead); line-height:1.5; font-weight:500; }
.case-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:20px; }
.case-grid--overview { grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); }
.case-panel { padding:22px 24px; background:var(--report-paper); border:1px solid var(--report-line); min-width:0; }
.case-panel h2 { font-size:var(--report-section-label); text-transform:uppercase; letter-spacing:.065em; color:var(--report-muted); margin-bottom:20px; line-height:1.5; }
.case-panel h3 { font-size:var(--report-body); font-weight:500; line-height:1.45; }
.case-panel p { color:var(--report-muted); }
.case-wide { margin-top:20px; }
.case-wide--first { margin-top:0; }
.case-needs { list-style:none; margin:0; padding:0; display:grid; gap:20px; }
.case-needs li { display:flex; align-items:flex-start; gap:14px; }
.case-needs p { margin-top:4px; }
.case-result .case-big-number { font-size:36px; line-height:1.2; letter-spacing:-.045em; color:var(--report-petrol); font-weight:500; margin-top:4px; }
.case-result .case-qualification { color:var(--report-accent-ink); font-weight:500; margin:8px 0 16px; }
.case-note { font-size:var(--report-meta); color:var(--report-muted); line-height:1.6; }
.case-panel .case-note { margin-top:16px; }
.case-missing { margin-top:16px!important; }
.case-text-link { display:inline-flex; align-items:center; gap:10px; min-height:44px; margin-top:12px; text-decoration:underline; text-underline-offset:4px; }
.case-flow { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); list-style:none; padding:0; gap:24px; }
.case-flow li { position:relative; min-width:0; border-top:1px solid var(--report-line); padding-top:16px; display:flex; flex-direction:column; align-items:flex-start; }
.case-flow .case-actor { font-size:var(--report-meta); margin-top:12px; }
.case-flow h3 { margin-top:6px; }
.case-flow h3+p { margin-top:8px; margin-bottom:16px; }
.case-output { margin-top:auto; padding-top:12px; width:100%; border-top:1px solid var(--report-line); color:var(--report-accent-ink); font-size:var(--report-meta); }
.case-flow--compact li { display:grid; grid-template-columns:32px minmax(0,1fr); column-gap:10px; align-content:start; }
.case-flow--compact .report-avatar { grid-row:1/3; }
.case-flow--compact .case-actor { margin-top:0; }
.case-flow--compact h3 { margin-top:3px; }
.case-modules { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.case-modules article+article { padding-left:24px; border-left:1px solid var(--report-line); }
.case-modules h3 { margin:12px 0 8px; }
.case-rows>div { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.6fr); gap:16px; padding:14px 0; border-bottom:1px solid var(--report-line); }
.case-rows>div:first-child { padding-top:0; }
.case-rows>div:last-child { border:0; padding-bottom:0; }
.case-rows dt { color:var(--report-muted); font-size:var(--report-meta); }
.case-rows dd { line-height:1.55; }
.case-rows dd strong { font-weight:500; }
.case-rows dd span { display:block; margin-top:6px; color:var(--report-muted); font-size:var(--report-meta); }
.case-mini-timeline { list-style:none; padding:0 0 0 20px; border-left:1px solid var(--report-line); }
.case-mini-timeline li { position:relative; }
.case-mini-timeline li+li { margin-top:20px; }
.case-mini-timeline li::before { content:''; position:absolute; left:-24px; top:6px; width:7px; height:7px; background:var(--report-accent-ink); border-radius:1px; }
.case-mini-timeline p { margin-top:4px; }
.case-evidence { border:1px solid var(--report-line); background:var(--report-paper); margin-top:16px; padding:0 24px; }
.case-evidence summary { min-height:52px; padding-block:16px; cursor:pointer; font-weight:500; }
.case-evidence>p { color:var(--report-muted); padding-bottom:16px; }
.case-evidence>.case-rows { padding-block:8px 20px; }
.case-matrix__head,.case-matrix__row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.case-matrix__head { font-size:var(--report-meta); color:var(--report-muted); padding-bottom:12px; }
.case-matrix__row { border-top:1px solid var(--report-line); padding-block:18px; }
.case-matrix__row:last-child { padding-bottom:0; }
.case-matrix h3 { margin-bottom:8px; }
.case-mobile-label { display:none; }
.case-data-line { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.case-data-line>span { padding:14px; background:var(--report-canvas); border-bottom:2px solid var(--report-line); text-align:center; }
.case-data-line svg { display:block; width:20px; height:20px; margin:0 auto 10px; color:var(--report-accent-ink); }
.case-timeline { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; padding:0; gap:24px; }
.case-timeline li { border-top:1px solid var(--report-line); padding-top:16px; position:relative; }
.case-timeline li::before { content:''; position:absolute; width:7px; height:7px; background:var(--report-accent-ink); top:-4px; left:0; }
.case-timeline .case-date { font-size:var(--report-meta); color:var(--report-accent-ink); }
.case-timeline h3 { margin:8px 0; }
.case-range { margin:20px 0; }
.case-range>div { height:8px; background:var(--report-line); position:relative; }
.case-range>div>span { position:absolute; left:50%; width:25%; height:100%; background:var(--report-accent-ink); }
.case-range>p { display:flex; justify-content:space-between; margin-top:6px; font-size:var(--report-meta); }
.case-stack { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; padding:8px 0 20px; }
.case-stack>div { padding:16px; border:1px solid var(--report-line); min-width:0; }
.case-stack span { display:block; color:var(--report-muted); font-size:var(--report-meta); }
.case-stack ul { list-style:none; padding:0; margin:16px 0 0; display:grid; gap:14px; }
.case-stack li { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.case-stack img { width:28px; height:28px; object-fit:contain; flex:none; }
.case-stack strong { font-weight:500; }
.case-integrations { list-style:none; padding:16px 0 20px; margin:0; border-top:1px solid var(--report-line); display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.case-integrations li { display:flex; align-items:center; gap:10px; color:var(--report-muted); }
.case-integrations svg { width:20px; height:20px; flex:none; color:var(--report-accent-ink); }
@media(min-width:901px) and (max-width:1100px) {
  .case-dashboard .report-content { padding-inline:24px; }
  .case-flow { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:24px; }
  .case-stack,.case-integrations { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
  .case-grid,.case-grid--overview { grid-template-columns:1fr; }
  .case-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .case-facts>div:nth-child(odd) { border-left:0; }
  .case-facts>div:nth-child(n+3) { border-top:1px solid var(--report-line); }
  .case-modules { grid-template-columns:1fr; gap:20px; }
  .case-modules article+article { padding-left:0; padding-top:20px; border-left:0; border-top:1px solid var(--report-line); }
  .case-flow { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .case-timeline,.case-stack,.case-data-line,.case-integrations { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .case-matrix__head { display:none; }
  .case-matrix__row { grid-template-columns:1fr; gap:14px; }
  .case-mobile-label { display:block; font-size:var(--report-meta); color:var(--report-accent-ink); margin-bottom:4px; }
}
@media(max-width:420px) {
  .case-panel { padding:20px 16px; }
  .case-facts>div { padding:16px 12px; }
  .case-flow { grid-template-columns:1fr; gap:28px; }
  .case-flow--compact li { min-height:44px; }
  .case-timeline { grid-template-columns:1fr; }
  .case-rows>div { grid-template-columns:1fr; gap:6px; }
  .case-dashboard .report-topbar { flex-wrap:wrap; height:auto; min-height:56px; padding-block:10px; }
  .case-evidence { padding-inline:16px; }
  .case-stack>div { padding:12px 10px; }
  .case-stack li { flex-direction:column; align-items:flex-start; gap:6px; }
  .case-integrations { grid-template-columns:1fr; }
}
@media print {
  .case-evidence::details-content { content-visibility:visible; }
  .case-panel,.case-timeline li { break-inside:avoid; }
}

/* Process diagrams: branches, decisions and actor hand-offs remain real HTML. */
.process-index { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.process-index a { display:flex; align-items:center; min-height:44px; padding:8px 14px; border:1px solid var(--report-line); text-decoration:none; color:var(--report-muted); background:var(--report-paper); }
.process-index a:hover { color:var(--report-ink); border-color:var(--report-accent-ink); }
.case-dashboard :is(#circuit-acces,#regles-metier,#badge-permanent) { scroll-margin-top:calc(var(--report-header) + 24px); }
.process-panel { margin-top:20px; }
.process-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.process-heading h2 { font-size:var(--report-heading); text-transform:none; letter-spacing:-.025em; color:var(--report-ink); margin:6px 0 0; }
.process-caption { color:var(--report-muted); font-size:var(--report-meta); text-align:right; }
.process-entry { display:grid; grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr); align-items:stretch; }
.process-entry>div { border:1px solid var(--report-line); padding:16px; background:var(--report-canvas); }
.process-entry p { margin-top:10px; }
.process-entry strong,.process-entry p>span { display:block; }
.process-entry strong { font-weight:500; color:var(--report-ink); }
.process-entry p>span { margin-top:4px; }
.process-role { display:inline-flex; align-items:center; gap:7px; font-size:var(--report-meta); color:var(--report-accent-ink); line-height:1.5; }
.process-role svg { width:16px; height:16px; flex-shrink:0; }
.process-or { align-self:center; text-align:center; color:var(--report-muted); font-size:var(--report-meta); }
.case-panel .process-converge { display:flex; align-items:center; justify-content:center; gap:10px; font-size:var(--report-meta); padding:14px 0; color:var(--report-accent-ink); }
.process-stages { list-style:none; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.process-stage { display:flex; flex-direction:column; align-items:stretch; min-width:0; position:relative; padding:18px 16px; border:1px solid var(--report-line); }
.process-stage__title { display:flex; align-items:center; gap:8px; min-height:40px; margin-bottom:16px; }
.process-number { font-size:var(--report-meta); color:var(--report-accent-ink); border-bottom:2px solid var(--report-accent-ink); padding-bottom:3px; }
.process-stage__title h3 { font-weight:500; }
.process-fields { margin-top:10px!important; }
.process-fields>div { padding:12px 0; border-bottom:1px solid var(--report-line); }
.process-fields>div:last-child { border-bottom:0; }
.process-fields dt { font-weight:500; font-size:var(--report-meta); }
.process-fields dd { margin-top:4px; color:var(--report-muted); }
.case-panel .process-output { margin-top:auto; padding-top:16px; font-size:var(--report-meta); color:var(--report-accent-ink); }
.process-small,.process-route-label { font-size:var(--report-meta); color:var(--report-muted); }
.process-route-label { display:block; min-height:36px; }
.process-routes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:16px 0; }
.process-routes>div { display:flex; flex-direction:column; }
.process-routes>div:first-child>.process-node { margin-top:auto; }
.process-node { border:1px solid var(--report-line); padding:10px; text-align:center; font-size:var(--report-meta); background:var(--report-canvas); }
.process-node strong { font-weight:500; }
.process-node p { margin-top:5px; }
.process-arrow { display:block; color:var(--report-accent-ink); text-align:center; padding:5px 0; line-height:1; }
.process-node--plain { text-align:left; border:0; border-left:2px solid var(--report-line); margin-top:10px; padding:10px 12px; font-size:var(--report-body); }
.process-node--result { background:var(--report-tint); border-color:var(--report-tint); color:var(--report-petrol); font-weight:500; }
.process-outcomes { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:auto; padding-top:16px; border-top:1px solid var(--report-line); }
.process-outcome { display:flex; align-items:center; justify-content:space-between; gap:8px; color:var(--report-ink); font-weight:500; }
.process-outcome--yes { color:var(--report-accent-ink); }
.process-outcomes p { font-size:var(--report-meta); margin-top:6px; }
.process-detail { margin-top:20px; border-top:1px solid var(--report-line); }
.process-detail summary { padding:14px 0; min-height:48px; cursor:pointer; }
.process-management { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; padding-block:8px 16px; }
.process-management h3 { margin-bottom:8px; }
.process-management p { font-size:var(--report-meta); }
.process-statuses { display:flex; flex-wrap:wrap; gap:6px; }
.process-statuses>span { padding:5px 8px; border:1px solid var(--report-line); font-size:var(--report-meta); }
.process-rules .case-panel { display:flex; flex-direction:column; }
.process-group__people,.process-person__records { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.process-group__people>.process-role { padding:12px; border:1px solid var(--report-line); }
.process-connector-label { display:flex; flex-direction:column; gap:5px; align-items:center; padding:12px 0 5px; font-size:var(--report-meta); }
.process-gate { border:1px dashed var(--report-accent-ink); padding:12px; text-align:center; color:var(--report-accent-ink); font-size:var(--report-meta); }
.process-person>.process-role { display:flex; justify-content:center; }
.case-panel .process-rule-note { font-size:var(--report-meta); padding-top:20px; margin-top:auto; }
.process-badge { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.process-badge__step { border-top:1px solid var(--report-line); padding-top:16px; position:relative; }
.process-badge__step h3 { margin:12px 0 8px; }
.process-badge__step>p:not(.process-small) { font-size:var(--report-meta); }
.process-badge__conditions>.process-node { margin-top:8px; }
.process-and { display:block; text-align:center; margin-top:8px; font-size:var(--report-meta); color:var(--report-accent-ink); }
@media(min-width:901px) and (max-width:1200px) {
  .process-stages { grid-template-columns:1fr; gap:28px; }
  .process-stage__title { min-height:0; }
  .process-routes { max-width:380px; width:100%; }
  .process-rules { grid-template-columns:1fr; }
  .process-badge { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:24px; }
}
@media(max-width:800px) {
  .process-stages { grid-template-columns:1fr; gap:28px; }
  .process-stage__title { min-height:0; }
  .process-routes { max-width:380px; width:100%; }
  .process-rules { grid-template-columns:1fr; }
  .process-badge { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:24px; }
  .process-management { grid-template-columns:1fr; }
  .process-heading { align-items:flex-start; flex-direction:column; gap:8px; }
  .process-caption { text-align:left; }
}
@media(max-width:560px) {
  .process-entry { grid-template-columns:1fr; gap:8px; }
  .process-badge { grid-template-columns:1fr; gap:28px; }
  .process-group__people,.process-person__records { gap:8px; }
  .process-group__people>.process-role { flex-direction:column; align-items:flex-start; }
}
@media print {
  .process-index { display:none; }
  .process-detail::details-content { content-visibility:visible; }
}

.case-panel .process-condition { margin-bottom:12px; }

/* Documented operational benefits, separate from measured financial return. */
.case-benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.case-benefits article+article { border-left:1px solid var(--report-line); padding-left:24px; }
.case-benefits h3 { margin:12px 0 8px; }
.case-benefits p { font-size:var(--report-body); }
@media(max-width:700px) {
  .case-benefits { grid-template-columns:1fr; gap:20px; }
  .case-benefits article+article { border-left:0; border-top:1px solid var(--report-line); padding:20px 0 0; }
}

/* Shared documented-project views. No arrows between the major blocks. */
.project-stat { font-size:26px; line-height:1.35; color:var(--report-petrol)!important; }
.case-grid>.case-panel { margin-top:0; }
.project-journeys { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.project-journeys>article { display:flex; flex-direction:column; min-width:0; }
.project-journeys>article+article { border-left:1px solid var(--report-line); padding-left:24px; }
.project-journeys h3 { margin:12px 0 20px; }
.project-journeys ol { list-style:none; margin:0; padding:0; flex:1; }
.project-journeys li { border-top:1px solid var(--report-line); padding:14px 0; }
.project-journeys li strong { font-weight:500; }
.project-journeys li p { margin-top:5px; }
.project-journeys .case-note { border-top:1px solid var(--report-line); padding-top:12px; }
.project-stack { grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); }
@media(max-width:800px) {
  .project-journeys { grid-template-columns:1fr; }
  .project-journeys>article+article { border-left:0; border-top:1px solid var(--report-line); padding:24px 0 0; }
}
@media(max-width:560px) { .project-stack { grid-template-columns:1fr; } }
