/* Styles propres au module rapports (RCPP) */
.rcpp-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 18px; align-items: start; }
.rcpp-band { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: start; margin: 18px 0; }
.rcpp-band > .panel, .rcpp-main > .panel { margin-top: 0; }
.rcpp-band > form { grid-column: 1 / -1; justify-self: end; margin-bottom: 14px; }

/* Onglets numérotés comme dans le RCPP */
.rcpp-nav { position: sticky; top: 14px; display: flex; flex-direction: column; gap: 2px; }
.rcpp-nav a { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 6px; color: var(--ink-2); font-size: 14px; }
.rcpp-nav a:hover { background: var(--ground); text-decoration: none; color: var(--ink); }
.rcpp-nav a.is-active { background: var(--stamp-tint); color: var(--stamp-dark); font-weight: 600; }
.rcpp-tab-title { flex: 1; }
.rcpp-num { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 5px; border-radius: 11px; background: var(--ground); color: var(--ink-2); font-size: 12px; font-weight: 600; }
.rcpp-nav a.is-active .rcpp-num, .panel-head .rcpp-num { background: var(--stamp); color: #fff; }
.rcpp-missing-count { font-size: 11px; font-weight: 600; min-width: 18px; text-align: center; padding: 0 6px; border-radius: 9px; background: var(--warning-tint); color: var(--warning); }
.rcpp-note { font-size: 12px; margin-top: 10px; }
.panel-head h2 { display: flex; align-items: center; gap: 8px; }

/* Étapes (menu de gauche du RCPP) */
.rcpp-stepnav { display: flex; flex-wrap: wrap; gap: 6px; border-bottom: 1px solid var(--line-2); padding-top: 10px; padding-bottom: 10px; }
.rcpp-stepnav a { font-size: 13px; padding: 3px 10px; border: 1px solid var(--line); border-radius: 14px; color: var(--ink-2); }
.rcpp-stepnav a:hover { border-color: var(--stamp); color: var(--stamp-dark); text-decoration: none; }
.rcpp-step { padding-bottom: 8px; margin-bottom: 18px; border-bottom: 1px solid var(--line-2); scroll-margin-top: 14px; }
.rcpp-step:last-child { border-bottom: 0; margin-bottom: 0; }
.rcpp-step-title { font-size: 16px; margin: 0 0 4px; }
.rcpp-step-help { color: var(--ink-3); font-size: 13px; margin: 0 0 12px; }
.rcpp-heading { font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-3); margin: 18px 0 8px; }

/* Questions */
.rcpp-q { padding: 10px 0 14px; border-bottom: 1px dashed var(--line-2); }
.rcpp-q:last-child { border-bottom: 0; }
.rcpp-q.is-missing .rcpp-q-label { color: var(--warning); }
.rcpp-q-label { font-weight: 600; font-size: 14px; margin-bottom: 6px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.rcpp-star { color: var(--danger); }
.rcpp-q-answer { display: flex; align-items: flex-start; gap: 6px; }
.rcpp-value { white-space: pre-wrap; background: var(--ground); border-radius: 6px; padding: 5px 9px; }
.rcpp-choices { display: flex; flex-wrap: wrap; gap: 6px; }
.rcpp-choice { font-size: 13px; padding: 3px 12px; border: 1px solid var(--line); border-radius: 14px; color: var(--ink-3); background: var(--paper); }
.rcpp-choice::before { content: ""; display: inline-block; width: 9px; height: 9px; margin-right: 6px; border: 1.5px solid var(--line); border-radius: 50%; vertical-align: 0; }
.rcpp-choice.is-selected { border-color: var(--stamp); color: var(--stamp-dark); background: var(--stamp-tint); font-weight: 600; }
.rcpp-choice.is-selected::before { background: var(--stamp); border-color: var(--stamp); }
.rcpp-text { white-space: pre-wrap; background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 10px 12px; line-height: 1.5; }
.rcpp-q-tools { display: flex; align-items: center; gap: 10px; margin-top: 6px; }
.rcpp-counter { font-size: 12px; color: var(--ink-3); margin-top: 4px; }
.rcpp-counter.is-over { color: var(--danger); font-weight: 600; }
.rcpp-source { font-size: 12px; color: var(--ink-3); margin: 6px 0 0; }
.rcpp-help { font-size: 12px; color: var(--ink-3); margin: 4px 0 0; font-style: italic; }
.rcpp-info { font-size: 13px; }
.rcpp-answer { font-weight: 600; }
.rcpp-answer.is-missing { font-weight: 400; color: var(--warning); font-style: italic; }
.rcpp-reset { margin-top: 6px; }
.rcpp-legacy { margin-top: 18px; border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px; }
.rcpp-legacy summary { cursor: pointer; font-weight: 600; }

/* Tableaux */
.rcpp-table td, .rcpp-table th { vertical-align: top; }
.rcpp-table td.nw { white-space: nowrap; }
.rcpp-table { font-size: 14px; }
.rcpp-table th, .rcpp-table td { padding-left: 8px; padding-right: 8px; }
.copy-chip { margin-left: 4px; font-size: 11px; padding: 0 5px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); color: var(--ink-3); cursor: pointer; }
.copy-chip:hover, .copy-chip:focus-visible { color: var(--stamp-dark); border-color: var(--stamp); }

/* Comptabilité */
.rcpp-compta-mode { font-size: 13px; color: var(--ink-2); margin: 0 0 8px; }
.rcpp-compta-table thead th { white-space: nowrap; }
.rcpp-compta-table tbody th { font-weight: 600; text-align: left; width: 28%; color: var(--ink); }
.rcpp-compta-table tr.rcpp-line-start > * { border-top: 1px solid var(--line); }
.rcpp-compta-table tr.rcpp-line-empty th { font-weight: 400; color: var(--ink-2); }
.rcpp-compta-table tr.rcpp-line-total td { font-size: 13px; color: var(--ink-3); font-style: italic; }
.rcpp-compta-table tfoot th, .rcpp-compta-table tfoot td { font-weight: 700; border-top: 2px solid var(--line); text-align: right; }
.rcpp-compta-table tfoot th { text-align: right; }
.rcpp-item-source { display: block; font-size: 11.5px; color: var(--ink-3); margin-top: 2px; }

/* Formulaire de réponses */
.rcpp-form .field > div[id] { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.rcpp-form .field > div[id] > div { display: inline-flex; }
.rcpp-form .field > div[id] label { font-weight: 400; display: inline-flex; align-items: center; gap: 6px; }

.rcpp-pager { display: flex; justify-content: space-between; border-top: 1px solid var(--line-2); }
.rcpp-steps { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.rcpp-checks .notice:last-child { margin-bottom: 0; }
.rcpp-late { color: var(--danger); }
.rcpp-outside { position: relative; }
.rcpp-outside summary { list-style: none; }
.rcpp-outside summary::-webkit-details-marker { display: none; }
.rcpp-outside form { position: absolute; right: 0; top: 110%; z-index: 5; display: flex; flex-direction: column; gap: 8px; padding: 12px; background: var(--paper); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 6px 18px rgba(30, 35, 41, .12); min-width: 210px; text-align: left; }
@media (max-width: 1100px) {
  .rcpp-layout, .rcpp-band { grid-template-columns: minmax(0, 1fr); }
  .rcpp-nav { position: static; flex-direction: row; flex-wrap: wrap; }
  .rcpp-note { flex-basis: 100%; }
}
