/* Nitido · «Recensioni e anniversari» (11/10/2026, logic/recensioni.py) nel design editoriale.
   Un file per gruppo di pagine, caricato dopo nitido.css (vedi _pagine_css.html). Solo token di colore di
   nitido.css, classi con lo scope della pagina (rc- dentro l'app, rv- nella pagina pubblica della coppia).

   Indice
     1. Impostazioni › Recensioni e anniversari (settings_recensioni.html, .rc-imp)
     2. L'elenco delle recensioni (recensioni_elenco.html, .rc-list) e la terza vista delle Richieste
     3. Il riquadro della scheda della coppia (inquiry_detail.html, .rc-cp)
     4. I promemoria di Oggi (dashboard.html, .nx-row--review / --anniversary)
     5. La pagina della recensione, fuori dalla cornice (recensione.html, body.nx-acc--recensione)
     6. Telefono
     7. Passaggio del mouse
   Scelte di Francesco (9/10): 1A vino pieno, 2A, 3A angoli, ombre e margini di oggi, 4B. Niente tema scuro. */

/* ───────────────────────── 1. Impostazioni ───────────────────────── */
.rc-link-row { display: flex; align-items: center; gap: 10px; min-width: 0; }
.rc-link-row > .nx-input { flex: 1 1 auto; min-width: 0; }
.rc-link-row--two > .nx-input:first-child { flex: 0 1 220px; }
.rc-try { flex: none; height: 44px; }
.rc-try[hidden] { display: none; }
.rc-state {
  display: flex; align-items: flex-start; gap: 8px; margin: -6px 0 0; font-size: 13px; line-height: 1.5; color: var(--nx-paid);
}
.rc-state .nx-i { flex: none; margin-top: 3px; }
.rc-state span { color: var(--nx-ink); }
.rc-rule {
  display: flex; align-items: flex-start; gap: 10px; margin: 12px 0 0; padding: 12px 14px; border-radius: var(--nx-r-md);
  font-size: 13.5px; line-height: 1.5; color: var(--nx-ink); background: var(--nx-veil); box-shadow: inset 2px 0 0 var(--nx-wine);
}
.rc-rule > .nx-i { flex: none; margin-top: 2px; color: var(--nx-wine); }
.rc-rule b { font-weight: 600 !important; }

/* ───────────────────────── 2. Elenco delle recensioni ───────────────────────── */
.rc-items { border-top: 1px solid var(--nx-rule-strong); }
.rc-item { padding: 22px 0 24px; border-bottom: 1px solid var(--nx-rule); max-width: 820px; }
.rc-item-h { display: flex; align-items: baseline; justify-content: space-between; gap: 6px 18px; flex-wrap: wrap; }
.rc-stars { margin: 0; font-size: 18px; line-height: 1; letter-spacing: .08em; color: var(--nx-wine); white-space: nowrap; }
.rc-when { white-space: nowrap; }
/* nx-rc-title nel nome: la regola delle h2 senza classe nx- (nitido.css) non la tocca */
.rc-item-t { margin: 12px 0 0; font: 400 24px/1.15 var(--nx-f-serif); letter-spacing: -.012em; color: var(--nx-ink); overflow-wrap: anywhere; }
.rc-item-b { margin: 10px 0 0; max-width: 72ch; font-size: 15px; line-height: 1.6; color: var(--nx-ink); white-space: pre-line; overflow-wrap: anywhere; }
.rc-item-f { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 18px; margin: 14px 0 0; font-size: 13.5px; color: var(--nx-ink2); }
.rc-sign { font-style: italic; color: var(--nx-ink); }
.rc-item-f .nx-st { font-size: 13px; }
.rc-none { padding: 22px 0; border-top: 1px solid var(--nx-rule-strong); font-size: 15px; color: var(--nx-ink2); }
.rc-none .nx-ul { margin-left: 10px; }

/* ───────────────────────── 3. Scheda della coppia ───────────────────────── */
.rc-cp .nx-kv-sub { line-height: 1.5; }
.rc-cp-rec { align-items: center; }
.rc-cp-rec .rc-stars { font-size: 15px; }
.nx-coppia .rc-cp-body {
  display: block; width: 100%; margin-top: 6px; font-size: 13.5px; line-height: 1.55; color: var(--nx-ink);
  white-space: pre-line; overflow-wrap: anywhere;
}
.rc-cp-body b { font-weight: 600 !important; }
.rc-cp-body i { color: var(--nx-ink2); }
.rc-stop { display: flex; flex-direction: column; gap: 8px; margin: 16px 0 0; padding: 16px 18px; border-radius: 14px; background: var(--nx-grey); }
.rc-stop .nx-check { font-weight: 500; color: var(--nx-ink); }
.rc-stop-l { margin: 6px 0 0; }
.rc-stop-row { display: flex; gap: 8px; min-width: 0; }
.rc-stop-row .nx-input { flex: 1 1 auto; min-width: 0; background: var(--nx-wall); }
.rc-stop .nx-hint { margin: 0; }

/* ───────────────────────── 4. Oggi ───────────────────────── */
:is(.nx-row--review, .nx-row--anniversary) .nx-name { white-space: normal; }
.rc-oggi-x { display: inline-flex; margin: 0; }
.rc-oggi-x .nx-btn { padding: 0 10px; }

/* ───────────────────────── 5. La pagina della recensione ───────────────────────── */
.rv-brand { display: flex; align-items: center; gap: 14px; min-width: 0; }
.rv :is(.nx-acc-lead, .nx-acc-side) .nx-eb { white-space: normal; }        /* etichette lunghe: vanno a capo sul telefono */
.rv-logo { display: block; height: 44px; width: auto; max-width: 160px; object-fit: contain; }
.rv .nx-acc-h { font-size: clamp(40px, 4.2vw, 60px); }
.rv .nx-acc-main { align-items: start; }

/* i link ai portali: righe a filetto, si aprono in una scheda nuova */
.rv-portali { margin-top: 32px; }
.rv-portali-l { margin: 10px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--nx-rule-strong); }
.rv-portali-l li { border-bottom: 1px solid var(--nx-rule); }
.rv-portale {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 0 2px;
  font: 400 21px/1.2 var(--nx-f-serif); letter-spacing: -.006em; color: var(--nx-ink); text-decoration: none; transition: color .15s;
}
.rv-portale .nx-i { flex: none; color: var(--nx-ink2); transition: transform .2s var(--nx-ease), color .15s; }

/* il voto: cinque stelle grandi, la scelta in vino (le stelle sono all'incontrario nel codice: CSS le rimette) */
.rv-voto { margin: 0 0 22px; padding: 0; border: 0; min-width: 0; }
.rv-voto legend { padding: 0; }
.rv-stars { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 2px; margin-left: -6px; }
.rv-star-i { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none; }
.rv-star {
  display: grid; place-items: center; width: 50px; height: 50px; border-radius: var(--nx-r); cursor: pointer;
  font-size: 34px; line-height: 1; color: var(--nx-track); transition: color .15s, transform .15s var(--nx-ease);
}
.rv-star-i:checked ~ .rv-star, .rv-star-i:checked + .rv-star { color: var(--nx-wine); }
.rv-star-i:focus-visible + .rv-star { outline: 2px solid var(--nx-ink); outline-offset: 1px; }
.rv-form .nx-textarea { min-height: 168px; font-size: 16px; }               /* 16 px: il telefono non ingrandisce */
.rv-hint { display: flex; justify-content: space-between; gap: 4px 12px; flex-wrap: wrap; }
.rv-conta { white-space: nowrap; font-variant-numeric: tabular-nums; }
.rv-conta.is-ok { color: var(--nx-paid); }
.rv-consenso { margin-top: 22px; }
.rv-preview { margin-bottom: 22px; }
.rv-form .nx-btn[disabled] { opacity: .5; cursor: not-allowed; }

/* dopo l'invio: la recensione com'è arrivata, i tasti per copiarla, i portali */
.rv-recap { margin: 30px 0 0; padding: 22px 0 0; border-top: 1px solid var(--nx-rule-strong); }
.rv-recap-stars { font-size: 22px; letter-spacing: .08em; color: var(--nx-wine); }
.rv-recap-t { margin-top: 12px !important; font: 400 26px/1.15 var(--nx-f-serif); letter-spacing: -.012em; color: var(--nx-ink); overflow-wrap: anywhere; }
.rv-recap-b { margin-top: 10px !important; max-width: 60ch; font-size: 16px; line-height: 1.6; color: var(--nx-ink); white-space: pre-line; overflow-wrap: anywhere; }
.rv-recap-f { margin-top: 12px !important; font-size: 14px; font-style: italic; color: var(--nx-ink2); }
.rv--grazie .nx-acc-fine { margin-top: 26px; }
.rv-step { margin: 10px 0 0 !important; font-size: 15px; line-height: 1.55; color: var(--nx-ink2); }
.rv-copy { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.rv-copy-b { height: 46px; padding: 0 18px; font-size: 14.5px; }
.rv-copied { margin: 12px 0 0 !important; font-size: 13.5px; color: var(--nx-paid); }
.rv-copied[hidden] { display: none; }
.rv--grazie .rv-portali { margin-top: 26px; }

/* ───────────────────────── 6. Telefono ───────────────────────── */
@media (max-width: 767px) {
  .rc-link-row, .rc-link-row--two { flex-wrap: wrap; }
  .rc-link-row > .nx-input, .rc-link-row--two > .nx-input:first-child { flex: 1 1 100%; }
  .rc-try { width: 100%; }
  .rc-stop-row { flex-direction: column; }
  .rc-stop-row .nx-btn { width: 100%; height: 44px; }
  .rc-item-t { font-size: 21px; }
  .rc-oggi-x .nx-btn { height: 40px; }
  /* sul telefono WhatsApp è un'icona: il nome della coppia ha la riga per sé */
  .rc-oggi-a { gap: 4px; }
  .rc-oggi-a .rc-oggi-wa { width: 44px; height: 40px; padding: 0; justify-content: center; }
  /* tre viste delle Richieste: sul telefono solo le icone (il nome resta per chi legge con la voce) */
  .nx-ric-views:has(> a:nth-child(3)) a > span {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
  }

  .rv-logo { height: 36px; max-width: 120px; }
  .rv .nx-acc-h { font-size: 38px; }
  .rv-portale { font-size: 19px; min-height: 50px; }
  .rv-star { width: 52px; height: 52px; font-size: 36px; }
  .rv-copy-b { flex: 1 1 100%; }
}

/* ───────────────────────── 7. Passaggio del mouse (solo puntatori veri) ───────────────────────── */
@media (hover: hover) and (pointer: fine) {
  .rv-portale:hover { color: var(--nx-wine); }
  .rv-portale:hover .nx-i { color: var(--nx-wine); transform: translate(2px, -2px); }
  .rv-star:hover, .rv-star:hover ~ .rv-star { color: var(--nx-wine-hi); }
  .rv-star:hover { transform: scale(1.06); }
}
