body.review-modal-open :not(.review-modal-overlay):not(.review-modal-overlay *){animation-play-state:paused!important}.review-modal-overlay{position:fixed;inset:0;background:rgba(10,12,24,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:1.25rem;animation:fadeIn .25s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes reviewPop{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.review-modal{position:relative;width:100%;max-width:500px;max-height:92vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(99,102,241,.4) transparent;padding:2.25rem 2.25rem 2rem;border-radius:24px;background:#ffffff;color:#1e293b;border:1px solid rgba(15,23,42,.06);box-shadow:0 30px 80px -20px rgba(15,23,42,.45),0 2px 8px rgba(15,23,42,.06);animation:reviewPop .4s cubic-bezier(.16,1,.3,1)}.review-modal:before{content:"";display:block;height:4px;margin:-2.25rem -2.25rem 1.5rem;border-radius:24px 24px 0 0;background:linear-gradient(90deg,var(--accent),var(--accent-2) 55%,#fbbf24)}.review-modal::-webkit-scrollbar{width:11px}.review-modal::-webkit-scrollbar-track{background:transparent}.review-modal::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(99,102,241,.55),rgba(139,92,246,.55));border-radius:999px;border:3.5px solid transparent;background-clip:padding-box}.review-modal::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(99,102,241,.9),rgba(139,92,246,.9));background-clip:padding-box}[data-theme=dark] .review-modal{scrollbar-color:rgba(129,140,248,.5) transparent}.review-modal-close{position:absolute;top:1.1rem;right:1.1rem;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:#f1f5f9;color:#64748b;cursor:pointer;z-index:3;transition:background .2s,color .2s,transform .25s}.review-modal-close:hover{background:#e2e8f0;color:#0f172a;transform:rotate(90deg)}.review-modal-head{display:flex;align-items:flex-start;gap:.9rem;margin-bottom:1.4rem;padding-right:2rem}.review-modal-badge{flex-shrink:0;width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fffaf0,#fef3c7);border:1px solid rgba(245,158,11,.3);box-shadow:0 8px 18px -8px rgba(245,158,11,.55)}.review-modal h3{font-size:1.4rem;font-weight:750;letter-spacing:-.02em;margin:0 0 .2rem;color:#0f172a}.review-modal-sub{font-size:.875rem;line-height:1.5;color:#64748b;margin:0}.review-stars-input{margin-bottom:1.35rem;padding:.85rem 1rem;background:linear-gradient(135deg,#fafafa,#f4f4f8);border:1px solid #edeef2;border-radius:14px}.review-stars-row{display:flex;align-items:center;gap:.85rem}.star-selector{display:flex;gap:.2rem}.star-btn{background:none;border:none;cursor:pointer;padding:.1rem;line-height:0;transition:transform .15s cubic-bezier(.34,1.56,.64,1)}.star-btn:hover{transform:scale(1.18)}.star-btn:active{transform:scale(.94)}.star-btn svg{width:30px;height:30px;fill:#e2e8f0;transition:fill .15s,filter .15s}.star-btn.active svg{fill:#fbbf24;filter:drop-shadow(0 2px 5px rgba(251,191,36,.45))}.review-rating-label{font-size:.85rem;font-weight:650;color:#b45309;white-space:nowrap}.review-row{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}.review-field{margin-bottom:.85rem}.review-field label{display:block;font-size:.8rem;font-weight:650;color:#334155;margin-bottom:.4rem}.optional-tag{font-weight:500;color:#94a3b8;font-size:.72rem;margin-left:.2rem}.review-input-wrap{position:relative;display:flex;align-items:center}.review-input-icon{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none;transition:color .2s}.review-sr-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.review-input-wrap:focus-within .review-input-icon{color:var(--accent)}.review-field input{padding:.72rem .9rem .72rem 2.5rem}.review-field input,.review-field textarea{width:100%;border:1.5px solid #e6e8ee;border-radius:11px;font-size:.9rem;font-family:inherit;color:#1e293b;background:#fafbfc;box-sizing:border-box;transition:border-color .2s,box-shadow .2s,background .2s}.review-field textarea{padding:.75rem .9rem;resize:vertical;min-height:104px;line-height:1.6}.review-field input::placeholder,.review-field textarea::placeholder{color:#aab2c0}.review-field input:focus,.review-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3.5px rgba(99,102,241,.13);background:#fff}.review-error{font-size:.82rem;color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:9px;padding:.55rem .75rem;margin:0 0 .85rem}.review-submit-btn{width:100%;padding:.9rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border:none;border-radius:13px;font-size:.95rem;font-weight:700;cursor:pointer;margin-top:.35rem;box-shadow:0 10px 24px -10px rgba(99,102,241,.7);transition:transform .2s,box-shadow .2s,opacity .2s}.review-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 16px 32px -12px rgba(99,102,241,.85)}.review-submit-btn:active:not(:disabled){transform:translateY(0)}.review-submit-btn:disabled{opacity:.82;cursor:default}.review-submit-btn svg{transition:transform .2s}.review-submit-btn:hover:not(:disabled) svg{transform:translateX(3px)}.review-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:reviewSpin .7s linear infinite}@keyframes reviewSpin{to{transform:rotate(1turn)}}.review-success{text-align:center;padding:1.25rem 0 .5rem}.review-success-badge{width:84px;height:84px;margin:0 auto 1.25rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,rgba(34,197,94,.14),rgba(34,197,94,.02));animation:reviewPop .4s cubic-bezier(.16,1,.3,1)}.rs-ring{stroke:#22c55e;stroke-width:2.5;opacity:.25;stroke-dasharray:151;stroke-dashoffset:151;animation:rsRing .6s ease forwards}.rs-check{stroke:#22c55e;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:rsCheck .45s ease .25s forwards}@keyframes rsRing{to{stroke-dashoffset:0}}@keyframes rsCheck{to{stroke-dashoffset:0}}.review-success h3{font-size:1.45rem;font-weight:750;letter-spacing:-.02em;margin:0 0 .5rem;color:#0f172a}.review-success p{color:#64748b;font-size:.92rem;line-height:1.6;max-width:360px;margin:0 auto 1.5rem}.review-done-btn{padding:.7rem 2rem;background:#0f172a;color:#fff;border:none;border-radius:11px;font-size:.9rem;font-weight:650;cursor:pointer;transition:background .2s,transform .2s}.review-done-btn:hover{background:#1e293b;transform:translateY(-1px)}[data-theme=dark] .review-modal{background:#16161c;color:#e2e8f0;border-color:rgba(255,255,255,.08);box-shadow:0 30px 80px -20px rgba(0,0,0,.7)}[data-theme=dark] .review-modal h3,[data-theme=dark] .review-success h3{color:#f8fafc}[data-theme=dark] .review-modal-sub,[data-theme=dark] .review-success p{color:#94a3b8}[data-theme=dark] .review-modal-close{background:#27272f;color:#a1a1aa}[data-theme=dark] .review-modal-close:hover{background:#34343d;color:#fff}[data-theme=dark] .review-stars-input{background:#1c1c22;border-color:#2a2a33}[data-theme=dark] .star-btn svg{fill:#3a3a44}[data-theme=dark] .review-rating-label{color:#fbbf24}[data-theme=dark] .review-modal-badge{background:linear-gradient(135deg,#78350f,#92400e);border-color:rgba(245,158,11,.5);box-shadow:0 8px 18px -8px rgba(0,0,0,.6)}[data-theme=dark] .review-input-icon{color:#8b8b96}[data-theme=dark] .review-field input::placeholder,[data-theme=dark] .review-field textarea::placeholder{color:#71717a}[data-theme=dark] .review-error{background:rgba(127,29,29,.25);border-color:rgba(220,38,38,.4);color:#fca5a5}[data-theme=dark] .review-field label{color:#cbd5e1}[data-theme=dark] .review-field input,[data-theme=dark] .review-field textarea{background:#1c1c22;border-color:#2e2e38;color:#e2e8f0}[data-theme=dark] .review-field input:focus,[data-theme=dark] .review-field textarea:focus{background:#16161c;border-color:var(--accent)}[data-theme=dark] .review-done-btn{background:#6366f1}[data-theme=dark] .review-done-btn:hover{background:#7c7ff5}@media (prefers-reduced-motion:reduce){.review-modal,.review-success-badge{animation:none}.rs-check,.rs-ring{animation:none;stroke-dashoffset:0}.review-modal-close,.review-submit-btn,.review-submit-btn svg,.star-btn{transition:none}.review-spinner{animation-duration:1.2s}}@media (max-width:560px){.review-modal{max-height:90vh;padding:1.35rem 1.15rem 1.1rem;border-radius:20px}.review-modal:before{margin:-1.35rem -1.15rem 1.15rem}.review-row{grid-template-columns:1fr;gap:0;margin-bottom:.55rem}.review-modal-head{padding-right:1.4rem;margin-bottom:.8rem}.review-field textarea{min-height:80px}.review-submit-btn{margin-top:.2rem}}.review-upload{display:flex;align-items:center;gap:.75rem;width:100%;padding:.85rem 1rem;border:1.5px dashed #d7dbe4;border-radius:12px;background:#fafbfc;color:#64748b;cursor:pointer;box-sizing:border-box;transition:border-color .2s,background .2s,color .2s}.review-upload:hover{border-color:var(--accent);background:#f5f6ff;color:var(--accent)}.review-upload.is-uploading{cursor:default;opacity:.85}.review-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.review-upload:focus-within{border-color:var(--accent);box-shadow:0 0 0 3.5px rgba(99,102,241,.13)}.review-upload>svg{flex-shrink:0;color:var(--accent)}.review-upload-text{display:flex;flex-direction:column;font-size:.8rem;line-height:1.35;color:#64748b}.review-upload-text strong{font-weight:650;color:#1e293b;font-size:.9rem}.review-spinner-ink{border-color:rgba(99,102,241,.3);border-top-color:var(--accent)}.review-photo-preview{display:flex;align-items:center;gap:.85rem;padding:.7rem .85rem;border:1.5px solid #e6e8ee;border-radius:12px;background:#fafbfc}.review-photo-preview img{width:48px;height:48px;border-radius:10px;object-fit:cover;flex-shrink:0;border:1px solid rgba(15,23,42,.08)}.review-photo-meta{display:flex;flex-direction:column;gap:3px;min-width:0}.review-photo-name{font-size:.85rem;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:230px}.review-photo-remove{align-self:flex-start;background:none;border:none;padding:0;color:#dc2626;font-size:.8rem;font-weight:600;cursor:pointer;font-family:inherit}.review-photo-remove:hover{text-decoration:underline}.review-photo-err{display:block;margin-top:.4rem;font-size:.78rem;color:#dc2626}[data-theme=dark] .review-upload{background:#1c1c22;border-color:#34343d;color:#94a3b8}[data-theme=dark] .review-upload:hover{background:#20202a;border-color:var(--accent);color:#c7d2fe}[data-theme=dark] .review-upload-text{color:#94a3b8}[data-theme=dark] .review-upload-text strong{color:#e2e8f0}[data-theme=dark] .review-photo-preview{background:#1c1c22;border-color:#2e2e38}[data-theme=dark] .review-photo-name{color:#e2e8f0}