/* Catalog style "demo25" — rating + comments add-on (loaded instead of _rate.css): ring-avatar numbers, people-list comments in the dark card. Mirrors /demo25/. */
/*
 * Card: the counters read like a person's meta line on the map ("Paris · ★ 5.0").
 * Post: the rating is a surface inside the card slab — a big Lazurski score with a yellow star and
 * ten round numbers, each ringed in a speciality colour like the map avatars; the chosen one fills
 * green inside a yellow ring. Comments are the panel's people list: a ring avatar, the name in
 * Poppins, the date muted; the form fields are the city picker's dark inputs.
 */

/* card counters */
.post__stats { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin: 0 0 10px; color: var(--muted); font-size: 13.5px; }
.post__rating { color: #fff; font-weight: 700; }
.post__rating::before { content: "★ "; color: var(--yellow); }
.post__rating-avg { font-size: 15px; }
.post__rating-max { margin-left: 1px; color: var(--muted); font-weight: 400; }
.post__comments { color: var(--soft); text-decoration: none; }
.post__comments::before { content: "· "; color: var(--muted); }
.post__comments:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

.post__flash { margin-top: 40px; margin-bottom: 0; }
.notice--ok { border-left-color: var(--green-text); }

/* rating */
.rating { margin-top: 44px; padding: 24px; border-radius: 14px; background: var(--s1); border: 1px solid var(--line); }
.rating__title, .comments__title { margin: 0 0 12px; color: #fff; font: 700 30px/1.1 var(--serif); }
.rating__score { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; margin: 0 0 18px; }
.rating__avg { color: #fff; font: 700 64px/0.9 var(--serif); }
.rating__avg::before { content: "★"; margin-right: 10px; color: var(--yellow); font-size: 0.6em; vertical-align: 0.2em; }
.rating__max { color: var(--muted); font: 600 18px/1 var(--label); }
.rating__count { padding: 5px 12px; border-radius: 999px; background: var(--s2); color: var(--yellow); font: 500 12.5px/1.2 var(--label); }
.rating__form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px 16px; }
.rating__scale { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.rating__legend { width: 100%; margin-bottom: 10px; padding: 0; color: var(--muted); font: 600 11px/1.3 var(--label); letter-spacing: 0.12em; text-transform: uppercase; }
.rating__opt { --c: #2f7d4f; position: relative; }
.rating__opt:nth-of-type(2) { --c: #d6457a; }
.rating__opt:nth-of-type(3) { --c: #e0753a; }
.rating__opt:nth-of-type(4) { --c: #b5843c; }
.rating__opt:nth-of-type(5) { --c: #8a5cd6; }
.rating__opt:nth-of-type(6) { --c: #c43b4f; }
.rating__opt:nth-of-type(7) { --c: #2d8fb3; }
.rating__opt:nth-of-type(8) { --c: #1c5fd6; }
.rating__opt:nth-of-type(9) { --c: #3b9a7a; }
.rating__opt:nth-of-type(10) { --c: #ffb500; }
.rating__input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }
.rating__num {
    display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--slab); box-shadow: inset 0 0 0 2px var(--c);
    color: #fff; font: 600 16px/1 var(--label); cursor: pointer; transition: background 0.15s, box-shadow 0.15s, transform 0.15s;
}
.rating__opt:hover .rating__num { background: var(--s2); transform: translateY(-2px); }
.rating__input:checked + .rating__num { background: var(--green-fill); box-shadow: 0 0 0 3px var(--s1), 0 0 0 5px var(--yellow); transform: none; }
.rating__input:focus-visible + .rating__num { outline: 2px solid var(--yellow); outline-offset: 4px; }
.rating__submit { min-height: 48px; }
.rating__mine { margin: 0; color: var(--soft); line-height: 1.5; }
.rating__mine-score { display: inline-grid; place-items: center; width: 44px; height: 44px; margin: 0 4px; border-radius: 50%; background: var(--green-fill); box-shadow: 0 0 0 2px var(--s1), 0 0 0 4px var(--yellow); color: #fff; font: 600 17px/1 var(--label); }

/* comments = the people list */
.comments { margin-top: 44px; }
.comments__count { display: inline-grid; place-items: center; min-width: 32px; height: 26px; margin-left: 6px; padding: 0 9px; border-radius: 999px; background: var(--s2); color: var(--yellow); font: 600 13px/1 var(--label); vertical-align: 0.3em; }
.comments__list { display: grid; gap: 2px; margin: 0 0 24px; padding: 0; list-style: none; }
.comment { position: relative; padding: 12px 12px 12px 66px; border-radius: 12px; transition: background 0.15s; }
.comment:hover { background: var(--s1); }
.comment::before {
    content: ""; position: absolute; left: 12px; top: 14px; width: 40px; height: 40px; border-radius: 50%;
    background: radial-gradient(circle, #3a393f 0 52%, transparent 54%), var(--ring);
}
.comment:nth-child(even)::before { --rot: 150deg; }
.comment__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; margin: 0 0 4px; color: var(--muted); font-size: 12.5px; }
.comment__author { color: #fff; font: 600 14.5px/1.3 var(--label); }
.comment__body { color: var(--soft); font-size: 15.5px; overflow-wrap: anywhere; }
.comments__empty { margin: 0 0 22px; color: var(--muted); }
.comment-form { display: grid; gap: 14px; padding: 22px; border-radius: 14px; background: var(--s1); border: 1px solid var(--line); }
.comment-form__field { display: grid; gap: 6px; margin: 0; }
.comment-form__label { color: var(--muted); font: 600 11px/1.3 var(--label); letter-spacing: 0.12em; text-transform: uppercase; }
.comment-form__input, .comment-form__text { width: 100%; padding: 11px 12px; border: 1px solid var(--line-2); border-radius: 10px; background: var(--s2); color: #fff; font: 400 15px/1.45 var(--text); }
.comment-form__input { max-width: 360px; }
.comment-form__text { min-height: 120px; resize: vertical; }
.comment-form__input:focus, .comment-form__text:focus { border-color: var(--green); outline: none; box-shadow: 0 0 0 3px rgb(70 154 88 / 0.32); }
.comment-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0; }
.comment-form__note { color: var(--muted); font-size: 13px; }

@media (max-width: 520px) {
    .rating, .comment-form { padding: 18px 16px; }
    .rating__num { width: 44px; height: 44px; }
    .rating__avg { font-size: 52px; }
}
