        .star-rating-input {
            display: flex;
            flex-direction: row-reverse;
            justify-content: flex-end;
            gap: 6px;
            margin-bottom: 12px;
        }
        .star-rating-input input { display: none; }
        .star-rating-input label {
            font-size: 26px;
            color: #ddd;
            cursor: pointer;
            transition: color 0.15s ease-in-out;
        }
        .star-rating-input label:hover,
        .star-rating-input label:hover ~ label,
        .star-rating-input input:checked ~ label { color: #f1c40f; }

        .rating-summary-box {
            background: #FAF8F6;
            border: 1px solid #F0ECE7;
            border-radius: 12px;
            padding: 20px;
            display: flex;
            align-items: center;
            gap: 32px;
            margin-bottom: 24px;
        }
        .rating-big-num {
            font-size: 48px;
            font-weight: 700;
            color: #5C3D2E;
            line-height: 1;
        }
        .rating-stars-row {
            color: #f1c40f;
            font-size: 18px;
            display: flex;
            gap: 4px;
            margin-bottom: 6px;
        }
        .review-list-item {
            border-bottom: 1px solid #ECEFF1;
            padding: 16px 0;
            display: flex;
            gap: 16px;
        }
        .review-avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
        .review-bubble { flex: 1; min-width: 0; }
        .review-meta {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 6px;
        }
        .review-user-name { font-weight: 600; font-size: 14px; }
        .review-date { font-size: 12px; color: #78909C; }
        .review-stars { color: #f1c40f; font-size: 12px; margin-bottom: 6px; }
        .review-body { font-size: 14px; color: #455A64; line-height: 1.5; }

        .btn-fav {
            background: white !important;
            border: 1px solid #D0C6B8 !important;
            color: #5C3D2E !important;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 10px 20px;
            border-radius: 8px;
            font-size: 14px;
            font-weight: 600;
            cursor: pointer;
            text-decoration: none;
            box-sizing: border-box;
            transition: all 0.2s ease;
        }
        .btn-fav:hover { background: #FAF8F6 !important; border-color: #5C3D2E !important; }
        .btn-fav.active { background: #FFF5F5 !important; border-color: #E74C3C !important; color: #E74C3C !important; }

        /* Login notice card */
        .login-notice {
            background: #FDF8E2;
            border: 1px solid #F7E3A1;
            padding: 16px;
            border-radius: 12px;
            display: flex;
            flex-direction: column;
            gap: 12px;
            box-sizing: border-box;
            width: 100%;
        }
        .login-notice-text {
            display: flex;
            align-items: flex-start;
            gap: 10px;
        }
        .login-notice-text i { color: #B28B00; font-size: 18px; flex-shrink: 0; margin-top: 2px; }
        .login-notice-text span {
            font-size: 13px;
            font-weight: 500;
            color: #5C3D2E;
            line-height: 1.5;
        }
