:root{--rv-brand: #01A572;--rv-brand-dark: #019866;--rv-brand-soft: #E8F8F2;--rv-border: #d2d7d4;--rv-border-strong: #b9c0bc;--rv-text: #1a1a1a;--rv-muted: #5F6A64;--rv-bg: #ffffff;--rv-bg-soft: #fafbfa;--rv-star: #01A572;--rv-star-empty: #d8ddd9;--rv-radius: 20px;--rv-radius-sm: 12px;}.review-modal{position: fixed;inset: 0;z-index: 1000;display: flex;align-items: center;justify-content: center;padding: 20px;opacity: 0;pointer-events: none;transition: opacity 0.2s ease;}.review-modal[hidden]{display: none;}.review-modal.is-visible{opacity: 1;pointer-events: auto;}.review-modal__overlay{position: absolute;inset: 0;background: rgba(15,22,18,0.45);backdrop-filter: blur(3px);-webkit-backdrop-filter: blur(3px);}.review-modal__dialog{position: relative;width: 100%;max-width: 480px;background: var(--rv-bg);border: 1px solid var(--rv-border);border-radius: var(--rv-radius);padding: 24px;transform: translateY(8px);transition: transform 0.25s ease;}.review-modal.is-visible .review-modal__dialog{transform: translateY(0);}.review-modal__close{position: absolute;top: 14px;right: 14px;width: 34px;height: 34px;display: inline-flex;align-items: center;justify-content: center;background: transparent;border: 1px solid transparent;border-radius: 12px;color: var(--rv-muted);cursor: pointer;transition: background 0.2s ease,color 0.2s ease,border-color 0.2s ease;}.review-modal__close:hover{background: var(--rv-bg-soft);border-color: var(--rv-border);color: var(--rv-text);}.review-modal__title{margin: 0 0 8px;font-size: 22px;font-weight: 700;color: var(--rv-text);letter-spacing: -0.01em;}.review-modal__hint{margin: 0 0 20px;font-size: 14px;color: var(--rv-muted);line-height: 1.4;}.review-form{display: flex;flex-direction: column;gap: 16px;}.review-form__field{display: flex;flex-direction: column;gap: 8px;}.review-form__label{font-size: 14px;font-weight: 600;color: var(--rv-text);letter-spacing: 0.01em;}.review-form__input{width: 100%;padding: 12px 16px;background: var(--rv-bg);border: 1px solid var(--rv-border-strong);border-radius: var(--rv-radius-sm);font-size: 14px;color: var(--rv-text);font-family: inherit;transition: border-color 0.2s ease,background 0.2s ease;}.review-form__input::placeholder{color: #b4b8b5;}.review-form__input:focus{outline: none;border-color: var(--rv-brand);background: #fff;}.review-form__textarea{resize: vertical;min-height: 96px;line-height: 1.5;}.review-form__counter{margin-top: 4px;font-size: 13px;color: #616161;text-align: right;}.review-form__error{margin-top: 8px;padding: 8px 12px;border-radius: 8px;background: #fdecec;border: 1px solid #f0b4b4;color: #b02a2a;font-size: 14px;line-height: 1.35;}.review-form__rating{display: inline-flex;gap: 4px;}.rating-star{background: transparent;border: none;padding: 4px;cursor: pointer;color: var(--rv-star-empty);line-height: 1;transition: color 0.15s ease,transform 0.15s ease;}.rating-star .icon{font-size: 26px;line-height: 1;}.rating-star.is-active{color: var(--rv-star);}.review-form__actions{display: flex;justify-content: flex-end;gap: 12px;margin-top: 8px;}.review-form__btn{padding: 12px 24px;border-radius: var(--rv-radius-sm);font-size: 14px;font-weight: 600;cursor: pointer;transition: background 0.2s ease,color 0.2s ease,border-color 0.2s ease;font-family: inherit;}.review-form__btn--ghost{background: transparent;border: 1px solid var(--rv-border-strong);color: var(--rv-text);}.review-form__btn--ghost:hover{background: var(--rv-bg-soft);border-color: var(--rv-muted);}.review-form__btn--primary{background: var(--rv-brand);border: 1px solid var(--rv-brand);color: #fff;}.review-form__btn--primary:hover:not(:disabled){background: var(--rv-brand-dark);border-color: var(--rv-brand-dark);}.review-form__btn--primary:disabled{opacity: .55;cursor: not-allowed;}.review-form__upload{display: inline-flex;margin-top: 8px;}.review-form__upload.is-hidden{display: none;}.review-form__upload-btn{display: inline-flex;align-items: center;padding: 8px 16px;border: 1px dashed var(--rv-border);border-radius: 12px;background: var(--rv-bg-soft);color: var(--rv-text);font-size: 14px;cursor: pointer;transition: border-color 0.2s ease,background 0.2s ease;}.review-form__upload-btn:hover{border-color: var(--rv-brand);background: #fff;}.review-form__previews{display: flex;flex-wrap: wrap;gap: 8px;margin-top: 8px;}.review-form__previews:empty{display: none;}.review-form__preview{position: relative;width: 72px;height: 72px;border-radius: 12px;overflow: hidden;border: 1px solid var(--rv-border);background: var(--rv-bg-soft);}.review-form__preview img{width: 100%;height: 100%;object-fit: cover;display: block;}.review-form__preview-remove{position: absolute;top: 4px;right: 4px;width: 20px;height: 20px;border: 0;border-radius: 50%;background: rgba(0,0,0,0.65);color: #fff;font-size: 14px;line-height: 1;cursor: pointer;display: inline-flex;align-items: center;justify-content: center;padding: 0;}.review-form__preview-remove:hover{background: rgba(0,0,0,0.85);}.review-modal__done{display: flex;flex-direction: column;gap: 16px;padding: 8px 0 4px;}.review-modal__done[hidden]{display: none;}.review-modal__done-text{margin: 0;font-size: 16px;line-height: 1.5;color: #111827;}.review-modal__done .review-form__btn{min-height: 48px;}.review-form[hidden]{display: none;}.review-form__input{font-size: 16px;border-radius: 12px;}input.review-form__input{min-height: 52px;}