/* Compléments propres à rivtc, construits uniquement avec les tokens du kit MENELAS Heaume. */
html, body { margin: 0; min-height: 100%; }
body.m-root { background: var(--surface-2); }
.rv-public { min-height: 100vh; display: flex; flex-direction: column; background: var(--bg); }
.rv-public main { flex: 1; }
.rv-hero { padding: clamp(40px, 7cqi, 88px) 0 clamp(32px, 5cqi, 64px); background: var(--band); border-bottom: 1px solid var(--border); }
.rv-hero__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(28px, 5cqi, 64px); align-items: start; }
@container (max-width: 860px) { .rv-hero__grid { grid-template-columns: minmax(0, 1fr); } }
.rv-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: clamp(20px, 3cqi, 32px); display: grid; gap: 20px; }
.rv-steps { counter-reset: s; list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.rv-steps li { counter-increment: s; display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 12px; align-items: start; }
.rv-steps li::before { content: counter(s); width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--surface); border: 1px solid var(--border-strong); font: 500 14px var(--f-num); color: var(--ink); }
.rv-steps strong { display: block; color: var(--ink); font-weight: 600; }
.rv-content { padding: clamp(32px, 5cqi, 56px) 0 clamp(48px, 6cqi, 80px); }
.rv-footer { border-top: 1px solid var(--border); background: var(--surface); padding: 28px 0; font-size: 13px; color: var(--muted); }
.rv-footer .m-wrap { display: grid; gap: 6px; }
.rv-contract { display: grid; gap: 18px; }
.rv-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.rv-mono { font-family: var(--f-num); font-variant-numeric: tabular-nums; }
.rv-inline-form { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.rv-inline-form .m-control { width: min(320px, 100%); }
.rv-inline-form .m-input, .rv-inline-form .m-select { height: 38px; font-size: 14px; }
.rv-inline-form .m-select { width: auto; min-width: 160px; }
.rv-dl-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 24px; }
.rv-diff { margin: 0; padding-left: 18px; font-size: 13px; color: var(--muted); display: grid; gap: 2px; }
.rv-diff code { font-family: var(--f-num); font-size: 12px; color: var(--ink); word-break: break-word; }
.rv-dialog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.rv-dialog-grid .rv-span { grid-column: 1 / -1; }
@media (max-width: 560px) { .rv-dialog-grid { grid-template-columns: minmax(0, 1fr); } }
.m-dialog { max-height: calc(100vh - 32px); overflow: auto; }
.m-dialog.rv-wide { width: min(760px, calc(100vw - 32px)); }

/* Coquille admin : la barre latérale passe en haut sur petit écran. */
.m-app { min-height: 100vh; }
@media (max-width: 860px) {
  .m-app { grid-template-columns: minmax(0, 1fr); }
  .m-app__side { flex-direction: row; flex-wrap: wrap; align-items: center; border-right: 0; border-bottom: 1px solid var(--border); padding: 10px 12px; }
  .m-app__side img { height: 28px; margin: 0 8px 0 0; }
  .m-app__side h6, .m-app__side-foot { display: none; }
  .m-app__body { padding: 20px 16px 32px; }
  .m-app__top { padding: 0 16px; }
}
.rv-switch-state { font-size: 13px; }
.rv-empty { padding: 28px; text-align: center; color: var(--muted); }
