/*
 * UniAdvisor -- Página dedicada de Avaliações (unidade OU hub)
 * (/universidade/{slug}/avaliacoes/, ver inc/reviews/rota-avaliacoes.php)
 *
 * Estrutura/classes/valores transplantados literalmente do mockup HTML
 * fornecido pelo usuário -- especificação final, mesmo padrão já usado
 * em hub-universidade.css/unidade-campus.css/curso.css. Escopado sob
 * .avaliacoes-page pra não vazar pro resto do site.
 *
 * O mockup tem seu próprio <header class="site"> (logo+busca+nav+conta)
 * e cores de marca -- fora de escopo, mesma decisão já tomada nas outras
 * páginas: é chrome do site inteiro, continua sendo o header padrão do
 * tema pai Kadence. Não trouxemos .site/.site-inner/.logo/.search-bar/
 * nav.main/.acct daqui.
 */

.avaliacoes-page{
    --violet:#5b4fe0;
    --violet-dark:#463cc4;
    --violet-bg:#efedfe;
    --ink:#14171f;
    --ink-soft:#5b6472;
    --line:#e7eaf0;
    --bg-soft:#f6f8fb;
    --green:#1c9a5b;
    --green-bg:#eaf7f0;
    --red:#e0483e;
    --amber:#f5a623;
    --radius:14px;
    --shadow:0 10px 30px -14px rgba(20,30,60,.14);
    color:var(--ink);
    line-height:1.5;
    background:var(--bg-soft);
}
.avaliacoes-page a{color:inherit;text-decoration:none;}
.avaliacoes-page img{max-width:100%;display:block;}
.avaliacoes-page ul{margin:0;padding:0;list-style:none;}
.avaliacoes-page button{font-family:inherit;cursor:pointer;}
.avaliacoes-page .wrap{max-width:1180px;margin:0 auto;padding:0 32px;}

.avaliacoes-page .breadcrumb{font-size:13px;color:var(--ink-soft);padding:14px 0;}
.avaliacoes-page .breadcrumb .sep{margin:0 7px;opacity:.5;}
.avaliacoes-page .breadcrumb .current{color:var(--ink);}

main.avaliacoes-page{padding-bottom:40px;}
.avaliacoes-page .layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:20px;align-items:start;}
.avaliacoes-page .card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;}

/* Hero */
.avaliacoes-page .hero-block{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;margin-bottom:18px;}
.avaliacoes-page .hero-photo{border-radius:var(--radius);overflow:hidden;height:150px;background:var(--bg-soft);}
.avaliacoes-page .hero-photo img{width:100%;height:100%;object-fit:cover;}
.avaliacoes-page .verified{display:inline-flex;align-items:center;gap:6px;background:var(--violet-bg);color:var(--violet);font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:20px;margin-bottom:8px;}
.avaliacoes-page .verified svg{width:12px;height:12px;}
.avaliacoes-page h1.unit-title{font-size:26px;font-weight:800;margin:0 0 2px;}
.avaliacoes-page .unit-sub{font-size:14px;font-weight:600;color:var(--ink-soft);margin-bottom:6px;}
.avaliacoes-page .unit-meta{font-size:13px;color:var(--ink-soft);display:flex;gap:14px;align-items:center;flex-wrap:wrap;}
.avaliacoes-page .unit-meta span{display:inline-flex;align-items:center;gap:5px;}
.avaliacoes-page .unit-meta svg{width:14px;height:14px;flex-shrink:0;}
.avaliacoes-page .stat-row{display:flex;gap:12px;margin-top:14px;flex-wrap:wrap;}
.avaliacoes-page .stat-box{border:1px solid var(--line);border-radius:12px;padding:10px 16px;text-align:center;min-width:90px;}
.avaliacoes-page .stat-box .num{font-size:18px;font-weight:800;display:flex;align-items:center;gap:4px;justify-content:center;}
.avaliacoes-page .stat-box .num svg{width:15px;height:15px;}
.avaliacoes-page .stat-box .lbl{font-size:11px;color:var(--ink-soft);}

/* Rating summary */
.avaliacoes-page h2.sec-title{font-size:16px;font-weight:800;margin:0 0 16px;}
.avaliacoes-page .rating-summary{display:grid;grid-template-columns:auto minmax(0,1fr);gap:26px;align-items:center;margin-bottom:14px;}
.avaliacoes-page .rs-big{text-align:center;}
.avaliacoes-page .rs-big .num{font-size:44px;font-weight:800;line-height:1;}
.avaliacoes-page .rs-big .stars{color:var(--amber);font-size:16px;margin:4px 0;}
.avaliacoes-page .rs-big .count{font-size:12px;color:var(--ink-soft);white-space:nowrap;}
.avaliacoes-page .bars{display:flex;flex-direction:column;gap:8px;}
.avaliacoes-page .bar-row{display:grid;grid-template-columns:60px minmax(0,1fr) 70px;align-items:center;gap:10px;font-size:12.5px;color:var(--ink-soft);}
.avaliacoes-page .bar-track{height:7px;border-radius:4px;background:var(--bg-soft);overflow:hidden;}
.avaliacoes-page .bar-fill{height:100%;border-radius:4px;background:var(--green);}
.avaliacoes-page .recommend-line{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--green);background:var(--green-bg);border-radius:10px;padding:10px 14px;}
.avaliacoes-page .recommend-line svg{width:15px;height:15px;flex-shrink:0;}

/* Estado vazio de "Como os alunos avaliam" -- clicável, leva pro
   formulário (unidade) ou pra lista de unidades da rede (hub). */
.avaliacoes-page .rating-empty{display:block;text-align:center;font-size:13.5px;color:var(--ink-soft);background:var(--bg-soft);border:1px dashed var(--line);border-radius:12px;padding:20px 16px;font-weight:600;}
.avaliacoes-page .rating-empty:hover{color:var(--violet);border-color:var(--violet);}

/* Filters */
.avaliacoes-page .filters-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:20px 0 4px;border-top:1px solid var(--line);padding-top:16px;}
.avaliacoes-page .filter-tab{font-size:13px;font-weight:700;color:var(--ink-soft);padding:6px 2px;border-bottom:2px solid transparent;}
.avaliacoes-page .filter-tab.active{color:var(--violet);border-color:var(--violet);}
.avaliacoes-page .filter-select{margin-left:auto;font-size:13px;border:1px solid var(--line);border-radius:8px;padding:7px 10px;color:var(--ink-soft);background:#fff;}
.avaliacoes-page .filters-row2{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--ink-soft);margin:12px 0 6px;flex-wrap:wrap;gap:8px;}
.avaliacoes-page .filters-row2 a{color:var(--violet);font-weight:700;}

/* Review cards -- reaproveita a estrutura já gerada por
   uniadvisor_comentario_callback() (inc/reviews/avaliacoes.php), classes
   .review/.review-head/.review-avatar/.review-body/.review-name etc.,
   as MESMAS já usadas na prévia de single-universidade.php. Só o layout
   dessas classes é redefinido aqui pro visual da página dedicada. */
.avaliacoes-page .review{border-top:1px solid var(--line);padding:18px 0;}
.avaliacoes-page .review:first-child{border-top:none;}
.avaliacoes-page .review-head{display:flex;gap:12px;align-items:flex-start;}
.avaliacoes-page .review-avatar{flex-shrink:0;}
.avaliacoes-page .review-avatar img,
.avaliacoes-page .review-avatar span{width:42px;height:42px;border-radius:50%;}
.avaliacoes-page .review-body{flex:1;min-width:0;}
.avaliacoes-page .review-meta-row{display:flex;align-items:flex-start;gap:10px;}
.avaliacoes-page .review-name-wrap{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.avaliacoes-page .review-name{font-weight:700;font-size:14px;}
.avaliacoes-page .review-badge{display:inline-block;background:var(--green-bg);color:var(--green);font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:8px;}
.avaliacoes-page .review-date{margin-left:auto;text-align:right;font-size:11.5px;color:var(--ink-soft);white-space:nowrap;}
.avaliacoes-page .review-fonte{display:block;}
.avaliacoes-page .review-course{font-size:12px;color:var(--ink-soft);margin-top:2px;}
.avaliacoes-page .review-stars{color:var(--amber);font-size:13px;display:flex;align-items:center;gap:6px;margin-top:6px;}
.avaliacoes-page .review-text{font-size:13.5px;color:var(--ink-soft);margin:10px 0;}
.avaliacoes-page .review-util{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft);background:none;border:none;padding:0;}
.avaliacoes-page .review-util svg{width:14px;height:14px;}
.avaliacoes-page .review-util.is-votado{color:var(--violet);font-weight:700;}

.avaliacoes-page .pagination{display:flex;align-items:center;gap:6px;justify-content:center;margin-top:18px;font-size:13px;flex-wrap:wrap;}
.avaliacoes-page .page-btn{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);}
.avaliacoes-page .page-btn.active{background:var(--violet);color:#fff;font-weight:700;}
.avaliacoes-page .page-btn.disabled{opacity:.4;pointer-events:none;}

/* Sidebar form -- reaproveita comment_form() nativo (mesmos campos/IDs
   de comments-avaliacoes.php: #ua-review-form, .ua-form-row-estrelas,
   .ua-estrelas-input, .ua-form-categorias, .ua-form-tags-wrap,
   .ua-tag-checkbox etc., ver inc/reviews/avaliacoes.php) -- só o visual
   é redefinido aqui. */
.avaliacoes-page .form-title{font-size:16px;font-weight:800;margin:0 0 4px;}
.avaliacoes-page .form-sub{font-size:12.5px;color:var(--ink-soft);margin:0 0 16px;}
.avaliacoes-page .ua-review-form .field-label,
.avaliacoes-page .ua-form-secao-titulo{font-size:12.5px;font-weight:700;margin:14px 0 8px;}
.avaliacoes-page .ua-form-row-estrelas{margin:14px 0 8px;}
/*
 * ">" (filho direto) e não descendente qualquer -- de propósito. O
 * <label for="nome_campo_5"> descritivo ("Nota geral") e o <label
 * for="nome_campo_5">5</label> da PRÓPRIA estrela de valor 5 (dentro de
 * .ua-estrelas-input) têm o MESMO atributo "for" por construção do
 * formulário (uniadvisor_campo_estrelas_form(), ver
 * inc/reviews/avaliacoes.php) -- um seletor por sufixo de atributo
 * (label[for$="_5"]) bate nos dois e quebrava o CSS que esconde o
 * número dentro da estrela (ver .ua-estrelas-input label mais abaixo).
 * Filho direto pega só o label descritivo.
 */
.avaliacoes-page .ua-form-row-estrelas > label{font-size:12.5px;font-weight:700;display:block;margin-bottom:8px;}
.avaliacoes-page .ua-obrigatorio{color:var(--red);}
.avaliacoes-page .ua-estrelas-input{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px;color:#d7dce6;font-size:20px;position:relative;}
.avaliacoes-page .ua-estrelas-input input{position:absolute;opacity:0;pointer-events:none;}
/*
 * O <label> traz o NÚMERO como texto real (markup gerado por
 * uniadvisor_campo_estrelas_form(), ver inc/reviews/avaliacoes.php --
 * não é pra mexer nesse PHP só por causa do CSS). font-size:0 no label
 * colapsa esse texto a tamanho zero (invisível, mas continua acessível
 * pra leitor de tela); o ::before restaura um font-size próprio só pra
 * desenhar a estrela. BUG JÁ CORRIGIDO: a primeira versão usava
 * width:0+overflow:hidden no label, o que cortava também o ::before
 * (fica dentro da mesma caixa clipada) -- as estrelas ficavam
 * completamente invisíveis.
 */
.avaliacoes-page .ua-estrelas-input label{cursor:pointer;font-size:0;line-height:0;}
.avaliacoes-page .ua-estrelas-input label::before{content:"★";font-size:20px;line-height:1;}
.avaliacoes-page .ua-estrelas-input input:checked ~ label::before,
.avaliacoes-page .ua-estrelas-input label:hover::before,
.avaliacoes-page .ua-estrelas-input label:hover ~ label::before{color:var(--amber);}
.avaliacoes-page textarea,
.avaliacoes-page input[type="text"],
.avaliacoes-page input[type="email"]{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;font-size:13px;font-family:inherit;resize:vertical;min-height:auto;}
.avaliacoes-page textarea{min-height:80px;}
.avaliacoes-page .comment-form-author,
.avaliacoes-page .comment-form-email,
.avaliacoes-page .comment-form-comment{margin:14px 0;}
.avaliacoes-page .comment-form-author label,
.avaliacoes-page .comment-form-email label,
.avaliacoes-page .comment-form-comment label{font-size:12.5px;font-weight:700;display:block;margin-bottom:8px;}
.avaliacoes-page .comment-form-email small{font-weight:400;color:var(--ink-soft);}
.avaliacoes-page .ua-form-categorias{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px 24px;}
.avaliacoes-page .ua-form-categorias .ua-form-row-estrelas{display:flex;justify-content:space-between;align-items:center;margin:8px 0;}
.avaliacoes-page .ua-form-categorias .ua-form-row-estrelas > label{margin:0;font-weight:400;color:var(--ink-soft);font-size:12.5px;}
.avaliacoes-page .ua-form-categorias .ua-estrelas-input{font-size:14px;}
.avaliacoes-page .ua-form-categorias .ua-estrelas-input label::before{font-size:14px;}
.avaliacoes-page .ua-form-row-recomenda{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--ink-soft);margin:14px 0;}
.avaliacoes-page .ua-recomenda-input{display:flex;gap:10px;}
.avaliacoes-page .ua-recomenda-input label{flex:1;border:1px solid var(--line);border-radius:10px;padding:10px;text-align:center;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;color:var(--ink-soft);}
.avaliacoes-page .ua-recomenda-input input{position:absolute;opacity:0;width:0;height:0;}
.avaliacoes-page .ua-recomenda-input input[value="sim"]:checked ~ label,
.avaliacoes-page .ua-recomenda-input label:has(input[value="sim"]:checked){color:var(--green);border-color:var(--green);background:var(--green-bg);}
.avaliacoes-page .ua-recomenda-input label:has(input[value="nao"]:checked){color:var(--red);border-color:var(--red);background:#fdecec;}
.avaliacoes-page .ua-form-tags-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin:14px 0;}
.avaliacoes-page .ua-form-tags-label{font-size:12.5px;font-weight:700;display:block;margin-bottom:8px;}
.avaliacoes-page .ua-form-tags-lista{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;}
.avaliacoes-page .ua-tag-checkbox{display:inline-flex;align-items:center;gap:5px;background:var(--bg-soft);border:1px solid var(--line);font-size:11.5px;padding:5px 10px;border-radius:16px;color:var(--ink-soft);cursor:pointer;}
.avaliacoes-page .ua-tag-checkbox input{width:12px;height:12px;}
.avaliacoes-page .ua-tag-checkbox.is-checked{background:var(--violet-bg);border-color:var(--violet);color:var(--violet);font-weight:700;}
.avaliacoes-page .ua-form-tags-outro{font-size:12.5px !important;padding:8px 10px !important;}
.avaliacoes-page .ua-form-row-dupla{display:flex;gap:16px;margin:14px 0;}
.avaliacoes-page .ua-form-row-dupla-item{flex:1;}
.avaliacoes-page .ua-form-row-dupla-item label{font-size:12.5px;font-weight:700;display:block;margin-bottom:8px;}
.avaliacoes-page .ua-form-aviso-erro{background:#fdecec;color:var(--red);border:1px solid #f7d2d2;border-radius:8px;padding:10px 14px;font-size:12.5px;font-weight:600;margin:0 0 14px;}
.avaliacoes-page #ua-review-form > p.form-submit{margin-top:16px;}
.avaliacoes-page #ua-review-form input[type="submit"],
.avaliacoes-page .btn-publish{width:100%;background:var(--violet);color:#fff;border:none;border-radius:10px;padding:13px;font-weight:700;font-size:14px;margin-top:6px;}
.avaliacoes-page #ua-review-form input[type="submit"]:hover{background:var(--violet-dark);}
.avaliacoes-page .comment-reply-title{display:none;}
.avaliacoes-page .logged-in-as{display:none;}

/* ---------- Elemento 1: bloco "Faça sua avaliação" (topo do formulário) ---------- */
.avaliacoes-page .ua-aviso-banner{display:flex;align-items:flex-start;gap:10px;background:#FEF9E7;border-radius:10px;padding:12px 14px;margin:14px 0 16px;}
.avaliacoes-page .ua-aviso-icone{width:22px;height:22px;border-radius:50%;background:var(--amber);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.avaliacoes-page .ua-aviso-icone svg{width:13px;height:13px;}
.avaliacoes-page .ua-aviso-banner > span:last-child{font-size:12.5px;color:var(--ink);line-height:1.5;}

.avaliacoes-page .field-label{font-size:12.5px;font-weight:700;margin:14px 0 8px;}

.avaliacoes-page .ua-select-wrap{position:relative;}
.avaliacoes-page .ua-select-wrap select{width:100%;appearance:none;-webkit-appearance:none;-moz-appearance:none;border:1px solid var(--line);border-radius:10px;padding:11px 36px 11px 12px;font-size:13px;font-family:inherit;color:var(--ink);background:#fff;cursor:pointer;}
.avaliacoes-page .ua-select-wrap::after{content:"";position:absolute;right:14px;top:50%;width:9px;height:9px;border-right:2px solid var(--ink-soft);border-bottom:2px solid var(--ink-soft);transform:translateY(-70%) rotate(45deg);pointer-events:none;}

.avaliacoes-page .ua-nota-geral-linha{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.avaliacoes-page .ua-nota-geral-texto{font-size:12.5px;color:var(--ink-soft);}
.avaliacoes-page .ua-nota-geral-texto.is-preenchida{color:var(--ink);font-weight:700;}

.avaliacoes-page .ua-textarea-wrap{position:relative;}
.avaliacoes-page .ua-char-count{display:block;text-align:right;font-size:11px;color:var(--ink-soft);margin-top:4px;}

.avaliacoes-page .terms-note{font-size:11px;color:var(--ink-soft);text-align:center;margin-top:10px;}
.avaliacoes-page .terms-note a{color:var(--violet);font-weight:700;}

/* ---------- Atalho de avaliação do hub (/avaliar/): formulário apagado/
   bloqueado até a pessoa escolher uma unidade no seletor -- ver
   'exigir_selecao' em uniadvisor_renderizar_formulario_avaliacao()
   (inc/reviews/avaliacoes.php) e assets/js/avaliacoes.js. O próprio
   .ua-select-wrap (o seletor de unidade) fica de fora do apagado --
   é o único campo que precisa continuar clicável nesse estado. ---------- */
.avaliacoes-page .ua-form-aguardando-unidade{opacity:.5;pointer-events:none;transition:opacity .15s ease;}
.avaliacoes-page .ua-form-aguardando-unidade .ua-select-wrap{opacity:1;pointer-events:auto;}

/* ---------- Elemento 2: card de destaque "Avalie e faça a diferença" ---------- */
.avaliacoes-page .ua-destaque-card{display:flex;align-items:flex-start;gap:14px;background:#F1EFFE;border:1.5px dashed #8b7ef0;border-radius:var(--radius);padding:18px;margin-bottom:16px;}
.avaliacoes-page .ua-destaque-icone{width:38px;height:38px;border-radius:50%;background:var(--violet-dark);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.avaliacoes-page .ua-destaque-icone svg{width:18px;height:18px;}
.avaliacoes-page .ua-destaque-titulo{font-weight:800;font-size:14px;color:var(--violet-dark);margin-bottom:4px;}
.avaliacoes-page .ua-destaque-texto{font-size:12px;color:#6b6398;line-height:1.5;}

/* Sidebar mini lists */
.avaliacoes-page .mini-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);}
.avaliacoes-page .mini-item:last-child{border-bottom:none;}
.avaliacoes-page .mini-photo{width:44px;height:44px;border-radius:9px;object-fit:cover;background:var(--bg-soft);flex-shrink:0;}
.avaliacoes-page .mini-logo{width:36px;height:36px;border-radius:8px;background:var(--bg-soft);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:11px;color:var(--ink-soft);flex-shrink:0;overflow:hidden;}
.avaliacoes-page .mini-logo img{width:100%;height:100%;object-fit:contain;}
.avaliacoes-page .mini-info{min-width:0;}
.avaliacoes-page .mini-name{font-weight:700;font-size:12.5px;}
.avaliacoes-page .mini-rating{font-size:11.5px;color:var(--ink-soft);}
.avaliacoes-page .mini-link{margin-left:auto;font-size:11.5px;font-weight:700;border:1px solid var(--line);border-radius:8px;padding:6px 10px;white-space:nowrap;}
.avaliacoes-page .see-all{color:var(--violet);font-weight:700;font-size:12.5px;display:inline-block;margin-top:10px;}

.avaliacoes-page .tag-chip{display:inline-block;background:var(--bg-soft);border:1px solid var(--line);font-size:11.5px;padding:5px 10px;border-radius:16px;color:var(--ink-soft);margin:0 6px 8px 0;}

.avaliacoes-page .faq-banner{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 22px;margin-top:20px;flex-wrap:wrap;}
.avaliacoes-page .faq-icon{width:36px;height:36px;border-radius:50%;background:var(--violet-bg);color:var(--violet);display:flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0;}
.avaliacoes-page .faq-text{flex:1;min-width:200px;}
.avaliacoes-page .faq-text b{font-size:14px;}
.avaliacoes-page .faq-text div{font-size:12.5px;color:var(--ink-soft);}
.avaliacoes-page .btn-outline{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 18px;font-weight:700;font-size:13px;white-space:nowrap;}

@media(max-width:980px){
    .avaliacoes-page .layout{grid-template-columns:minmax(0,1fr);}
    .avaliacoes-page .hero-block{grid-template-columns:minmax(0,1fr);}
    .avaliacoes-page .rating-summary{grid-template-columns:minmax(0,1fr);}
}

@media(max-width:600px){
    .avaliacoes-page .wrap{padding:0 18px;}
    .avaliacoes-page .hero-photo{height:180px;}
    .avaliacoes-page h1.unit-title{font-size:22px;}
    .avaliacoes-page .filter-select{margin-left:0;width:100%;}
    .avaliacoes-page .filters-row{flex-direction:column;align-items:stretch;}
    .avaliacoes-page .ua-form-categorias,
    .avaliacoes-page .ua-form-tags-wrap{grid-template-columns:minmax(0,1fr);}
    .avaliacoes-page .ua-form-row-dupla{flex-direction:column;gap:0;}
    .avaliacoes-page .review-date{margin-left:0;text-align:left;}
    .avaliacoes-page .review-meta-row{flex-direction:column;gap:2px;}
}
