/* Récompenses musicales — composants publics.
   Les couleurs se règlent via les variables CSS (surchargées par le thème). */
.rmc {
	--rmc-accent: var(--c-accent, #9b2222);
	--rmc-accent-ink: var(--c-on-accent, #fff);
	--rmc-gold: var(--c-gold, #d99a1e);
	--rmc-green: var(--c-green, #1d6b44);
	--rmc-ink: var(--c-ink, #1e1a17);
	--rmc-muted: var(--c-muted, #6b625b);
	--rmc-surface: var(--c-surface, #fff);
	--rmc-bg: var(--c-bg-soft, #f7f2ea);
	--rmc-line: var(--c-line, #e4dccf);
	--rmc-radius: 14px;
	color: var(--rmc-ink);
}
.rmc *, .rmc *::before, .rmc *::after { box-sizing: border-box; }
.rmc img { max-width: 100%; height: auto; }
.rmc h2 { margin: 1.6em 0 .6em; }
.rmc-narrow { max-width: 560px; }
.rmc-small { font-size: .875rem; color: var(--rmc-muted); }
.rmc-muted { color: var(--rmc-muted); }
.rmc-kicker { text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; font-weight: 700; color: var(--rmc-accent); margin: 0 0 .25em; }
.screen-reader-text { position: absolute !important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; overflow: hidden; }

/* Boutons */
.rmc-btn { display: inline-flex; align-items: center; justify-content: center; gap: .4em; padding: .7em 1.3em; border-radius: 999px; border: 2px solid var(--rmc-accent); background: var(--rmc-accent); color: var(--rmc-accent-ink) !important; font: inherit; font-weight: 700; text-decoration: none !important; cursor: pointer; line-height: 1.2; min-height: 44px; transition: transform .12s ease, box-shadow .12s ease; }
.rmc-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 18px -8px var(--rmc-accent); }
.rmc-btn--ghost { background: transparent; color: var(--rmc-accent) !important; }
.rmc-link { background: none; border: 0; padding: 0; color: var(--rmc-accent); text-decoration: underline; cursor: pointer; font: inherit; }
.rmc-actions { display: flex; flex-wrap: wrap; gap: .6em; }

/* Notices */
.rmc-notice { padding: .9em 1.1em; border-radius: 10px; margin: 0 0 1.2em; border-left: 4px solid var(--rmc-green); background: color-mix(in srgb, var(--rmc-green) 10%, var(--rmc-surface)); }
.rmc-notice--error { border-color: var(--rmc-accent); background: color-mix(in srgb, var(--rmc-accent) 9%, var(--rmc-surface)); }
.rmc-notice--warning { border-color: var(--rmc-gold); background: color-mix(in srgb, var(--rmc-gold) 14%, var(--rmc-surface)); }
.rmc-callout, .rmc-empty { padding: 1.3em 1.4em; border-radius: var(--rmc-radius); background: var(--rmc-bg); border: 1px solid var(--rmc-line); margin: 1em 0; }
.rmc-empty { text-align: center; color: var(--rmc-muted); }
.rmc-callout h2 { margin-top: 0; }

/* Formulaires */
.rmc-form { margin: 1em 0; }
.rmc-field { margin: 0 0 1.1em; display: flex; flex-direction: column; gap: .35em; border: 0; padding: 0; }
.rmc-field label, .rmc-field legend { font-weight: 600; }
.rmc-field small { color: var(--rmc-muted); font-size: .82rem; }
.rmc input[type=text], .rmc input[type=email], .rmc input[type=password], .rmc input[type=tel], .rmc input[type=search], .rmc input[type=url], .rmc input:not([type]), .rmc select, .rmc textarea {
	width: 100%; padding: .7em .85em; border: 1.5px solid var(--rmc-line); border-radius: 10px; font: inherit; background: var(--rmc-surface); color: var(--rmc-ink); min-height: 44px;
}
.rmc input:focus, .rmc select:focus, .rmc textarea:focus { outline: 3px solid color-mix(in srgb, var(--rmc-accent) 30%, transparent); border-color: var(--rmc-accent); }
.rmc-cols { display: grid; gap: 0 1.2em; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.rmc-checks { display: flex; flex-wrap: wrap; gap: .5em; }
.rmc-checks label { display: inline-flex; align-items: center; gap: .4em; padding: .45em .8em; border: 1.5px solid var(--rmc-line); border-radius: 999px; font-weight: 500; cursor: pointer; }
.rmc-checks label:has(input:checked) { border-color: var(--rmc-accent); background: color-mix(in srgb, var(--rmc-accent) 8%, var(--rmc-surface)); }
.rmc-private { font-size: .7rem; font-weight: 700; text-transform: uppercase; background: var(--rmc-bg); border: 1px solid var(--rmc-line); padding: .1em .45em; border-radius: 4px; color: var(--rmc-muted); }
.rmc-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.rmc-captcha input { max-width: 120px; }
.rmc-thumb { border-radius: 10px; width: 96px; height: 96px; object-fit: cover; }
.rmc-choice { border: 0; padding: 0; margin: 0 0 1.2em; display: grid; gap: .6em; grid-template-columns: 1fr 1fr; }
.rmc-choice legend { font-weight: 700; margin-bottom: .5em; }
.rmc-choice label { display: flex; gap: .6em; align-items: flex-start; padding: .9em; border: 1.5px solid var(--rmc-line); border-radius: 12px; cursor: pointer; }
.rmc-choice label:has(input:checked) { border-color: var(--rmc-accent); background: color-mix(in srgb, var(--rmc-accent) 6%, var(--rmc-surface)); }
.rmc-choice small { display: block; color: var(--rmc-muted); font-size: .8rem; }
@media (max-width: 480px) { .rmc-choice { grid-template-columns: 1fr; } }

/* Grilles et cartes artiste */
.rmc-grid { display: grid; gap: 1.1em; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.rmc-grid--cats { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.rmc-grid--compact { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); opacity: .75; }
.rmc-card { background: var(--rmc-surface); border: 1px solid var(--rmc-line); border-radius: var(--rmc-radius); overflow: hidden; display: flex; flex-direction: column; transition: transform .15s ease, box-shadow .15s ease; }
.rmc-card:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -18px rgba(0,0,0,.45); }
.rmc-card__media { display: block; aspect-ratio: 1; background: var(--rmc-bg); }
.rmc-card__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rmc-card__img--ph { display: flex; align-items: center; justify-content: center; font-size: 3rem; font-weight: 800; color: var(--rmc-accent); background: linear-gradient(135deg, color-mix(in srgb, var(--rmc-gold) 30%, var(--rmc-bg)), var(--rmc-bg)); }
.rmc-card__body { padding: .8em .9em 1em; }
.rmc-card__title { font-size: 1.02rem; margin: .2em 0 .15em; line-height: 1.25; }
.rmc-card__title a { color: inherit; text-decoration: none; }
.rmc-card__meta { margin: 0; font-size: .82rem; color: var(--rmc-muted); }
.rmc-badge { display: inline-block; font-size: .7rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; padding: .2em .6em; border-radius: 999px; background: var(--rmc-bg); color: var(--rmc-muted); }
.rmc-badge--nomine { background: color-mix(in srgb, var(--rmc-green) 14%, var(--rmc-surface)); color: var(--rmc-green); }
.rmc-badge--laureat { background: var(--rmc-gold); color: #241800; }

/* Catégories */
.rmc-cat { background: var(--rmc-surface); border: 1px solid var(--rmc-line); border-radius: var(--rmc-radius); padding: 1.2em 1.3em; display: flex; flex-direction: column; position: relative; overflow: hidden; }
.rmc-cat::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: linear-gradient(var(--rmc-accent), var(--rmc-gold)); }
.rmc-cat h3 { margin: 0 0 .3em; font-size: 1.15rem; }
.rmc-cat__genre { margin: 0 0 .6em; font-size: .8rem; font-weight: 700; color: var(--rmc-green); }
.rmc-cat p { margin: 0 0 .6em; }
.rmc-cat__foot { margin-top: auto !important; font-weight: 700; }
.rmc-cat details summary { cursor: pointer; font-weight: 600; font-size: .9rem; }
.rmc-winners { list-style: none; padding: 0; margin: .4em 0 1em; font-size: .9rem; }
.rmc-winners li { padding: .3em 0; border-bottom: 1px dashed var(--rmc-line); }
.rmc-winners span { color: var(--rmc-muted); display: block; font-size: .78rem; }

/* Édition / calendrier */
.rmc-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .8em; margin: 1em 0; }
.rmc-facts > div { background: var(--rmc-bg); border-radius: 10px; padding: .7em .9em; }
.rmc-facts dt { font-size: .75rem; color: var(--rmc-muted); text-transform: uppercase; letter-spacing: .06em; }
.rmc-facts dd { margin: .2em 0 0; font-weight: 700; }
.rmc-timeline { list-style: none; padding: 0; margin: 1em 0; display: grid; gap: 0; }
.rmc-timeline__step { position: relative; padding: 0 0 1.2em 2em; display: flex; flex-direction: column; }
.rmc-timeline__step::before { content: ""; position: absolute; left: 7px; top: 18px; bottom: 0; width: 2px; background: var(--rmc-line); }
.rmc-timeline__step:last-child::before { display: none; }
.rmc-timeline__dot { position: absolute; left: 0; top: 3px; width: 16px; height: 16px; border-radius: 50%; border: 3px solid var(--rmc-line); background: var(--rmc-surface); }
.rmc-timeline__step.is-passe .rmc-timeline__dot { background: var(--rmc-green); border-color: var(--rmc-green); }
.rmc-timeline__step.is-encours .rmc-timeline__dot { background: var(--rmc-gold); border-color: var(--rmc-gold); box-shadow: 0 0 0 5px color-mix(in srgb, var(--rmc-gold) 30%, transparent); }
.rmc-timeline__step span { color: var(--rmc-muted); font-size: .9rem; }
.rmc-timeline__step em { font-style: normal; font-size: .75rem; font-weight: 800; color: var(--rmc-accent); text-transform: uppercase; }
.rmc-pill { display: inline-flex; align-items: center; gap: .45em; padding: .35em .85em; border-radius: 999px; background: var(--rmc-bg); border: 1px solid var(--rmc-line); font-weight: 700; font-size: .85rem; }
.rmc-pill::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--rmc-muted); }
.rmc-pill.is-open::before { background: #2fbf6a; box-shadow: 0 0 0 4px rgba(47,191,106,.25); animation: rmc-pulse 1.8s infinite; }
@keyframes rmc-pulse { 50% { box-shadow: 0 0 0 7px rgba(47,191,106,0); } }
@media (prefers-reduced-motion: reduce) { .rmc-pill.is-open::before { animation: none; } .rmc-card, .rmc-btn { transition: none; } }

/* Vote */
.rmc-vote-head { margin-bottom: 1.2em; }
.rmc-rules { padding-left: 1.2em; color: var(--rmc-muted); font-size: .92rem; }
.rmc-jump { display: flex; gap: .5em; overflow-x: auto; padding: .4em 0 .8em; margin-bottom: .5em; position: sticky; top: var(--rmc-sticky, 0); background: var(--c-bg, #fff); z-index: 5; scrollbar-width: thin; }
.rmc-jump a { flex: 0 0 auto; padding: .45em .9em; border-radius: 999px; border: 1px solid var(--rmc-line); text-decoration: none; color: inherit; font-size: .85rem; font-weight: 600; white-space: nowrap; }
.rmc-ballot { background: var(--rmc-surface); border: 1px solid var(--rmc-line); border-radius: var(--rmc-radius); padding: 1.2em; margin: 0 0 1.4em; scroll-margin-top: 80px; }
.rmc-ballot h2 { margin-top: 0; }
.rmc-options { border: 0; padding: 0; margin: 0 0 1em; display: grid; gap: .7em; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.rmc-option { position: relative; cursor: pointer; }
.rmc-option input { position: absolute; opacity: 0; pointer-events: none; }
.rmc-option__inner { display: flex; flex-direction: column; align-items: center; gap: .5em; padding: .9em .6em; border: 2px solid var(--rmc-line); border-radius: 12px; text-align: center; height: 100%; transition: border-color .12s, background .12s; }
.rmc-option__inner img, .rmc-option__ph { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; }
.rmc-option__ph { display: flex; align-items: center; justify-content: center; background: var(--rmc-bg); font-weight: 800; font-size: 1.8rem; color: var(--rmc-accent); }
.rmc-option__name { font-weight: 700; line-height: 1.2; }
.rmc-option input:checked + .rmc-option__inner { border-color: var(--rmc-accent); background: color-mix(in srgb, var(--rmc-accent) 8%, var(--rmc-surface)); box-shadow: inset 0 0 0 1px var(--rmc-accent); }
.rmc-option input:focus-visible + .rmc-option__inner { outline: 3px solid var(--rmc-gold); outline-offset: 2px; }
.rmc-options:disabled .rmc-option { cursor: not-allowed; opacity: .7; }
.rmc-confirm { background: var(--rmc-bg); padding: .7em .9em; border-radius: 10px; }
.rmc-voted { padding: .8em 1em; border-radius: 10px; background: color-mix(in srgb, var(--rmc-green) 12%, var(--rmc-surface)); color: var(--rmc-green); font-weight: 700; margin-bottom: 1em; }
.rmc-voted code { background: var(--rmc-surface); padding: .1em .4em; border-radius: 4px; color: var(--rmc-ink); }
.rmc-cta-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8em; padding: 1em 1.2em; border-radius: var(--rmc-radius); background: linear-gradient(110deg, var(--rmc-accent), color-mix(in srgb, var(--rmc-accent) 60%, var(--rmc-gold))); color: #fff; font-weight: 800; font-size: 1.1rem; }
.rmc-cta-bar .rmc-btn { background: #fff; color: var(--rmc-accent) !important; border-color: #fff; }

/* Résultats */
.rmc-results { background: var(--rmc-surface); border: 1px solid var(--rmc-line); border-radius: var(--rmc-radius); padding: 1.2em 1.3em; margin: 0 0 1.2em; }
.rmc-results h2 { margin-top: 0; font-size: 1.2rem; }
.rmc-bars { list-style: none; padding: 0; margin: 0 0 .8em; display: grid; gap: .75em; }
.rmc-bar { display: grid; grid-template-columns: minmax(110px, 1fr) 2fr auto; gap: .8em; align-items: center; }
.rmc-bar__label a { color: inherit; font-weight: 600; text-decoration: none; }
.rmc-bar__track { height: 12px; border-radius: 999px; background: var(--rmc-bg); overflow: hidden; }
.rmc-bar__fill { display: block; height: 100%; border-radius: 999px; background: var(--rmc-accent); }
.rmc-bar.is-winner .rmc-bar__fill { background: linear-gradient(90deg, var(--rmc-gold), color-mix(in srgb, var(--rmc-gold) 70%, #fff)); }
.rmc-bar__pct { font-variant-numeric: tabular-nums; font-weight: 800; min-width: 4.2em; text-align: right; }
@media (max-width: 560px) { .rmc-bar { grid-template-columns: 1fr auto; } .rmc-bar__track { grid-column: 1 / -1; grid-row: 2; } }
.rmc-tag { display: inline-block; padding: .15em .55em; border-radius: 4px; font-weight: 700; font-size: .75rem; background: color-mix(in srgb, var(--rmc-gold) 25%, var(--rmc-surface)); color: #6b4700; }
.rmc-tag.is-official { background: color-mix(in srgb, var(--rmc-green) 16%, var(--rmc-surface)); color: var(--rmc-green); }

/* Registre */
.rmc-filters { display: grid; gap: .7em; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); align-items: end; padding: 1em; border-radius: var(--rmc-radius); background: var(--rmc-bg); margin-bottom: 1em; }
.rmc-filters label span { display: block; font-size: .78rem; font-weight: 700; margin-bottom: .25em; color: var(--rmc-muted); }
.rmc-pager { display: flex; gap: .35em; flex-wrap: wrap; margin: 1.5em 0; }
.rmc-pager a, .rmc-pager span { min-width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; border: 1px solid var(--rmc-line); text-decoration: none; color: inherit; }
.rmc-pager span { background: var(--rmc-accent); color: #fff; border-color: var(--rmc-accent); }

/* Profil */
.rmc-profile__head { display: grid; grid-template-columns: minmax(0, 300px) 1fr; gap: 1.5em; align-items: start; margin-bottom: 1.5em; }
.rmc-profile__img { border-radius: var(--rmc-radius); width: 100%; aspect-ratio: 1; object-fit: cover; }
@media (max-width: 640px) { .rmc-profile__head { grid-template-columns: 1fr; } }
.rmc-links { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5em; }
.rmc-links a { display: inline-block; padding: .4em .8em; border-radius: 999px; border: 1px solid var(--rmc-line); text-decoration: none; font-size: .88rem; font-weight: 600; }
.rmc-history { padding-left: 1.2em; }

/* Espace artiste */
.rmc-status-card { padding: 1.2em 1.3em; border-radius: var(--rmc-radius); border: 1px solid var(--rmc-line); background: var(--rmc-surface); margin-bottom: 1.5em; }
.rmc-status-card__title { font-weight: 700; }
.rmc-status { display: inline-block; padding: .2em .7em; border-radius: 999px; background: var(--rmc-bg); font-size: .85rem; }
.rmc-status--validee { background: color-mix(in srgb, var(--rmc-green) 15%, var(--rmc-surface)); color: var(--rmc-green); }
.rmc-status--rejetee { background: color-mix(in srgb, var(--rmc-accent) 12%, var(--rmc-surface)); color: var(--rmc-accent); }
.rmc-status--a_completer { background: color-mix(in srgb, var(--rmc-gold) 22%, var(--rmc-surface)); color: #6b4700; }
.rmc-progress { list-style: none; display: flex; padding: 0; margin: 1em 0; counter-reset: s; gap: 4px; }
.rmc-progress li { flex: 1; font-size: .75rem; text-align: center; padding-top: 10px; border-top: 5px solid var(--rmc-line); color: var(--rmc-muted); }
.rmc-progress li.is-done { border-color: var(--rmc-green); color: var(--rmc-ink); }
.rmc-progress li.is-current { border-color: var(--rmc-gold); color: var(--rmc-ink); font-weight: 700; }
.rmc-steps { padding-left: 1.3em; }
.rmc-steps li { margin: .3em 0; }

/* Compte */
.rmc-tiles { display: grid; gap: .8em; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin: 1.2em 0; }
.rmc-tile { display: flex; flex-direction: column; gap: .2em; padding: 1em; border-radius: 12px; border: 1px solid var(--rmc-line); text-decoration: none; color: inherit; background: var(--rmc-surface); }
.rmc-tile strong { color: var(--rmc-accent); }
.rmc-tile span { font-size: .82rem; color: var(--rmc-muted); }
.rmc-ok { color: var(--rmc-green); font-weight: 700; }
.rmc-warn { color: #a05a00; font-weight: 700; }

/* Partenaires / FAQ */
.rmc-logos { display: grid; gap: 1em; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.rmc-logo { display: flex; align-items: center; justify-content: center; aspect-ratio: 3/2; padding: 1em; border-radius: 12px; border: 1px solid var(--rmc-line); background: #fff; text-decoration: none; color: #333; font-weight: 700; text-align: center; }
.rmc-logo img { max-height: 80px; width: auto; object-fit: contain; }
.rmc-faq details { border-bottom: 1px solid var(--rmc-line); padding: .9em 0; }
.rmc-faq summary { cursor: pointer; font-weight: 700; list-style: none; display: flex; justify-content: space-between; gap: 1em; }
.rmc-faq summary::after { content: "+"; font-size: 1.3em; line-height: 1; color: var(--rmc-accent); }
.rmc-faq details[open] summary::after { content: "–"; }
.rmc-faq p { margin: .6em 0 0; color: var(--rmc-muted); }
.rmc-section { margin-bottom: 2em; scroll-margin-top: 80px; }
@media (max-width: 600px) {
	.rmc-grid:not(.rmc-grid--cats) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7em; }
	.rmc-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rmc-card__body { padding: .6em .7em .8em; }
}
