/* FMW · Form richiesta informazioni (frontend pubblico) */
.fmw-rq-wrap{
  --rq-brand:#2A2F3A; --rq-brand-d:#1f232c; --rq-border:#E5E7EB;
  --rq-radius:10px; --rq-bg:#ffffff; --rq-muted:#6b7280;
  font-family:inherit; max-width:640px; margin:0 auto;
}
.fmw-rq-form{
  background:var(--rq-bg); border:1px solid var(--rq-border);
  border-radius:var(--rq-radius); padding:24px;
}
.fmw-rq-title{ margin:0 0 4px; font-size:1.35rem; color:var(--rq-brand); }
.fmw-rq-intro{ margin:0 0 18px; color:var(--rq-muted); }
.fmw-rq-row{ margin-bottom:14px; }
.fmw-rq-2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media(max-width:560px){ .fmw-rq-2{ grid-template-columns:1fr; } }
.fmw-rq-form label{ display:block; font-size:.9rem; font-weight:600; color:var(--rq-brand); }
.fmw-rq-form input[type=text],
.fmw-rq-form input[type=email],
.fmw-rq-form input[type=tel],
.fmw-rq-form textarea{
  width:100%; margin-top:6px; padding:10px 12px; font:inherit; color:#111827;
  border:1px solid var(--rq-border); border-radius:8px; background:#fff; box-sizing:border-box;
}
.fmw-rq-form input:focus, .fmw-rq-form textarea:focus{
  outline:none; border-color:var(--rq-brand); box-shadow:0 0 0 3px rgba(42,47,58,.12);
}
.fmw-rq-form textarea{ resize:vertical; }
.fmw-rq-hp{ position:absolute; left:-9999px; height:0; overflow:hidden; }
.fmw-rq-consent{ margin:6px 0 18px; }
.fmw-rq-check{ display:flex; align-items:flex-start; gap:9px; font-weight:400 !important;
  font-size:.88rem; color:#374151; margin-bottom:10px; cursor:pointer; }
.fmw-rq-check input{ margin-top:3px; flex:0 0 auto; }
.fmw-rq-check a{ color:var(--rq-brand); text-decoration:underline; }
.fmw-rq-submit{
  appearance:none; border:0; cursor:pointer; background:var(--rq-brand); color:#fff;
  padding:12px 22px; border-radius:8px; font:inherit; font-weight:600; transition:background .15s;
}
.fmw-rq-submit:hover{ background:var(--rq-brand-d); }
.fmw-rq-submit[disabled]{ opacity:.6; cursor:default; }
.fmw-rq-msg{ margin-top:14px; font-size:.92rem; }
.fmw-rq-msg.ok{ color:#10B981; }
.fmw-rq-msg.err{ color:#EF4444; }
.fmw-rq-form .fmw-rq-invalid{ border-color:#EF4444 !important; }

/* badge di stato richiesta (magic link / area riservata) */
.fmw-rq-badge{ display:inline-block; padding:3px 10px; border-radius:999px; font-size:.8rem; font-weight:600; }
.fmw-rq-badge--nuova{ background:#FEF3C7; color:#92400E; }
.fmw-rq-badge--in_lavorazione{ background:#DBEAFE; color:#1E40AF; }
.fmw-rq-badge--chiusa{ background:#D1FAE5; color:#065F46; }
.fmw-rq-table{ width:100%; }

/* ── Pagina richiesta (magic link): card + barra avanzamento + conversazione ── */
.fmw-rq-page{ max-width:680px; }
.fmw-rq-card{ background:#fff; border:1px solid var(--rq-border); border-radius:14px; padding:26px; }
.fmw-rq-h{ margin:0 0 2px; font-size:1.3rem; color:var(--rq-brand); }
.fmw-rq-sub{ color:var(--rq-muted); margin:0 0 22px; }

.fmw-st{ position:relative; margin:6px 0 26px; }
.fmw-st-track{ position:absolute; top:14px; left:16.5%; right:16.5%; height:4px; background:#e5e7eb; border-radius:999px; }
.fmw-st-fill{ position:absolute; top:14px; left:16.5%; height:4px; background:var(--st-col,#2D6CDF); border-radius:999px; transition:width .3s; }
.fmw-st-row{ position:relative; display:flex; }
.fmw-st-step{ flex:1; text-align:center; }
.fmw-st-dot{ width:32px; height:32px; border-radius:50%; background:#e5e7eb; color:#9ca3af;
  display:flex; align-items:center; justify-content:center; margin:0 auto 8px; font-weight:700;
  font-size:.9rem; border:3px solid #fff; box-sizing:border-box; }
.fmw-st-lbl{ font-size:.8rem; color:#9ca3af; font-weight:600; }
.fmw-st-step.done .fmw-st-dot{ background:var(--st-col,#2D6CDF); color:#fff; }
.fmw-st-step.done .fmw-st-lbl{ color:var(--rq-brand); }

.fmw-cv{ display:flex; flex-direction:column; gap:12px; margin:8px 0 20px; }
.fmw-cv-msg{ max-width:80%; }
.fmw-cv-msg.me{ align-self:flex-end; }
.fmw-cv-msg.them{ align-self:flex-start; }
.fmw-cv-meta{ font-size:.72rem; color:#94a3b8; margin:0 4px 3px; }
.fmw-cv-msg.me .fmw-cv-meta{ text-align:right; }
.fmw-cv-bub{ padding:10px 13px; border-radius:12px; line-height:1.5; font-size:.92rem; }
.fmw-cv-msg.me .fmw-cv-bub{ background:var(--rq-brand); color:#fff; }
.fmw-cv-msg.them .fmw-cv-bub{ background:#f1f5f9; color:#1f2937; }
.fmw-cv-reply label{ display:block; font-weight:600; color:var(--rq-brand); margin-bottom:6px; }
.fmw-cv-reply textarea{ width:100%; padding:10px 12px; border:1px solid var(--rq-border); border-radius:10px; font:inherit; box-sizing:border-box; }
.fmw-cv-reply textarea:focus{ outline:none; border-color:var(--rq-brand); box-shadow:0 0 0 3px rgba(42,47,58,.12); }
