/* ───────────────────────────────────────────────────────────────────────────
   Avis des membres (lot N) : fiche anime (als-reviews.js), profil public.
   Jetons de als-ui.css ; aucune couleur codée en dur hors dégradés discrets.
   ─────────────────────────────────────────────────────────────────────────── */

.als-reviews { margin-bottom: 2rem; }

/* Résumé : moyenne + nombre d'avis */
.als-reviews__summary {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .75rem 1rem;
    margin-bottom: 1rem;
    min-height: 1.5rem;
}
.als-reviews__score {
    display: inline-flex;
    align-items: baseline;
    gap: .15rem;
    padding: .35rem .8rem;
    border-radius: var(--als-radius-sm);
    background: var(--als-surface-raised);
    border: 1px solid var(--als-border-soft);
}
.als-reviews__score-value { font-size: 1.75rem; font-weight: 700; color: var(--als-text-heading); line-height: 1; }
.als-reviews__score-max { color: var(--als-text-muted); font-size: .9rem; }
.als-reviews__meta { display: flex; flex-direction: column; gap: .1rem; }
.als-reviews__count { color: var(--als-text-heading); font-weight: 600; }
.als-reviews__rated { color: var(--als-text-muted); font-size: .85rem; }
.als-reviews__empty,
.als-reviews__hint { color: var(--als-text-muted); margin: 0; }

/* Appels à l'action / son avis */
.als-reviews__compose { margin-bottom: 1.25rem; }
.als-reviews__cta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    padding: .75rem 1rem;
    border-radius: var(--als-radius-sm);
    background: var(--als-surface-sunken);
    border: 1px dashed var(--als-border-soft);
    color: var(--als-text);
}
.als-reviews__cta--warn { border-style: solid; border-color: var(--als-warn-border); background: var(--als-warn-bg); }
.als-reviews__cta .als-reviews__visibility { margin: 0; }
.als-reviews__mine-title {
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--als-text-muted);
    margin: 0 0 .5rem;
}
.als-reviews__visibility { font-size: .8rem; color: var(--als-text-muted); margin: .5rem 0 0; }
.als-reviews__visibility a { color: var(--als-text-link); }
.als-reviews__visibility a:hover,
.als-reviews__visibility a:focus { color: var(--als-text-link-hover); }

/* Tri et pagination */
.als-reviews__toolbar { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; margin-bottom: .75rem; }
.als-reviews__sort-label { color: var(--als-text-muted); font-size: .85rem; }
.als-reviews__sort { width: auto; min-width: 10rem; }
.als-reviews__pager { display: flex; align-items: center; justify-content: center; gap: .75rem; margin-top: 1rem; }
.als-reviews__page { color: var(--als-text-muted); font-size: .85rem; }
.als-reviews__list { display: flex; flex-direction: column; gap: .9rem; }
.als-reviews__error { padding: 1rem; border-radius: var(--als-radius-sm); background: var(--als-err-bg); border: 1px solid var(--als-err-border); color: var(--als-text); }

/* Carte d'avis */
.als-review {
    position: relative;
    padding: 1rem 1.1rem;
    border-radius: var(--als-radius);
    background: var(--als-surface);
    border: 1px solid var(--als-border-soft);
    color: var(--als-text);
    overflow-wrap: anywhere;
}
.als-review.is-mine { border-color: var(--als-border); }
.als-review.is-hidden { border-style: dashed; opacity: .85; }
.als-review.is-target { box-shadow: 0 0 0 .2rem rgba(129, 140, 248, .45); }
.als-review__head { display: flex; align-items: center; gap: .75rem; }
.als-review__avatar { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; background: var(--als-surface-sunken); }
.als-review__who { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
.als-review__author { color: var(--als-text-heading); font-weight: 600; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
a.als-review__author:hover,
a.als-review__author:focus { text-decoration: underline; color: var(--als-text-link-hover); }
.als-review__date { color: var(--als-text-muted); font-size: .8rem; }
.als-review__rating {
    flex: 0 0 auto;
    padding: .2rem .6rem;
    border-radius: var(--als-radius-pill);
    background: var(--als-neutral-bg);
    border: 1px solid var(--als-neutral-border);
    color: var(--als-text-heading);
    font-weight: 700;
    font-size: .9rem;
}
.als-review__status {
    margin: .6rem 0 0;
    padding: .35rem .6rem;
    border-radius: var(--als-radius-xs);
    background: var(--als-warn-bg);
    border: 1px solid var(--als-warn-border);
    color: var(--als-warn);
    font-size: .8rem;
}
.als-review__title { font-size: 1rem; font-weight: 700; color: var(--als-text-heading); margin: .75rem 0 0; }

/* Texte (HTML NewsMarkdown, profil « review ») */
.als-review__body,
.als-reviews__preview { margin-top: .6rem; line-height: 1.6; font-size: .95rem; }
.als-review__body p,
.als-reviews__preview p { margin: 0 0 .6rem; }
.als-review__body > :last-child,
.als-reviews__preview > :last-child { margin-bottom: 0; }
.als-review__body ul,
.als-review__body ol,
.als-reviews__preview ul,
.als-reviews__preview ol { padding-left: 1.4rem; margin: 0 0 .6rem; }
.als-review__body blockquote,
.als-reviews__preview blockquote {
    margin: 0 0 .6rem;
    padding: .25rem .9rem;
    border-left: 3px solid var(--als-border);
    color: var(--als-text-muted);
}
.als-review__body a,
.als-reviews__preview a { color: var(--als-text-link); text-decoration: underline; }
.als-review__body a:hover,
.als-reviews__preview a:hover { color: var(--als-text-link-hover); }
.als-review .news-spoiler,
.als-reviews__preview .news-spoiler,
.mb-reviews .news-spoiler {
    border-radius: 4px;
    padding: 0 .2em;
    background: rgba(255, 255, 255, .12);
    filter: blur(5px);
    cursor: help;
    transition: filter .2s ease;
}
.als-review .news-spoiler:hover,
.als-review .news-spoiler:focus,
.als-reviews__preview .news-spoiler:hover,
.als-reviews__preview .news-spoiler:focus { filter: none; outline: none; background: rgba(255, 255, 255, .06); }
.als-review__body.is-clamped { max-height: 16rem; overflow: hidden; -webkit-mask-image: linear-gradient(#000 70%, transparent); mask-image: linear-gradient(#000 70%, transparent); }
.als-review__more { background: none; border: 0; padding: .25rem 0; color: var(--als-text-link); font-size: .85rem; }
.als-review__more:hover,
.als-review__more:focus { color: var(--als-text-link-hover); text-decoration: underline; }

/* Avis à spoilers : texte replié derrière un bouton */
.als-review__spoiler {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    margin-top: .75rem;
    padding: .6rem .8rem;
    border-radius: var(--als-radius-xs);
    background: var(--als-warn-bg);
    border: 1px solid var(--als-warn-border);
    color: var(--als-text);
    font-size: .9rem;
}

/* Actions */
.als-review__actions { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem .75rem; margin-top: .8rem; }
.als-review__vote { border: 1px solid var(--als-border-soft); color: var(--als-text); background: transparent; }
.als-review__vote:hover,
.als-review__vote:focus { border-color: var(--als-border); color: var(--als-text-heading); background: var(--als-surface-hover); }
.als-review__vote.is-on { background: var(--als-ok-bg); border-color: var(--als-ok-border); color: var(--als-ok); }
.als-review__helpful-count,
.als-review__reported { color: var(--als-text-muted); font-size: .8rem; }
.als-review__report { color: var(--als-text-muted); font-size: .8rem; padding: 0; text-decoration: none; }
.als-review__report:hover,
.als-review__report:focus { color: var(--als-err); text-decoration: underline; }
.als-review__mod { display: inline-flex; flex-wrap: wrap; gap: .4rem; margin-left: auto; }
.als-review__report-form {
    margin-top: .75rem;
    padding: .75rem;
    border-radius: var(--als-radius-xs);
    background: var(--als-surface-sunken);
    border: 1px solid var(--als-border-soft);
}
.als-review__report-title { font-weight: 600; margin: 0 0 .5rem; color: var(--als-text-heading); }
.als-review__report-row { display: flex; align-items: center; gap: .5rem; margin-top: .6rem; }

/* Formulaire d'écriture */
.als-reviews__form { padding: 1rem 1.1rem; }
.als-reviews__row { display: grid; grid-template-columns: 9rem 1fr; gap: .75rem; }
.als-reviews__field { margin-bottom: .75rem; }
.als-reviews__field .form-label { font-size: .85rem; color: var(--als-text-muted); margin-bottom: .25rem; }
.als-reviews__textarea { min-height: 9rem; resize: vertical; }
.als-reviews__field-foot { display: flex; justify-content: space-between; align-items: flex-start; gap: .75rem; margin-top: .3rem; }
.als-reviews__help { font-size: .78rem; color: var(--als-text-muted); margin: .25rem 0 0; }
.als-reviews__counter { font-size: .78rem; color: var(--als-text-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.als-reviews__counter.is-short { color: var(--als-warn); }
.als-reviews__error-text { margin: .4rem 0 0; color: var(--als-err); font-size: .85rem; }
.als-reviews__preview {
    margin-bottom: .75rem;
    padding: .75rem;
    min-height: 9rem;
    border-radius: var(--als-radius-xs);
    background: var(--als-surface-sunken);
    border: 1px solid var(--als-border-soft);
}
.als-reviews__form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .75rem; }
.als-reviews__form .form-check-label { font-size: .9rem; }

/* Profil public : derniers avis */
.mb-reviews { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .75rem; }
.mb-review { padding: .75rem .9rem; border-radius: var(--als-radius-sm); background: var(--als-surface-sunken); border: 1px solid var(--als-border-soft); }
.mb-review__head { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem .75rem; }
.mb-review__anime { color: var(--als-text-heading); font-weight: 600; }
.mb-review__title { margin: .35rem 0 0; font-weight: 600; color: var(--als-text); }
.mb-review__excerpt { margin: .35rem 0 0; color: var(--als-text-muted); font-size: .9rem; }

@media (max-width: 575.98px) {
    .als-reviews__row { grid-template-columns: 1fr; gap: 0; }
    .als-review { padding: .85rem; }
    .als-review__mod { margin-left: 0; }
    .als-reviews__toolbar { justify-content: flex-start; }
    .als-reviews__field-foot { flex-direction: column; gap: .2rem; }
}

@media (prefers-reduced-motion: reduce) {
    .als-review .news-spoiler,
    .als-reviews__preview .news-spoiler { transition: none; }
}
