/*
 * Отзывы покупателей: блок на странице и экран модерации.
 * Общий файл для pedpsy.store и sociometry.pedpsy.store — цвета только токенами,
 * которые есть в темах обеих площадок (--surface, --surface-2, --ink, --muted,
 * --line, --primary, --accent, --ok, --danger, --radius); кнопки — классы тем.
 */

.pedpsy-reviews {
    display: grid;
    gap: 16px;
    margin: 48px 0;
}
.pedpsy-reviews .pedpsy-section-head {
    margin: 0;
}
.pedpsy-reviews .screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
.pr-summary,
.pr-gate,
.pr-more {
    margin: 0;
}
.pr-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    color: var(--muted);
}
.pr-stars {
    display: inline-flex;
    gap: 2px;
    font-size: 1.1em;
    line-height: 1;
}
.pr-star {
    color: var(--line);
}
.pr-star.is-on {
    color: var(--accent);
}
.pr-notice {
    margin: 0;
    padding: 12px 16px;
    border-radius: var(--radius);
    background: var(--surface-2);
}
.pr-gate {
    color: var(--muted);
}
.pr-list {
    display: grid;
    gap: 12px;
}
.pr-card {
    padding: 16px 20px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
}
.pr-text {
    margin: 8px 0;
    overflow-wrap: anywhere;
}
.pr-meta {
    margin: 0;
    color: var(--muted);
    font-size: 0.9em;
}
.pr-sign {
    color: var(--ink);
    font-weight: 600;
}

/* Личный блок автора */
.pr-mine {
    display: grid;
    gap: 8px;
    padding: 16px 20px;
    border: 1px dashed var(--line);
    border-radius: var(--radius);
    background: var(--surface-2);
}
.pr-mine-head,
.pr-reason {
    margin: 0;
}
.pr-status {
    font-weight: 600;
}
.pr-status--published {
    color: var(--ok);
}
.pr-status--rejected {
    color: var(--danger);
}
.pr-mine-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 12px;
}
.pr-delete > summary {
    cursor: pointer;
    color: var(--danger);
}
.pr-delete form {
    margin-top: 8px;
}

/* Форма */
.pr-write > summary {
    display: inline-flex;
    list-style: none;
    cursor: pointer;
}
.pr-write > summary::-webkit-details-marker {
    display: none;
}
.pr-write[open] > summary {
    margin-bottom: 16px;
}
.pr-form {
    display: grid;
    gap: 16px;
    max-width: 640px;
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
}
.pr-form fieldset {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
}
.pr-form legend,
.pr-field > label {
    margin-bottom: 4px;
    font-weight: 600;
}
.pr-field {
    display: grid;
    gap: 6px;
}
.pr-form textarea,
.pr-form input[type="text"] {
    box-sizing: border-box;
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--ink);
    font: inherit;
}
.pr-form [aria-invalid="true"] {
    border-color: var(--danger);
}
.pr-rating-stars {
    position: relative;
    display: inline-flex;
    gap: 4px;
}
.pr-rating-stars input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}
.pr-rating-stars label {
    padding: 2px;
    border-radius: 6px;
    color: var(--line);
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}
.pr-rating-stars:has(input:checked) label {
    color: var(--accent);
}
.pr-rating-stars input:checked + label ~ label {
    color: var(--line);
}
.pr-rating-stars input:focus-visible + label {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}
.pr-signature > label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: 16px;
}
.pr-preview,
.pr-hint,
.pr-count {
    margin: 0;
    color: var(--muted);
    font-size: 0.9em;
}
.pr-error {
    margin: 0;
    color: var(--danger);
    font-weight: 600;
}
.pr-consent label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

@media (max-width: 600px) {
    .pr-card,
    .pr-mine,
    .pr-form {
        padding: 14px;
    }
}

/* Экран «Магазин → Отзывы» — переменные админки --pa-* */
.pr-admin .pr-mod {
    display: grid;
    gap: 8px;
    margin-bottom: 12px;
}
.pr-admin .pr-mod-head,
.pr-admin .pr-mod-meta {
    margin: 0;
}
.pr-admin .pr-mod-meta {
    color: var(--pa-muted);
}
.pr-admin .pr-mod-text {
    padding: 10px 12px;
    border-radius: 8px;
    background: var(--pa-bg);
    overflow-wrap: anywhere;
}
.pr-admin .pr-actions,
.pr-admin .pr-mod-reject {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 8px;
}
.pr-admin .pr-mod-reject textarea {
    min-width: 260px;
}
