.rating-form-card{border:1px solid color-mix(in srgb, var(--color-gold) 22%, transparent);transition:box-shadow .4s var(--ease-premium);background:#fff;border-radius:1.5rem;position:relative;overflow:hidden;box-shadow:0 1px 2px #091f330a,0 12px 28px -14px #091f3329,0 32px 56px -34px #091f332e}.rating-form-card:before{content:"";background:linear-gradient(90deg, var(--color-gold) 0%, var(--color-accent) 55%, transparent 100%);height:3px;position:absolute;inset:0 0 auto}.rating-form-card:focus-within{box-shadow:0 1px 2px #091f330a,0 16px 40px -14px #091f3333,0 40px 64px -36px #091f3333}@media (width>=1024px){.rating-form-card{max-height:calc(100dvh - 7.5rem);position:sticky;top:6rem;overflow-y:auto}}.ulasan-heading h2{align-items:center;gap:.625rem;display:flex;position:relative}.ulasan-heading h2:before{content:"";background:linear-gradient(90deg, var(--color-gold) 0%, var(--color-accent) 100%);border-radius:999px;flex-shrink:0;width:1.125rem;height:3px}.stats-card{backdrop-filter:blur(12px);border:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);text-align:center;transition:transform .3s var(--ease-premium), box-shadow .3s ease;background:#fff;border-radius:1.5rem;padding:1.5rem 1rem;position:relative;overflow:hidden;box-shadow:0 1px 2px #091f3308,0 10px 26px -12px #091f3324,0 26px 48px -30px #091f3329}.stats-card:after{content:"";pointer-events:none;background:radial-gradient(circle,#2e86ab24 0%,#2e86ab00 70%);border-radius:50%;width:8rem;height:8rem;position:absolute;top:-40%;right:-30%}.stats-card:hover{transform:translateY(-2px);box-shadow:0 1px 2px #091f3308,0 14px 34px -12px #091f332e,0 32px 56px -30px #091f332e}.stats-number{z-index:1;letter-spacing:-.03em;color:var(--color-primary);background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:2.25rem;font-weight:800;line-height:1.15;position:relative}.stats-label{z-index:1;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin-top:.375rem;font-size:.75rem;font-weight:600;position:relative}.review-card{border:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);transition:transform .4s var(--ease-premium), box-shadow .4s var(--ease-premium), border-color .4s var(--ease-premium);background:#fff;border-radius:1.375rem;padding:1.375rem 1.5rem;position:relative;box-shadow:0 1px 2px #091f3308,0 6px 16px -8px #091f331a}.review-card:before{content:"";background:linear-gradient(180deg, var(--color-secondary) 0%, var(--color-primary) 100%);opacity:.25;width:3px;transition:opacity .4s var(--ease-premium);border-radius:999px;position:absolute;top:1.25rem;bottom:1.25rem;left:0}.review-card:hover{border-color:color-mix(in srgb, var(--color-secondary) 20%, transparent);transform:translateY(-3px);box-shadow:0 4px 12px -4px #091f331a,0 18px 36px -12px #091f3324}.review-card:hover:before{opacity:1}.review-avatar{background:linear-gradient(135deg, var(--color-secondary), var(--color-primary));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1rem;font-weight:700;display:flex;box-shadow:0 2px 8px -2px #2e86ab59,0 0 0 3px #ffffffd9}.star-display{gap:2px;display:inline-flex}.star-display .star{width:1rem;height:1rem;color:var(--color-surface-muted)}.star-display .star.filled{color:var(--color-gold)}.rating-input-group{gap:.25rem;display:flex}.rating-input-group .star{color:color-mix(in srgb, var(--color-surface-muted) 60%, transparent);cursor:pointer;transition:color .2s ease, transform .2s var(--ease-premium);user-select:none;background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:2.25rem;line-height:1;display:inline-flex}.rating-input-group .star:hover{transform:scale(1.2)}.rating-input-group .star.filled{color:var(--color-gold)}.rating-input-group .star.filled:hover{color:var(--color-accent)}.rating-input-group.is-invalid{border-radius:.625rem;box-shadow:0 0 0 3px #e53e3e1f}.form-input{border:1.5px solid color-mix(in srgb, var(--color-border) 70%, transparent);width:100%;transition:border-color .3s var(--ease-premium), box-shadow .3s var(--ease-premium), background-color .3s ease;background:var(--color-surface);color:var(--color-text);border-radius:.875rem;outline:none;padding:.75rem 1rem;font-size:.9375rem}.form-input:focus{border-color:var(--color-secondary);background:#fff;box-shadow:0 0 0 3px #2e86ab1f}.form-input::placeholder{color:#a0aec0}.form-input.is-invalid{background:#fff5f5;border-color:#e53e3e}.form-input.is-invalid:focus{border-color:#e53e3e;box-shadow:0 0 0 3px #e53e3e1f}.form-field{display:block}.form-label{color:var(--color-text);letter-spacing:.01em;margin-bottom:.375rem;font-size:.8125rem;font-weight:600;display:block}.form-hint{color:var(--color-text-muted);opacity:.8;margin-top:.3rem;font-size:.6875rem}.submit-btn{background:linear-gradient(135deg, var(--color-secondary), var(--color-primary));color:#fff;letter-spacing:.01em;cursor:pointer;width:100%;transition:transform .3s var(--ease-premium), box-shadow .3s ease, filter .3s ease;border:none;border-radius:.875rem;padding:.875rem 1.5rem;font-size:.9375rem;font-weight:700;box-shadow:0 4px 16px -4px #2e86ab73}.submit-btn:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 8px 24px -4px #2e86ab80}.submit-btn:active{transform:translateY(0);box-shadow:0 2px 8px -2px #2e86ab66}.submit-btn:disabled{opacity:.5;cursor:not-allowed;filter:none;box-shadow:none;transform:none}.toast{text-align:center;overflow-wrap:anywhere;z-index:100;width:calc(100% - 2rem);max-width:30rem;transition:transform .4s var(--ease-premium);border-radius:1rem;padding:1rem 1.5rem;font-size:.9375rem;font-weight:600;position:fixed;bottom:2rem;left:50%;transform:translate(-50%)translateY(100px);box-shadow:0 8px 32px #0003}.toast.show{transform:translate(-50%)translateY(0)}.toast.toast-success{background:var(--color-success);color:#fff}.toast.toast-error{color:#fff;background:#e53e3e}.toast:not(.show){pointer-events:none}@media (width<=767px){.toast{bottom:5.5rem}}.skeleton{background:linear-gradient(90deg, var(--color-surface-muted) 25%, color-mix(in srgb, var(--color-surface-muted) 60%, #fff) 50%, var(--color-surface-muted) 75%);background-size:200% 100%;border-radius:.75rem;animation:1.5s infinite skeleton-loading}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.reviews-list{flex-direction:column;gap:.875rem;display:flex}.review-card-header{align-items:flex-start;gap:1rem;display:flex}.review-card-body{flex:auto;min-width:0}.review-card-body .star-display{margin-bottom:.5rem}.review-card-meta{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.review-author{color:var(--color-text);overflow-wrap:anywhere;font-size:.9375rem;font-weight:700}.review-date{color:var(--color-text-muted);white-space:nowrap;font-size:.6875rem;font-weight:500}.review-text{color:var(--color-text-muted);overflow-wrap:anywhere;white-space:pre-line;font-size:.875rem;line-height:1.7}.rating-bars{flex-direction:column;justify-content:center;gap:.5rem;height:100%;display:flex}.rating-bar-row{align-items:center;gap:.75rem;display:flex}.rating-bar-label{text-align:right;width:1.5rem;color:var(--color-text-muted);font-size:.8125rem;font-weight:600}.rating-bar-star{width:1rem;height:1rem;color:var(--color-gold);flex-shrink:0}.rating-bar-track{background:color-mix(in srgb, var(--color-surface-muted) 60%, transparent);border-radius:9999px;flex:auto;height:.5rem;display:block;overflow:hidden;box-shadow:inset 0 1px 2px #091f3314}.rating-bar-graphic{width:100%;height:100%;display:block}.rating-bar-fill{fill:url(#rating-bar-gradient)}.rating-bar-count{width:2rem;color:var(--color-text-muted);font-size:.6875rem;font-weight:500}.load-more-btn,.retry-btn{border:1.5px solid color-mix(in srgb, var(--color-primary) 18%, transparent);color:var(--color-primary);cursor:pointer;transition:transform .3s var(--ease-premium), box-shadow .3s ease, background-color .3s ease, border-color .3s ease, color .3s ease;background:#fff;border-radius:.875rem;padding:.625rem 1.5rem;font-size:.875rem;font-weight:600;box-shadow:0 2px 8px -2px #091f330f}.load-more-btn:hover,.retry-btn:hover{border-color:var(--color-secondary);background:color-mix(in srgb, var(--color-secondary) 5%, #fff);color:var(--color-secondary);transform:translateY(-1px);box-shadow:0 4px 12px -4px #2e86ab26}.load-more-btn:disabled,.retry-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.empty-state,.error-state{text-align:center;border:1px dashed color-mix(in srgb, var(--color-border) 90%, transparent);background:#ffffffb3;border-radius:1.375rem;flex-direction:column;align-items:center;gap:1rem;padding:3rem 1.5rem;display:flex}.empty-state-icon{width:3.5rem;height:3.5rem;color:var(--color-surface-muted);opacity:.7}.empty-state-text,.error-state-text{color:var(--color-text-muted);max-width:24rem;font-size:.9375rem}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.svg-defs{width:0;height:0;position:absolute;overflow:hidden}.form-honeypot{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (width<=640px){.form-input{font-size:1rem}.rating-input-group{gap:.125rem}.rating-input-group .star{padding:.25rem .125rem;font-size:2.25rem}}
