.concerns-page { --concern-accent: #173f6e; }
.concerns-page [hidden] { display: none !important; }
.concerns-page #contenu { max-width: 1140px; }
.concerns-page h1 { margin-bottom: .65rem; }
.concerns-page h2 { scroll-margin-top: 105px; }
.concerns-hero-image { max-width: 900px; margin: 30px 0; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; background: var(--surface); }
.concerns-hero-image img { display: block; width: 100%; height: auto; }
.concerns-how { list-style: none; padding: 0; margin: 26px 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; counter-reset: steps; }
.concerns-how li { padding: 0 0 0 42px; position: relative; counter-increment: steps; }
.concerns-how li::before { content: counter(steps); position: absolute; left: 0; top: 2px; width: 29px; height: 29px; border: 1px solid var(--blue); color: var(--blue); border-radius: 50%; text-align: center; line-height: 27px; font-weight: 750; }
.concerns-how strong, .concerns-how span { display: block; }
.concerns-how span { color: var(--muted); margin-top: 4px; font-size: .93rem; }
.concerns-neutral { background: #eaf1f7; border-left: 4px solid var(--blue); border-radius: 4px 12px 12px 4px; padding: 18px 20px; max-width: 950px; }
.concerns-category-fieldset { border: 0; padding: 0; margin: 26px 0 16px; min-width: 0; }
.concerns-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.concerns-category { position: relative; display: flex; align-items: flex-start; gap: 12px; padding: 18px; min-height: 106px; border: 2px solid var(--line); border-radius: 16px; background: var(--surface); cursor: pointer; transition: border-color .12s, background-color .12s; }
.concerns-category:hover { border-color: var(--blue-2); }
.concerns-category:has(input:checked) { background: #eaf1f7; border-color: var(--blue); }
.concerns-category:focus-within { outline: 3px solid var(--gold); outline-offset: 3px; }
.concerns-category input { flex: 0 0 auto; width: 21px; height: 21px; accent-color: var(--blue); margin: 4px 0 0; }
.concerns-category strong, .concerns-category small { display: block; }
.concerns-category small { color: var(--muted); margin-top: 5px; font-size: .83rem; line-height: 1.4; }
.concerns-category svg { flex: 0 0 29px; width: 29px; height: 29px; color: var(--blue); margin-top: 1px; }
.concerns-category-copy { flex: 1; min-width: 0; }
.concerns-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0; align-items: center; }
.concerns-page button, .concerns-page summary, .concerns-page select { touch-action: manipulation; }
.concerns-page button:disabled { cursor: not-allowed; opacity: .55; }
.concerns-page button, .concerns-page select { min-height: 46px; }
.concerns-minor-actions { display: flex; flex-wrap: wrap; gap: 14px 24px; margin-top: 20px; }
.concerns-text-button { border: 0; padding: .5rem 0; background: transparent; color: var(--blue); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; text-align: left; }
.concerns-text-button:hover { color: var(--red); }
.concerns-progress { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; padding: 12px 0 18px; margin-bottom: 10px; border-bottom: 1px solid var(--line); }
.concerns-progress span { font-weight: 650; color: var(--blue); }
.concerns-progress progress { height: 8px; width: min(360px, 100%); accent-color: var(--blue); }
.concerns-scale-help { color: var(--muted); font-size: .93rem; }
.concern-question { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 18px 22px; margin: 18px 0; min-width: 0; }
.concern-question legend { float: left; display: block; width: 100%; padding: 0; font-size: 1.05rem; font-weight: 650; margin-bottom: 14px; color: var(--ink); }
.concern-scale { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; clear: both; }
.concern-scale label { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 48px; padding: 9px 5px; border: 1px solid #aca79e; border-radius: 10px; cursor: pointer; font-size: .9rem; font-weight: 550; }
.concern-scale label:has(input:checked) { background: var(--blue); color: white; border-color: var(--blue); }
.concern-scale label:focus-within { outline: 3px solid var(--gold); outline-offset: 3px; }
.concern-scale input { accent-color: var(--blue); width: 16px; height: 16px; margin: 0; flex: 0 0 auto; }
.concern-scale label:has(input:checked) input { accent-color: white; }
.concern-explanation { clear: both; font-size: .86rem; color: var(--muted); padding-top: 12px; }
.concern-explanation summary { color: var(--blue); cursor: pointer; padding: 6px 0; }
.concern-explanation p { margin: .5rem 0; }
.concern-gap-label { display: block; color: #725120; font-size: .8rem; margin-top: 10px; clear: both; }
.concerns-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 28px 0; }
.concerns-summary > div { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 20px 24px; min-width: 0; }
.concerns-summary h3 { font-size: 1.18rem; margin-top: 0; }
.concerns-summary ul { padding-left: 20px; margin-bottom: 0; }
.concerns-summary li { margin-bottom: 8px; }
.concerns-priority-word { color: var(--muted); font-size: .85em; }
.concerns-method, #concerns-without-matches { margin: 25px 0; border-block: 1px solid var(--line); padding: 16px 0; }
.concerns-method summary, #concerns-without-matches > summary { font-weight: 650; color: var(--blue); cursor: pointer; padding: 6px 0; }
.concerns-results-heading { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; gap: 20px; margin-top: 42px; }
.concerns-results-heading h3 { margin: 0; }
.concerns-results-heading .field { width: 260px; max-width: 100%; }
.concerns-result-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 22px 0; align-items: start; }
.concerns-candidate { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 24px; min-width: 0; overflow-wrap: anywhere; }
.concerns-candidate h3, .concerns-candidate h4 { margin-top: 0; }
.concerns-candidate h4 { font-size: 1rem; margin: 22px 0 8px; }
.concerns-candidate-header { display: flex; gap: 13px; align-items: center; margin-bottom: 16px; }
.concerns-monogram { display: grid; place-items: center; flex: 0 0 45px; height: 45px; border-radius: 50%; background: #e9e4d9; color: var(--blue); font-family: Georgia, serif; font-weight: 700; }
.concerns-candidate-header h3 { margin: 0 0 4px; font-size: 1.35rem; }
.concerns-party { margin: 0; font-size: .84rem; color: var(--muted); line-height: 1.4; }
.concerns-indicators { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 15px 0; }
.concerns-indicators div { padding: 10px 12px; background: #f0f3f5; border-radius: 9px; }
.concerns-indicators dt { font-size: .75rem; color: #465561; }
.concerns-indicators dd { margin: 2px 0 0; font-weight: 750; font-size: 1.08rem; color: var(--blue); }
.concerns-coverage { font-size: .87rem; margin: 12px 0; }
.concerns-partial { padding: 10px 12px; background: #fbefdc; border-left: 3px solid #b9852a; font-size: .85rem; color: #634615; border-radius: 4px; }
.concerns-convergences { font-size: .88rem; padding-left: 18px; margin: 12px 0; }
.concerns-convergences li { margin-bottom: 8px; }
.concerns-candidate > details { margin-top: 14px; border-top: 1px solid var(--line); }
.concerns-candidate > details > summary { padding: 12px 0; cursor: pointer; color: var(--blue); font-weight: 650; }
.concerns-evidence { padding: 14px 0; border-bottom: 1px solid var(--line); font-size: .9rem; }
.concerns-evidence:last-child { border-bottom: 0; }
.concerns-evidence h5 { margin: 0 0 7px; font-size: .97rem; }
.concerns-evidence p { margin: 7px 0; }
.concerns-evidence ul { padding-left: 17px; }
.concerns-relation { color: var(--muted); font-size: .79rem; }
.concerns-source { padding: 12px 0; border-bottom: 1px solid var(--line); font-size: .86rem; }
.concerns-source a { display: inline-block; margin-bottom: 5px; }
.concerns-source small { display: block; color: var(--muted); }
.concerns-candidate > .button { margin-top: 18px; width: 100%; white-space: normal; }
.concerns-limit-list { padding-left: 18px; font-size: .84rem; color: var(--muted); }
.concerns-without-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: .88rem; }
.concerns-without-row p { margin: 0; }
.concerns-without-row small { display: block; color: var(--muted); }
.concerns-without-row .button { white-space: normal; flex: 0 0 auto; }
.concerns-next-steps { margin: 35px 0; padding: 25px; border-radius: 16px; background: #eaf1f7; }
.concerns-next-steps .button-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.concerns-compare { width: min(1050px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); border: 1px solid var(--line); border-radius: 18px; padding: 26px; color: var(--ink); background: var(--paper); overflow-y: auto; overscroll-behavior: contain; }
.concerns-compare::backdrop { background: rgba(16, 28, 40, .62); }
.concerns-compare-top { display: flex; gap: 16px; justify-content: space-between; align-items: flex-start; position: sticky; top: -26px; background: var(--paper); padding: 12px 0; z-index: 1; }
.concerns-compare-top h2 { font-size: 1.5rem; margin: 4px 0; }
.concerns-compare-selects, .concerns-comparison-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.concerns-compare-selects select { max-width: 100%; }
.concerns-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 900px) {
  .concerns-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .concerns-category { padding: 15px; }
  .concerns-category svg { display: none; }
  .concerns-result-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .concerns-how, .concerns-summary, .concerns-compare-selects, .concerns-comparison-grid { grid-template-columns: 1fr; }
  .concerns-how { gap: 18px; }
  .concerns-category-grid { gap: 10px; }
  .concerns-category { padding: 12px; gap: 9px; }
  .concerns-category strong { font-size: .91rem; line-height: 1.3; }
  .concerns-category small { font-size: .76rem; }
  .concerns-category input { width: 19px; height: 19px; }
  .concern-question { padding: 16px; }
  .concern-scale { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .concerns-actions .button { flex: 1 1 100%; width: 100%; }
  .concerns-candidate { padding: 18px; }
  .concerns-indicators { gap: 8px; }
  .concerns-summary > div { padding: 18px; }
  .concerns-without-row { flex-wrap: wrap; }
  .concerns-compare { padding: 16px; width: calc(100vw - 20px); max-height: calc(100dvh - 20px); }
  .concerns-compare-top { top: -16px; gap: 8px; }
  .concerns-compare-top h2 { font-size: 1.2rem; }
}
@media (prefers-reduced-motion: reduce) { .concerns-category { transition: none; } }
@media (max-width: 380px) { .concerns-category-grid { grid-template-columns: 1fr; } }

/* v0.13.1 : fonctions communes et comparaison synthétique réversible. */
.concerns-function-badge { margin-top: 8px; }
.concerns-function-unknown { color: var(--muted); font-size: .8rem; }
.concerns-candidate .concerns-function { margin: 8px 0 16px; font-size: .83rem; }
.concerns-function p { margin: 8px 0; }
.concerns-comparison-controls { display: flex; align-items: center; gap: 12px 20px; flex-wrap: wrap; margin: 16px 0; }
.concerns-comparison-controls p { flex: 1 1 260px; margin: 0; }
.concerns-comparison-details > details { border-top: 1px solid var(--line); margin-top: 14px; }
.concerns-comparison-details > details > summary { padding: 12px 0; color: var(--blue); cursor: pointer; font-weight: 650; }
.concerns-expectation-topic h5 { font-size: .97rem; margin: 18px 0 8px; color: var(--blue); }
.concerns-expectation-topic ul { margin: 0; padding: 0; list-style: none; }
.concerns-expectation-topic li { border-top: 1px solid var(--line); padding: 10px 0; font-size: .91rem; }
.concerns-expectation-topic small { display: block; color: var(--muted); margin-top: 4px; font-size: .8rem; }

/* v0.13.2 : détails au plus près de chaque attente. */
.concerns-inline-details { margin: 10px 0 16px; border-top: 1px solid var(--line); }
.concerns-inline-details summary { min-height: 44px; display: list-item; padding: 12px 4px; cursor: pointer; font-weight: 650; }
.concerns-inline-details summary:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.concerns-expectation-topic li { overflow-wrap: anywhere; }
.concerns-measures { padding-left: 20px; }
.concerns-measures li { margin-bottom: 20px; }
.concerns-measures p { margin: 6px 0; }
.concerns-compare-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.concerns-register-source { margin: 34px 0; border-top: 1px solid var(--line); padding-top: 22px; }
.concerns-register-measure { margin: 24px 0; padding: 18px; border: 1px solid var(--line); border-radius: 12px; }
@media (max-width: 600px) { .concerns-compare-top { flex-direction:column; } .concerns-compare-actions { width:100%; justify-content:space-between; } }

/* v0.15.0 : une attente, deux positions ; la source reste toujours ouvrable. */
.concerns-comparison-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
.concerns-compare-headers, .concerns-compare-positions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.concerns-compare-headers { margin: 16px 0; }
.concerns-compare-candidate { min-width: 0; overflow-wrap: anywhere; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
.concerns-compare-candidate h3 { font-size: 1.15rem; margin: 0 0 5px; }
.concerns-compare-candidate .concerns-function { font-size: .82rem; margin-top: 8px; }
.concerns-compare-candidate summary, .concerns-comparison-help summary { cursor: pointer; padding: 10px 0; color: var(--blue); min-height: 44px; }
.concerns-compare-candidate .concerns-indicators { margin-bottom: 6px; }
.concerns-compare-candidate .concerns-coverage { margin-bottom: 0; }
.concerns-comparison-help { border-block: 1px solid var(--line); font-size: .88rem; }
.concerns-comparison-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 12px 0; }
.concerns-comparison-filter { min-height: 86px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 12px; text-align: left; padding: 12px; font: inherit; cursor: pointer; }
.concerns-comparison-filter strong { display: block; font-size: 1.6rem; line-height: 1.25; }
.concerns-comparison-filter span { display: block; font-size: .85rem; line-height: 1.35; margin-top: 5px; }
.concerns-comparison-filter[aria-pressed="true"] { color: white; background: var(--blue); border-color: var(--blue); box-shadow: inset 0 0 0 2px white; outline: 2px solid var(--blue); }
.concerns-comparison-filter:hover { border-color: var(--blue); }
.concerns-comparison-filter:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.concerns-compare-topic { max-width: 400px; margin: 16px 0; }
.concerns-compare-expectation { min-width: 0; overflow-wrap: anywhere; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 22px; }
.concerns-compare-expectation h3 { font-size: 1.2rem; margin: 6px 0 12px; }
.concerns-comparison-kicker { color: var(--blue); font-size: .82rem; font-weight: 700; }
.concerns-comparison-kicker span { color: var(--muted); font-weight: 500; }
.concerns-comparison-badges { display: flex; flex-wrap: wrap; gap: 7px; }
.concerns-comparison-badge { display: inline-block; border-radius: 6px; padding: 4px 8px; font-size: .76rem; font-weight: 700; }
.concerns-comparison-badge.common { color: #205743; background: #e7f2eb; }
.concerns-comparison-badge.different { color: #254968; background: #e8eff7; }
.concerns-comparison-badge.divergence { color: #6b3d16; background: #faecd8; }
.concerns-comparison-badge.insufficient { color: #55565b; background: #eeeef0; }
.concerns-comparison-reading { font-size: .93rem; margin: 16px 0 6px; }
.concerns-compare-expectation > .small-print { margin: 6px 0 16px; }
.concerns-compare-position { min-width: 0; background: #f6f5f1; border: 1px solid var(--line); border-radius: 9px; padding: 14px; }
.concerns-compare-position h4, .concerns-compare-evidence h4 { margin: 0 0 10px; font-size: 1rem; color: var(--blue); }
.concerns-compare-position p { font-size: .94rem; margin: 8px 0; }
.concerns-compare-position small, .concerns-position-missing { font-size: .8rem; color: var(--muted); }
.concerns-compare-position .concerns-reserve-label { font-size: .8rem; color: #714b18; }
.concerns-compare-expectation > .concerns-inline-details { margin: 14px 0 0; }
.concerns-comparison-reasons { font-size: .88rem; }
.concerns-comparison-reasons > section { padding: 2px 0; border-bottom: 1px solid var(--line); }
.concerns-comparison-reasons h4 { font-size: 1rem; }
.concerns-compare-evidence { min-width: 0; font-size: .86rem; }
.concerns-compare-sources { margin: 22px 0; }
.concerns-comparison-caution { padding: 10px 12px; border-left: 3px solid #b9852a; background: #fbefdc; border-radius: 4px; font-size: .85rem; }
.concerns-compare-more { margin-top: 20px; width: 100%; white-space: normal; }
@media (max-width: 760px) { .concerns-comparison-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .concerns-compare-headers, .concerns-compare-positions { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .concerns-compare-top { top: -16px; }
  .concerns-compare-expectation { padding: 15px; }
  .concerns-compare-position { padding: 12px; }
  .concerns-compare-actions .button { font-size: .85rem; padding-inline: 12px; white-space: normal; }
  .concerns-compare-selects .field { min-width: 0; }
  .concerns-comparison-filter { min-width: 0; padding: 10px; }
}

/* v0.15.1 : couverture documentaire lisible, distincte des différences. */
.concerns-coverage-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.concerns-coverage-actions .button { flex: 1 1 160px; padding: 10px; font-size: .82rem; white-space: normal; }
.concerns-coverage-actions p { font-size: .84rem; margin: 0; }
.concerns-theme-gaps { margin-top: 12px; font-size: .82rem; }
.concerns-theme-gaps p { margin: 0 0 5px; }
.concerns-theme-gaps button { display: inline-block; border: 1px solid #d3c1a6; color: #65471c; background: #fbf2e6; border-radius: 7px; min-height: 44px; padding: 8px 10px; margin: 3px; font: inherit; cursor: pointer; }
.concerns-coverage-overviews { margin: 18px 0; }
.concerns-coverage-overview { border: 1px solid var(--line); border-radius: 10px; background: var(--surface); padding: 0 14px; margin: 10px 0; }
.concerns-coverage-overview > summary { min-height: 48px; padding: 12px 0; font-weight: 700; color: var(--blue); cursor: pointer; }
.concerns-coverage-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: .85rem; margin: 15px 0; }
.concerns-coverage-table caption { text-align: left; color: var(--muted); margin-bottom: 10px; }
.concerns-coverage-table th, .concerns-coverage-table td { border: 1px solid var(--line); padding: 7px; vertical-align: top; overflow-wrap: anywhere; }
.concerns-coverage-table thead th { text-align: center; font-weight: 700; color: var(--blue); background: #f0f3f5; }
.concerns-coverage-table th:first-child { width: 38%; text-align: left; }
.concerns-coverage-table td { text-align: center; }
.concerns-coverage-table button { width: 100%; min-height: 44px; padding: 7px 4px; border: 0; background: transparent; color: var(--blue); font: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.concerns-coverage-table button strong { display: block; font-size: 1rem; }
.concerns-coverage-table button span, .concerns-coverage-table small { display: block; font-size: .75rem; }
.concerns-coverage-table button:disabled { opacity: 1; color: var(--muted); text-decoration: none; cursor: default; }
.concerns-coverage-table .concerns-coverage-topic-button { text-align: left; font-weight: 650; }
.concerns-coverage-table .concerns-coverage-missing { font-size: .78rem; color: #65471c; }
.concerns-coverage-table .coverage-none { background: #fbefdf; }
.concerns-coverage-table .coverage-partial { background: #faf7ee; }
.concerns-coverage-table .coverage-full { background: #edf3ef; }
.concerns-coverage-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 18px 0 8px; }
.concerns-coverage-controls .field { min-width: 0; }
.concerns-coverage-controls select { width: 100%; max-width: 100%; }
.concerns-compare-position .concerns-coverage-state { border-left: 3px solid #769486; background: #eaf1ed; color: #26513e; padding: 8px; font-size: .8rem; font-weight: 650; }
.concerns-compare-position .concerns-coverage-state.thematic { color: #365367; background: #eaf0f4; border-color: #7892a7; }
.concerns-compare-position .concerns-coverage-state.missing { color: #65471c; background: #fbefdf; border-color: #b49157; }
.concerns-coverage-table button:focus-visible, .concerns-theme-gaps button:focus-visible, .concerns-coverage-overview summary:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
@media (max-width: 600px) {
  .concerns-coverage-controls { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .concerns-coverage-overview { padding-inline: 8px; }
  .concerns-coverage-table { font-size: .76rem; }
  .concerns-coverage-table th, .concerns-coverage-table td { padding: 4px; }
  .concerns-coverage-table th:first-child { width: 34%; }
  .concerns-coverage-table button strong { font-size: .91rem; }
}
