.elab-core-reviews {
    display: grid;
    gap: var(--elab-space-5, 20px);
}

/* Kaart = .elab-box (taust/raam/radius/vari, UI-kit). Siin ainult lisa-stiil. */
.elab-core-review {
    display: grid;
    gap: var(--elab-space-2, 8px);
    padding: var(--elab-space-4, 16px);
    color: var(--elab-text, #1a1a1a);
}

.elab-core-review__head {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: var(--elab-space-2, 8px);
    align-items: center;
    min-width: 0;
}

.elab-core-review__avatar,
.elab-core-review__avatar img {
    width: 40px;
    height: 40px;
    border-radius: 50%;
}

.elab-core-review__meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
    min-width: 0;
    color: var(--elab-text-muted, #6b7280);
    font-size: var(--elab-fs-sm, 12px);
    line-height: var(--elab-lh-snug, 1.4);
}

/* Byline = autori-nimi + tag-placeholder (tuleviku arvustaja-tagid) ühel real */
.elab-core-review__byline {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    min-width: 0;
}

/* Tag-placeholder — peidetud kuni tagid olemas (markup reserveerib koha) */
.elab-core-review__tags:empty {
    display: none;
}

.elab-core-review__author,
.elab-core-review__post {
    color: var(--elab-text, #1a1a1a);
    font-weight: var(--elab-fw-semibold, 600);
    text-decoration: none;
}

/* Arvustaja nimi — suurem + pealkirja-font (mockup) */
.elab-core-review__author {
    font-family: var(--elab-font-display, Georgia, "Times New Roman", serif);
    font-size: var(--elab-fs-lg, 17px);
    line-height: 1.2;
    letter-spacing: 0;
}

.elab-core-review__post {
    flex-basis: 100%;
    color: var(--elab-green-dark, #3d8403);
}

.elab-core-review__author:hover,
.elab-core-review__post:hover,
.elab-core-review__link:hover {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.elab-core-review__title {
    margin: 2px 0 0;
    color: var(--elab-text, #1a1a1a);
    font-family: var(--elab-font-display, Georgia, "Times New Roman", serif);
    font-size: var(--elab-fs-lg, 18px);
    font-weight: var(--elab-fw-semibold, 600);
    line-height: var(--elab-lh-tight, 1.25);
    letter-spacing: 0;
}

.elab-core-review__facts {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px var(--elab-space-2, 8px);
    color: var(--elab-text-muted, #6b7280);
    font-size: var(--elab-fs-sm, 12px);
    line-height: 1;
}

.elab-core-review__rating {
    color: var(--elab-green-dark, #3d8403);
}

.elab-core-review__body {
    color: var(--elab-text, #1a1a1a);
    font-size: var(--elab-fs-md, 15px);
    line-height: var(--elab-lh-base, 1.55);
}

.elab-core-review__body > :first-child {
    margin-top: 0;
}

.elab-core-review__body > :last-child {
    margin-bottom: 0;
}

.elab-core-review__footer {
    display: flex;
    flex-wrap: wrap;
    gap: var(--elab-space-2, 8px) var(--elab-space-3, 12px);
    align-items: center;
    justify-content: space-between;
}

.elab-core-review__vote {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.elab-core-review__vote-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 42px;
    height: 30px;
    padding: 0 8px;
    border: 1px solid var(--elab-border, #e5e7eb);
    border-radius: var(--elab-radius-sm, 6px);
    background: var(--elab-bg, #fff);
    color: var(--elab-text-muted, #6b7280);
    cursor: pointer;
    font: inherit;
    font-size: var(--elab-fs-sm, 12px);
    font-weight: var(--elab-fw-semibold, 600);
    line-height: 1;
    transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease, opacity 0.12s ease;
}

.elab-core-review__vote-btn svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.elab-core-review__vote-btn:hover,
.elab-core-review__vote-btn:focus-visible {
    border-color: var(--elab-green, #4a9f04);
    color: var(--elab-green-dark, #3d8403);
    outline: none;
}

.elab-core-review__vote-btn.is-active {
    border-color: var(--elab-green-dark, #3d8403);
    background: rgba(74, 159, 4, 0.08);
    color: var(--elab-green-dark, #3d8403);
}

.elab-core-review__vote-btn:disabled {
    cursor: wait;
    opacity: 0.65;
}

.elab-core-review__vote-message {
    color: var(--elab-text-muted, #6b7280);
    font-size: var(--elab-fs-sm, 12px);
    line-height: var(--elab-lh-snug, 1.4);
}

.elab-core-review__vote-message.is-error {
    color: #991b1b;
}

.elab-core-review__link {
    color: var(--elab-green-dark, #3d8403);
    font-size: var(--elab-fs-sm, 12px);
    font-weight: var(--elab-fw-semibold, 600);
    text-decoration: none;
}

/* Konteiner = .elab-box (valge taust + raam + radius + vari, UI-kit).
   Siin ainult lisa-stiil (padding); kõik muu pärineb .elab-box'ist. */
.elab-review-form-wrap,
.elab-review-login {
    padding: var(--elab-space-4, 16px);
}

/* Login-blokk — kena ikoon kõrval + heading + nupp */
.elab-review-login {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
}
.elab-review-login__icon {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    color: var(--elab-blue, #2563eb);
    margin-top: 2px;
}
.elab-review-login__body {
    flex: 1 1 auto;
}
.elab-review-login__title {
    margin: 0 0 6px;
    font-size: var(--elab-fs-md, 16px);
    font-weight: var(--elab-fw-bold, 700);
    color: var(--elab-text, #1a1a1a);
}
.elab-review-login__text {
    margin: 0 0 12px;
    color: var(--elab-text-muted, #6b7280);
    font-size: var(--elab-fs-sm, 14px);
}

/* Empty state — kui arvustusi pole */
.elab-review-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 32px 16px;
    text-align: center;
    border: 1px dashed var(--elab-border, #e5e7eb);
    border-radius: var(--elab-radius-lg, 8px);
    background: #fff;
    box-shadow: var(--elab-shadow-sm, 0 1px 2px rgba(0, 0, 0, 0.05));
}
.elab-review-empty__icon {
    width: 40px;
    height: 40px;
    color: var(--elab-text-muted, #9ca3af);
    opacity: 0.6;
}
.elab-review-empty__text {
    margin: 0;
    color: var(--elab-text-muted, #6b7280);
    font-size: var(--elab-fs-sm, 14px);
}

.elab-review-form {
    display: grid;
    gap: var(--elab-space-4, 16px);
}

.elab-review-form__grid {
    display: grid;
    grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
    gap: var(--elab-space-4, 16px);
    align-items: start;
}

.elab-review-form__row {
    display: grid;
    gap: var(--elab-space-2, 8px);
    min-width: 0;
}

.elab-review-form label,
.elab-review-form legend {
    color: var(--elab-text-muted, #6b7280);
    font-size: var(--elab-fs-sm, 12px);
    font-weight: var(--elab-fw-semibold, 600);
    line-height: var(--elab-lh-snug, 1.4);
}

.elab-review-form input[type="text"],
.elab-review-form input[type="date"],
.elab-review-form textarea {
    width: 100%;
    min-width: 0;
    border: 1px solid var(--elab-border, #e5e7eb);
    border-radius: var(--elab-radius-sm, 6px);
    background: var(--elab-bg, #fff);
    color: var(--elab-text, #1a1a1a);
    font: inherit;
    line-height: var(--elab-lh-base, 1.55);
}

.elab-review-form input[type="text"],
.elab-review-form input[type="date"] {
    min-height: 38px;
    padding: 7px 10px;
}

.elab-review-form textarea {
    min-height: 180px;
    padding: 10px;
    resize: vertical;
}

.elab-review-form input:focus,
.elab-review-form textarea:focus {
    border-color: var(--elab-green, #4a9f04);
    box-shadow: 0 0 0 2px rgba(74, 159, 4, 0.14);
    outline: none;
}

.elab-review-form__rating {
    margin: 0;
    padding: 0;
    border: 0;
}

/* Tärnide rating-component (vormis "Lisa arvustus") */
.elab-review-rating__display {
    margin-left: 10px;
    align-self: center;
    color: var(--elab-blue, #2563eb);
    font-weight: var(--elab-fw-bold, 700);
}
.elab-review-rating__stars {
    display: inline-flex;
    gap: 2px;
    align-items: center;
}
.elab-review-rating__star,
.elab-review-rating__star:hover,
.elab-review-rating__star:focus,
.elab-review-rating__star:active {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    background: transparent;
    border: 0;
    box-shadow: none;
    cursor: pointer;
    color: var(--elab-border-strong, #c7c7c7);
    transition: color 80ms ease-out;
}
.elab-review-rating__star svg {
    width: 24px;
    height: 24px;
    display: block;
}
.elab-review-rating__star.is-active {
    color: var(--elab-blue, #2563eb);
}
.elab-review-rating__star.is-preview {
    color: var(--elab-blue, #2563eb);
    opacity: 0.7;
}
.elab-review-rating__star:focus-visible {
    outline: 2px solid var(--elab-blue, #2563eb);
    outline-offset: 2px;
    border-radius: 4px;
}

/* be.css override — vormi väljadel margin-bottom: 0
   (parent .be-default toob `margin-bottom: 20px` selektoriga
   `input[type="text"], select, textarea` jne). `!important` on
   vajalik, kuna mõnel renderdusel jõuab BeTheme reegel hilisemana
   cascade'is meie reviews.css-i järel. `.flatpickr-input` katab ka
   visible altInput'i, mille flatpickr genereerib `[data-elab-review-date]`
   kõrvale (Eesti formaadis). */
.elab-review-form input[type="text"],
.elab-review-form input[type="date"],
.elab-review-form textarea,
.elab-review-form .flatpickr-input {
    margin-bottom: 0 !important;
}
.elab-review-form label,
.elab-review-form legend {
    margin-bottom: 0;
}
/* Rating-fieldset legend vajab 10px alumist hoogu, et tärnid
   joonduksid vertikaalselt kuupäeva-kasti samalt joonelt. */
.elab-review-rating legend {
    margin-bottom: 10px;
}

/* Flatpickr — kuu valija kõrval olev aasta numInputWrapper jääb
   default `display: inline-block`-iga peidule (raami ja stiili tõttu
   ei mahu samale reale). Inline-flex annab ruumi. */
.flatpickr-current-month {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* Kommentaari sees olev rating-bit — kõik elemendid (tärn, number, "/10")
   peavad olema ühel real, mitte UI Kit'i default column-laoga. Override
   ainult kommentaari kontekstis, UI Kit baas jääb puutumata. */
.elab-core-review__rating {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.elab-core-review__rating .elab-rating {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 4px;
    min-width: 0;
    text-align: left;
}
.elab-core-review__rating-suffix {
    color: var(--elab-text-muted, #6b7280);
    font-weight: var(--elab-fw-medium, 500);
    line-height: 1;
}

/* =========================================================================
   Sort-dropdown arvustuste loendi peal — layout-only
   (stiilid `.elab-photo-filter__label` ja `__select` tulevad theme CSS-ist
   järjepidevuse mõttes; siin ainult flex-rea container.)
   ========================================================================= */

.elab-review-sort {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}
.elab-review-sort .elab-photo-filter__label {
    margin: 0 !important;
    white-space: nowrap;
}
.elab-review-sort .elab-photo-filter__select {
    margin-bottom: 0 !important;
    width: auto;
    min-width: 200px;
}

/* =========================================================================
   "Loe edasi" link arvustuse sees (kui sisu > 300 sõna)
   ========================================================================= */

/* "Sinu arvustus" silt enda arvustuse footeris (asendab vote-nuppe). */
.elab-core-review__own-label {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    background: var(--elab-bg-soft, #f5f5f4);
    border-radius: var(--elab-radius-sm, 6px);
    color: var(--elab-text-muted, #6b7280);
    font-size: var(--elab-fs-sm, 13px);
    font-weight: var(--elab-fw-semibold, 600);
}

/* "Muuda" link enda arvustusel — sinine, hover underline (UI-Kit muster). */
.elab-core-review__edit-link {
    margin-left: 8px;
    color: var(--elab-blue, #2563eb);
    font-size: var(--elab-fs-sm, 13px);
    font-weight: var(--elab-fw-semibold, 600);
    text-decoration: none;
}

.elab-core-review__edit-link:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.elab-core-review__more {
    display: inline-block;
    margin-top: 4px;
    color: var(--elab-blue, #2563eb);
    font-weight: var(--elab-fw-semibold, 600);
    text-decoration: none;
}
.elab-core-review__more:hover {
    text-decoration: underline;
}
.elab-core-review__more.is-loading {
    opacity: 0.5;
    pointer-events: none;
}

/* Flatpickr altInput peab näima sama mis tavaline input */
.elab-review-form .flatpickr-input {
    width: 100%;
    min-width: 0;
    min-height: 38px;
    padding: 7px 10px;
    border: 1px solid var(--elab-border, #e5e7eb);
    border-radius: var(--elab-radius-sm, 6px);
    background: var(--elab-bg, #fff);
    color: var(--elab-text, #1a1a1a);
    font: inherit;
    line-height: var(--elab-lh-base, 1.55);
}
.elab-review-form .flatpickr-input:focus {
    border-color: var(--elab-green, #4a9f04);
    box-shadow: 0 0 0 2px rgba(74, 159, 4, 0.14);
    outline: none;
}

.elab-review-form__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
}

/* "Nägin lavastust kuupäeval" checkbox + kuupäev (mockup: nupu kõrval real) */
.elab-review-form .elab-review-form__seen-check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--elab-text-secondary, #374151);
    font-size: var(--elab-fs-sm, 13px);
    font-weight: var(--elab-fw-medium, 500);
    cursor: pointer;
}
.elab-review-form .elab-review-form__seen-check input {
    width: auto;
    min-height: 0;
    margin: 0;
}
.elab-review-form__seen-date { display: inline-flex; }
.elab-review-form__seen-date.is-hidden { display: none; }
.elab-review-form .elab-review-form__seen-date input[type="text"] {
    width: 130px;
    min-width: 0;
}

/* Vormi sissejuhatus (pealkirja all, konteinerist väljas) */
.elab-review-form-intro {
    margin: -2px 0 14px;
    color: var(--elab-text-muted, #6b7280);
    font-size: var(--elab-fs-sm, 13.5px);
    line-height: 1.5;
}

.elab-review-notice {
    margin: 0 0 var(--elab-space-3, 12px);
    padding: 10px 12px;
    border-radius: var(--elab-radius-sm, 6px);
    font-size: var(--elab-fs-sm, 12px);
    font-weight: var(--elab-fw-semibold, 600);
    line-height: var(--elab-lh-snug, 1.4);
}

.elab-review-notice--success {
    border: 1px solid rgba(74, 159, 4, 0.24);
    background: rgba(74, 159, 4, 0.08);
    color: var(--elab-green-dark, #3d8403);
}

.elab-review-notice--error {
    border: 1px solid rgba(185, 28, 28, 0.22);
    background: rgba(185, 28, 28, 0.07);
    color: #991b1b;
}

.elab-review-notice--warning {
    border: 1px solid rgba(217, 119, 6, 0.28);
    background: rgba(217, 119, 6, 0.08);
    color: #92400e;
}

/* Edit-mode'i meeldetuletus vormi peal — väike statuses */
.elab-review-form__edit-hint {
    margin: 0 0 var(--elab-space-3, 12px);
    padding: 8px 12px;
    background: var(--elab-bg-soft, #f5f5f4);
    border-left: 3px solid var(--elab-blue, #2563eb);
    border-radius: var(--elab-radius-sm, 6px);
    font-size: var(--elab-fs-sm, 12px);
    color: var(--elab-text-muted, #6b7280);
}

@media (max-width: 560px) {
    .elab-core-review {
        padding: var(--elab-space-2, 10px);
    }

    .elab-review-form-wrap,
    .elab-review-login {
        padding: var(--elab-space-3, 12px);
    }

    .elab-review-form__grid {
        grid-template-columns: 1fr;
    }

    .elab-review-rating-options {
        grid-template-columns: repeat(5, minmax(34px, 1fr));
    }
}
