/* =========================================================
   GTA VI — Estado de Leonida
   Widget flutuante de Avaliação — usado em todas as páginas
   Espelha o gnm-fab/gnm-panel do chat, no lado oposto da tela.
   ========================================================= */

.rw-fab{
    position:fixed; left:22px; bottom:22px; z-index:1400;
    width:60px; height:60px; border-radius:50%; border:none;
    display:flex; align-items:center; justify-content:center;
    background:radial-gradient(120% 120% at 30% 22%, #FFE083 0%, var(--gold) 45%, var(--coral) 100%);
    box-shadow:0 8px 26px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.08) inset, 0 0 26px rgba(255,201,60,.5);
    cursor:var(--pointer,pointer);
    color:#160B32;
    transition:transform .3s cubic-bezier(.22,1,.3,1), box-shadow .3s ease;
}
.rw-fab::before{
    content:''; position:absolute; inset:-6px; border-radius:50%;
    border:1.5px solid rgba(255,201,60,.55);
    animation:rw-pulse 2.6s ease-out infinite;
}
@keyframes rw-pulse{
    0%{ transform:scale(.86); opacity:.9; }
    75%{ transform:scale(1.35); opacity:0; }
    100%{ opacity:0; }
}
.rw-fab:hover{ transform:translateY(-3px) scale(1.05); box-shadow:0 12px 32px rgba(0,0,0,.6), 0 0 34px rgba(255,201,60,.75); }
.rw-fab svg{ width:26px; height:26px; position:relative; z-index:1; }
.rw-fab .rw-fab-close{ display:none; }
.rw-fab.open .rw-fab-star{ display:none; }
.rw-fab.open .rw-fab-close{ display:block; }
.rw-fab .rw-avg-badge{
    position:absolute; top:-4px; right:-4px; z-index:2;
    background:var(--night, #0A0518); color:var(--gold); font-family:var(--display);
    font-size:.62rem; letter-spacing:.04em; padding:2px 6px; border-radius:999px;
    box-shadow:0 2px 8px rgba(0,0,0,.5); border:1px solid rgba(255,201,60,.5);
    transform:rotate(8deg);
}
.rw-fab.open .rw-avg-badge{ display:none; }

.rw-panel{
    position:fixed; left:22px; bottom:94px; z-index:1450;
    width:min(380px, 92vw); max-height:min(640px, 78vh);
    display:flex; flex-direction:column; overflow:hidden; overflow-y:auto;
    border-radius:22px;
    background:
        radial-gradient(120% 60% at 0% 0%, rgba(255,201,60,.14) 0%, transparent 55%),
        rgba(12,7,26,.97);
    border:1px solid rgba(255,201,60,.35);
    box-shadow:0 24px 70px rgba(0,0,0,.65), 0 0 40px rgba(255,201,60,.18);
    backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    opacity:0; transform:translateY(18px) scale(.97); pointer-events:none;
    transition:opacity .28s ease, transform .32s cubic-bezier(.22,1,.3,1);
}
.rw-panel.active{ opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }

.rw-panel-header{
    display:flex; align-items:center; gap:12px; padding:16px 18px;
    background:linear-gradient(135deg, rgba(255,201,60,.2), rgba(255,107,61,.12));
    border-bottom:1px solid rgba(255,255,255,.08);
    flex-shrink:0; position:sticky; top:0; z-index:2;
}
.rw-avatar{
    width:40px; height:40px; border-radius:50%; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    background:radial-gradient(120% 120% at 30% 22%, #FFE083 0%, var(--gold) 45%, var(--coral) 100%);
    box-shadow:0 0 14px rgba(255,201,60,.5);
    color:#160B32;
}
.rw-avatar svg{ width:20px; height:20px; }
.rw-panel-title{ flex:1; min-width:0; }
.rw-panel-title strong{
    display:block; font-family:var(--display); letter-spacing:.04em;
    font-size:1rem; color:var(--sand);
}
.rw-panel-title span{ font-size:.72rem; color:var(--haze); }
.rw-close{
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
    color:var(--sand); width:30px; height:30px; border-radius:50%;
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
    cursor:var(--pointer,pointer); font-size:1rem; transition:background .2s, transform .2s;
}
.rw-close:hover{ background:rgba(255,201,60,.28); transform:rotate(90deg); }

.rw-body{ padding:20px 20px 8px; }
.rw-body h4{
    font-family:var(--display); font-weight:400; font-size:1.1rem; letter-spacing:.01em;
    color:var(--sand); margin-bottom:4px;
}
.rw-sub{ color:var(--haze); font-size:.84rem; margin-bottom:16px; line-height:1.5; }

/* ---------- Estrelas com efeito de viatura na 5ª ---------- */
.rw-stars{ display:flex; gap:9px; margin-bottom:14px; }
.rw-stars button{
    position:relative; background:none; border:none; cursor:var(--pointer,pointer); padding:0;
    width:36px; height:36px; color:var(--mute); transition:transform .15s, color .15s;
}
.rw-stars button svg{ width:100%; height:100%; position:relative; z-index:1; }
.rw-stars button.filled{ color:var(--gold); }
.rw-stars button:hover{ transform:scale(1.15); }

/* A 5ª estrela pisca vermelho / branco / azul, como luz de viatura, quando acesa */
.rw-stars button[data-value="5"].filled{
    color:#fff;
    animation:rw-siren 1.1s steps(1,end) infinite;
}
.rw-stars button[data-value="5"].filled svg{
    filter:drop-shadow(0 0 7px currentColor);
}
@keyframes rw-siren{
    0%,  32%{ color:#FF3B3B; }
    33%, 65%{ color:#3B8BFF; }
    66%,100%{ color:#F5F5FF; }
}
@media (prefers-reduced-motion: reduce){
    .rw-stars button[data-value="5"].filled{ animation:none; color:var(--gold); }
}

.rw-summary{ display:flex; align-items:baseline; gap:9px; margin-bottom:16px; }
.rw-summary .avg{ font-family:var(--display); font-size:2rem; color:var(--gold); }
.rw-summary .of5{ color:var(--mute); font-size:.86rem; }
.rw-summary .total{ color:var(--haze); font-size:.8rem; }

.rw-msg{ font-size:.83rem; margin-bottom:6px; min-height:1.2em; }
.rw-msg.ok{ color:#6CE59A; }
.rw-msg.err{ color:#FF9B9B; }

.rw-divider{ height:1px; background:rgba(255,255,255,.1); margin:6px 0 18px; }

.rw-form{ display:flex; flex-direction:column; gap:10px; padding-bottom:18px; }
.rw-form label{ font-size:.72rem; letter-spacing:.04em; text-transform:uppercase; color:var(--haze); }
.rw-form textarea, .rw-form input{
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.15);
    border-radius:12px; padding:10px 13px; color:var(--sand);
    font-family:var(--text); font-size:.88rem; width:100%;
}
.rw-form textarea{ min-height:84px; resize:vertical; }
.rw-form textarea:focus, .rw-form input:focus{
    outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(255,201,60,.16);
}
.rw-form .field{ display:flex; flex-direction:column; gap:5px; }
.rw-submit{
    align-self:flex-start; margin-top:2px; font-family:var(--display); letter-spacing:.05em;
    text-transform:uppercase; font-size:.82rem; padding:11px 24px; border:none; border-radius:999px;
    color:#160B32; background:linear-gradient(120deg, var(--gold), var(--coral));
    cursor:var(--pointer,pointer); box-shadow:0 6px 20px rgba(255,201,60,.35);
    transition:transform .2s, box-shadow .2s, opacity .2s;
}
.rw-submit:hover{ transform:translateY(-2px); box-shadow:0 10px 26px rgba(255,201,60,.5); }
.rw-submit:disabled{ opacity:.5; cursor:not-allowed; transform:none; }

@media (max-width:480px){
    .rw-panel{ left:10px; right:10px; bottom:90px; width:auto; max-height:min(70vh, 560px); }
    .rw-fab{ left:16px; bottom:16px; }
}
