/* Rapport — onglet « Règles analysées ». */

.rr-share { position: relative; }
.rr-share .btn-outline { height: 32px; border-color: transparent; background: var(--accent-tint); }
.rr-share .btn-outline svg:last-child { width: 14px; height: 14px; }
.rr-share .rf-menu { min-width: 290px; }

.rr-org { display: flex; align-items: center; gap: 10px; font-size: var(--text-sm); color: var(--fg-strong); }
.rr-org__opts { display: flex; gap: 8px; }
.rr-pill {
  height: 32px; padding: 0 12px; border: 1px solid var(--border-default); border-radius: var(--radius-lg);
  background: var(--bg-surface); font: 500 var(--text-sm)/1 var(--font-sans); color: var(--fg-strong); cursor: pointer;
  transition: background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
.rr-pill:hover { border-color: var(--border-strong); }
.rr-pill.is-on { background: var(--accent); border-color: var(--accent); color: var(--fg-on-accent); }
.rr-org .rules-count { margin-left: auto; }

.rr-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 20px; align-items: start; }

/* Filtres */
.rr-side {
  position: sticky; top: calc(var(--header-h) + 16px); max-height: calc(100vh - var(--header-h) - 32px); overflow-y: auto;
  padding: 16px 6px 12px; border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); background: var(--bg-surface);
}
.rr-side__title { display: block; padding: 0 10px 12px; font-size: var(--text-xs); color: var(--fg-strong); }
.rr-search { width: auto; margin: 0 10px 8px; background: var(--accent-tint); }
.rr-facet summary { display: flex; align-items: center; gap: 8px; padding: 12px 10px 8px; cursor: pointer; border-radius: var(--radius-sm);
  font: 500 var(--text-xs)/1 var(--font-sans); letter-spacing: var(--tracking-wide); text-transform: uppercase; color: var(--gray-700); }
.rr-facet summary .chev { width: 14px; height: 14px; transition: transform var(--dur-fast) var(--ease-out); }
.rr-facet summary .line { flex: 1; height: 1px; background: var(--border-subtle); }
.rr-opt { padding: 6px 10px; }
.rr-opt span { flex: 1; font-size: var(--text-sm); color: var(--fg-strong); }
.rr-facet-ico { width: 14px; height: 14px; stroke-width: 1.6; color: var(--fg-strong); }
.rr-reset { display: block; margin: 10px 10px 0; font-size: var(--text-xs); }

/* Groupes */
.rr-list { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.rr-group { display: flex; flex-direction: column; gap: 10px; }
.rr-ghead { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 0 20px; border-bottom: 1px solid var(--border-subtle); }
.rr-ghead__label { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: var(--text-sm); color: var(--fg-strong); white-space: nowrap; }
.rr-ghead__label b { font: 500 var(--text-lg)/1.2 var(--font-sans); overflow: hidden; text-overflow: ellipsis; }
.rr-ghead__label .sep { color: var(--fg-subtle); }
.rr-gico { width: 16px; height: 16px; stroke-width: 1.6; color: var(--gray-600); flex: none; }
.rr-ghead .line { flex: 1; height: 1px; background: var(--border-subtle); min-width: 20px; }
.rr-ghead__meta { display: flex; align-items: center; gap: 12px; font-size: var(--text-xs); color: var(--fg-muted); white-space: nowrap; }
.rr-ghead__meta b { font: 500 var(--text-md)/1 var(--font-sans); color: var(--fg-strong); }
.rr-ghead__meta > span + span { padding-left: 12px; border-left: 1px solid var(--border-subtle); }
.rr-ghead__meta .rr-cnt + .rr-cnt { padding-left: 0; border-left: 0; }
.rr-crit, .rr-cnt { display: inline-flex; align-items: center; gap: 4px; font-weight: 500; }
.rr-crit { color: var(--status-nonconform-fg); cursor: default; }
.rr-crit svg { width: 14px; height: 14px; stroke-width: 1.8; }

.rr-sub { border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); overflow: hidden; background: var(--bg-surface); }
.rr-sub__head { padding: 12px 20px; font-size: var(--text-md); color: var(--fg-strong); }
.rr-sub--nonconform { border-color: var(--status-nonconform-border); }
.rr-sub--nonconform > .rr-sub__head { background: var(--status-nonconform-bg); }
.rr-sub--uncertain { border-color: var(--status-uncertain-border); }
.rr-sub--uncertain > .rr-sub__head { background: var(--status-uncertain-bg); }
.rr-sub--conform > .rr-sub__head { background: var(--status-conform-bg); }
.rr-sub--neutral > .rr-sub__head { background: var(--status-neutral-bg); }
.rr-sub__body.is-compact { padding: 0 20px; }

/* Carte règle */
.rr-card { padding: 16px 20px 14px; border-top: 1px solid var(--border-subtle); background: var(--bg-surface); }
.rr-sub > .rr-card:first-child, .rr-sub__head + .rr-sub__body > .rr-card:first-child { border-top: 0; }
.rr-card__top { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.rr-vsep { width: 1px; height: 12px; background: var(--border-default); }
.rr-crit-ico { display: inline-flex; color: var(--status-nonconform-fg); cursor: default; }
.rr-crit-ico svg { width: 16px; height: 16px; stroke-width: 1.8; }
.rr-status { display: inline-flex; align-items: center; gap: 5px; font: 500 var(--text-xs)/1.2 var(--font-sans); white-space: nowrap; }
.rr-status .rf-dot { width: 6px; height: 6px; border-radius: 50%; }
.rr-src { margin-left: auto; font-size: var(--text-xs); color: var(--gray-700); }
.rr-card h4 { margin: 0 0 4px; font: 500 var(--text-md)/1.35 var(--font-sans); color: var(--fg-strong); }
.rr-card p.clamp2 { margin: 0; font-size: var(--text-sm); line-height: 1.5; color: var(--fg-body); }
.rr-analysis { display: flex; align-items: center; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--border-subtle); font-size: var(--text-sm); color: var(--fg-muted); }
.rr-analysis b { font-weight: 500; color: var(--fg-strong); }
.rr-analysis i { width: 3px; height: 3px; border-radius: 50%; background: var(--fg-muted); }
.rr-analysis__k { font-size: var(--text-sm); color: var(--fg-strong); }
.rr-card .rule-comment { margin-top: 10px; }
.rr-card__foot { display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.rr-ibtn { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: 0; border-radius: 50%; background: var(--bg-raised); color: var(--fg-strong); cursor: pointer; }
.rr-ibtn:hover, .rr-ibtn.is-on { background: var(--accent-tint); color: var(--accent); }
.rr-ibtn svg { width: 16px; height: 16px; stroke-width: 1.7; }

.rr-row { display: flex; align-items: center; gap: 10px; min-height: 46px; border-bottom: 1px solid var(--border-subtle); }
.rr-row:last-child { border-bottom: 0; }
.rr-row b { font: 500 var(--text-md)/1.3 var(--font-sans); color: var(--fg-strong); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Contre-analyse client */
.rr-card.is-edited .rr-freeda { opacity: .6; }
.rr-client { margin-bottom: 14px; padding: 12px 14px; border: 1px solid var(--accent-border); border-radius: var(--radius); background: var(--accent-tint); }
.rr-client__head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.rr-client p { margin: 8px 0 0; font-size: var(--text-sm); color: var(--fg-strong); }
.rr-tag { padding: 2px 8px; border-radius: var(--radius-sm); background: var(--bg-inset); font: 500 var(--text-2xs)/1.4 var(--font-sans); letter-spacing: var(--tracking-wide); color: var(--fg-muted); }
.rr-tag--client { background: var(--accent); color: var(--fg-on-accent); }
.rr-by { font-size: var(--text-xs); color: var(--fg-muted); }
.rr-link { margin-left: auto; border: 0; background: none; padding: 0; font: 500 var(--text-xs)/1 var(--font-sans); color: var(--accent); cursor: pointer; }
.rr-link:hover { text-decoration: underline; text-underline-offset: 3px; }

.rr-form { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; padding: 14px; border: 1px solid var(--border-default); border-radius: var(--radius); background: var(--bg-raised); }
.rr-label { font: 500 var(--text-xs)/1.2 var(--font-sans); color: var(--fg-strong); }
.rr-form textarea {
  width: 100%; resize: vertical; padding: 8px 10px; border: 1px solid var(--border-input); border-radius: var(--radius-sm);
  background: var(--bg-surface); font: 400 var(--text-sm)/1.5 var(--font-sans); color: var(--fg-strong);
}
.rr-form textarea:focus { outline: 0; border-color: var(--accent); box-shadow: var(--focus-ring); }
.rr-seg { display: flex; gap: 6px; }
.rr-seg__opt { position: relative; }
.rr-seg__opt input { position: absolute; opacity: 0; }
.rr-seg__opt span { display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border: 1px solid var(--border-default); border-radius: var(--radius-sm); background: var(--bg-surface); font: 500 var(--text-xs)/1 var(--font-sans); color: var(--fg-body); cursor: pointer; }
.rr-seg__opt input:focus-visible + span { box-shadow: var(--focus-ring); }
.rr-seg__opt--conform input:checked + span { color: var(--status-conform-fg); background: var(--status-conform-bg); border-color: var(--status-conform-border); }
.rr-seg__opt--uncertain input:checked + span { color: var(--status-uncertain-fg); background: var(--status-uncertain-bg); border-color: var(--status-uncertain-border); }
.rr-seg__opt--nonconform input:checked + span { color: var(--status-nonconform-fg); background: var(--status-nonconform-bg); border-color: var(--status-nonconform-border); }
.rr-seg__opt--neutral input:checked + span { color: var(--status-neutral-fg); background: var(--status-neutral-bg); border-color: var(--status-neutral-border); }
.rr-hint { display: flex; align-items: center; gap: 6px; margin: 0; font-size: var(--text-xs); color: var(--fg-muted); }
.rr-hint svg { width: 13px; height: 13px; flex: none; }
.rr-form__foot { display: flex; justify-content: flex-end; gap: 8px; }
.rr-form .btn-outline { height: 32px; }
.btn-primary--sm { height: 32px; padding: 0 14px; font-size: var(--text-sm); }
.rr-card .rule-comment p { margin: 0 0 2px; }


/* ── Détail de règle (styles rm-*, réutilisés par Plans & documents) ─────────────────────────────────────────────────────── */
body.has-modal { overflow: hidden; }
.rm-backdrop {
  position: fixed; inset: 0; z-index: var(--z-modal); display: flex; align-items: center; justify-content: center;
  padding: 24px; background: var(--bg-backdrop); animation: enter-fade var(--dur) var(--ease-out) both;
}
.rm {
  display: flex; flex-direction: column; width: min(1160px, 100%); max-height: min(86vh, 900px); overflow: hidden;
  background: var(--bg-surface); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg);
  animation: enter-up var(--dur) var(--ease-out) both;
}
.rm-head { flex: none; padding: 16px 20px 6px; border-bottom: 1px solid var(--border-subtle); }
.rm-head__row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.rm-tags { display: flex; align-items: center; gap: 10px; }
.rm-crit { display: inline-flex; align-items: center; gap: 5px; font-size: var(--text-sm); color: var(--status-nonconform-fg); }
.rm-crit svg { width: 16px; height: 16px; stroke-width: 1.8; }
.badge-soft--uncertain { color: var(--status-uncertain-fg); background: var(--status-uncertain-bg); border-color: var(--status-uncertain-border); }
.badge-soft--neutral { color: var(--status-neutral-fg); background: var(--status-neutral-bg); border-color: var(--status-neutral-border); }
.rm-actions { display: flex; gap: 10px; }
.rm-btn {
  display: inline-flex; align-items: center; gap: 5px; height: 36px; padding: 0 10px; border: 0; border-radius: var(--radius-lg);
  background: var(--accent-tint); box-shadow: var(--shadow-sm), 0 0 0 1px var(--accent-border);
  font: 500 var(--text-sm)/1 var(--font-sans); color: var(--gray-900); cursor: pointer;
}
.rm-btn:hover { background: var(--accent-subtle); }
.rm-btn svg { width: 18px; height: 18px; stroke-width: 1.7; }
.rm-btn--icon { width: 36px; justify-content: center; padding: 0; }
.rm-path { display: flex; align-items: center; gap: 4px; margin: 6px 0 4px; font-size: var(--text-xs); color: var(--gray-700); }
.rm-path svg { width: 12px; height: 12px; }
.rm-path b { font-weight: 500; color: var(--fg-strong); }
.rm-title { margin: 0; font: 500 var(--text-md)/1.35 var(--font-sans); color: var(--fg-strong); }
.rm-count { margin: 6px 0 0; font-size: var(--text-xs); color: var(--gray-700); }
.rm-count b { font: 500 var(--text-sm)/1 var(--font-sans); color: var(--fg-strong); margin-left: 6px; }
.rm-count b:first-child { margin-left: 0; }
.rm-info { margin-top: 8px; }
.rm-info summary { display: inline-flex; align-items: center; gap: 5px; padding: 6px 0; font: 500 var(--text-xs)/1 var(--font-sans); color: var(--gray-700); cursor: pointer; }
.rm-info summary .chev { width: 14px; height: 14px; transition: transform var(--dur-fast) var(--ease-out); }
.rm-info dl { margin: 2px 0 8px; display: grid; gap: 2px; font-size: var(--text-xs); }
.rm-info dt { color: var(--gray-700); margin-top: 6px; }
.rm-info dd { margin: 0; font-weight: 500; line-height: 1.5; color: var(--fg-strong); max-width: 1080px; }

.rm-body { flex: 1; min-height: 0; display: grid; grid-template-columns: 325px 1fr; }
.rm-list { display: flex; flex-direction: column; gap: 6px; padding: 10px 20px 16px; overflow-y: auto; border-right: 1px solid var(--border-subtle); }
.rm-hist { position: relative; }
.rm-hist__btn {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 7px 8px; border: 0; border-radius: var(--radius);
  background: var(--bg-raised); box-shadow: var(--shadow-sm), 0 0 0 1px var(--accent-border);
  font: 500 var(--text-sm)/1 var(--font-sans); color: var(--fg-strong); cursor: pointer;
}
.rm-hist__btn span { flex: 1; text-align: left; }
.rm-hist__btn svg { width: 14px; height: 14px; stroke-width: 1.8; }
.rm-hist-menu { left: 0; right: 0; min-width: 0; }
.rm-hist-menu em { font-style: normal; font-size: var(--text-xs); color: var(--fg-muted); }
.rm-hist-menu .rf-dot { border-radius: 50%; width: 7px; height: 7px; }
.rm-list__count { margin: 2px 0; font-size: var(--text-xs); color: var(--gray-700); }
.rm-list__count b { font: 500 var(--text-sm)/1 var(--font-sans); color: var(--fg-strong); }
.rm-back { display: inline-flex; align-items: center; gap: 4px; margin: 0 0 4px; }
.rm-back svg { width: 13px; height: 13px; }
.rm-eval {
  display: flex; flex-direction: column; gap: 6px; width: 100%; padding: 10px; text-align: left; font: inherit;
  border: 1px solid; border-radius: var(--radius-md); background: var(--bg-surface); cursor: pointer;
  transition: background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
.rm-eval--nonconform { border-color: var(--status-nonconform-bg); }
.rm-eval--uncertain { border-color: var(--status-uncertain-bg); }
.rm-eval--conform { border-color: var(--status-conform-bg); }
.rm-eval--neutral { border-color: var(--status-neutral-border); }
.rm-eval:hover { background: var(--bg-raised); }
.rm-eval.is-sel { background: var(--gray-100); }
.rm-eval--nonconform.is-sel { border-color: var(--status-nonconform); }
.rm-eval--uncertain.is-sel { border-color: var(--status-uncertain); }
.rm-eval--conform.is-sel { border-color: var(--status-conform); }
.rm-eval--neutral.is-sel { border-color: var(--status-neutral); }
.rm-eval .rr-status .rf-dot, .rm-focus .rr-status .rf-dot { border-radius: 50%; }
.rm-eval__text { font-size: var(--text-sm); line-height: 1.45; color: var(--fg-strong); }
.rm-eval__foot { display: flex; align-items: center; justify-content: space-between; padding-top: 6px; border-top: 1px solid var(--gray-100); font-size: var(--text-xs); color: var(--fg-strong); }
.rm-eval__foot b { font-weight: 500; }
.rm-eval__foot svg { width: 14px; height: 14px; }

.rm-focus { display: flex; flex-direction: column; min-width: 0; overflow-y: auto; }
.rm-focus__head { display: flex; flex-direction: column; gap: 6px; padding: 12px 20px; }
.rm-focus__head p { margin: 0; font: 500 var(--text-xs)/1.5 var(--font-sans); color: var(--fg-strong); }
.rm-obs { flex: 1; display: flex; flex-direction: column; gap: 6px; padding: 10px 20px 20px; background: var(--bg-raised); }
.rm-doc { display: flex; align-items: center; gap: 6px; padding: 6px 10px; font: 500 var(--text-xs)/1.3 var(--font-sans); color: var(--fg-strong); }
.rm-doc > svg { width: 14px; height: 14px; stroke-width: 1.6; }
.rm-doc span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rm-open { display: inline-flex; align-items: center; gap: 5px; padding: 8px; border-radius: var(--radius-lg); font: 500 var(--text-sm)/1 var(--font-sans); color: var(--accent); }
.rm-open:hover { background: var(--accent-tint); }
.rm-open svg { width: 16px; height: 16px; }
.rm-ob { display: flex; align-items: center; gap: 8px; padding: 10px; border-radius: var(--radius); background: var(--bg-surface); }
.rm-ob p { flex: 1; margin: 0; font: 500 var(--text-xs)/1.45 var(--font-sans); color: var(--fg-strong); }
.rm-ob img { flex: none; width: 196px; height: 98px; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid var(--border-subtle); }
.rm-num { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 10px; font: 500 var(--text-xs)/1 var(--font-sans); }
.rm-num--nonconform { color: var(--status-nonconform-fg); background: var(--status-nonconform-bg); }
.rm-num--uncertain { color: var(--status-uncertain-fg); background: var(--status-uncertain-bg); }
.rm-num--conform { color: var(--status-conform-fg); background: var(--status-conform-bg); }
.rm-num--neutral { color: var(--status-neutral-fg); background: var(--status-neutral-bg); }
.rm-none { margin: 20px 0; font-size: var(--text-sm); color: var(--fg-muted); }

/* Section épinglée : points critiques */
.rr-org { flex-wrap: wrap; row-gap: 8px; }
.rr-org__sep { width: 1px; height: 20px; background: var(--border-subtle); margin: 0 4px; }
.rr-pill em { margin-left: 6px; font-style: normal; font-size: var(--text-xs); opacity: .75; }
.rr-pin { display: flex; flex-direction: column; gap: 10px; }
.rr-pin__head { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 4px; }
.rr-pin__head b { font: 500 var(--text-lg)/1.2 var(--font-sans); color: var(--fg-strong); }
.rr-pin__head .pj-muted { font-size: var(--text-sm); }
.rr-pin__empty { margin: 0; padding: 14px 20px; border: 1px dashed var(--border-default); border-radius: var(--radius-lg); font-size: var(--text-sm); color: var(--fg-muted); }
.rr-sub--pin { border-color: var(--border-default); }
.rr-card__top .flag { margin-left: 2px; }
.rr-others { display: flex; align-items: baseline; gap: 10px; padding: 18px 4px 0; border-top: 1px solid var(--border-default); }
.rr-others h3 { margin: 0; font: 500 var(--text-lg)/1.2 var(--font-sans); color: var(--fg-strong); }

/* Règle ciblée par un lien direct (?open=) */
.rr-card, .rr-row { transition: box-shadow .4s var(--ease-out), background .4s var(--ease-out); }
.rr-card.is-target { box-shadow: 0 0 0 2px var(--accent); }
.rr-row.is-target { background: var(--accent-tint); }
.rm-tags .flag { margin-left: 2px; }

/* Détail inline : évaluations empilées, extraits de plan en grand */
.rr-evs { display: flex; flex-direction: column; gap: 12px; margin-top: 14px; }
.rr-ev { display: flex; flex-direction: column; gap: 10px; min-width: 0; padding: 14px 16px 16px; border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); background: var(--bg-raised); }
.rr-ev__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.rr-ev__n { font-size: var(--text-xs); color: var(--fg-muted); }
.rr-ev__text { margin: 0; font-size: var(--text-sm); line-height: 1.5; color: var(--fg-strong); }
.rr-ev__none { margin: 0; font-size: var(--text-xs); color: var(--fg-muted); }
.rr-ev__doc { display: flex; flex-direction: column; gap: 8px; margin-top: 2px; }
.rr-ev__docname { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; max-width: 100%; font: 500 var(--text-sm)/1.3 var(--font-sans); color: var(--fg-strong); }
.rr-ev__docname span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.rr-ev__docname svg { flex: none; width: 15px; height: 15px; color: var(--fg-muted); }
.rr-ev__docname:hover { color: var(--accent); }
.rr-obs { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.rr-ob { display: flex; flex-direction: column; height: 100%; border: 1px solid var(--border-subtle); border-radius: var(--radius); background: var(--bg-surface); color: var(--fg-body); overflow: hidden; transition: border-color .15s, box-shadow .15s; }
.rr-ob:hover { border-color: var(--accent-border); box-shadow: var(--shadow-sm); }
.rr-ob:hover .rr-ob__text { color: var(--accent); }
.rr-ob.is-on { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.rr-ob__crop { display: block; height: 150px; border-bottom: 1px solid var(--border-subtle); background-size: 380%; background-repeat: no-repeat; background-color: var(--bg-surface); }
.rr-ob__cap { display: flex; align-items: flex-start; gap: 8px; padding: 10px 12px 12px; }
.rr-ob .rm-num { width: 20px; height: 20px; font-size: var(--text-2xs); }
.rr-ob__text { font-size: var(--text-sm); line-height: 1.45; }

/* Document ouvert dans l'onglet : visionneuse + règle à droite */
.rr-focus { display: grid; grid-template-columns: minmax(0, 1fr) 460px; grid-template-rows: auto minmax(0, 1fr); height: calc(100vh - 88px); min-height: 620px; border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); overflow: hidden; background: var(--bg-raised); }
.rr-focus[hidden] { display: none; }
.rr-fview { min-width: 0; border-right: 1px solid var(--border-subtle); }
.rr-fview .dv-vbar .dv-back { flex: none; }
.rr-fdocs { display: flex; gap: 6px; padding: 8px 12px; overflow-x: auto; border-bottom: 1px solid var(--border-subtle); background: var(--bg-surface); }
.rr-fdoc { flex: none; max-width: 240px; height: 28px; padding: 0 10px; border: 1px solid var(--border-subtle); border-radius: var(--radius-full); background: var(--bg-surface); font: 400 var(--text-xs)/1 var(--font-sans); color: var(--fg-body); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; cursor: pointer; }
.rr-fdoc:hover { border-color: var(--accent-border); color: var(--accent); }
.rr-fdoc.is-on { border-color: var(--accent); background: var(--accent-tint); color: var(--accent); font-weight: 500; }
.rr-fpanel { overflow-y: auto; padding: 16px; background: var(--bg-surface); }
.rr-fpanel__head { display: flex; flex-direction: column; gap: 6px; padding-bottom: 12px; border-bottom: 1px solid var(--border-subtle); }
.rr-fpanel__head .rm-path { margin: 2px 0 0; }
.rr-fpanel__head h4 { margin: 0; font: 500 var(--text-md)/1.35 var(--font-sans); color: var(--fg-strong); }
.rr-fpanel__head .rm-count { margin: 0; }
.rr-fpanel .rr-obs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rr-fpanel .rr-ob__crop { height: 110px; }
.rr-fpanel .rr-ev__doc.is-cur .rr-ev__docname { color: var(--accent); }
.rr-toggle { margin-left: auto; }
.rr-row { cursor: pointer; }
.rr-row:hover b { color: var(--accent); }
.rr-row__more { display: inline-flex; align-items: center; gap: 4px; margin-left: auto; flex: none; font: 500 var(--text-xs)/1 var(--font-sans); color: var(--accent); }
.rr-row__more svg { width: 14px; height: 14px; }

/* Modifier / commenter au niveau du nom de la règle */
.rr-card__title { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.rr-card__title h4 { flex: 1; min-width: 0; }
.rr-card__acts { display: inline-flex; gap: 6px; flex: none; margin-top: -4px; }
.rr-card__foot:has(> .rr-toggle:only-child) { justify-content: flex-end; }

/* Transitions : liste ↔ document, observation ↔ observation */
::view-transition-group(rr-shot) { animation-duration: .45s; animation-timing-function: cubic-bezier(.2, .8, .2, 1); }
::view-transition-old(rr-shot), ::view-transition-new(rr-shot) { height: 100%; object-fit: cover; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .3s; animation-timing-function: cubic-bezier(.2, .8, .2, 1); }
@supports not (view-transition-name: none) {
  .rr-focus:not([hidden]) { animation: rr-in .3s cubic-bezier(.2, .8, .2, 1) both; }
  .rr-focus:not([hidden]) .rr-fpanel { animation: rr-slide .35s cubic-bezier(.2, .8, .2, 1) both; }
}
@keyframes rr-in { from { opacity: 0; } }
@keyframes rr-slide { from { opacity: 0; transform: translateX(16px); } }
.dv-pin.is-pulse { animation: rr-pulse .9s cubic-bezier(.2, .8, .2, 1); }
@keyframes rr-pulse { 0% { box-shadow: 0 0 0 2px var(--bg-surface), 0 0 0 0 var(--accent-border); } 60% { box-shadow: 0 0 0 2px var(--bg-surface), 0 0 0 14px transparent; } }
.rr-fpanel .rr-ob, .rr-fdoc, .dv-pin { transition: border-color .2s, box-shadow .2s, background .2s, color .2s, transform .2s; }
.rr-ob.is-back { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); transition: border-color 1s .4s, box-shadow 1s .4s; }
.rr-fview .dv-stage { scroll-behavior: auto; }
@media (prefers-reduced-motion: reduce) { .dv-pin.is-pulse { animation: none; } }

/* Bandeau de la règle en haut de la vue document */
.rr-fhead { grid-column: 1 / -1; display: flex; align-items: center; gap: 12px; min-width: 0; padding: 10px 16px; border-bottom: 1px solid var(--border-subtle); background: var(--bg-surface); }
.rr-fhead__tags { display: inline-flex; align-items: center; gap: 8px; flex: none; }
.rr-fhead__title { display: flex; align-items: baseline; gap: 10px; min-width: 0; flex: 1; }
.rr-fhead__title h3 { margin: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font: 500 var(--text-md)/1.3 var(--font-sans); color: var(--fg-strong); }
.rr-fhead__title small { flex: none; font-size: var(--text-xs); color: var(--fg-muted); }
.rr-fhead .rr-card__acts { margin-top: 0; }
.rr-fpanel__head { padding-bottom: 12px; }
.rr-org__share { margin-left: auto; }

/* Zones du plan (tag de règle) */
.rr-zones { display: inline-flex; flex-wrap: wrap; gap: 4px; margin-left: 4px; }
.rr-zone { display: inline-flex; align-items: center; gap: 3px; height: 20px; padding: 0 7px; border-radius: var(--radius-full); background: var(--bg-raised); font-size: var(--text-xs); color: var(--fg-body); }
.rr-zone svg { width: 11px; height: 11px; color: var(--fg-muted); }

/* Statuts épurés (suite) */
.badge-soft--uncertain { color: var(--status-uncertain-fg); background: none; }
.badge-soft--neutral { color: var(--status-neutral-fg); background: none; }
.rr-sub, .rr-sub--nonconform, .rr-sub--uncertain { border-color: var(--border-subtle); }
.rr-sub > .rr-sub__head, .rr-sub--nonconform > .rr-sub__head, .rr-sub--uncertain > .rr-sub__head, .rr-sub--conform > .rr-sub__head, .rr-sub--neutral > .rr-sub__head {
  display: flex; align-items: center; gap: 8px; background: var(--bg-raised); border-bottom: 1px solid var(--border-subtle); }
.rr-sub--nonconform > .rr-sub__head::before, .rr-sub--uncertain > .rr-sub__head::before, .rr-sub--conform > .rr-sub__head::before, .rr-sub--neutral > .rr-sub__head::before {
  content: ''; width: 8px; height: 8px; border-radius: 50%; }
.rr-sub--nonconform > .rr-sub__head::before { background: var(--status-nonconform); }
.rr-sub--uncertain > .rr-sub__head::before { background: var(--status-uncertain); }
.rr-sub--conform > .rr-sub__head::before { background: var(--status-conform); }
.rr-sub--neutral > .rr-sub__head::before { background: var(--status-neutral); }
.rm-num--nonconform, .rm-num--uncertain, .rm-num--conform, .rm-num--neutral { background: var(--bg-surface); box-shadow: inset 0 0 0 1px var(--border-default); }
.rr-seg__opt--conform input:checked + span, .rr-seg__opt--uncertain input:checked + span, .rr-seg__opt--nonconform input:checked + span, .rr-seg__opt--neutral input:checked + span { background: var(--bg-surface); border-color: currentColor; }
.rr-analysis .rr-toggle { margin-left: auto; }

/* Mode sélection (export ciblé) */
.rr-pick { display: inline-flex; align-items: center; margin-right: 2px; cursor: pointer; }
.rr-pick input { position: absolute; opacity: 0; pointer-events: none; }
.rr-pick .rf-box { width: 18px; height: 18px; }
.rr-pick input:focus-visible + .rf-box { box-shadow: 0 0 0 2px var(--accent); }
.rr-card.is-picked, .rr-row.is-picked { background: color-mix(in srgb, var(--accent-tint) 55%, var(--bg-surface)); }
.rr-selbar { position: fixed; left: 50%; bottom: 24px; z-index: 60; transform: translateX(-50%); display: flex; align-items: center; gap: 14px;
  padding: 10px 10px 10px 18px; border-radius: var(--radius-lg); background: var(--bg-surface); box-shadow: var(--shadow-md), 0 0 0 1px var(--border-default);
  font-size: var(--text-sm); color: var(--fg-strong); animation: rr-in .25s cubic-bezier(.22, 1, .36, 1); white-space: nowrap; }
.rr-selbar__n b { font-weight: 500; }
.rr-selbar__link { padding: 0; border: 0; background: none; font: 500 var(--text-sm)/1 var(--font-sans); color: var(--accent); cursor: pointer; }
.rr-selbar__link:hover { text-decoration: underline; text-underline-offset: 3px; }
.rr-selbar__sep { width: 1px; height: 22px; background: var(--border-subtle); }
.rr-selbar__fmt { display: inline-flex; padding: 2px; border-radius: var(--radius); background: var(--bg-raised); }
.rr-selbar__fmt input { position: absolute; opacity: 0; pointer-events: none; }
.rr-selbar__fmt span { display: inline-flex; align-items: center; height: 28px; padding: 0 12px; border-radius: calc(var(--radius) - 2px); font-size: var(--text-sm); color: var(--fg-muted); cursor: pointer; }
.rr-selbar__fmt input:checked + span { background: var(--bg-surface); color: var(--fg-strong); box-shadow: var(--shadow-sm); }
.rr-selbar__fmt input:focus-visible + span { box-shadow: 0 0 0 2px var(--accent); }
.rr-selbar .btn-primary[disabled] { opacity: .45; cursor: not-allowed; }
.rr-selbar .btn-primary svg { width: 15px; height: 15px; }
.rr-selbar__close { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: 0; border-radius: var(--radius); background: none; color: var(--fg-muted); cursor: pointer; }
.rr-selbar__close:hover { background: var(--bg-raised); color: var(--fg-strong); }
.rr-selbar__close svg { width: 16px; height: 16px; }
.rr-pick input:checked + .rf-box { background: var(--accent); border-color: var(--accent);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E");
  background-size: 12px; background-position: center; background-repeat: no-repeat; }

/* Tout replier / tout déplier, à droite de la barre « Organiser par » */
.rr-fold { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; height: 32px; padding: 0 12px; border: 0; border-radius: var(--radius);
  background: none; font: 500 var(--text-sm)/1 var(--font-sans); color: var(--accent); cursor: pointer; }
.rr-fold:hover { background: var(--accent-tint); }
.rr-fold svg { width: 15px; height: 15px; }

/* Titres de groupe homogènes */
.rr-ghead__label { display: flex; align-items: center; gap: 8px; }
.rr-ghead__label b { font-weight: 500; color: var(--fg-strong); }
.rr-ghead__label .trk-muted { display: inline-flex; align-items: center; gap: 4px; color: var(--fg-muted); }
.rr-ghead__label .trk-muted::before { content: '·'; margin-right: 4px; }
.rr-ghead__label .rr-gico { width: 16px; height: 16px; color: var(--fg-muted); flex: none; }
.rr-facet-ico--crit { color: var(--badge-critical); }
.rr-ob__crop--zone { position: relative; overflow: hidden; background: none; }
