  .rv-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:none;
    align-items:center;justify-content:center;z-index:10000;padding:20px}
  .rv-overlay.open{display:flex;animation:rvFadeIn .2s ease}
  .rv-modal{background:#fff;border-radius:16px;width:100%;max-width:420px;
    padding:1.75rem;box-shadow:0 10px 40px rgba(0,0,0,.25);position:relative;
    animation:rvPopIn .22s ease;max-height:90vh;overflow-y:auto;font-family:inherit}
  .rv-close{position:absolute;top:14px;right:14px;width:32px;height:32px;
    border:none;background:transparent;border-radius:50%;cursor:pointer;
    font-size:1.1rem;color:#5f6368;display:flex;align-items:center;
    justify-content:center;transition:background .15s}
  .rv-close:hover{background:#f1f3f4}
  .rv-title{font-size:1.15rem;font-weight:700;color:#202124;text-align:center;margin:0 0 .25rem}
  .rv-subtitle{font-size:.85rem;color:#5f6368;text-align:center;margin-bottom:1.25rem}
  .rv-stars{display:flex;justify-content:center;gap:.35rem;margin-bottom:.5rem}
  .rv-star{font-size:2.2rem;line-height:1;color:#dadce0;cursor:pointer;
    transition:color .12s,transform .12s;user-select:none;-webkit-tap-highlight-color:transparent}
  .rv-star.filled{color:#fbbc04}
  .rv-rating-label{text-align:center;font-size:.85rem;font-weight:600;
    color:#fbbc04;min-height:1.2rem;margin-bottom:1.1rem}
  .rv-field{margin-bottom:.9rem}
  .rv-field label{display:block;font-size:.8rem;font-weight:600;color:#3c4043;margin-bottom:.35rem}
  .rv-field input[type=text],.rv-field textarea{width:100%;border:1px solid #dadce0;
    border-radius:8px;padding:.6rem .75rem;font-size:.9rem;font-family:inherit;
    resize:vertical;transition:border-color .15s;box-sizing:border-box}
  .rv-field input[type=text]:focus,.rv-field textarea:focus{outline:none;border-color:#1a73e8}
  .rv-error{color:#d93025;font-size:.8rem;margin:.25rem 0 .5rem;display:none}
  .rv-error.show{display:block}
  .rv-login-prompt{display:none;text-align:center;background:#fef7e0;
    border:1px solid #fde293;border-radius:10px;padding:.9rem 1rem;margin:.5rem 0 1rem}
  .rv-login-prompt.show{display:block}
  .rv-login-prompt p{margin:0 0 .65rem;color:#5f6368;font-size:.85rem}
  .rv-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.1rem}
  .rv-btn{border:none;border-radius:20px;padding:.55rem 1.2rem;font-size:.875rem;
    font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}
  .rv-btn-cancel{background:transparent;color:#1a73e8}
  .rv-btn-cancel:hover{background:#f1f3f4}
  .rv-btn-submit{background:#1a73e8;color:#fff}
  .rv-btn-submit:hover:not(:disabled){background:#1558b3}
  .rv-btn-submit:disabled{opacity:.5;cursor:not-allowed}
  .rv-trigger-btn{background:transparent;border:1px solid #1a73e8;color:#1a73e8;
    font-weight:600;font-size:.8rem;padding:.4rem .9rem;border-radius:20px;
    cursor:pointer;margin-left:.5rem;transition:background .15s}
  .rv-trigger-btn:hover{background:#e8f0fe}
  @keyframes rvFadeIn{from{opacity:0}to{opacity:1}}
  @keyframes rvPopIn{from{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}
  @media(max-width:480px){
    .rv-modal{padding:1.4rem;border-radius:14px}
    .rv-star{font-size:1.9rem}
  }