/* ===== RESET & BASE ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* Nasconde visivamente un elemento senza toglierlo dagli screen reader
   (a differenza di display:none/.hidden) — usata per un <h1> di pagina su
   layout tipo dashboard/admin dove il titolo visivo non è pensato per
   essere un heading, ma la gerarchia h1->h2 va comunque rispettata. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

:root {
  --blue: #2563eb;
  --blue-dark: #1d4ed8;
  --blue-light: #dbeafe;
  --amber: #f59e0b;
  --green: #10b981;
  --red: #ef4444;
  --yellow: #f59e0b;
  --gray-50: #f9fafb;
  --gray-100: #f3f4f6;
  --gray-200: #e5e7eb;
  --gray-400: #9ca3af;
  --gray-600: #4b5563;
  --gray-700: #374151;
  --gray-800: #1f2937;
  --gray-900: #111827;
  --shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);
  --shadow-md: 0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.06);
  --shadow-lg: 0 10px 15px rgba(0,0,0,.1), 0 4px 6px rgba(0,0,0,.05);
  --radius: 12px;
  --radius-sm: 8px;
}

html { scroll-behavior: smooth; overflow-x: hidden; max-width: 100%; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; color: var(--gray-800); background: var(--gray-50); line-height: 1.6; overflow-x: hidden; max-width: 100%; }

/* Sotto i 16px, Safari/WebKit su iOS zooma automaticamente la pagina al focus
   di un campo: forziamo un minimo di 16px ovunque per evitarlo, senza ridurre
   campi già più grandi. */
input, select, textarea { font-size: max(16px, 1em); }

.container { max-width: 1180px; margin: 0 auto; padding: 0 24px; }

/* ===== HEADER ===== */
.header { background: white; border-bottom: 1px solid var(--gray-200); position: sticky; top: 0; z-index: 100; }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 28px; height: 60px; }
.nav { display: flex; gap: 6px; align-items: center; }
.nav-actions { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.logo { display: flex; align-items: center; gap: 10px; text-decoration: none; flex-shrink: 0; }
.logo-text { font-size: 1.4rem; font-weight: 800; color: var(--gray-900); letter-spacing: -0.5px; }
.logo-ai { color: var(--blue); }
.logo-ai-red { color: #3B9EF5; }
.logo-immo { color: #3D6FF0; }
/* Logo universale su sfondi scuri (dashboard, admin, login) — stessa coppia di colori, schiarita per restare leggibile sul blu navy */
.logo-dark .logo-ai-red { color: #5CB3FF; }
.logo-dark .logo-immo { color: #6E9AFF; }
.dash-logo .logo-ai-red { color: #3B9EF5; }
.dash-logo .logo-immo { color: #3D6FF0; }
.auth-logo .logo-ai-red { color: #5CB3FF; }
.auth-logo .logo-immo { color: #6E9AFF; }
.nav-link { color: var(--gray-600); text-decoration: none; font-size: .9rem; font-weight: 500; padding: 6px 14px; border-radius: 8px; transition: all .2s; }
.nav-link:hover { background: var(--blue-light); color: var(--blue); }

/* ===== HERO ===== */
.hero { background: linear-gradient(135deg, #1e3a8a 0%, #2563eb 50%, #0ea5e9 100%); color: white; padding: 28px 0 48px; text-align: center; }
.hero-badge { display: inline-block; background: rgba(255,255,255,.15); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.3); padding: 6px 18px; border-radius: 100px; font-size: .8rem; font-weight: 600; letter-spacing: .5px; margin-bottom: 24px; }
.hero-title { font-size: clamp(1.8rem, 4.5vw, 2.6rem); font-weight: 800; line-height: 1.2; margin-bottom: 10px; letter-spacing: -1px; }
.gradient-text { background: linear-gradient(135deg, #fbbf24, #f97316); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.hero-red { color: #ff1a1a; }

/* ===== HERO SLOTS ===== */
.hero-slots { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-bottom: 28px; }
.hero-slot {
  display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 4px;
  background: rgba(255,255,255,.15); backdrop-filter: blur(10px);
  border: 1.5px solid rgba(255,255,255,.35);
  border-radius: 16px; padding: 18px 22px;
  text-decoration: none; color: white;
  transition: all .25s; cursor: pointer;
  min-width: 160px;
}
.hero-slot:hover { background: rgba(255,255,255,.25); border-color: rgba(255,255,255,.6); transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0,0,0,.2); }
.hero-slot-icon { display: none; }
.hero-slot-label { font-size: 1rem; font-weight: 800; letter-spacing: -.3px; }
.hero-slot-sub { font-size: .75rem; opacity: .75; }
@media (max-width: 640px) {
  .hero-slots { flex-direction: column; align-items: center; }
  .hero-slot { width: 100%; max-width: 300px; flex-direction: row; justify-content: flex-start; gap: 16px; padding: 16px 24px; }
  .hero-slot-label { font-size: .95rem; }
}
.hero-subtitle { font-size: 1rem; opacity: .85; margin-bottom: 20px; }

/* ===== SAVINGS BANNER ===== */
.hero-savings {
  background: rgba(255,255,255,.12); backdrop-filter: blur(12px);
  border: 1.5px solid rgba(255,255,255,.25);
  border-radius: 20px; padding: 24px 32px;
  max-width: 680px; margin: 0 auto 28px;
  display: flex; flex-direction: column; align-items: center; gap: 16px;
}
.hero-savings-title { font-size: .85rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; opacity: .7; }
.hero-savings-compare { display: flex; align-items: center; gap: 24px; width: 100%; justify-content: center; flex-wrap: wrap; }
.savings-col { text-align: center; flex: 1; min-width: 120px; }
.savings-col-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .5px; opacity: .65; margin-bottom: 6px; }
.savings-col-pct { font-size: 2rem; font-weight: 800; line-height: 1; }
.savings-col-amount { font-size: .8rem; opacity: .75; margin-top: 4px; }
.savings-col.traditional .savings-col-pct { color: #fca5a5; text-decoration: line-through; }
.savings-col.ai .savings-col-pct { color: #6ee7b7; }
.savings-vs { font-size: 1rem; font-weight: 700; opacity: .4; flex-shrink: 0; }
.savings-result { background: rgba(110,231,183,.15); border: 1px solid rgba(110,231,183,.3); border-radius: 12px; padding: 10px 20px; font-weight: 700; font-size: .95rem; color: #6ee7b7; }
@media (max-width: 640px) {
  .hero-savings { padding: 16px 14px; }
  .hero-savings-compare { gap: 8px; flex-wrap: nowrap; }
  .savings-col { min-width: 0; }
  .savings-col-pct { font-size: 1.6rem; }
  .savings-vs { font-size: .85rem; }
}
.hero-cta { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-bottom: 48px; }
.hero-stats { display: flex; justify-content: center; align-items: center; gap: 32px; background: rgba(255,255,255,.1); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.2); border-radius: 16px; padding: 20px 40px; display: inline-flex; }
.stat { text-align: center; }
.stat-num { display: block; font-size: 1.8rem; font-weight: 800; }
.stat-label { font-size: .75rem; opacity: .7; text-transform: uppercase; letter-spacing: .5px; }
.stat-divider { width: 1px; height: 40px; background: rgba(255,255,255,.2); }

/* ===== BUTTONS ===== */
.btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 24px; border-radius: 10px; font-size: .95rem; font-weight: 600; cursor: pointer; border: none; text-decoration: none; transition: all .2s; }
.btn-primary { background: var(--blue); color: white; }
.btn-primary:hover { background: var(--blue-dark); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(37,99,235,.4); }
.btn-secondary { background: rgba(255,255,255,.15); color: white; border: 1.5px solid rgba(255,255,255,.5); }
.btn-secondary:hover { background: rgba(255,255,255,.25); }
.btn-full { width: 100%; justify-content: center; padding: 14px; font-size: 1rem; margin-top: 24px; }
.btn-full:disabled { opacity: .6; cursor: not-allowed; transform: none !important; }
.btn-icon { font-size: 1.1rem; }

/* ===== SECTIONS ===== */
.section { padding: 72px 0; }
.section-alt { background: white; }
.section-header { text-align: center; margin-bottom: 40px; }
.section-icon { font-size: 2.5rem; margin-bottom: 12px; }
.section-title { font-size: 1.9rem; font-weight: 800; color: var(--gray-900); margin-bottom: 12px; letter-spacing: -.5px; }
.section-desc { color: var(--gray-600); font-size: 1rem; max-width: 600px; margin: 0 auto; }

/* ===== CARD ===== */
.card { background: white; border: 1px solid var(--gray-200); border-radius: var(--radius); padding: 32px; box-shadow: var(--shadow-md); }
.section-alt .card { background: var(--gray-50); }

/* ===== FORM ===== */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-section-title { grid-column: 1 / -1; font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--blue); padding: 12px 0 4px; border-bottom: 2px solid var(--blue-light); margin-top: 8px; }
.form-section-title:first-child { margin-top: 0; }
.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-group.full { grid-column: 1 / -1; }
.form-group label { font-size: .85rem; font-weight: 600; color: var(--gray-700); }
.optional { font-weight: 400; color: var(--gray-400); font-size: .8rem; }
input[type="text"], input[type="number"], input[type="email"], select, textarea {
  padding: 10px 14px; border: 1.5px solid var(--gray-200); border-radius: var(--radius-sm);
  font-size: 1rem; color: var(--gray-800); background: white; width: 100%;
  transition: border-color .2s, box-shadow .2s; outline: none; font-family: inherit;
}
input:focus, select:focus, textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(37,99,235,.1); }
textarea { resize: vertical; min-height: 80px; }
select { cursor: pointer; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 36px; }

/* Checkboxes */
.checkboxes { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; gap: 16px; }
.checkbox-label { display: flex; align-items: center; gap: 10px; cursor: pointer; font-size: .9rem; color: var(--gray-700); font-weight: 500; }
.checkbox-label input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--blue); cursor: pointer; }

/* ===== UPLOAD ===== */
.upload-area { border: 2px dashed var(--gray-200); border-radius: var(--radius-sm); background: var(--gray-50); transition: all .2s; position: relative; }
.upload-area:hover, .upload-area.dragover { border-color: var(--blue); background: var(--blue-light); }
.upload-area input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.upload-placeholder { padding: 32px; text-align: center; pointer-events: none; }
.upload-icon { font-size: 2rem; margin-bottom: 8px; }
.upload-text { color: var(--gray-600); font-size: .9rem; }
.upload-link { color: var(--blue); font-weight: 600; }
.upload-hint { color: var(--gray-400); font-size: .8rem; margin-top: 6px; }
.upload-preview { display: flex; align-items: center; gap: 12px; padding: 16px 20px; }
.file-icon { font-size: 2rem; }
.file-info { flex: 1; }
.file-name { font-weight: 600; color: var(--gray-800); font-size: .9rem; }
.file-size { color: var(--gray-400); font-size: .8rem; }
.file-remove { background: none; border: none; font-size: 1.2rem; cursor: pointer; color: var(--gray-400); padding: 4px 8px; border-radius: 6px; transition: all .2s; position: relative; z-index: 2; }
.file-remove:hover { color: var(--red); background: #fee2e2; }

/* ===== RESULTS ===== */
.result-area { margin-top: 28px; border-radius: var(--radius); overflow: hidden; border: 1px solid rgba(99,102,241,.2); box-shadow: 0 4px 20px rgba(99,102,241,.1); }
.result-header { background: linear-gradient(135deg, #0f172a, #1e3a8a); color: white; padding: 14px 20px; display: flex; justify-content: space-between; align-items: center; }
.result-title { font-weight: 700; font-size: .95rem; }
.btn-copy { background: rgba(255,255,255,.1); color: white; border: 1px solid rgba(255,255,255,.2); padding: 6px 14px; border-radius: 6px; cursor: pointer; font-size: .8rem; font-weight: 600; transition: all .2s; }
.btn-copy:hover { background: rgba(255,255,255,.2); }
.result-content { padding: 24px; background: white; font-size: .9rem; line-height: 1.7; min-height: 100px; overflow-x: auto; }

/* Typing indicator */
.typing-indicator { padding: 16px 24px; display: flex; gap: 6px; background: white; }
.typing-indicator span { width: 8px; height: 8px; background: var(--blue); border-radius: 50%; animation: bounce 1.2s ease-in-out infinite; }
.typing-indicator span:nth-child(2) { animation-delay: .2s; }
.typing-indicator span:nth-child(3) { animation-delay: .4s; }
@keyframes bounce { 0%, 60%, 100% { transform: translateY(0); opacity: .6; } 30% { transform: translateY(-8px); opacity: 1; } }

/* ===== MARKDOWN ===== */
.markdown-content { overflow-wrap: anywhere; word-break: break-word; }
.markdown-content h1, .markdown-content h2, .markdown-content h3, .markdown-content h4 { color: var(--gray-900); margin: 20px 0 10px; line-height: 1.3; }
.markdown-content h1 { font-size: 1.4rem; }
.markdown-content h2 { font-size: 1.2rem; border-bottom: 2px solid rgba(99,102,241,.2); padding-bottom: 6px; color: #1e3a8a; }
.markdown-content h3 { font-size: 1rem; color: #6366f1; }
.markdown-content h4 { font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .7px; color: #6366f1; opacity: .75; margin: 18px 0 6px; }
.markdown-content p { margin-bottom: 12px; }
.markdown-content ul, .markdown-content ol { padding-left: 20px; margin-bottom: 12px; }
.markdown-content li { margin-bottom: 6px; }
.markdown-content strong { color: var(--gray-900); }
.markdown-content em { color: var(--gray-600); }
.markdown-content hr { border: none; border-top: 1px solid var(--gray-200); margin: 20px 0; }
.markdown-content code { background: var(--gray-100); padding: 2px 6px; border-radius: 4px; font-size: .85em; }
.markdown-content blockquote { border-left: 3px solid #6366f1; padding-left: 12px; color: var(--gray-600); margin: 12px 0; background: rgba(99,102,241,.04); border-radius: 0 6px 6px 0; padding: 10px 14px; }
/* Tabelle comparative dell'AI: invece di un <table> (che su schermi stretti
   costringe a scorrere anche in orizzontale, sopra il normale scroll
   verticale della pagina), diventano card impilate — una per riga, con la
   prima colonna come titolo e le altre come coppie etichetta/valore. Lettura
   con un solo gesto, sempre verticale, coerente con lo stile del sito. */
.markdown-content .ai-comparison-cards { display: flex; flex-direction: column; gap: 10px; margin: 16px 0; }
.markdown-content .ai-comparison-card { background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 12px; padding: 14px 16px; }
.markdown-content .ai-comparison-card-title { font-weight: 700; font-size: .9rem; color: #1e3a8a; padding-bottom: 8px; margin-bottom: 6px; border-bottom: 1px solid var(--gray-200); }
.markdown-content .ai-card-row { display: flex; flex-direction: column; gap: 2px; padding: 5px 0; font-size: .82rem; }
.markdown-content .ai-card-label { color: var(--gray-600); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; }
.markdown-content .ai-card-value { color: var(--gray-900); font-weight: 700; }

/* Tabelle a 2 colonne (etichetta | valore, es. "Calcolo della stima"): lista
   compatta con etichetta sopra e valore sotto, non affiancati — piu' leggibile
   di una riga etichetta-sinistra/valore-destra su schermi stretti. */
.markdown-content .ai-kv-list { display: flex; flex-direction: column; margin: 16px 0; border: 1px solid var(--gray-200); border-radius: 12px; overflow: hidden; }
.markdown-content .ai-kv-row { display: flex; flex-direction: column; gap: 3px; padding: 11px 14px; font-size: .875rem; background: white; }
.markdown-content .ai-kv-row:nth-child(even) { background: var(--gray-50); }
.markdown-content .ai-kv-label { color: var(--gray-600); font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
.markdown-content .ai-kv-value { color: var(--gray-900); font-weight: 700; font-size: 1rem; }
/* Emoji risk indicators */
.markdown-content li:has-text("🔴") { color: var(--red); }
.markdown-content li:has-text("🟡") { color: var(--amber); }
.markdown-content li:has-text("🟢") { color: var(--green); }

/* ===== FOOTER ===== */
/* ── Footer ─────────────────────────────────────────────────────────────── */
.footer {
  background: #0a0f1e;
  border-top: 1px solid rgba(255,255,255,.07);
  color: #e2e8f0;
  padding: 64px 0 0;
}
.footer-grid {
  display: grid;
  grid-template-columns: 2.2fr 1fr 1fr 1fr;
  gap: 48px;
  padding-bottom: 56px;
}
.footer-brand-col .logo-text { font-size: 1.25rem; }
.footer-tagline {
  color: #64748b;
  font-size: .875rem;
  line-height: 1.7;
  margin-top: 14px;
  max-width: 240px;
}
.footer-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}
.footer-badge {
  font-size: .72rem;
  color: #475569;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 99px;
  padding: 4px 12px;
}
.footer-col-title {
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  color: #334155;
  margin-bottom: 18px;
}
.footer-col-links {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.footer-col-links a {
  color: #64748b;
  font-size: .875rem;
  text-decoration: none;
  transition: color .15s;
  line-height: 1.4;
}
.footer-col-links a:hover { color: #e2e8f0; }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.06);
  padding: 20px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.footer-copy { color: #334155; font-size: .78rem; }
.footer-legal { display: flex; align-items: center; gap: 20px; }
.footer-legal a { color: #334155; font-size: .78rem; text-decoration: none; transition: color .15s; }
.footer-legal a:hover { color: #94a3b8; }
/* legacy aliases kept for pages that still use them */
.footer-inner { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; }
.footer .logo-text { color: white; }
.footer-note { color: #64748b; font-size: .8rem; }
.footer-link { background: none; border: none; color: #64748b; font-size: .8rem; cursor: pointer; text-decoration: underline; padding: 0; transition: color .2s; }
.footer-link:hover { color: white; }
.footer-sep { color: #334155; font-size: .8rem; }
.footer-aiact { color: #334155; font-size: .72rem; max-width: 600px; line-height: 1.5; }
@media(max-width:900px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
  .footer-brand-col { grid-column: 1 / -1; }
  .footer-tagline { max-width: 100%; }
}
@media(max-width:520px) {
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}

/* ===== REQUIRED BADGE ===== */
.required-badge { display: inline-block; background: #fef3c7; color: #92400e; font-size: .7rem; font-weight: 700; padding: 2px 7px; border-radius: 100px; margin-left: 6px; vertical-align: middle; }

/* ===== MODALS ===== */
.modal-overlay { position: fixed; inset: 0; z-index: 2000; background: rgba(0,0,0,.6); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; padding: 24px; }
.modal { background: white; border-radius: var(--radius); max-width: 640px; width: 100%; max-height: 85vh; display: flex; flex-direction: column; box-shadow: 0 25px 50px rgba(0,0,0,.25); }
.modal-header { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; border-bottom: 1px solid var(--gray-200); }
.modal-header h3 { font-size: 1.1rem; font-weight: 700; color: var(--gray-900); }
.modal-close { background: none; border: none; font-size: 1.2rem; cursor: pointer; color: var(--gray-400); padding: 4px 8px; border-radius: 6px; transition: all .2s; }
.modal-close:hover { background: var(--gray-100); color: var(--gray-800); }
.modal-body { padding: 24px; overflow-y: auto; font-size: .875rem; line-height: 1.7; color: var(--gray-700); }
.modal-body h4 { font-size: .95rem; font-weight: 700; color: var(--gray-900); margin: 20px 0 8px; }
.modal-body h4:first-child { margin-top: 0; }
.modal-body p { margin-bottom: 12px; }
.modal-body ul { padding-left: 20px; margin-bottom: 12px; }
.modal-body li { margin-bottom: 4px; }
.modal-body a { color: var(--blue); }
.modal-body em { color: var(--gray-400); font-size: .8rem; }

/* AI Act badge in modal */
.ai-act-badge { display: inline-flex; align-items: center; gap: 6px; background: #eff6ff; border: 1px solid #bfdbfe; color: #1d4ed8; font-size: .8rem; font-weight: 600; padding: 6px 14px; border-radius: 100px; margin-bottom: 16px; }

/* ===== UTILITIES ===== */
.hidden { display: none !important; }

/* ===== NAV ACTIVE ===== */
.nav-link-active { background: var(--blue-light); color: var(--blue) !important; }

/* ===== HERO COMPACT (Funnel) ===== */
.hero-compact { padding: 52px 0 44px; }
.hero-compact .hero-title { font-size: clamp(1.7rem, 4vw, 2.4rem); }

/* ===== FUNNEL PROGRESS HERO ===== */
.funnel-hero-progress { margin-top: 32px; max-width: 560px; margin-left: auto; margin-right: auto; }
.fhp-bar-wrap { height: 10px; background: rgba(255,255,255,.2); border-radius: 100px; overflow: hidden; margin-bottom: 10px; }
.fhp-bar-fill { height: 100%; background: linear-gradient(90deg, #34d399, #10b981); border-radius: 100px; width: 0%; transition: width .5s ease; }
.fhp-labels { display: flex; justify-content: space-between; font-size: .85rem; opacity: .85; }

/* ===== INFO BANNER ===== */
.funnel-info-banner { padding: 20px 0 0; }
.funnel-info-inner {
  display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;
  background: linear-gradient(135deg, #eff6ff, #f5f9ff);
  border: 1px solid #bfdbfe; border-radius: var(--radius);
  padding: 18px 22px; box-shadow: var(--shadow);
}
.funnel-info-text { display: flex; align-items: center; gap: 14px; color: var(--gray-700); font-size: .875rem; line-height: 1.5; flex: 1; min-width: 220px; }
.funnel-info-icon {
  font-size: 1.25rem; flex-shrink: 0; width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  background: #dbeafe; border-radius: 10px;
}
.btn-funnel-reset { background: none; border: 1px solid var(--gray-300, #d1d5db); color: var(--gray-600); font-size: .8rem; font-weight: 600; padding: 6px 14px; border-radius: 8px; cursor: pointer; transition: all .2s; white-space: nowrap; }
.btn-funnel-reset:hover { border-color: var(--red); color: var(--red); }

/* ===== DOCS GRID ===== */
.docs-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }

/* ===== DOC CARD ===== */
.doc-card {
  background: white;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius);
  padding: 24px;
  box-shadow: var(--shadow-md);
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: border-color .2s, box-shadow .2s;
  position: relative;
  overflow: hidden;
}
.doc-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 4px;
  background: var(--gray-200);
  transition: background .3s;
}
.doc-card.uploaded::before { background: var(--green); }
.doc-card.uploaded { border-color: #d1fae5; }
.doc-card:hover { box-shadow: var(--shadow-lg); }

.doc-card-top { display: flex; align-items: center; justify-content: space-between; }
.doc-step-badge {
  width: 28px; height: 28px;
  background: var(--blue-light);
  color: var(--blue);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: .8rem; font-weight: 800;
  flex-shrink: 0;
}
.doc-card.uploaded .doc-step-badge { background: #d1fae5; color: var(--green); }

.doc-status-badge {
  font-size: .72rem; font-weight: 700; padding: 3px 10px; border-radius: 100px;
  text-transform: uppercase; letter-spacing: .4px;
}
.doc-status-badge.pending { background: var(--gray-100); color: var(--gray-600); }
.doc-status-badge.uploaded { background: #d1fae5; color: #065f46; }

.doc-icon { font-size: 2.2rem; line-height: 1; }

.doc-title { font-size: 1rem; font-weight: 700; color: var(--gray-900); line-height: 1.3; }
.doc-desc { font-size: .82rem; color: var(--gray-600); line-height: 1.55; flex: 1; }

.doc-required-tag {
  display: inline-block;
  font-size: .7rem; font-weight: 700;
  padding: 2px 8px; border-radius: 100px;
  background: #fef3c7; color: #92400e;
}
.doc-optional-tag {
  display: inline-block;
  font-size: .7rem; font-weight: 700;
  padding: 2px 8px; border-radius: 100px;
  background: var(--gray-100); color: var(--gray-600);
}

/* Upload zone within card */
.doc-upload-zone {
  border: 2px dashed var(--gray-200);
  border-radius: var(--radius-sm);
  background: var(--gray-50);
  position: relative;
  cursor: pointer;
  transition: all .2s;
  min-height: 72px;
  display: flex; align-items: center; justify-content: center;
}
.doc-upload-zone:hover, .doc-upload-zone.dragover { border-color: var(--blue); background: var(--blue-light); }
.doc-upload-zone input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.doc-upload-placeholder { text-align: center; pointer-events: none; padding: 14px 12px; }
.doc-upload-placeholder span { font-size: .82rem; color: var(--gray-600); }
.doc-upload-placeholder span strong { color: var(--blue); }
.doc-upload-hint { font-size: .72rem; color: var(--gray-400); margin-top: 3px; }
.doc-upload-limit-note { font-size: .78rem; color: var(--gray-500); text-align: center; padding: 10px 12px; background: var(--gray-50); border-radius: var(--radius-sm); }

/* File preview within card */
.doc-file-preview {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px;
  background: #f0fdf4;
  border: 1.5px solid #bbf7d0;
  border-radius: var(--radius-sm);
}
.doc-file-preview-icon { font-size: 1.4rem; flex-shrink: 0; }
.doc-file-preview-info { flex: 1; min-width: 0; }
.doc-file-preview-name { font-size: .82rem; font-weight: 600; color: var(--gray-800); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.doc-file-preview-meta { font-size: .72rem; color: var(--gray-500); }
.doc-file-preview-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.doc-upload-zone-add { padding: 10px 12px; font-size: .78rem; }
.doc-upload-zone-add .doc-upload-placeholder span { font-size: .82rem; }
.doc-file-remove { background: none; border: none; color: var(--gray-400); cursor: pointer; font-size: 1rem; padding: 2px 6px; border-radius: 4px; transition: all .2s; flex-shrink: 0; }
.doc-file-remove:hover { color: var(--red); background: #fee2e2; }

/* Upload progress within card */
.doc-upload-progress { margin-top: 4px; }
.doc-upload-progress-bar { height: 4px; background: var(--gray-200); border-radius: 100px; overflow: hidden; }
.doc-upload-progress-fill { height: 100%; background: var(--blue); width: 0%; transition: width .3s; border-radius: 100px; }
.doc-upload-progress-label { font-size: .72rem; color: var(--gray-500); margin-top: 4px; }

/* Card error state */
.doc-upload-error { font-size: .78rem; color: var(--red); background: #fee2e2; padding: 6px 10px; border-radius: 6px; border-left: 3px solid var(--red); }

/* ===== FUNNEL CTA BOX ===== */
.funnel-cta-box {
  background: white;
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  padding: 40px 32px;
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
  box-shadow: var(--shadow-md);
}
.funnel-cta-box-pending { border-color: #fed7aa; background: #fffbeb; }
.funnel-cta-icon { font-size: 3rem; margin-bottom: 16px; }
.funnel-cta-title { font-size: 1.4rem; font-weight: 800; color: var(--gray-900); margin-bottom: 10px; }
.funnel-cta-desc { color: var(--gray-600); font-size: .95rem; margin-bottom: 20px; }
.funnel-cta-hint { color: var(--gray-500); font-size: .82rem; margin-top: 16px; font-style: italic; }

.missing-docs-list { list-style: none; text-align: left; display: inline-block; margin: 0 auto; }
.missing-docs-list li { display: flex; align-items: center; gap: 8px; font-size: .875rem; color: var(--gray-700); padding: 4px 0; }
.missing-docs-list li::before { content: '•'; color: var(--amber); font-size: 1.2rem; }

/* ===== RESPONSIVE FUNNEL ===== */
@media (max-width: 900px) {
  .docs-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .docs-grid { grid-template-columns: 1fr; }
  .funnel-info-inner { flex-direction: column; align-items: stretch; }
  .funnel-info-inner .btn { width: 100%; text-align: center; }
  .funnel-cta-box { padding: 28px 20px; }
}

/* ===== HERO MOVEMENT REDESIGN ===== */
.hero-movement-badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,.12); backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.25);
  padding: 7px 20px; border-radius: 100px;
  font-size: .78rem; font-weight: 700; letter-spacing: .8px;
  text-transform: uppercase; margin-bottom: 16px; color: rgba(255,255,255,.9);
}
.hero-movement-dot {
  width: 8px; height: 8px; background: #22d3ee;
  border-radius: 50%; animation: pulse-dot 1.8s ease-in-out infinite;
}
@keyframes pulse-dot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(.7)} }

.hero-highlight {
  background: linear-gradient(135deg, #fbbf24 0%, #f97316 50%, #ef4444 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.hero-title-sub { font-size: clamp(1.3rem, 3vw, 2rem); font-weight: 600; opacity: .75; display: block; }

.hero-subtitle strong { font-weight: 800; color: #fde68a; }
.hero-subtitle em { font-style: normal; color: #a5f3fc; font-weight: 600; }

.hero-manifesto {
  display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px 16px;
  background: rgba(0,0,0,.25); border: 1px solid rgba(255,255,255,.15);
  border-radius: 14px; padding: 12px 20px; margin: 0 auto 24px;
  max-width: 720px;
}
.manifesto-item { display: flex; align-items: center; gap: 7px; font-size: .85rem; color: rgba(255,255,255,.85); }
.manifesto-no { color: #fca5a5; font-weight: 800; font-size: 1rem; }
.manifesto-yes { color: #6ee7b7; font-weight: 800; font-size: 1rem; }
.manifesto-div { color: rgba(255,255,255,.2); font-size: 1.2rem; }

.hero-slot-primary {
  background: linear-gradient(135deg, rgba(16,185,129,.25), rgba(5,150,105,.2)) !important;
  border-color: rgba(16,185,129,.6) !important;
}
.hero-slot-primary:hover { background: linear-gradient(135deg, rgba(16,185,129,.4), rgba(5,150,105,.35)) !important; }

.hero-slots .hero-slot-ai {
  background: linear-gradient(135deg, rgba(37,99,235,.3), rgba(14,165,233,.22)) !important;
  border: 1.5px solid rgba(56,189,248,.7) !important;
}
.hero-slots .hero-slot-ai:hover {
  background: linear-gradient(135deg, rgba(37,99,235,.45), rgba(14,165,233,.38)) !important;
  border-color: rgba(56,189,248,.95) !important;
}

/* ===== HERO CTA PRINCIPALE (valutazione dominante) ===== */
.hero-cta-wrap { display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:28px; }
.hero-cta-main {
  display:flex;flex-direction:column;align-items:center;text-align:center;
  background:linear-gradient(135deg,#1d4ed8 0%,#0ea5e9 100%);
  border-radius:20px;padding:22px 48px;color:white;text-decoration:none;
  width:100%;max-width:520px;
  box-shadow:0 8px 32px rgba(37,99,235,.5),0 2px 8px rgba(0,0,0,.2);
  transition:all .2s;border:1.5px solid rgba(147,210,255,.35);
}
.hero-cta-main:hover { transform:translateY(-3px);box-shadow:0 14px 44px rgba(37,99,235,.6),0 4px 12px rgba(0,0,0,.25); }
.hero-cta-main-label { font-size:1.1rem;font-weight:800;letter-spacing:-.3px; }
.hero-cta-sub { font-size:.75rem;font-weight:500;opacity:.82;margin-top:5px; }
.hero-slots-secondary { display:flex;gap:10px;flex-wrap:wrap;justify-content:center; }
@media(max-width:640px){
  .hero-cta-main { padding:18px 24px; }
  .hero-cta-main-label { font-size:1rem; }
  .hero-slots-secondary { flex-direction:column;align-items:center;width:100%; }
  .hero-slots-secondary .hero-slot { width:100%;max-width:300px; }
}

/* ===== COME FUNZIONA PAGE ===== */
.cf-hero {
  background:linear-gradient(135deg,#0f172a 0%,#1e1b4b 60%,#0c1a3a 100%);
  padding:80px 0 60px;color:white;text-align:center;
  border-bottom:1px solid rgba(99,102,241,.25);
}
.cf-hero-eyebrow {
  display:inline-block;background:rgba(99,102,241,.2);border:1px solid rgba(99,102,241,.4);
  color:#a5b4fc;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;
  border-radius:100px;padding:5px 16px;margin-bottom:20px;
}
.cf-hero-title { font-size:clamp(2rem,5vw,3rem);font-weight:900;line-height:1.15;margin:0 0 16px;letter-spacing:-.5px; }
.cf-hero-sub { font-size:1.1rem;color:#94a3b8;max-width:580px;margin:0 auto 20px;line-height:1.6; }
.cf-hero-badge {
  display:inline-block;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);
  color:#cbd5e1;font-size:.8rem;border-radius:100px;padding:6px 18px;
}
.cf-steps-section { padding:60px 0 20px;background:#f8fafc; }
.cf-steps { display:flex;flex-direction:column;gap:0;max-width:820px;margin:0 auto; }
.cf-step { display:flex;gap:0;align-items:flex-start; }
.cf-step-last .cf-step-left { padding-bottom:0; }
.cf-step-left { display:flex;flex-direction:column;align-items:center;width:72px;flex-shrink:0;padding-top:6px; }
.cf-step-num {
  width:44px;height:44px;border-radius:50%;background:#1d4ed8;color:white;
  font-size:.95rem;font-weight:800;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;box-shadow:0 2px 12px rgba(29,78,216,.35);z-index:1;
}
.cf-step-num-final { background:linear-gradient(135deg,#dc2626,#f43f5e); }
.cf-step-line { width:2px;flex:1;background:linear-gradient(180deg,#dbeafe,#e0e7ff);min-height:40px; }
.cf-step-card {
  display:flex;gap:18px;align-items:flex-start;
  background:white;border-radius:16px;border:1px solid #e9eef5;
  padding:22px;margin:0 0 20px 16px;flex:1;
  box-shadow:0 2px 8px rgba(0,0,0,.06);transition:box-shadow .2s,transform .15s;
}
.cf-step-card:hover { box-shadow:0 6px 24px rgba(0,0,0,.1);transform:translateY(-2px); }
.cf-step-card-final { border-color:#fecdd3;background:linear-gradient(135deg,#fff5f5,#fff); }
.cf-step-icon-wrap { font-size:1.5rem;width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.cf-step-body { flex:1;min-width:0; }
.cf-step-tag { font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#2563eb;margin-bottom:6px; }
.cf-step-title { font-size:1.15rem;font-weight:800;color:#0f172a;margin:0 0 10px;letter-spacing:-.2px; }
.cf-step-desc { font-size:.9rem;color:#475569;line-height:1.65;margin:0 0 12px; }
.cf-step-details { display:flex;flex-direction:column;gap:4px;margin-bottom:16px; }
.cf-detail { font-size:.82rem;color:#059669;font-weight:600; }
.cf-step-cta {
  display:inline-block;background:#f1f5f9;border:1px solid #e2e8f0;color:#1d4ed8;
  font-size:.82rem;font-weight:700;border-radius:8px;padding:8px 16px;
  text-decoration:none;transition:all .2s;
}
.cf-step-cta:hover { background:#dbeafe;border-color:#bfdbfe; }
.cf-step-cta-final { background:linear-gradient(135deg,#dc2626,#f43f5e);color:white;border-color:transparent; }
.cf-step-cta-final:hover { background:linear-gradient(135deg,#b91c1c,#e11d48);transform:translateY(-1px); }
@media(max-width:640px){
  .cf-step-card { flex-direction:column;gap:12px; }
  .cf-step-left { width:52px; }
  .cf-step-num { width:38px;height:38px;font-size:.85rem; }
}
.cf-faq-section { padding:60px 0;background:white;border-top:1px solid #e9eef5; }
.cf-faq-title { font-size:1.6rem;font-weight:800;color:#0f172a;text-align:center;margin:0 0 36px; }
.cf-faq-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;max-width:820px;margin:0 auto; }
.cf-faq-item { background:#f8fafc;border:1px solid #e9eef5;border-radius:12px;padding:20px; }
.cf-faq-q { font-size:.9rem;font-weight:700;color:#0f172a;margin-bottom:8px; }
.cf-faq-a { font-size:.85rem;color:#64748b;line-height:1.6; }
.cf-cta-bottom {
  background:linear-gradient(135deg,#1d4ed8 0%,#0284c7 100%);
  padding:60px 0;text-align:center;color:white;
}
.cf-cta-bottom-title { font-size:clamp(1.3rem,3vw,1.8rem);font-weight:800;margin:0 0 12px;letter-spacing:-.3px; }
.cf-cta-bottom-sub { font-size:1rem;opacity:.85;margin:0 0 24px; }
.cf-cta-bottom-btn {
  display:inline-block;background:white;color:#1d4ed8;font-size:1rem;font-weight:800;
  border-radius:14px;padding:16px 36px;text-decoration:none;
  box-shadow:0 4px 20px rgba(0,0,0,.2);transition:all .2s;
}
.cf-cta-bottom-btn:hover { transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.25); }
.cf-cta-bottom-note { font-size:.78rem;opacity:.7;margin-top:14px; }

/* ===== CHI SIAMO PAGE ===== */
.cs-hero {
  background:linear-gradient(135deg,#0f172a 0%,#1e1b4b 55%,#0c1a3a 100%);
  padding:90px 0 70px;color:white;text-align:center;
  border-bottom:1px solid rgba(99,102,241,.25);
}
.cs-hero-eyebrow {
  display:inline-block;background:rgba(99,102,241,.2);border:1px solid rgba(99,102,241,.4);
  color:#a5b4fc;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;
  border-radius:100px;padding:5px 16px;margin-bottom:22px;
}
.cs-hero-title {
  font-size:clamp(2.2rem,6vw,3.5rem);font-weight:900;line-height:1.1;
  margin:0 0 18px;letter-spacing:-.5px;
}
.cs-hero-highlight { color:#818cf8; }
.cs-hero-sub { font-size:1.1rem;color:#94a3b8;max-width:560px;margin:0 auto;line-height:1.65; }

.cs-section { padding:72px 0; }
.cs-section-light { background:#f8fafc; }
.cs-story-grid { display:grid;grid-template-columns:1fr 1.4fr;gap:56px;align-items:center; }
@media(max-width:768px){ .cs-story-grid { grid-template-columns:1fr; } }

.cs-story-card {
  background:linear-gradient(135deg,#1e1b4b,#0f172a);border-radius:20px;
  padding:36px;text-align:center;border:1px solid rgba(99,102,241,.3);
  box-shadow:0 8px 32px rgba(0,0,0,.3);
}
.cs-story-year { font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:#818cf8;margin-bottom:16px; }
.cs-story-stat {
  font-size:1.3rem;font-weight:800;color:white;margin-bottom:12px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
}
.cs-story-stat-line { text-align:center; }
.cs-story-stat-arrow { color:#818cf8;font-size:1.4rem;line-height:1; }
.cs-story-stat-label { font-size:.82rem;color:#94a3b8;line-height:1.6; }

.cs-section-eyebrow { font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:#2563eb;margin-bottom:10px; }
.cs-section-title { font-size:clamp(1.3rem,3vw,1.85rem);font-weight:800;color:#0f172a;margin:0 0 20px;line-height:1.25;letter-spacing:-.3px; }
.cs-section-title.cs-centered { text-align:center; }
.cs-body-text { font-size:.95rem;color:#475569;line-height:1.75;margin-bottom:14px; }
.cs-body-text.cs-centered-text { text-align:center;max-width:620px;margin-left:auto;margin-right:auto; }

.cs-manifesto-band {
  background:linear-gradient(135deg,#1e1b4b 0%,#312e81 50%,#1e1b4b 100%);
  padding:52px 0;border-top:1px solid rgba(99,102,241,.25);border-bottom:1px solid rgba(99,102,241,.25);
}
.cs-manifesto-inner { max-width:760px;margin:0 auto;text-align:center; }
.cs-manifesto-quote { font-size:4rem;color:#818cf8;line-height:.5;display:block;margin-bottom:8px; }
.cs-manifesto-text { font-size:1.1rem;color:#e2e8f0;line-height:1.75;font-style:italic;margin-bottom:16px; }
.cs-manifesto-author { font-size:.82rem;color:#818cf8;font-weight:700; }

.cs-pillars { display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-top:40px; }
.cs-pillar {
  background:white;border-radius:16px;border:1px solid #e9eef5;padding:28px;
  box-shadow:0 2px 8px rgba(0,0,0,.05);transition:box-shadow .2s,transform .15s;
}
.cs-pillar:hover { box-shadow:0 6px 24px rgba(0,0,0,.1);transform:translateY(-2px); }
.cs-pillar-icon { font-size:2rem;margin-bottom:14px;display:block; }
.cs-pillar-title { font-size:1rem;font-weight:800;color:#0f172a;margin:0 0 10px; }
.cs-pillar-desc { font-size:.875rem;color:#64748b;line-height:1.65;margin:0; }

.cs-mission {
  background:linear-gradient(135deg,#0f172a 0%,#1e1b4b 60%,#0f172a 100%);
  padding:72px 0;color:white;
}
.cs-mission-inner { display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:start; }
@media(max-width:768px){ .cs-mission-inner { grid-template-columns:1fr; } }
.cs-mission-title { font-size:clamp(1.4rem,3.5vw,2rem);font-weight:900;margin:0 0 20px;line-height:1.2;letter-spacing:-.3px; }
.cs-mission-text { font-size:.95rem;color:#94a3b8;line-height:1.75;margin-bottom:14px; }
.cs-mission-highlight { color:#a5b4fc;font-weight:700;font-style:italic;font-size:.95rem; }
.cs-mission-goal {
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  border-radius:14px;padding:22px;margin-bottom:16px;
}
.cs-mission-goal-icon { font-size:1.5rem;margin-bottom:8px; }
.cs-mission-goal-title { font-size:.85rem;font-weight:700;color:#e2e8f0;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px; }
.cs-mission-goal-text { font-size:.85rem;color:#94a3b8;line-height:1.65; }

.cs-numbers { display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;margin-top:40px; }
.cs-number { text-align:center;padding:28px;background:white;border-radius:16px;border:1px solid #e9eef5;box-shadow:0 2px 8px rgba(0,0,0,.05); }
.cs-number-val { font-size:2rem;font-weight:900;color:#1d4ed8;margin-bottom:8px;letter-spacing:-.5px; }
.cs-number-label { font-size:.8rem;color:#64748b;line-height:1.5; }

.cs-cta {
  background:linear-gradient(135deg,#1d4ed8 0%,#0284c7 100%);
  padding:72px 0;text-align:center;color:white;
}
.cs-cta-title { font-size:clamp(1.6rem,4vw,2.2rem);font-weight:900;margin:0 0 14px;letter-spacing:-.3px; }
.cs-cta-sub { font-size:1rem;opacity:.85;max-width:500px;margin:0 auto 32px;line-height:1.6; }
.cs-cta-btns { display:flex;gap:14px;justify-content:center;flex-wrap:wrap; }
.cs-cta-btn-primary {
  background:white;color:#1d4ed8;font-size:.95rem;font-weight:800;
  border-radius:14px;padding:15px 32px;text-decoration:none;
  box-shadow:0 4px 20px rgba(0,0,0,.2);transition:all .2s;
}
.cs-cta-btn-primary:hover { transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.25); }
.cs-cta-btn-secondary {
  background:rgba(255,255,255,.15);color:white;font-size:.95rem;font-weight:700;
  border-radius:14px;padding:15px 32px;text-decoration:none;
  border:1.5px solid rgba(255,255,255,.4);transition:all .2s;
}
.cs-cta-btn-secondary:hover { background:rgba(255,255,255,.25);border-color:rgba(255,255,255,.7); }

.manifesto-band {
  background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 50%, #0f172a 100%);
  padding: 40px 0; border-top: 1px solid rgba(99,102,241,.3); border-bottom: 1px solid rgba(99,102,241,.3);
}
.manifesto-band-text {
  text-align: center; font-size: clamp(1rem, 2.5vw, 1.2rem);
  color: #e2e8f0; font-style: italic; line-height: 1.8;
  max-width: 760px; margin: 0 auto; font-weight: 500;
}
.manifesto-band-quote { font-size: 2.5rem; color: #818cf8; vertical-align: -.3em; line-height: 0; }

.nav-cta {
  background: linear-gradient(135deg, #2563eb, #1d4ed8) !important;
  color: white !important; font-weight: 600 !important;
  padding: 5px 12px !important; border-radius: 8px !important;
  font-size: .82rem !important;
  box-shadow: 0 2px 6px rgba(37,99,235,.3);
  white-space: nowrap !important;
}
.nav-cta:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(37,99,235,.5); background: #1d4ed8 !important; }

/* ===== COME FUNZIONA ===== */
.section-come-funziona { background: linear-gradient(180deg, #f0f9ff 0%, #fff 100%); }
.steps-grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  align-items: start;
  gap: 0;
  margin-bottom: 48px;
}
.step-card {
  background: white;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius);
  padding: 28px 24px;
  text-align: center;
  box-shadow: var(--shadow-md);
  transition: transform .2s, box-shadow .2s;
}
.step-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.step-number { font-size: .72rem; font-weight: 800; color: var(--blue); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 10px; }
.step-icon { font-size: 2.4rem; margin-bottom: 10px; }
.step-title { font-size: 1.05rem; font-weight: 800; color: var(--gray-900); margin-bottom: 8px; }
.step-desc { font-size: .83rem; color: var(--gray-600); line-height: 1.6; }
.step-arrow { font-size: 1.5rem; color: var(--gray-400); padding: 0 8px; align-self: center; padding-top: 20px; }

.trust-row { display: flex; justify-content: center; gap: 0; flex-wrap: wrap; background: white; border: 1px solid var(--gray-200); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.trust-item { display: flex; align-items: center; gap: 12px; padding: 18px 28px; flex: 1; min-width: 160px; border-right: 1px solid var(--gray-100); }
.trust-item:last-child { border-right: none; }
.trust-icon { font-size: 1.6rem; flex-shrink: 0; }
.trust-text { font-size: .82rem; color: var(--gray-600); line-height: 1.4; }
.trust-text strong { color: var(--gray-900); display: block; font-size: .9rem; }

@media (max-width: 900px) {
  .steps-grid { grid-template-columns: 1fr; gap: 16px; }
  .step-arrow { display: none; }
  .trust-item { flex: 0 1 50%; }
}
@media (max-width: 480px) {
  .trust-item { flex: 1 1 100%; border-right: none; border-bottom: 1px solid var(--gray-100); }
  .trust-item:last-child { border-bottom: none; }
}

/* ===== MODAL AVM (Large) ===== */
.modal-avm { max-width: 760px; max-height: 92vh; }
.modal-avm-body { padding: 24px; overflow-y: auto; }
.modal-avm-body .form-grid { gap: 12px; }
.modal-avm-body .btn-full { margin-top: 16px; }

/* ===== PRICING ===== */
.section-prezzi { background: var(--gray-50); }
.pricing-arena { display: grid; grid-template-columns: 1fr auto 1fr; gap: 0; align-items: start; margin-bottom: 48px; }
.pricing-vs-col { display: flex; align-items: center; justify-content: center; padding: 40px 16px; }
.pricing-vs-badge { background: var(--gray-200); color: var(--gray-600); font-weight: 800; font-size: 1rem; padding: 12px 16px; border-radius: 50%; }

.pricing-card { background: white; border: 1.5px solid var(--gray-200); border-radius: var(--radius); padding: 32px; box-shadow: var(--shadow-md); }
.pricing-old { opacity: .85; }
.pricing-new { border-color: var(--blue); box-shadow: 0 8px 32px rgba(37,99,235,.18); position: relative; }

.pricing-badge-top { position: absolute; top: -16px; left: 50%; transform: translateX(-50%); background: linear-gradient(135deg, #f59e0b, #ef4444); color: white; font-size: .78rem; font-weight: 800; padding: 6px 20px; border-radius: 100px; white-space: nowrap; letter-spacing: .5px; }

.pricing-label-bad { font-size: .8rem; font-weight: 700; color: #ef4444; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 12px; }
.pricing-label-good { font-size: .8rem; font-weight: 700; color: var(--blue); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 12px; }
.pricing-old-pct { font-size: 3rem; font-weight: 800; color: var(--gray-800); line-height: 1; }
.pricing-old-sub { font-size: .85rem; color: var(--gray-500); margin-bottom: 20px; margin-top: 4px; }

.pricing-price { display: flex; align-items: baseline; gap: 8px; margin-bottom: 4px; }
.pricing-amount { font-size: 3.2rem; font-weight: 800; color: var(--blue); line-height: 1; }
.pricing-period { font-size: .9rem; color: var(--gray-500); font-weight: 600; }
.pricing-tagline { font-size: .85rem; color: var(--gray-600); margin-bottom: 20px; font-style: italic; }

.pricing-examples { background: var(--gray-50); border-radius: var(--radius-sm); padding: 14px 16px; margin-bottom: 20px; display: flex; flex-direction: column; gap: 8px; }
.pricing-ex-row { display: flex; justify-content: space-between; align-items: center; font-size: .83rem; color: var(--gray-700); flex-wrap: wrap; gap: 4px; }
.pricing-ex-cost { font-weight: 700; }
.pricing-ex-cost.bad { color: #ef4444; }
.pricing-ex-cost.good { color: var(--blue); display: flex; flex-direction: column; align-items: flex-end; }
.pricing-save { font-size: .72rem; color: #10b981; font-weight: 700; }

.pricing-list { list-style: none; margin-bottom: 24px; display: flex; flex-direction: column; gap: 8px; }
.pricing-list li { font-size: .875rem; color: var(--gray-700); display: flex; align-items: flex-start; gap: 8px; }
.pricing-list-bad li { color: var(--gray-500); }
.pricing-list-bad li::before { content: '✗'; color: #ef4444; font-weight: 800; flex-shrink: 0; }

.btn-pricing-cta { display: block; width: 100%; text-align: center; background: linear-gradient(135deg, #2563eb, #1d4ed8); color: white; padding: 16px; font-size: 1rem; font-weight: 700; border-radius: 12px; text-decoration: none; transition: all .2s; }
.btn-pricing-cta:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(37,99,235,.4); }
.pricing-disclaimer { text-align: center; font-size: .78rem; color: var(--gray-400); margin-top: 12px; }

/* Savings Calculator */
.savings-calc { background: white; border: 1.5px solid var(--blue); border-radius: var(--radius); padding: 28px 32px; max-width: 680px; margin: 0 auto; box-shadow: 0 4px 20px rgba(37,99,235,.1); }
.savings-calc-title { font-size: 1.1rem; font-weight: 800; color: var(--gray-900); margin-bottom: 20px; text-align: center; }
.savings-calc-body { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
.savings-calc-input label { font-size: .85rem; font-weight: 600; color: var(--gray-700); display: block; margin-bottom: 6px; }
.savings-calc-result { display: flex; flex-direction: column; gap: 10px; }
.calc-row { display: flex; justify-content: space-between; align-items: center; font-size: .875rem; color: var(--gray-700); padding: 6px 0; border-bottom: 1px solid var(--gray-100); }
.calc-row-total { border-bottom: none; padding-top: 10px; font-weight: 800; font-size: .95rem; }
.calc-bad { color: #ef4444; font-weight: 700; }
.calc-good { color: var(--blue); font-weight: 700; }
.calc-save { color: #10b981; font-weight: 800; font-size: 1rem; }

@media (max-width: 860px) {
  .pricing-arena { grid-template-columns: 1fr; }
  .pricing-vs-col { padding: 16px; }
  .pricing-new { margin-top: 32px; }
  .savings-calc-body { grid-template-columns: 1fr; }
}

/* ===== TESTIMONIANZE ===== */
.section-testimonianze { background: linear-gradient(180deg, #fff 0%, #f8fafc 100%); }
.reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 40px; }
.review-card {
  background: white; border: 1.5px solid var(--gray-200);
  border-radius: var(--radius); padding: 24px;
  box-shadow: var(--shadow-md); display: flex; flex-direction: column; gap: 14px;
  transition: transform .2s, box-shadow .2s;
}
.review-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.review-card-featured { border-color: #fbbf24; box-shadow: 0 4px 20px rgba(251,191,36,.2); position: relative; }
.review-featured-badge { position: absolute; top: -12px; left: 20px; background: linear-gradient(135deg, #f59e0b, #d97706); color: white; font-size: .72rem; font-weight: 800; padding: 4px 14px; border-radius: 100px; letter-spacing: .5px; }
.review-stars { color: #f59e0b; font-size: 1.1rem; letter-spacing: 2px; }
.reviews-grid .review-text { font-size: .875rem; color: var(--gray-900); line-height: 1.7; flex: 1; font-style: italic; }
.review-text::before { content: '"'; color: var(--blue); font-size: 1.4rem; font-style: normal; line-height: 0; vertical-align: -.4em; }
.review-author { display: flex; align-items: center; gap: 12px; }
.review-avatar { width: 40px; height: 40px; background: linear-gradient(135deg, var(--blue), #0ea5e9); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; font-weight: 800; font-size: .85rem; flex-shrink: 0; }
.review-name { font-weight: 700; color: var(--gray-900); font-size: .875rem; }
.review-meta { font-size: .75rem; color: var(--gray-500); }

.reviews-summary { display: flex; justify-content: center; gap: 0; background: white; border: 1px solid var(--gray-200); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.reviews-summary-stat { flex: 1; text-align: center; padding: 24px; border-right: 1px solid var(--gray-100); display: flex; flex-direction: column; gap: 4px; }
.reviews-summary-stat:last-child { border-right: none; }
.rs-num { font-size: 1.8rem; font-weight: 800; color: var(--gray-900); }
.rs-label { font-size: .78rem; color: var(--gray-500); text-transform: uppercase; letter-spacing: .5px; }
.rs-stars { color: #f59e0b; font-size: .9rem; }

.reviews-cta { display: flex; justify-content: center; margin-top: 28px; }
.btn-outline { background: white; color: var(--blue); border: 1.5px solid var(--blue); }
.btn-outline:hover { background: rgba(37,99,235,.06); }

.testimonial-star-picker { display: flex; gap: 4px; }
.star-pick { background: none; border: none; font-size: 1.8rem; line-height: 1; color: var(--gray-200); cursor: pointer; padding: 2px; transition: color .15s, transform .1s; }
.star-pick:hover { transform: scale(1.12); }
.star-pick.active { color: #f59e0b; }

@media (max-width: 900px) { .reviews-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .reviews-grid { grid-template-columns: 1fr; } .reviews-summary { flex-direction: column; } .reviews-summary-stat { border-right: none; border-bottom: 1px solid var(--gray-100); } }

/* ===== FAQ ===== */
.section-faq {}
.faq-list { max-width: 760px; margin: 0 auto 32px; display: flex; flex-direction: column; gap: 10px; }
.faq-item {
  background: white; border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-sm); overflow: hidden;
  transition: border-color .2s;
}
.faq-item[open] { border-color: var(--blue); }
.faq-question {
  list-style: none; padding: 18px 20px; font-size: .95rem; font-weight: 700;
  color: var(--gray-800); cursor: pointer; display: flex; justify-content: space-between; align-items: center;
  user-select: none;
}
.faq-question::-webkit-details-marker { display: none; }
.faq-question::after { content: '+'; font-size: 1.4rem; font-weight: 400; color: var(--blue); flex-shrink: 0; margin-left: 12px; transition: transform .2s; }
.faq-item[open] .faq-question::after { content: '−'; }
.faq-question:hover { color: var(--blue); }
.faq-answer { padding: 0 20px 18px; font-size: .875rem; color: var(--gray-600); line-height: 1.75; border-top: 1px solid var(--gray-100); padding-top: 14px; }
.faq-answer p { margin-bottom: 8px; }
.faq-answer p:last-child { margin-bottom: 0; }
.faq-answer strong { color: var(--gray-800); }

.faq-cta { text-align: center; }
.faq-cta p { color: var(--gray-500); margin-bottom: 12px; font-size: .875rem; }
.btn-secondary-dark { background: white; color: var(--gray-800); border: 1.5px solid var(--gray-300); padding: 12px 24px; border-radius: 10px; font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; font-size: .9rem; transition: all .2s; }
.btn-secondary-dark:hover { border-color: var(--blue); color: var(--blue); }

/* ===== FINAL CTA ===== */
.section-final-cta { background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 60%, #0f172a 100%); padding: 80px 0; }
.final-cta-box { text-align: center; max-width: 680px; margin: 0 auto; }
.final-cta-icon { font-size: 4rem; margin-bottom: 16px; }
.final-cta-title { font-size: clamp(1.6rem, 4vw, 2.4rem); font-weight: 800; color: white; line-height: 1.25; margin-bottom: 14px; letter-spacing: -.5px; }
.final-cta-sub { font-size: 1.1rem; color: #94a3b8; margin-bottom: 32px; }
.final-cta-actions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.btn-final-cta { background: linear-gradient(135deg, #f59e0b, #ef4444); color: white; padding: 16px 32px; border-radius: 12px; font-size: 1rem; font-weight: 800; text-decoration: none; transition: all .2s; box-shadow: 0 4px 20px rgba(239,68,68,.4); }
.btn-final-cta:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(239,68,68,.5); }
.btn-final-secondary { background: rgba(255,255,255,.1); color: white; border: 1.5px solid rgba(255,255,255,.25); padding: 16px 24px; border-radius: 12px; font-size: .95rem; font-weight: 600; text-decoration: none; transition: all .2s; }
.btn-final-secondary:hover { background: rgba(255,255,255,.2); }
.final-cta-note { font-size: .8rem; color: #64748b; letter-spacing: .5px; }

/* ===== RESPONSIVE ===== */
@media (max-width: 640px) {
  .form-grid { grid-template-columns: 1fr; }
  .form-group.full { grid-column: 1; }
  .form-section-title { grid-column: 1; }
  .checkboxes { grid-column: 1; }
  .hero-title { font-size: 2rem; }
  .hero-stats { flex-direction: column; gap: 16px; }
  .stat-divider { width: 40px; height: 1px; }
  .card { padding: 20px; }
  .hero-manifesto { padding: 12px 16px; }
  .manifesto-div { display: none; }
  .pricing-badge-top { font-size: .7rem; padding: 5px 14px; }
}

/* ===== PREMIUM PRICING SECTION (dark) ===== */
.section-prezzi {
  background: linear-gradient(135deg, #0a0f1e 0%, #0f172a 40%, #1a1740 70%, #0f172a 100%) !important;
  position: relative;
  overflow: hidden;
}
.section-prezzi::before {
  content: '';
  position: absolute;
  top: -250px; right: -250px;
  width: 700px; height: 700px;
  background: radial-gradient(circle, rgba(37,99,235,.18) 0%, transparent 65%);
  pointer-events: none;
}
.section-prezzi::after {
  content: '';
  position: absolute;
  bottom: -200px; left: -200px;
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(99,102,241,.12) 0%, transparent 65%);
  pointer-events: none;
}
.section-prezzi .section-title { color: white !important; letter-spacing: -.8px; }
.section-prezzi .section-desc { color: #94a3b8 !important; }
.section-prezzi .section-icon { filter: brightness(1.5) saturate(1.2); }

/* Old pricing card on dark */
.pricing-old {
  background: rgba(255,255,255,.05) !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  backdrop-filter: blur(12px);
}
.pricing-old .pricing-label-bad { color: #f87171 !important; }
.pricing-old .pricing-old-pct { color: rgba(255,255,255,.55) !important; }
.pricing-old .pricing-old-sub { color: rgba(255,255,255,.3) !important; }
.pricing-old .pricing-examples { background: rgba(255,255,255,.04) !important; }
.pricing-old .pricing-ex-row { color: rgba(255,255,255,.45) !important; }
.pricing-old .pricing-ex-cost.bad { color: #f87171 !important; }
.pricing-old .pricing-list-bad li { color: rgba(255,255,255,.35) !important; }
.pricing-old .pricing-list-bad li::before { color: #f87171 !important; }

/* AI card glowing */
.pricing-new {
  background: white !important;
  border: 2px solid #3b82f6 !important;
  box-shadow:
    0 0 0 1px rgba(59,130,246,.25),
    0 24px 64px rgba(37,99,235,.45),
    0 0 100px rgba(37,99,235,.18) !important;
  transform: scale(1.025);
  position: relative;
  z-index: 2;
}

/* VS on dark */
.pricing-vs-badge {
  background: rgba(255,255,255,.08) !important;
  color: rgba(255,255,255,.4) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
}

/* Calculator on dark */
.savings-calc {
  background: rgba(255,255,255,.06) !important;
  border: 1.5px solid rgba(59,130,246,.35) !important;
  backdrop-filter: blur(12px);
  box-shadow: 0 8px 32px rgba(37,99,235,.2) !important;
}
.savings-calc-title { color: white !important; }
.savings-calc-input label { color: #94a3b8 !important; }
.savings-calc-input input {
  background: rgba(255,255,255,.1) !important;
  border-color: rgba(255,255,255,.18) !important;
  color: white !important;
}
.savings-calc-input input::placeholder { color: rgba(255,255,255,.25) !important; }
.calc-row { color: #94a3b8 !important; border-bottom-color: rgba(255,255,255,.06) !important; }
.calc-row-total { color: white !important; }
.calc-bad { color: #f87171 !important; }
.calc-good { color: #60a5fa !important; }
.calc-save { color: #34d399 !important; }

/* ===== ENHANCED FAQ ===== */
.section-faq {
  background: linear-gradient(180deg, #f0f9ff 0%, white 40%) !important;
  position: relative;
}
.section-faq::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, #2563eb, #0ea5e9, #6366f1, #8b5cf6);
}
.faq-item {
  box-shadow: var(--shadow) !important;
  transition: all .22s ease !important;
}
.faq-item:hover {
  border-color: var(--blue) !important;
  box-shadow: 0 6px 24px rgba(37,99,235,.1) !important;
  transform: translateX(6px);
}
.faq-item[open] {
  border-color: var(--blue) !important;
  box-shadow: 0 8px 28px rgba(37,99,235,.13) !important;
}
.faq-question {
  padding: 18px 22px !important;
  gap: 14px;
}
.faq-q-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 9px;
  font-size: 1rem; flex-shrink: 0;
  background: var(--blue-light);
}
.faq-item[open] .faq-q-icon { background: var(--blue); filter: brightness(1.1) saturate(1.2); }
.faq-answer {
  padding: 16px 22px 20px 70px !important;
  background: #f8faff;
  border-top: 1px solid #e0edff !important;
  border-left: 3px solid var(--blue);
  margin-left: 0;
  border-bottom-left-radius: var(--radius-sm);
  border-bottom-right-radius: var(--radius-sm);
}
.faq-answer p { color: var(--gray-700) !important; }
.faq-answer strong { color: var(--blue) !important; }
.faq-cta {
  background: white;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius);
  padding: 28px 32px;
  max-width: 560px;
  margin: 0 auto;
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  box-shadow: var(--shadow-md);
}
.faq-cta p { margin-bottom: 0 !important; font-size: .9rem !important; color: var(--gray-600) !important; }

/* ===== HERO HOOK LINE ===== */
.hero-hook {
  display: inline-block;
  font-size: clamp(1rem, 2.8vw, 1.25rem);
  font-weight: 500;
  color: rgba(255,255,255,.72);
  font-style: italic;
  margin-top: 10px;
  letter-spacing: .1px;
  line-height: 1.5;
}
.hero-hook strong {
  font-style: normal;
  color: #fde68a;
  font-weight: 800;
}

/* ===== STEP CARDS ENHANCED ===== */
.step-card {
  border-top: 3px solid var(--blue) !important;
  background: linear-gradient(180deg, #f8fbff 0%, white 100%) !important;
}
.step-number { font-size: .8rem !important; }
.step-icon { font-size: 2.6rem !important; }

/* ===== FUNNEL VENDITORE HERO ENHANCED ===== */
.hero-funnel-v2 {
  background: linear-gradient(135deg, #0a0f1e 0%, #0f172a 40%, #1e3a8a 80%, #1d4ed8 100%);
  padding: 56px 0 44px;
  text-align: center;
  color: white;
  position: relative;
  overflow: hidden;
}
.hero-funnel-v2::before {
  content: '';
  position: absolute;
  top: -150px; right: -150px;
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(37,99,235,.2) 0%, transparent 65%);
  pointer-events: none;
}
.funnel-price-badge {
  display: inline-flex;
  align-items: center; justify-content: center;
  gap: 10px;
  background: linear-gradient(135deg, rgba(251,191,36,.2), rgba(249,115,22,.15));
  border: 1.5px solid rgba(251,191,36,.5);
  border-radius: 14px;
  padding: 14px 32px;
  margin: 24px auto 0;
  color: #fde68a;
  font-weight: 800;
  font-size: 1.3rem;
  letter-spacing: -.3px;
}
.funnel-price-badge span {
  font-size: .78rem;
  opacity: .65;
  font-weight: 500;
  font-style: italic;
  color: rgba(253,230,138,.8);
}
.funnel-included-strip {
  display: flex;
  justify-content: center;
  gap: 0;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px;
  overflow: hidden;
  max-width: 700px;
  margin: 24px auto 0;
  flex-wrap: wrap;
}
.fis-item {
  flex: 1;
  min-width: 130px;
  padding: 14px 16px;
  text-align: center;
  border-right: 1px solid rgba(255,255,255,.08);
}
.fis-item:last-child { border-right: none; }
.fis-icon { font-size: 1.3rem; display: block; margin-bottom: 4px; }
.fis-label { font-size: .72rem; color: rgba(255,255,255,.7); line-height: 1.3; font-weight: 600; text-transform: uppercase; letter-spacing: .4px; }

/* Enhanced funnel doc cards */
.doc-card { transition: all .22s ease !important; }
.doc-card:hover { transform: translateY(-5px) !important; box-shadow: 0 12px 32px rgba(0,0,0,.12) !important; }
.doc-card.uploaded {
  background: linear-gradient(135deg, #f0fdf4, white) !important;
  border-color: #bbf7d0 !important;
}

/* Enhanced completion state */
.funnel-complete-card {
  background: linear-gradient(135deg, #065f46, #059669);
  border-radius: var(--radius);
  padding: 44px 36px;
  text-align: center;
  color: white;
  max-width: 580px;
  margin: 0 auto;
  box-shadow: 0 12px 40px rgba(5,150,105,.35);
}
.funnel-complete-card .funnel-cta-title { color: white !important; font-size: 1.5rem !important; }
.funnel-complete-card .funnel-cta-desc { color: rgba(255,255,255,.8) !important; }
.funnel-complete-card .btn-primary {
  background: white !important;
  color: #065f46 !important;
  font-weight: 800 !important;
}

/* Pending state enhanced */
.funnel-cta-box-pending {
  background: linear-gradient(135deg, #fffbeb, white) !important;
  border: 1.5px solid #fcd34d !important;
  box-shadow: 0 8px 24px rgba(251,191,36,.15) !important;
}

/* ===== HAMBURGER MOBILE NAV ===== */
.nav-hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  background: none;
  border: 1px solid transparent;
  cursor: pointer;
  padding: 8px;
  border-radius: 8px;
  transition: background .2s, border-color .2s;
}
.nav-hamburger:hover { background: var(--gray-100); }
.nav-hamburger span {
  display: block;
  width: 22px; height: 2px;
  background: var(--gray-700);
  border-radius: 2px;
  transition: all .25s;
}
.nav-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.nav-hamburger:focus { outline: none; border-color: #2563eb; background: var(--gray-100); }

.mobile-nav {
  position: absolute;
  top: 60px; left: 0; right: 0;
  background: white;
  border-bottom: 1px solid var(--gray-200);
  box-shadow: 0 8px 24px rgba(0,0,0,.1);
  z-index: 99;
  padding: 8px 16px 16px;
}
.mobile-nav a {
  display: block;
  padding: 12px 16px;
  color: var(--gray-700);
  text-decoration: none;
  font-weight: 600;
  font-size: .95rem;
  border-radius: 10px;
  transition: all .15s;
}
.mobile-nav a:hover { background: var(--blue-light); color: var(--blue); }
.mobile-nav-cta {
  background: linear-gradient(135deg, #2563eb, #1d4ed8) !important;
  color: white !important;
  text-align: center;
  margin-top: 6px;
  box-shadow: 0 2px 8px rgba(37,99,235,.3);
}
.mobile-nav-cta:hover { opacity: .92 !important; background: linear-gradient(135deg, #1d4ed8, #1e40af) !important; }

@media (max-width: 1080px) {
  .nav { display: none !important; }
  .nav-actions { display: none !important; }
  .nav-hamburger { display: flex !important; }
}

/* ===== BOTTOM TAB BAR (mobile) ===== */
.mobile-bottom-nav {
  display: none;
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 900;
  background: #fff; border-top: 1px solid var(--gray-100);
  padding-bottom: env(safe-area-inset-bottom, 0);
  box-shadow: 0 -2px 12px rgba(0,0,0,.06);
}
.mobile-bottom-nav-item {
  flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 2px; padding: 7px 0 6px; text-decoration: none; color: #64748b;
  font-size: .66rem; font-weight: 600; line-height: 1.2;
}
.mobile-bottom-nav-icon { font-size: 1.25rem; line-height: 1; }
.mobile-bottom-nav-item.mobile-bottom-nav-active { color: #2563eb; }

@media (max-width: 767px) {
  .mobile-bottom-nav { display: flex; }
  body:has(.mobile-bottom-nav) { padding-bottom: 58px; }
  /* Elementi già fissati in basso vanno sollevati sopra la tab bar, altrimenti
     ci si sovrappongono (entrambi bottom:0 / bottom:12px). */
  body:has(.mobile-bottom-nav) .compare-bar { bottom: 58px; }
  body:has(.mobile-bottom-nav) .pwa-install-banner { bottom: 70px; }
}

/* ===== SOCIAL PROOF BAR ===== */
.social-proof-bar {
  background: white;
  border-bottom: 1px solid var(--gray-100);
  padding: 10px 0;
}
.social-proof-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  flex-wrap: wrap;
}
.sp-item {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: .8rem;
  color: var(--gray-500);
  white-space: nowrap;
}
.sp-num { font-weight: 800; color: var(--blue); font-size: .88rem; }
.sp-dot { width: 4px; height: 4px; border-radius: 50%; background: var(--gray-300); flex-shrink: 0; }
@media (max-width: 560px) {
  .social-proof-inner { gap: 10px 18px; }
  .sp-dot { display: none; }
}

/* ===== CALCULATOR CTA ===== */
.calc-cta-wrap {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.1);
}
.btn-calc-cta {
  display: block;
  width: 100%;
  text-align: center;
  background: linear-gradient(135deg, #10b981, #059669);
  color: white !important;
  padding: 14px 20px;
  border-radius: 12px;
  font-size: .95rem;
  font-weight: 800;
  text-decoration: none;
  transition: all .2s;
  box-shadow: 0 4px 16px rgba(16,185,129,.35);
  letter-spacing: -.2px;
}
.btn-calc-cta:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(16,185,129,.45); }

/* ===== FORM VALUTAZIONE PREMIUM ===== */
.section-valutazione {
  background: linear-gradient(180deg, #f0f9ff 0%, #f8fafc 100%);
  position: relative;
}
.val-form-wrap {
  max-width: 760px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.val-section-card {
  background: white;
  border: 1.5px solid rgba(99,102,241,.15);
  border-radius: var(--radius);
  box-shadow: 0 2px 8px rgba(99,102,241,.07);
  transition: box-shadow .2s, border-color .2s;
}
.val-section-card:hover { box-shadow: 0 6px 20px rgba(99,102,241,.12); border-color: rgba(99,102,241,.3); }
.val-section-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 20px;
  background: linear-gradient(135deg, #fafbff, #f0f4ff);
  border-bottom: 1.5px solid rgba(99,102,241,.12);
  border-radius: var(--radius) var(--radius) 0 0;
}
.val-section-body { border-radius: 0 0 var(--radius) var(--radius); }
.val-section-icon {
  width: 36px; height: 36px;
  background: linear-gradient(135deg, #6366f1, #4f46e5);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(99,102,241,.35);
}
.val-section-label {
  font-size: .82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .8px;
  color: #6366f1;
}
.val-section-body {
  padding: 20px;
}
.val-section-body .form-grid {
  margin: 0;
}

/* Coppia di campi con proporzione 2:1 dentro una singola cella .form-group.full
   (es. Comune+Provincia, Via+Numero civico) */
.form-field-row { display: flex; gap: 16px; }
.form-field-row > div:first-child { flex: 2; min-width: 0; }
.form-field-row > div:last-child { flex: 1; min-width: 0; }
@media (max-width: 480px) { .form-field-row { flex-direction: column; gap: 14px; } }

/* Terzetto di campi (es. Regione+Provincia+Comune) dentro .form-group.full */
.form-field-row-3 { display: flex; gap: 16px; }
.form-field-row-3 > div { flex: 1; min-width: 0; }
@media (max-width: 640px) { .form-field-row-3 { flex-direction: column; gap: 14px; } }

/* Autocomplete comune (Localizzazione, valutazione AI) */
.val-autocomplete-wrap { position: relative; }
.val-autocomplete-list {
  position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 20;
  background: white; border: 1px solid var(--gray-200); border-radius: var(--radius-sm);
  box-shadow: var(--shadow-lg); max-height: 240px; overflow-y: auto;
}
.val-autocomplete-item { padding: 10px 14px; font-size: .9rem; color: var(--gray-800); cursor: pointer; }
.val-autocomplete-item:hover { background: var(--blue-light); color: var(--blue); }

/* Campi "solo selezione" (Regione/Provincia/Comune): readonly, si scelgono
   solo dall'elenco, niente digitazione libera e niente tastiera al tocco su
   mobile. Stessa freccetta dei <select> nativi per segnalare che è un
   picker, non un campo di testo. */
.val-picker-input {
  cursor: pointer; caret-color: transparent;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; padding-right: 36px;
}
.val-picker-input:disabled { cursor: not-allowed; }

/* Contatore +/- (N° Locali, N° Bagni) */
.val-counter { display: flex; align-items: center; gap: 10px; }
.val-counter button {
  width: 38px; height: 38px; flex-shrink: 0; border-radius: var(--radius-sm);
  border: 1.5px solid var(--gray-200); background: white; font-size: 1.15rem; font-weight: 700;
  color: var(--gray-700); cursor: pointer; transition: all .2s;
}
.val-counter button:hover { border-color: var(--blue); color: var(--blue); background: var(--blue-light); }
.val-counter input { text-align: center; }

/* Griglia dotazioni compatta nel modale admin (tema scuro) */
.admin-pill-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.admin-pill { display: flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 100px; border: 1.5px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04); color: #94a3b8; font-size: .78rem; font-weight: 600; cursor: pointer; transition: all .18s; user-select: none; }
.admin-pill input { display: none; }
.admin-pill:hover { border-color: rgba(99,102,241,.5); color: #c7d2fe; }
.admin-pill.checked { background: linear-gradient(135deg,#6366f1,#4f46e5); border-color: #6366f1; color: white; }

/* Gestione foto nel modale admin: griglia con azioni al passaggio del mouse
   (sposta a sinistra/destra per riordinare, elimina) */
.admin-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 8px; }
.admin-photo-item { position: relative; border-radius: 8px; overflow: hidden; aspect-ratio: 4/3; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); }
.admin-photo-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.admin-photo-actions { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; padding: 4px; background: linear-gradient(180deg, rgba(0,0,0,.55), transparent 35%, transparent 65%, rgba(0,0,0,.55)); opacity: 0; transition: opacity .15s; }
.admin-photo-item:hover .admin-photo-actions, .admin-photo-item:focus-within .admin-photo-actions { opacity: 1; }
.admin-photo-actions-row { display: flex; justify-content: space-between; gap: 4px; }
.admin-photo-btn { width: 22px; height: 22px; border-radius: 6px; border: none; background: rgba(15,23,42,.85); color: #e2e8f0; font-size: .7rem; cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.admin-photo-btn:hover { background: #2563eb; }
.admin-photo-btn.danger:hover { background: #dc2626; }
.admin-photo-empty { color: #64748b; font-size: .8rem; padding: 12px; text-align: center; grid-column: 1/-1; }
.admin-photo-upload { border: 1.5px dashed rgba(255,255,255,.15); border-radius: 8px; aspect-ratio: 4/3; display: flex; align-items: center; justify-content: center; color: #64748b; font-size: 1.4rem; cursor: pointer; transition: all .15s; }
.admin-photo-upload:hover { border-color: #6366f1; color: #6366f1; }
.admin-photo-upload input { display: none; }

/* Checkbox pill style */
.checkbox-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  grid-column: 1 / -1;
}
.checkbox-pill {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border: 1.5px solid var(--gray-200);
  border-radius: 100px;
  cursor: pointer;
  font-size: .875rem;
  font-weight: 600;
  color: var(--gray-600);
  background: white;
  transition: all .18s;
  user-select: none;
}
.checkbox-pill:hover { border-color: #6366f1; color: #6366f1; background: #f5f3ff; }
.checkbox-pill input { display: none; }
.checkbox-pill.checked {
  background: linear-gradient(135deg, #6366f1, #4f46e5);
  border-color: #6366f1;
  color: white;
}
.checkbox-pill-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--gray-300);
  flex-shrink: 0;
  transition: background .18s;
}
.checkbox-pill.checked .checkbox-pill-dot { background: white; }

/* Submit CTA */
.val-submit-wrap {
  background: linear-gradient(135deg, #0f172a, #1e3a8a);
  border-radius: var(--radius);
  padding: 28px 32px;
  text-align: center;
  box-shadow: 0 8px 32px rgba(37,99,235,.25);
}
.val-submit-title {
  color: white;
  font-size: 1.1rem;
  font-weight: 800;
  margin-bottom: 6px;
}
.val-submit-sub {
  color: #94a3b8;
  font-size: .82rem;
  margin-bottom: 20px;
}
.btn-val-submit {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: linear-gradient(135deg, #2563eb, #0ea5e9);
  color: white;
  border: none;
  padding: 16px 40px;
  border-radius: 12px;
  font-size: 1rem;
  font-weight: 800;
  cursor: pointer;
  transition: all .2s;
  box-shadow: 0 4px 20px rgba(37,99,235,.4);
  width: 100%;
  justify-content: center;
}
.btn-val-submit:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(37,99,235,.5); }
.btn-val-submit:disabled { opacity: .6; cursor: not-allowed; transform: none !important; }
.val-disclaimer {
  color: #64748b;
  font-size: .75rem;
  margin-top: 12px;
}

@media (max-width: 640px) {
  .val-section-body { padding: 16px; }
  .val-submit-wrap { padding: 20px 16px; }
}

/* ═══════════════════════════════════════════════════════════════
   AUTH PAGES (login / register)
═══════════════════════════════════════════════════════════════ */
.auth-page { background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 100%); min-height: 100vh; display: flex; align-items: center; justify-content: center; }
.auth-wrap { width: 100%; max-width: 460px; padding: 24px 16px; }
.auth-card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: 20px; padding: 40px 36px; backdrop-filter: blur(20px); }
.auth-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; margin-bottom: 28px; justify-content: center; }
.auth-logo-icon { font-size: 1.75rem; }
.auth-logo-text { font-size: 1.25rem; font-weight: 700; color: #fff; }
.auth-title { font-size: 1.75rem; font-weight: 700; color: #fff; text-align: center; margin-bottom: 6px; }
.auth-sub { color: #94a3b8; text-align: center; margin-bottom: 28px; font-size: .925rem; }
.auth-error { background: rgba(239,68,68,.12); border: 1px solid rgba(239,68,68,.3); color: #fca5a5; padding: 10px 14px; border-radius: 10px; font-size: .875rem; margin-bottom: 16px; }
.auth-form { display: flex; flex-direction: column; gap: 16px; }
.auth-field { display: flex; flex-direction: column; gap: 6px; }
.auth-field label { font-size: .8125rem; font-weight: 600; color: #cbd5e1; }
.auth-field input, .auth-field textarea, .auth-field select {
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); color: #fff;
  padding: 11px 14px; border-radius: 10px; font-size: 1rem; outline: none; transition: border-color .2s;
}
.auth-field input:focus, .auth-field textarea:focus, .auth-field select:focus { border-color: var(--blue); }
.auth-field input::placeholder, .auth-field textarea::placeholder { color: #64748b; }
.auth-field select option { background: #1e293b; }
.auth-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.auth-terms { display: flex; align-items: flex-start; gap: 10px; color: #94a3b8; font-size: .8125rem; }
.auth-terms input { margin-top: 2px; accent-color: var(--blue); }
.auth-terms a { color: var(--blue); }
.btn-auth {
  background: linear-gradient(135deg, var(--blue) 0%, #1d4ed8 100%);
  color: #fff; font-weight: 700; font-size: 1rem; padding: 13px;
  border: none; border-radius: 12px; cursor: pointer; transition: transform .15s, box-shadow .15s;
}
.btn-auth:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(37,99,235,.4); }
.btn-auth:disabled { opacity: .6; cursor: not-allowed; transform: none; }
.auth-switch { text-align: center; margin-top: 20px; font-size: .875rem; color: #94a3b8; }
.auth-switch a { color: var(--blue); font-weight: 600; }

/* ═══════════════════════════════════════════════════════════════
   DASHBOARD LAYOUT
═══════════════════════════════════════════════════════════════ */
.dashboard-body { background: #0f172a; min-height: 100vh; display: flex; flex-direction: column; margin: 0; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

/* Topbar */
.dash-topbar {
  height: 60px; background: rgba(15,23,42,.95); border-bottom: 1px solid rgba(255,255,255,.08);
  display: flex; align-items: center; justify-content: space-between; padding: 0 24px;
  position: sticky; top: 0; z-index: 100; backdrop-filter: blur(12px);
}
.dash-logo { display: flex; align-items: center; gap: 8px; text-decoration: none; }
.dash-logo-icon { font-size: 1.4rem; }
.dash-logo-text { font-weight: 700; color: #fff; font-size: 1.1rem; }
.dash-topbar-right { display: flex; align-items: center; gap: 14px; }
.dash-user-name { color: #94a3b8; font-size: .875rem; }
.btn-logout { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); color: #cbd5e1; padding: 6px 14px; border-radius: 8px; font-size: .8125rem; cursor: pointer; transition: background .2s; }
.btn-logout:hover { background: rgba(255,255,255,.12); }
.dash-topbar-right button:focus { outline: none; border-color: #f59e0b; }

/* KYC status badge (topbar) */
.kyc-badge-btn { position: relative; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); color: #cbd5e1; padding: 5px 10px; border-radius: 8px; cursor: pointer; font-size: 1rem; line-height: 1; transition: background .2s, border-color .2s; }
.kyc-badge-btn:hover { background: rgba(255,255,255,.12); }
.kyc-badge-dot { position: absolute; top: -4px; right: -4px; width: 12px; height: 12px; border-radius: 50%; border: 2px solid #0f172a; }
.kyc-badge-btn.kyc-topbar-missing { border-color: rgba(239,68,68,.5); }
.kyc-badge-btn.kyc-topbar-missing .kyc-badge-dot { background: #ef4444; animation: kyc-pulse 1.8s ease-in-out infinite; }
.kyc-badge-btn.kyc-topbar-rejected { border-color: rgba(239,68,68,.5); }
.kyc-badge-btn.kyc-topbar-rejected .kyc-badge-dot { background: #ef4444; }
.kyc-badge-btn.kyc-topbar-pending { border-color: rgba(245,158,11,.5); }
.kyc-badge-btn.kyc-topbar-pending .kyc-badge-dot { background: #f59e0b; }
.kyc-badge-btn.kyc-topbar-verified { border-color: rgba(52,211,153,.5); }
.kyc-badge-btn.kyc-topbar-verified .kyc-badge-dot { background: #34d399; }
@keyframes kyc-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(239,68,68,.55); } 50% { box-shadow: 0 0 0 4px rgba(239,68,68,0); } }

/* Notification bell */
.notif-bell-wrap { position: relative; }
.notif-bell-btn { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); color: #cbd5e1; padding: 5px 10px; border-radius: 8px; cursor: pointer; font-size: .9rem; position: relative; transition: background .2s; }
.notif-bell-btn:hover { background: rgba(255,255,255,.12); }
.notif-badge { position: absolute; top: -5px; right: -5px; background: #ef4444; color: #fff; font-size: .65rem; font-weight: 700; padding: 1px 5px; border-radius: 10px; min-width: 16px; text-align: center; }
.notif-panel { position: absolute; top: calc(100% + 8px); right: 0; width: 320px; background: #1e293b; border: 1px solid rgba(255,255,255,.12); border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,.5); z-index: 1000; overflow: hidden; }
@media (max-width: 480px) {
  .notif-panel { position: fixed; top: 64px; left: 12px; right: 12px; width: auto; }
}
.notif-panel-header { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid rgba(255,255,255,.08); font-size: .875rem; font-weight: 700; color: #f1f5f9; }
.notif-read-all { background: none; border: none; color: #60a5fa; font-size: .78rem; cursor: pointer; padding: 0; }
.notif-list { max-height: 380px; overflow-y: auto; }
.notif-item { padding: 12px 16px; border-bottom: 1px solid rgba(255,255,255,.05); cursor: pointer; transition: background .15s; }
.notif-item:hover { background: rgba(255,255,255,.04); }
.notif-unread { background: rgba(37,99,235,.08); border-left: 3px solid #2563eb; }
.notif-item-text { color: #cbd5e1; font-size: .8125rem; line-height: 1.5; }
.notif-item-time { color: #64748b; font-size: .72rem; margin-top: 4px; }
.notif-empty { padding: 24px 16px; text-align: center; color: #64748b; font-size: .8125rem; }

/* Profile + Tab bar */
.dash-profile-bar {
  display: flex; align-items: center; gap: 20px; padding: 12px 28px;
  background: rgba(255,255,255,.025); border-bottom: 1px solid rgba(255,255,255,.07);
  flex-wrap: wrap;
}
.dash-profile-info { display: flex; align-items: center; gap: 12px; min-width: 0; }
.dash-profile-info .dash-avatar { width: 40px; height: 40px; min-width: 40px; font-size: 1rem; }
.dash-profile-info .dash-sidebar-name { font-size: .9rem; text-align: left; margin: 0; }
.dash-profile-info .dash-sidebar-email { font-size: .75rem; text-align: left; margin: 0; }
.dash-tabbar { display: flex; gap: 4px; flex: 1; justify-content: center; flex-wrap: wrap; }
.dash-tab-btn {
  display: flex; align-items: center; gap: 6px; padding: 8px 18px;
  border-radius: 10px; border: none; background: transparent;
  color: #94a3b8; font-size: .875rem; font-weight: 600; cursor: pointer;
  transition: all .2s; white-space: nowrap; position: relative;
  text-decoration: none;
}
.dash-tab-btn:hover { background: rgba(255,255,255,.07); color: #e2e8f0; }
.dash-tab-btn.active { background: rgba(37,99,235,.2); color: #60a5fa; border: 1px solid rgba(37,99,235,.3); }
.dash-profile-actions { display: flex; gap: 8px; align-items: center; }

/* Layout */
.dash-layout { display: flex; flex: 1; overflow: hidden; }

/* Sidebar (usata da admin.html; dashboard.html usa invece la tab bar) */
.dash-sidebar {
  display: flex; flex-direction: column; align-items: center;
  width: 220px; flex-shrink: 0; padding: 24px 16px;
  background: rgba(255,255,255,.02); border-right: 1px solid rgba(255,255,255,.07);
  overflow-y: auto;
}
.dash-avatar {
  width: 60px; height: 60px; border-radius: 50%; background: linear-gradient(135deg, var(--blue), #7c3aed);
  display: flex; align-items: center; justify-content: center; font-size: 1.4rem; font-weight: 700; color: #fff; margin-bottom: 4px;
}
.dash-sidebar-name { font-weight: 700; color: #fff; font-size: .95rem; text-align: center; }
.dash-sidebar-email { color: #64748b; font-size: .75rem; text-align: center; margin-bottom: 16px; }
.dash-nav { display: flex; flex-direction: column; gap: 4px; width: 100%; }
.dash-nav-item {
  display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 10px;
  background: none; border: none; color: #94a3b8; font-size: .875rem; cursor: pointer; width: 100%; text-align: left;
  transition: background .2s, color .2s; position: relative;
}
.dash-nav-item:hover { background: rgba(255,255,255,.06); color: #fff; }
.dash-nav-item.active { background: rgba(37,99,235,.18); color: #60a5fa; }
.dash-nav-icon { font-size: 1rem; }
.dash-badge {
  background: #ef4444; color: #fff; font-size: .6875rem; font-weight: 700;
  padding: 1px 6px; border-radius: 20px; margin-left: auto;
}
.dash-sidebar-cta {
  display: inline-block; background: linear-gradient(135deg, #16a34a, #15803d);
  color: #fff; font-weight: 700; font-size: .8125rem; padding: 8px 14px; border-radius: 10px;
  text-decoration: none; text-align: center; transition: transform .15s; white-space: nowrap;
}
.dash-sidebar-cta:hover { transform: translateY(-1px); }

/* Main */
.dash-main { flex: 1; overflow-y: auto; padding: 28px; display: flex; flex-direction: column; }
.dash-tab { flex: 1; }
.dash-tab.hidden { display: none; }
.dash-tab-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.dash-tab-title { font-size: 1.375rem; font-weight: 700; color: #fff; }
.btn-dash-action {
  background: rgba(37,99,235,.15); border: 1px solid rgba(37,99,235,.3); color: #60a5fa;
  padding: 8px 16px; border-radius: 8px; font-size: .875rem; font-weight: 600; cursor: pointer; transition: background .2s;
}
.btn-dash-action:hover { background: rgba(37,99,235,.25); }

/* Hamburger (mobile only) */
.dash-hamburger {
  display: none; flex-direction: column; justify-content: center; gap: 5px;
  background: none; border: 1px solid transparent; cursor: pointer; padding: 8px; border-radius: 8px;
}
.dash-hamburger:hover { background: rgba(255,255,255,.07); }
.dash-hamburger span { display: block; width: 22px; height: 2px; background: #cbd5e1; border-radius: 2px; transition: all .25s; }
.dash-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.dash-hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.dash-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.dash-tab-mobile-only { display: none; }

@media (max-width: 768px) {
  .dash-profile-bar { padding: 10px 16px; gap: 10px; position: relative; }
  .btn-logout { display: none; }
  .dash-hamburger { display: flex; }
  .dash-tab-mobile-only { display: flex; }
  .dash-tabbar {
    display: none; flex-direction: column; align-items: stretch; flex-wrap: nowrap;
    position: absolute; top: 100%; left: 0; right: 0; margin-top: 1px;
    background: #0f172a; border: 1px solid rgba(255,255,255,.08); border-top: none;
    box-shadow: 0 12px 28px rgba(0,0,0,.35); border-radius: 0 0 12px 12px;
    padding: 8px 12px 12px; z-index: 90;
  }
  .dash-profile-bar.dash-menu-open .dash-tabbar { display: flex; }
  .dash-tab-btn { justify-content: flex-start; width: 100%; padding: 10px 12px; font-size: .85rem; }
  .dash-tab-logout { border-top: 1px solid rgba(255,255,255,.08); margin-top: 6px; padding-top: 14px; color: #f87171; }
  .dash-tab-cta {
    background: linear-gradient(135deg, #2563eb, #1d4ed8) !important;
    color: #fff !important; justify-content: center;
    margin-top: 6px; box-shadow: 0 2px 8px rgba(37,99,235,.3);
  }
  .dash-tab-cta:hover { opacity: .92; background: linear-gradient(135deg, #1d4ed8, #1e40af) !important; }
  .dash-profile-actions { display: none; }
  .dash-main { padding: 16px; }
  .dash-profile-info { flex-shrink: 0; }
}

/* Empty state */
.dash-empty { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 60px 20px; color: #64748b; text-align: center; }
.dash-empty-icon { font-size: 3rem; }
.btn-dash-cta {
  background: linear-gradient(135deg, var(--blue), #1d4ed8); color: #fff; font-weight: 700;
  padding: 10px 22px; border-radius: 10px; text-decoration: none; font-size: .875rem;
}

/* Property cards */
.properties-list { display: flex; flex-direction: column; gap: 12px; }
.property-card {
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: 14px;
  padding: 16px 20px; display: flex; align-items: center; gap: 16px;
  transition: border-color .2s, background .2s; text-decoration: none; cursor: pointer;
  width: 100%;
}
.property-card:hover { border-color: rgba(37,99,235,.4); background: rgba(255,255,255,.06); }
.property-card-img-col { display: flex; flex-direction: column; align-items: center; gap: 6px; flex-shrink: 0; }
.property-card-thumb { width: 56px; height: 56px; border-radius: 10px; background: rgba(37,99,235,.12); display: flex; align-items: center; justify-content: center; font-size: 1.6rem; }
.property-card-tipo { font-size: .65rem; font-weight: 700; color: #60a5fa; text-transform: uppercase; letter-spacing: .4px; }
.property-card-title { font-weight: 700; color: #fff; font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 360px; }
.property-card-city { color: #64748b; font-size: .8125rem; margin-top: 3px; }
.property-card-specs { color: #94a3b8; font-size: .8rem; margin-top: 4px; font-weight: 500; }
.property-card-stato { display: inline-flex; align-items: center; gap: 5px; margin-top: 6px; font-size: .72rem; font-weight: 700; padding: 3px 10px; border-radius: 20px; }
.property-note-admin { display: flex; align-items: flex-start; gap: 6px; margin-top: 8px; background: rgba(245,158,11,.08); border: 1px solid rgba(245,158,11,.2); border-radius: 8px; padding: 7px 10px; }
.property-note-icon { font-size: .85rem; flex-shrink: 0; }
.property-note-text { color: #fde68a; font-size: .78rem; line-height: 1.5; }
.property-stats { text-align: right; display: flex; flex-direction: column; gap: 8px; flex-shrink: 0; }
.property-stat-num { font-size: 1.3rem; font-weight: 700; color: #60a5fa; line-height: 1; }
.property-stat-label { font-size: .7rem; color: #64748b; }
.dossier-status { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.dossier-item { font-size: .72rem; font-weight: 700; padding: 3px 9px; border-radius: 20px; letter-spacing: .02em; }
.dossier-item.ok { background: rgba(52,211,153,.15); color: #34d399; border: 1px solid rgba(52,211,153,.3); }
.dossier-item.missing { background: rgba(251,191,36,.12); color: #fbbf24; border: 1px solid rgba(251,191,36,.25); }

/* ═══════════════════════════════════════════════════════════════
   CHAT
═══════════════════════════════════════════════════════════════ */
.dash-chat-layout {
  display: flex; gap: 0; border-radius: 16px; overflow: hidden; border: 1px solid rgba(255,255,255,.08);
  height: calc(100vh - 180px);
  /* dvh (dynamic viewport height) si aggiorna quando compare la tastiera su
     mobile, a differenza di vh: senza questo, la barra di scrittura della
     chat finiva coperta dalla tastiera e diventava irraggiungibile. */
  height: calc(100dvh - 180px);
}

/* Chat list */
.chat-list { width: 300px; min-width: 300px; background: rgba(255,255,255,.03); border-right: 1px solid rgba(255,255,255,.08); display: flex; flex-direction: column; }
.chat-list-header { padding: 16px 16px 12px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.07); }
.chat-list-header span { font-weight: 700; color: #fff; }
.btn-new-chat { width: 28px; height: 28px; border-radius: 50%; background: rgba(37,99,235,.2); border: none; color: #60a5fa; font-size: 1.1rem; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.btn-new-chat:hover { background: rgba(37,99,235,.35); }
#conversations-list { flex: 1; overflow-y: auto; }
.conv-item { display: flex; align-items: center; gap: 12px; padding: 14px 16px; cursor: pointer; transition: background .15s; border-bottom: 1px solid rgba(255,255,255,.04); }
.conv-item:hover, .conv-item.active { background: rgba(37,99,235,.1); }
.conv-avatar { width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg, #7c3aed, #2563eb); display: flex; align-items: center; justify-content: center; font-weight: 700; color: #fff; flex-shrink: 0; }
.conv-info { flex: 1; min-width: 0; }
.conv-name { font-weight: 600; color: #fff; font-size: .875rem; }
.conv-prop { color: #60a5fa; font-size: .75rem; margin: 1px 0; }
.conv-last { color: #64748b; font-size: .75rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.conv-unread { background: #2563eb; color: #fff; font-size: .6875rem; font-weight: 700; padding: 2px 7px; border-radius: 20px; flex-shrink: 0; }

/* Chat window */
.chat-window { flex: 1; display: flex; flex-direction: column; background: #0f172a; }
.chat-window-empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; color: #475569; }
.chat-window-active { flex: 1; display: flex; flex-direction: column; }
.chat-window-header { padding: 14px 20px; border-bottom: 1px solid rgba(255,255,255,.07); background: rgba(255,255,255,.03); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.chat-back-btn { display: none; } /* visibile solo su mobile, vedi media query sotto */
.chat-header-name { font-weight: 700; color: #fff; }
.chat-header-prop { font-size: .8125rem; color: #60a5fa; }
.chat-listing-link { font-size: .8125rem; font-weight: 600; color: #60a5fa; text-decoration: none; white-space: nowrap; background: rgba(37,99,235,.15); border: 1px solid rgba(37,99,235,.3); padding: 5px 12px; border-radius: 8px; transition: background .2s; }
.chat-listing-link:hover { background: rgba(37,99,235,.28); }
.chat-connection-warning { background: rgba(245,158,11,.12); border-bottom: 1px solid rgba(245,158,11,.3); color: #fbbf24; font-size: .8rem; padding: 8px 20px; text-align: center; }
.chat-messages { flex: 1; overflow-y: auto; padding: 20px; display: flex; flex-direction: column; gap: 12px; }
.chat-msg { display: flex; flex-direction: column; max-width: 70%; }
.chat-msg-mine { align-self: flex-end; align-items: flex-end; }
.chat-msg-other { align-self: flex-start; align-items: flex-start; }
.chat-bubble { padding: 10px 14px; border-radius: 14px; font-size: .9375rem; line-height: 1.4; word-break: break-word; }
.chat-msg-mine .chat-bubble { background: linear-gradient(135deg, #2563eb, #1d4ed8); color: #fff; border-bottom-right-radius: 4px; }
.chat-msg-other .chat-bubble { background: rgba(255,255,255,.08); color: #e2e8f0; border-bottom-left-radius: 4px; }
.chat-time { font-size: .6875rem; color: #475569; margin-top: 3px; padding: 0 4px; }
.chat-input-wrap { display: flex; gap: 10px; padding: 14px 16px; border-top: 1px solid rgba(255,255,255,.07); }
.chat-input { flex: 1; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); color: #fff; padding: 10px 14px; border-radius: 10px; font-size: 1rem; outline: none; }
.chat-input:focus { border-color: var(--blue); }
.btn-send { background: var(--blue); border: none; color: #fff; width: 42px; height: 42px; border-radius: 10px; font-size: 1rem; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .2s; }
.btn-send:hover { background: #1d4ed8; }

/* ═══════════════════════════════════════════════════════════════
   CALENDAR
═══════════════════════════════════════════════════════════════ */
.cal-nav { display: flex; align-items: center; gap: 16px; }
.cal-nav button { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); color: #fff; width: 32px; height: 32px; border-radius: 8px; cursor: pointer; font-size: 1.1rem; display: flex; align-items: center; justify-content: center; }
.cal-nav button:hover { background: rgba(255,255,255,.12); }
.cal-grid-wrap { background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.07); border-radius: 16px; overflow: hidden; margin-bottom: 28px; }
.cal-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); background: rgba(255,255,255,.04); border-bottom: 1px solid rgba(255,255,255,.07); }
.cal-weekdays span { padding: 10px; text-align: center; font-size: .75rem; font-weight: 700; color: #64748b; letter-spacing: .05em; text-transform: uppercase; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.cal-day { min-height: 80px; padding: 8px; border-right: 1px solid rgba(255,255,255,.04); border-bottom: 1px solid rgba(255,255,255,.04); display: flex; flex-direction: column; gap: 3px; transition: background .15s; }
.cal-day:hover:not(.cal-day-blank) { background: rgba(255,255,255,.04); }
.cal-day-blank { background: rgba(0,0,0,.15); }
.cal-day-today { background: rgba(37,99,235,.08); }
.cal-day-today .cal-day-num { background: var(--blue); color: #fff; border-radius: 50%; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.cal-day-num { font-size: .8125rem; color: #94a3b8; font-weight: 600; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; }
.cal-event { font-size: .6875rem; background: rgba(37,99,235,.2); color: #93c5fd; padding: 2px 6px; border-radius: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-event-more { font-size: .6875rem; color: #64748b; padding: 0 4px; }
.cal-upcoming { }
.cal-upcoming-title { font-size: 1rem; font-weight: 700; color: #fff; margin-bottom: 14px; }
.cal-no-appt { color: #64748b; font-size: .875rem; }
.appt-item {
  display: flex; align-items: center; gap: 14px; padding: 14px 16px;
  background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.07); border-radius: 12px;
  margin-bottom: 8px; transition: border-color .2s;
}
.appt-item:hover { border-color: rgba(37,99,235,.3); }
.appt-icon { font-size: 1.5rem; }
.appt-body { flex: 1; min-width: 0; }
.appt-title { font-weight: 600; color: #fff; font-size: .9rem; }
.appt-meta { color: #64748b; font-size: .8rem; margin-top: 2px; }
.appt-delete { background: none; border: none; color: #475569; cursor: pointer; font-size: .875rem; padding: 4px 8px; border-radius: 6px; transition: color .2s; }
.appt-delete:hover { color: #ef4444; }

/* ═══════════════════════════════════════════════════════════════
   DASH MODALS
═══════════════════════════════════════════════════════════════ */
.dash-modal { position: fixed; inset: 0; background: rgba(0,0,0,.6); z-index: 200; display: flex; align-items: center; justify-content: center; padding: 20px; backdrop-filter: blur(4px); }
.dash-modal.hidden { display: none; }
/* max-height + colonna flessibile: un modale con molti campi resta scorrevole
   al suo interno (con l'intestazione sempre visibile) invece di finire fuori
   dai bordi dello schermo senza modo di raggiungere il resto del contenuto. */
.dash-modal-inner { background: #1e293b; border: 1px solid rgba(255,255,255,.1); border-radius: 16px; width: 100%; max-width: 440px; max-height: calc(100vh - 40px); display: flex; flex-direction: column; overflow: hidden; }
.dash-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid rgba(255,255,255,.07); font-weight: 700; color: #fff; flex-shrink: 0; }
.dash-modal-header button { background: none; border: none; color: #64748b; cursor: pointer; font-size: 1.1rem; }
.dash-modal-header button:hover { color: #fff; }
.dash-modal-body { padding: 20px; display: flex; flex-direction: column; gap: 14px; overflow-y: auto; min-height: 0; }

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE DASHBOARD
═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  .dash-layout { flex-direction: column; }
  .dash-sidebar {
    width: 100%; flex-direction: row; align-items: center; gap: 10px;
    padding: 12px 16px; border-right: none; border-bottom: 1px solid rgba(255,255,255,.07);
    overflow-x: auto; overflow-y: visible;
  }
  .dash-sidebar .dash-avatar, .dash-sidebar .dash-sidebar-name, .dash-sidebar .dash-sidebar-email,
  .dash-sidebar .dash-sidebar-cta { display: none; }
  .dash-nav { flex-direction: row; width: auto; }
  .dash-nav-item { flex-shrink: 0; white-space: nowrap; }
  .dash-main { padding: 16px; }
  .dash-chat-layout { flex-direction: column; height: auto; }
  .chat-list { width: 100%; min-width: unset; flex: 1; min-height: 0; }
  .dash-chat-layout { height: 70vh; height: 70dvh; }
  /* Su mobile lista e conversazione attiva si contendono lo stesso spazio
     ridotto: mostriamo solo una delle due alla volta (pattern standard delle
     app di messaggistica), cosi' la barra di scrittura è sempre raggiungibile
     a schermo pieno invece di dover scorrere per trovarla. */
  .chat-back-btn {
    display: inline-flex; align-items: center; background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12); color: #cbd5e1; border-radius: 8px;
    padding: 6px 10px; font-size: .82rem; font-weight: 600; cursor: pointer; flex-shrink: 0;
  }
  .dash-chat-layout:not(.chat-open) .chat-window { display: none; }
  .dash-chat-layout.chat-open .chat-list { display: none; }
  /* Intestazione più semplice su mobile: freccia indietro e nome vicini a
     sinistra invece che agli estremi opposti (con justify-content:space-between
     e il link all'annuncio nascosto, il nome finiva isolato tutto a destra,
     con un grande vuoto in mezzo — disorientante). Via anche il sottotitolo
     con il titolo dell'annuncio: a schermo pieno basta il nome della persona. */
  .chat-window-header { justify-content: flex-start; }
  .chat-header-prop, .chat-listing-link { display: none; }
  /* A schermo intero, sopra a barra in alto/tab/banner: se restasse nel
     flusso normale della pagina, tutto quello che c'è sopra (topbar, tab,
     eventuale banner "verifica email") spingerebbe la barra di scrittura
     oltre il bordo inferiore dello schermo, rendendola irraggiungibile
     senza scorrere la pagina — esattamente il problema segnalato. */
  .dash-chat-layout.chat-open {
    position: fixed; inset: 0; z-index: 100; height: 100vh; height: 100dvh;
    border-radius: 0; border: none;
  }
  .auth-card { padding: 28px 20px; }
  .auth-field-row { grid-template-columns: 1fr; }
  .cal-day { min-height: 50px; }
  .cal-event { display: none; }
}

/* ═══════════════════════════════════════════════════════════════
   NAV AUTH BUTTON
═══════════════════════════════════════════════════════════════ */
.nav-auth { display: flex; align-items: center; }
.nav-auth-login {
  padding: 8px 18px;
  border: 1.5px solid var(--blue);
  border-radius: 8px;
  color: var(--blue);
  font-weight: 600;
  font-size: .88rem;
  text-decoration: none;
  transition: all .18s;
}
.nav-auth-login:hover { background: var(--blue); color: #fff; }
.nav-auth-user {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: var(--gray-700);
  font-size: .88rem;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: 8px;
  transition: background .15s;
}
.nav-auth-user:hover { background: var(--gray-100); }
.nav-auth-avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: linear-gradient(135deg, #6366f1, #2563eb);
  color: #fff;
  font-size: .82rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.nav-auth-name { max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mobile-nav-auth-link {
  display: block;
  padding: 12px 24px;
  color: var(--gray-700);
  text-decoration: none;
  font-size: .95rem;
  border-top: 1px solid var(--gray-100);
}
.nav-btn-login {
  background: rgba(37,99,235,.15); border: 1px solid rgba(37,99,235,.35); color: #60a5fa;
  padding: 6px 16px; border-radius: 20px; font-size: .8125rem; font-weight: 600; text-decoration: none;
  transition: background .2s;
}
.nav-btn-login:hover { background: rgba(37,99,235,.28); }
.nav-user-wrap { position: relative; }
.nav-avatar {
  width: 34px; height: 34px; border-radius: 50%; background: linear-gradient(135deg, var(--blue), #7c3aed);
  display: flex; align-items: center; justify-content: center; font-size: .8125rem; font-weight: 700;
  color: #fff; cursor: pointer; transition: box-shadow .2s;
}
.nav-avatar:hover { box-shadow: 0 0 0 3px rgba(37,99,235,.4); }
.nav-user-dropdown {
  position: absolute; right: 0; top: calc(100% + 10px); min-width: 200px;
  background: #1e293b; border: 1px solid rgba(255,255,255,.1); border-radius: 14px;
  overflow: hidden; box-shadow: 0 16px 48px rgba(0,0,0,.4); z-index: 200;
}
.nav-user-dropdown.hidden { display: none; }
.nav-user-info { padding: 12px 16px; font-size: .8125rem; font-weight: 700; color: #94a3b8; border-bottom: 1px solid rgba(255,255,255,.07); }
.nav-user-dropdown a, .nav-user-dropdown button {
  display: block; width: 100%; padding: 10px 16px; color: #e2e8f0; font-size: .875rem;
  text-decoration: none; background: none; border: none; text-align: left; cursor: pointer; transition: background .15s;
}
.nav-user-dropdown a:hover, .nav-user-dropdown button:hover { background: rgba(255,255,255,.06); }

/* ═══════════════════════════════════════════════════════════════
   ANNUNCI PAGE
═══════════════════════════════════════════════════════════════ */
.annunci-page { background: #0f172a; min-height: 100vh; }
.annunci-hero {
  background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 60%, #0f172a 100%);
  padding: 60px 0 40px; border-bottom: 1px solid rgba(255,255,255,.07);
}
.annunci-hero-title { font-size: clamp(1.75rem,4vw,2.5rem); font-weight: 800; color: #fff; text-align: center; }
.annunci-hero-sub { color: #94a3b8; text-align: center; margin: 8px 0 28px; font-size: .95rem; }

.annunci-filters {
  display: flex; gap: 12px; flex-wrap: wrap; justify-content: center;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08);
  border-radius: 16px; padding: 16px 20px; max-width: 860px; margin: 0 auto;
}
.filter-input, .filter-select {
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); color: #fff;
  padding: 10px 14px; border-radius: 10px; font-size: 1rem; outline: none;
  transition: border-color .2s; flex: 1; min-width: 160px;
}
.filter-input:focus, .filter-select:focus { border-color: var(--blue); }
.filter-input::placeholder { color: #64748b; }
.filter-select option { background: #1e293b; }

.annunci-section { padding: 36px 0 60px; }
.annunci-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; flex-wrap: wrap; gap: 10px; }
.annunci-count { color: #64748b; font-size: .875rem; }
.view-toggle { display: flex; gap: 4px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); border-radius: 10px; padding: 3px; }
.view-btn { background: transparent; border: none; color: #94a3b8; padding: 5px 14px; border-radius: 8px; cursor: pointer; font-size: .8125rem; font-weight: 600; transition: all .2s; }
.view-btn.active { background: rgba(37,99,235,.25); color: #60a5fa; }
.view-btn-danger { color: #f87171 !important; }
.view-btn-danger:hover { background: rgba(248,113,113,.15) !important; }
.listings-map { position: relative; z-index: 0; height: 520px; border-radius: 16px; overflow: hidden; border: 1px solid rgba(255,255,255,.1); }

/* Listings grid */
.listings-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; }
.listings-loading, .listings-empty { grid-column: 1/-1; display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 60px 20px; color: #64748b; }
.loading-spinner { width: 36px; height: 36px; border: 3px solid rgba(37,99,235,.2); border-top-color: var(--blue); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* Listing card */
.listing-card {
  background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.07); border-radius: 16px;
  overflow: hidden; cursor: pointer; transition: transform .2s, border-color .2s, box-shadow .2s;
  display: flex; flex-direction: column;
}
.listing-card:hover { transform: translateY(-3px); border-color: rgba(37,99,235,.3); box-shadow: 0 12px 40px rgba(0,0,0,.3); }
.listing-card-img { height: 180px; background: linear-gradient(135deg, #1e293b, #0f172a); position: relative; display: flex; align-items: center; justify-content: center; }
.listing-card-img-placeholder { font-size: 4rem; opacity: .4; }
.listing-badge { position: absolute; top: 12px; left: 12px; background: rgba(37,99,235,.8); color: #fff; font-size: .6875rem; font-weight: 700; padding: 3px 10px; border-radius: 20px; }
.listing-ape { position: absolute; top: 42px; left: 12px; color: #fff; font-size: .6875rem; font-weight: 700; padding: 3px 8px; border-radius: 6px; }
.listing-card-body { padding: 16px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.listing-price { font-size: 1.375rem; font-weight: 800; color: #fff; }
.listing-title { font-size: .95rem; font-weight: 600; color: #e2e8f0; line-height: 1.35; }
.listing-meta { font-size: .8125rem; color: #64748b; }
.listing-specs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 2px; }
.listing-specs span { font-size: .8125rem; color: #94a3b8; background: rgba(255,255,255,.05); padding: 3px 8px; border-radius: 6px; }
.listing-card-footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.06); }
.listing-views { font-size: .75rem; color: #64748b; }
.btn-like { background: none; border: 1px solid rgba(255,255,255,.1); padding: 5px 10px; border-radius: 20px; cursor: pointer; font-size: .8125rem; color: #94a3b8; transition: border-color .2s, background .2s; display: flex; align-items: center; gap: 4px; }
.btn-like:hover { border-color: #f43f5e; background: rgba(244,63,94,.08); }
.btn-like.liked { border-color: #f43f5e; color: #f43f5e; background: rgba(244,63,94,.1); }
.like-count { font-size: .75rem; }

/* ═══════════════════════════════════════════════════════════════
   ANNUNCIO DETAIL
═══════════════════════════════════════════════════════════════ */
.detail-wrap { padding: 32px 0 60px; max-width: 1280px; margin: 0 auto; padding-left: 24px; padding-right: 24px; box-sizing: border-box; }
.detail-breadcrumb { display: flex; align-items: center; gap: 8px; color: #64748b; font-size: .8125rem; margin-bottom: 24px; }
.detail-breadcrumb a { color: var(--blue); text-decoration: none; }
.detail-layout { display: grid; grid-template-columns: 1fr 360px; gap: 28px; }
.detail-main, .detail-sidebar { min-width: 0; }
.detail-img-placeholder { height: 380px; background: linear-gradient(135deg, #1e293b, #0f172a); border-radius: 16px; display: flex; flex-direction: column; align-items: center; justify-content: center; margin-bottom: 24px; border: 1px solid rgba(255,255,255,.07); }
.detail-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 20px; }
.detail-title { font-size: 1.5rem; font-weight: 800; color: #fff; margin-bottom: 4px; overflow-wrap: break-word; word-break: break-word; }
.detail-location { color: #64748b; font-size: .875rem; overflow-wrap: break-word; word-break: break-word; }
.detail-price-wrap { text-align: right; flex-shrink: 0; }
.detail-price { font-size: 1.75rem; font-weight: 800; color: #fff; }
.detail-price-sqm { color: #64748b; font-size: .8125rem; }
.detail-specs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 12px; margin-bottom: 20px; }
.detail-spec { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07); border-radius: 12px; padding: 14px; text-align: center; }
.detail-spec-val { font-size: 1.125rem; font-weight: 700; color: #fff; }
.detail-spec-label { font-size: .75rem; color: #64748b; margin-top: 3px; }
.detail-features { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.detail-feat { background: rgba(37,99,235,.1); border: 1px solid rgba(37,99,235,.2); color: #93c5fd; padding: 5px 12px; border-radius: 20px; font-size: .8125rem; }
.detail-desc-section { margin-top: 8px; }
.detail-section-title { font-size: 1rem; font-weight: 700; color: #fff; margin-bottom: 10px; }
.detail-desc { color: #94a3b8; line-height: 1.85; font-size: .9375rem; margin: 0 0 14px; overflow-wrap: break-word; word-break: break-word; }
.detail-desc:last-of-type { margin-bottom: 0; }
/* Sidebar */
.detail-sidebar-card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: 16px; padding: 20px; margin-bottom: 16px; }
.detail-seller { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.detail-seller-avatar { width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, var(--blue), #7c3aed); display: flex; align-items: center; justify-content: center; font-size: 1.1rem; font-weight: 700; color: #fff; flex-shrink: 0; }
.detail-seller-name { font-weight: 700; color: #fff; font-size: .9rem; }
.detail-seller-badge { font-size: .75rem; color: #34d399; margin-top: 2px; }
.detail-seller-rating { font-size: .75rem; color: #fbbf24; margin-top: 4px; font-weight: 600; }

.seller-reviews-list { display: flex; flex-direction: column; gap: 12px; }
.seller-review-card { background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.08); border-radius: 12px; padding: 14px 16px; }
.seller-review-head { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; flex-wrap: wrap; }
.seller-review-stars { color: #fbbf24; font-size: .95rem; letter-spacing: 1px; }
.seller-review-author { color: #e2e8f0; font-weight: 600; font-size: .85rem; }
.seller-review-text { color: #cbd5e1; font-size: .88rem; line-height: 1.5; margin: 0 0 8px; }
.seller-review-meta { color: #64748b; font-size: .75rem; }
.btn-contact { width: 100%; background: linear-gradient(135deg, var(--blue), #1d4ed8); color: #fff; font-weight: 700; padding: 12px; border-radius: 12px; border: none; cursor: pointer; font-size: .95rem; transition: transform .15s, box-shadow .15s; box-shadow: 0 4px 12px rgba(0,0,0,.35); }
.btn-contact:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,.45); }
.btn-contact:active { transform: translateY(0); box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.detail-privacy-note { font-size: .75rem; color: #64748b; text-align: center; margin-top: 8px; }
.detail-meta-list { margin-top: 14px; display: flex; flex-direction: column; gap: 6px; }
.detail-meta-item { display: flex; justify-content: space-between; font-size: .8125rem; color: #94a3b8; padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,.05); }
.btn-like-detail { width: 100%; background: none; border: 1px solid rgba(255,255,255,.12); color: #94a3b8; padding: 10px; border-radius: 10px; cursor: pointer; font-size: .875rem; margin-top: 12px; transition: border-color .2s, background .2s; }
.btn-like-detail:hover { border-color: #f43f5e; background: rgba(244,63,94,.08); color: #f43f5e; }
.btn-like-detail.liked { border-color: #f43f5e; background: rgba(244,63,94,.1); color: #f43f5e; }
.detail-owner-badge { background: rgba(16,185,129,.1); border: 1px solid rgba(16,185,129,.3); color: #34d399; padding: 10px; border-radius: 10px; font-size: .8125rem; text-align: center; }
/* CTA block */
.detail-cta-block { background: linear-gradient(135deg, rgba(37,99,235,.1), rgba(124,58,237,.08)); border: 1px solid rgba(37,99,235,.2); border-radius: 16px; padding: 20px; margin: 20px 0; }
.detail-cta-title { font-weight: 700; color: #e2e8f0; font-size: 1rem; margin-bottom: 14px; }
.detail-cta-btns { display: flex; gap: 10px; flex-wrap: wrap; }
.detail-cta-btn { flex: 1; min-width: 140px; padding: 14px 8px; border: none; border-radius: 12px; font-weight: 700; font-size: .9rem; cursor: pointer; transition: transform .15s, box-shadow .15s; box-shadow: 0 4px 12px rgba(0,0,0,.35), 0 1px 0 rgba(255,255,255,.08) inset; letter-spacing: .01em; }
.detail-cta-btn:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,.45), 0 1px 0 rgba(255,255,255,.08) inset; }
.detail-cta-btn:active { transform: translateY(0); box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.detail-cta-visita  { background: linear-gradient(135deg, #7c3aed, #6d28d9); color: #fff; }
.detail-cta-proposta { background: linear-gradient(135deg, #16a34a, #15803d); color: #fff; }
.detail-cta-chat    { background: linear-gradient(135deg, #2563eb, #1d4ed8); color: #fff; }
.review-stars { color: #fbbf24; font-size: 1.05rem; letter-spacing: 2px; }
.review-meta { color: #64748b; font-size: .78rem; margin: 3px 0 0; }
.review-text { color: #cbd5e1; font-size: .875rem; margin: 6px 0 0; line-height: 1.55; }
.detail-map { position: relative; z-index: 0; height: 300px; border-radius: 12px; overflow: hidden; border: 1px solid rgba(255,255,255,.1); margin-top: 8px; }
.detail-video-wrap { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; background: #000; border-radius: 12px; }
.detail-video-iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }
.detail-forfait-box { background: linear-gradient(135deg, rgba(37,99,235,.15), rgba(124,58,237,.1)); border: 1px solid rgba(37,99,235,.2); border-radius: 12px; padding: 16px; text-align: center; }
.detail-forfait-title { font-weight: 700; color: #fff; font-size: .9rem; }
.detail-forfait-sub { color: #60a5fa; font-size: .8125rem; margin-top: 4px; }

/* Share box */
.detail-share-box { background: linear-gradient(135deg, rgba(37,99,235,.08), rgba(124,58,237,.05)); border: 1px solid rgba(255,255,255,.08); border-radius: 18px; padding: 20px; margin-top: 20px; }
.detail-share-title { font-size: .72rem; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: .07em; margin-bottom: 16px; text-align: center; }
.detail-share-btns { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; }
.detail-share-box .share-btn {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  flex: 0 0 64px; gap: 8px; padding: 6px 4px; border-radius: 10px; cursor: pointer;
  font-size: .66rem; font-weight: 700; letter-spacing: .01em;
  border: none; background: none; color: #94a3b8;
  transition: transform .18s, color .18s;
}
.detail-share-box .share-btn .share-icon {
  width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  transition: filter .18s;
}
.detail-share-box .share-btn svg { width: 24px; height: 24px; flex-shrink: 0; }
.detail-share-box .share-btn:hover { transform: translateY(-3px); color: #e2e8f0; }
.detail-share-box .share-btn:hover .share-icon { filter: brightness(1.2); }
.detail-share-box .share-copy .share-icon { color: #cbd5e1; }
.detail-share-box .share-wa   .share-icon { color: #34d399; }
.detail-share-box .share-tg   .share-icon { color: #38bdf8; }
.detail-share-box .share-fb   .share-icon { color: #60a5fa; }
.detail-share-box .share-tw   .share-icon { color: #f1f5f9; }
.share-copied { margin-top: 14px; text-align: center; font-size: .8rem; color: #34d399; font-weight: 600; }


/* ═══════════════════════════════════════════════════════════════
   ESCLUSIVA MODAL
═══════════════════════════════════════════════════════════════ */
.esclusiva-box { background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.08); border-radius: 12px; padding: 16px; }
.esclusiva-title { color: #94a3b8; font-size: .875rem; line-height: 1.5; margin-bottom: 12px; }
.esclusiva-list { list-style: none; display: flex; flex-direction: column; gap: 8px; }
.esclusiva-list li { color: #e2e8f0; font-size: .875rem; }
.esclusiva-sign { background: rgba(37,99,235,.06); border: 1px solid rgba(37,99,235,.2); border-radius: 10px; padding: 14px; }
.esclusiva-check-label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; color: #cbd5e1; font-size: .875rem; line-height: 1.5; }
.esclusiva-check-label input { margin-top: 2px; accent-color: var(--blue); flex-shrink: 0; }

/* Photo stanza tour */
.photo-stanza-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 14px; border-radius: 10px;
  background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.07);
  margin-bottom: 6px; gap: 12px; transition: background .3s;
}
.photo-stanza-info { display: flex; align-items: center; gap: 8px; flex: 1; }
.photo-stanza-icon { font-size: 1.1rem; }
.photo-stanza-name { color: #cbd5e1; font-size: .875rem; font-weight: 500; }
.photo-stanza-badge { color: #34d399; font-size: .78rem; font-weight: 700; }
.photo-upload-btn {
  background: rgba(37,99,235,.15); border: 1px solid rgba(37,99,235,.3);
  color: #60a5fa; padding: 5px 12px; border-radius: 8px;
  cursor: pointer; font-size: .8125rem; white-space: nowrap; transition: background .2s;
}
.photo-upload-btn:hover { background: rgba(37,99,235,.28); }

/* ═══════════════════════════════════════════════════════════════
   FAVORITES TAB
═══════════════════════════════════════════════════════════════ */
.fav-card {
  display: flex; align-items: center; gap: 16px; background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07); border-radius: 14px; padding: 16px;
  text-decoration: none; transition: border-color .2s, transform .15s; cursor: pointer;
}
.fav-card:hover { border-color: rgba(37,99,235,.3); transform: translateY(-1px); }
.fav-card-icon { font-size: 2rem; flex-shrink: 0; }
.fav-card-body { flex: 1; min-width: 0; }
.fav-card-title { font-weight: 700; color: #fff; font-size: .9rem; }
.fav-card-meta { color: #64748b; font-size: .8rem; margin-top: 2px; }
.fav-card-price { color: #60a5fa; font-weight: 700; font-size: .95rem; margin-top: 4px; }
.fav-remove { background: none; border: none; color: #475569; cursor: pointer; font-size: .875rem; padding: 6px 8px; border-radius: 6px; flex-shrink: 0; }
.fav-remove:hover { color: #ef4444; background: rgba(239,68,68,.08); }
.listing-stato-pubblicato { color: #34d399; }
.listing-stato-venduto { color: #f87171; }
.listing-stato-bozza { color: #fbbf24; }

/* APE classes */
.ape-a { color: #22c55e; } .ape-b { color: #86efac; } .ape-c { color: #fde68a; }
.ape-d { color: #fbbf24; } .ape-e { color: #fb923c; } .ape-f { color: #f87171; } .ape-g { color: #ef4444; }

@media (max-width: 900px) {
  .detail-layout { grid-template-columns: 1fr; }
  .listings-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
}
@media (max-width: 640px) {
  .annunci-filters { flex-direction: column; }
  .filter-input, .filter-select { min-width: unset; width: 100%; }
  .detail-header { flex-direction: column; }
  .detail-price-wrap { text-align: left; }
}

/* ═══════════════════════════════════════════════════════════════
   ADMIN PANEL
═══════════════════════════════════════════════════════════════ */
.admin-badge {
  background: linear-gradient(135deg,#f59e0b,#ef4444); color:#fff;
  font-size:.625rem; font-weight:800; padding:2px 7px; border-radius:6px;
  letter-spacing:.08em; text-transform:uppercase; margin-left:6px;
}
.admin-stats-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:16px; margin-bottom:32px;
}
.admin-stat-card {
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08);
  border-radius:14px; padding:20px; text-align:center;
}
.admin-stat-num { font-size:2rem; font-weight:800; color:#fff; }
.admin-stat-label { font-size:.8125rem; color:#64748b; margin-top:4px; }
.admin-search-bar { display:flex; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
div[id$="-table"] {
  overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch;
}
.admin-table {
  width:100%; border-collapse:collapse; font-size:.875rem;
}
.admin-table th {
  text-align:left; padding:10px 12px; color:#64748b; font-size:.75rem;
  font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.admin-table td {
  padding:12px; border-bottom:1px solid rgba(255,255,255,.04); color:#e2e8f0;
  vertical-align:middle;
}
.admin-table tr:hover td { background:rgba(255,255,255,.025); }
.admin-td-muted { color:#64748b !important; }
.admin-link { color:#60a5fa; text-decoration:none; font-weight:600; }
.admin-link:hover { text-decoration:underline; }
.admin-btn-edit {
  background:rgba(37,99,235,.15); border:1px solid rgba(37,99,235,.3);
  color:#60a5fa; padding:4px 10px; border-radius:6px; cursor:pointer; font-size:.8125rem;
}
.admin-btn-edit:hover { background:rgba(37,99,235,.25); }
.admin-btn-approve {
  background:rgba(16,185,129,.15); border:1px solid rgba(16,185,129,.3);
  color:#34d399; padding:4px 10px; border-radius:6px; cursor:pointer; font-size:.8125rem;
}
.admin-btn-approve:hover { background:rgba(16,185,129,.28); }
.admin-btn-reject {
  background:rgba(239,68,68,.13); border:1px solid rgba(239,68,68,.3);
  color:#f87171; padding:4px 10px; border-radius:6px; cursor:pointer; font-size:.8125rem;
}
.admin-btn-reject:hover { background:rgba(239,68,68,.25); }
.admin-btn-modify {
  background:rgba(245,158,11,.13); border:1px solid rgba(245,158,11,.3);
  color:#fbbf24; padding:4px 10px; border-radius:6px; cursor:pointer; font-size:.8125rem;
}
.admin-btn-modify:hover { background:rgba(245,158,11,.25); }
.listing-stato-in_revisione { color:#f59e0b; font-weight:600; font-size:.8rem; }
.listing-stato-in_attesa_conferma_cliente { color:#60a5fa; font-weight:600; font-size:.8rem; }
.listing-stato-pubblicato { color:#34d399; font-weight:600; font-size:.8rem; }
.listing-stato-rifiutato { color:#f87171; font-weight:600; font-size:.8rem; }
.listing-stato-bozza { color:#94a3b8; font-weight:600; font-size:.8rem; }
.listing-stato-venduto { color:#a78bfa; font-weight:600; font-size:.8rem; }
.dash-admin-link {
  display:inline-block; padding:8px 14px; border-radius:10px;
  background:rgba(245,158,11,.1); border:1px solid rgba(245,158,11,.25);
  color:#fbbf24; font-size:.8125rem; font-weight:700; text-decoration:none; text-align:center;
  transition:background .2s; white-space:nowrap;
}
.dash-admin-link:hover { background:rgba(245,158,11,.2); }
@media(max-width:640px){
  .admin-stats-grid { grid-template-columns:repeat(2,1fr); }
  .admin-table { font-size:.75rem; }
}

/* ===== APE BADGE COLORS (cards) ===== */
/* override position from the old rule: top-right */
.listing-ape { position:absolute !important; top:42px !important; left:12px !important; right:auto !important; padding:3px 9px !important; border-radius:6px !important; font-size:.72rem !important; font-weight:800 !important; letter-spacing:.5px !important; }
.ape-badge-a4 { background:#15803d !important; }
.ape-badge-a3 { background:#16a34a !important; }
.ape-badge-a2 { background:#22c55e !important; }
.ape-badge-a1 { background:#4ade80 !important; color:#14532d !important; }
.ape-badge-aplus { background:#86efac !important; color:#14532d !important; }
.ape-badge-a { background:#bbf7d0 !important; color:#14532d !important; }
.ape-badge-b { background:#bef264 !important; color:#365314 !important; }
.ape-badge-c { background:#fde047 !important; color:#713f12 !important; }
.ape-badge-d { background:#fb923c !important; }
.ape-badge-e { background:#f97316 !important; }
.ape-badge-f { background:#ef4444 !important; }
.ape-badge-g { background:#dc2626 !important; }
.ape-badge-in-attesa { background:#94a3b8 !important; }
.ape-badge-esente { background:#64748b !important; }
.ape-badge-non-classificabile { background:#475569 !important; }

/* APE pill in detail spec grid */
.ape-pill { display:inline-block; padding:2px 10px; border-radius:20px; font-weight:800; font-size:.9rem; }
.ape-pill-a4 { background:#15803d; color:#fff; }
.ape-pill-a3 { background:#16a34a; color:#fff; }
.ape-pill-a2 { background:#22c55e; color:#fff; }
.ape-pill-a1 { background:#4ade80; color:#14532d; }
.ape-pill-aplus { background:#86efac; color:#14532d; }
.ape-pill-a { background:#bbf7d0; color:#14532d; }
.ape-pill-b { background:#bef264; color:#365314; }
.ape-pill-c { background:#fde047; color:#713f12; }
.ape-pill-d { background:#fb923c; color:#fff; }
.ape-pill-e { background:#f97316; color:#fff; }
.ape-pill-f { background:#ef4444; color:#fff; }
.ape-pill-g { background:#dc2626; color:#fff; }
.ape-pill-in-attesa { background:#94a3b8; color:#fff; }
.ape-pill-esente { background:#64748b; color:#fff; }
.ape-pill-non-classificabile { background:#475569; color:#fff; }

/* ===== DOCS BADGE (listing card) ===== */
.listing-docs-badge {
  display:inline-block; margin:4px 0 2px;
  font-size:.72rem; font-weight:700; color:#16a34a;
  background:rgba(22,163,74,.1); border:1px solid rgba(22,163,74,.25);
  border-radius:6px; padding:2px 8px;
}

/* ===== DOCS SECTION (detail page) ===== */
.detail-docs-section { margin:28px 0; }
.detail-docs-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:14px; }
@media(max-width:600px) { .detail-docs-grid { grid-template-columns:1fr; } }
.detail-doc-item {
  display:flex; align-items:flex-start; gap:12px;
  padding:16px; border-radius:14px; border:1px solid;
  transition: transform .18s, box-shadow .18s;
}
.detail-doc-item:hover { transform:translateY(-2px); }
.detail-doc-item.doc-ok {
  background: linear-gradient(135deg, rgba(22,163,74,.12), rgba(22,163,74,.06));
  border-color: rgba(22,163,74,.4);
  box-shadow: 0 2px 12px rgba(22,163,74,.08);
}
.detail-doc-item.doc-missing {
  background: linear-gradient(135deg, rgba(245,158,11,.1), rgba(245,158,11,.05));
  border-color: rgba(245,158,11,.35);
  box-shadow: 0 2px 12px rgba(245,158,11,.06);
}
.doc-icon { font-size:1.5rem; flex-shrink:0; margin-top:1px; }
.doc-label { font-weight:700; font-size:.875rem; color:#e2e8f0; line-height:1.3; }
.doc-sub { font-size:.775rem; color:#94a3b8; margin-top:4px; }
.detail-docs-verified-badge {
  margin-top:16px; padding:12px 18px; border-radius:12px;
  background: linear-gradient(135deg, rgba(22,163,74,.15), rgba(22,163,74,.08));
  border:1px solid rgba(22,163,74,.4);
  color:#4ade80; font-weight:700; font-size:.875rem; text-align:center;
  letter-spacing:.01em;
}

/* ===== AUTOCOMPLETE ===== */
.filter-autocomplete-wrap { position:relative; flex:1; min-width:200px; }
.filter-autocomplete-wrap .filter-input { width:100%; }
.autocomplete-dropdown {
  position:absolute; top:calc(100% + 4px); left:0; right:0; z-index:200;
  background:#fff; border:1px solid var(--gray-200); border-radius:10px;
  box-shadow:var(--shadow-lg); overflow:hidden;
}
.autocomplete-item {
  display:flex; align-items:center; gap:10px;
  padding:10px 14px; cursor:pointer; transition:background .15s;
}
.autocomplete-item:hover { background:var(--blue-light); }
.autocomplete-type { font-size:1rem; flex-shrink:0; }
.autocomplete-label { flex:1; font-size:.875rem; font-weight:500; color:var(--gray-800); }
.autocomplete-tag {
  font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.5px;
  padding:2px 6px; border-radius:4px; background:var(--gray-100); color:var(--gray-600);
}
.ac-zone + .autocomplete-label { color:var(--blue); }

/* ===== TAB ESPLORA ===== */
.esplora-filters { display:flex; gap:10px; margin-bottom:16px; flex-wrap:wrap; }
.esplora-input { flex:1; min-width:180px; padding:9px 14px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:10px; color:#fff; font-size:1rem; }
.esplora-input::placeholder { color:#64748b; }
.esplora-select { padding:9px 12px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:10px; color:#fff; font-size:1rem; }
.esplora-select option { background:#1e293b; }
.esplora-count { font-size:.8rem; color:#64748b; margin-bottom:14px; }
.esplora-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; }
.esplora-card { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:14px; overflow:hidden; text-decoration:none; display:flex; flex-direction:column; transition:border-color .2s,transform .2s; }
.esplora-card:hover { border-color:rgba(37,99,235,.4); transform:translateY(-2px); }
.esplora-card-img { background:rgba(37,99,235,.08); height:120px; display:flex; align-items:center; justify-content:center; position:relative; }
.esplora-card-tipo { position:absolute; top:8px; left:8px; background:rgba(37,99,235,.8); color:#fff; font-size:.65rem; font-weight:700; padding:2px 8px; border-radius:20px; }
.esplora-card-ape { position:absolute; top:8px; right:8px; color:#fff; font-size:.65rem; font-weight:800; padding:2px 8px; border-radius:6px; }
.esplora-card-body { padding:14px; flex:1; display:flex; flex-direction:column; gap:4px; }
.esplora-card-price { font-size:1.15rem; font-weight:800; color:#60a5fa; }
.esplora-card-title { font-weight:600; color:#fff; font-size:.875rem; line-height:1.4; }
.esplora-card-loc { color:#64748b; font-size:.78rem; margin-top:2px; }
.esplora-card-specs { display:flex; gap:8px; flex-wrap:wrap; margin-top:4px; }
.esplora-card-specs span { font-size:.75rem; color:#94a3b8; }
.esplora-docs-badge { margin-top:6px; font-size:.7rem; font-weight:700; color:#16a34a; background:rgba(22,163,74,.1); border:1px solid rgba(22,163,74,.2); border-radius:6px; padding:2px 8px; display:inline-block; }
.esplora-card-actions { display:flex; align-items:center; justify-content:space-between; padding:8px 14px 12px; }
.esplora-like-btn { background:none; border:none; font-size:1.2rem; cursor:pointer; padding:4px; border-radius:6px; transition:transform .15s; }
.esplora-like-btn:hover { transform:scale(1.2); }
.esplora-views { font-size:.75rem; color:#64748b; }

/* ===== SIMULATORE MUTUO ===== */
.mutuo-box { background:var(--gray-50); border:1px solid var(--gray-200); border-radius:16px; padding:24px; }

/* tipo tasso tabs */
.mutuo-tabs { display:flex; gap:8px; margin-bottom:18px; }
.mutuo-tab { flex:1; padding:10px 16px; border-radius:10px; border:1px solid var(--gray-200); background:#fff; font-weight:600; font-size:.875rem; cursor:pointer; transition:all .2s; color:var(--gray-600); }
.mutuo-tab.active { background:var(--blue); border-color:var(--blue); color:#fff; }
.mutuo-tab:hover:not(.active) { border-color:var(--blue); color:var(--blue); }

/* rates row */
.mutuo-rates-row { display:flex; align-items:center; gap:10px; margin-bottom:20px; padding:10px 14px; background:rgba(37,99,235,.06); border:1px solid rgba(37,99,235,.15); border-radius:10px; flex-wrap:wrap; }
.mutuo-rate-label { font-size:.8rem; color:var(--gray-600); }
.mutuo-rate-value { font-size:1.1rem; font-weight:800; color:var(--blue); }
.mutuo-rate-source { font-size:.72rem; color:var(--gray-400); margin-left:auto; }

/* sliders */
.mutuo-sliders { display:flex; flex-direction:column; gap:20px; margin-bottom:24px; }
.mutuo-field-header { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.mutuo-field-header label { font-weight:600; font-size:.875rem; color:var(--gray-700); flex:1; }
.mutuo-field-val { font-weight:700; color:var(--blue); font-size:.875rem; }
.mutuo-field-eur { color:var(--gray-500); font-size:.8rem; font-weight:500; }
.mutuo-slider { width:100%; accent-color:var(--blue); height:4px; cursor:pointer; }
.mutuo-slider-ticks { display:flex; justify-content:space-between; margin-top:4px; }
.mutuo-slider-ticks span { font-size:.7rem; color:var(--gray-400); }

/* durata buttons */
.mutuo-durata-btns { display:flex; gap:8px; flex-wrap:wrap; }
.mutuo-dur-btn { padding:7px 14px; border-radius:8px; border:1px solid var(--gray-200); background:#fff; font-size:.8125rem; font-weight:600; color:var(--gray-600); cursor:pointer; transition:all .18s; }
.mutuo-dur-btn.active { background:var(--blue); border-color:var(--blue); color:#fff; }
.mutuo-dur-btn:hover:not(.active) { border-color:var(--blue); color:var(--blue); }

/* risultato principale */
.mutuo-result-main { text-align:center; padding:22px 16px; background:linear-gradient(135deg,#1e40af,#2563eb); border-radius:14px; margin-bottom:20px; }
.mutuo-result-label { font-size:.8125rem; color:rgba(255,255,255,.75); font-weight:500; margin-bottom:6px; }
.mutuo-result-rata { font-size:2.2rem; font-weight:900; color:#fff; letter-spacing:-1px; }

/* breakdown */
.mutuo-breakdown { display:flex; flex-direction:column; gap:0; border:1px solid var(--gray-200); border-radius:12px; overflow:hidden; margin-bottom:16px; }
.mutuo-breakdown-item { display:flex; justify-content:space-between; align-items:center; padding:11px 16px; border-bottom:1px solid var(--gray-100); }
.mutuo-breakdown-item:last-child { border-bottom:none; }
.mutuo-bd-total { background:var(--gray-50); }
.mutuo-bd-label { font-size:.8125rem; color:var(--gray-600); }
.mutuo-bd-val { font-weight:700; font-size:.875rem; color:var(--gray-800); }
.mutuo-bd-blue { color:var(--blue) !important; }
.mutuo-bd-orange { color:#d97706 !important; }

/* disclaimer */
.mutuo-disclaimer { font-size:.72rem; color:var(--gray-400); line-height:1.6; margin-top:4px; }

@media(max-width:600px) {
  .mutuo-result-rata { font-size:1.7rem; }
  .mutuo-durata-btns { gap:6px; }
  .mutuo-dur-btn { padding:6px 10px; font-size:.75rem; }
}

/* ===== LEGAL PAGES ===== */
.legal-page { max-width:760px; padding:48px 24px 80px; }
.legal-title { font-size:2rem; font-weight:800; color:var(--gray-900); margin-bottom:6px; }
.legal-updated { color:var(--gray-400); font-size:.875rem; margin-bottom:40px; }
.legal-content h2 { font-size:1.1rem; font-weight:700; color:var(--gray-800); margin:32px 0 12px; padding-bottom:6px; border-bottom:2px solid var(--gray-100); }
.legal-content p { color:var(--gray-700); font-size:.9rem; line-height:1.8; margin-bottom:12px; }
.legal-content ul { padding-left:20px; margin-bottom:12px; }
.legal-content ul li { color:var(--gray-700); font-size:.9rem; line-height:1.8; margin-bottom:4px; }
.legal-content a { color:var(--blue); }


.btn-proposta {
  display:block; width:100%; margin-top:8px;
  background:linear-gradient(135deg,#16a34a,#15803d);
  color:#fff; font-weight:700; font-size:.95rem;
  padding:12px; border-radius:12px; border:none; cursor:pointer;
  transition:transform .15s, box-shadow .15s;
  box-shadow: 0 4px 12px rgba(0,0,0,.35);
}
.btn-proposta:hover { transform:translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,.45); }
.btn-proposta:active { transform: translateY(0); box-shadow: 0 2px 6px rgba(0,0,0,.3); }

/* ===== ADMIN OVERVIEW ===== */
.admin-city-pill { background:rgba(37,99,235,.15); border:1px solid rgba(37,99,235,.3); color:#93c5fd; padding:5px 14px; border-radius:20px; font-size:.8rem; }
.admin-city-pill strong { color:#fff; margin-left:4px; }
.overview-city-block { margin-bottom:32px; }
.overview-city-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; padding-bottom:8px; border-bottom:1px solid rgba(255,255,255,.08); }
.overview-city-name { font-size:1rem; font-weight:700; color:#fff; }
.overview-city-count { font-size:.8rem; color:#64748b; background:rgba(255,255,255,.05); padding:3px 10px; border-radius:20px; }
.admin-link { color:#60a5fa; text-decoration:none; }
.admin-link:hover { text-decoration:underline; }

/* ===== SALVA RICERCA (annunci.html) ===== */
.salva-ricerca-banner {
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
  background:linear-gradient(135deg, rgba(37,99,235,.12), rgba(124,58,237,.12));
  border:1px solid rgba(37,99,235,.3); border-radius:12px;
  padding:14px 20px; margin-bottom:24px;
}
.salva-ricerca-label { color:#cbd5e1; font-size:.9rem; }
.btn-salva-ricerca {
  background:linear-gradient(135deg,#2563eb,#7c3aed); color:#fff;
  border:none; border-radius:8px; padding:9px 18px; font-size:.85rem;
  font-weight:600; cursor:pointer; white-space:nowrap;
  transition:opacity .2s;
}
.btn-salva-ricerca:hover { opacity:.85; }

/* Save-search modal */
.salva-modal-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:9000;
  display:flex; align-items:center; justify-content:center;
}
.salva-modal-overlay.hidden { display:none; }
.salva-modal {
  background:#1e293b; border:1px solid rgba(255,255,255,.1); border-radius:16px;
  width:min(440px,92vw); padding:0; overflow:hidden;
}
.salva-modal-header {
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 20px; border-bottom:1px solid rgba(255,255,255,.08);
  font-weight:700; color:#f1f5f9; font-size:1rem;
}
.salva-modal-header button {
  background:none; border:none; color:#94a3b8; font-size:1.1rem; cursor:pointer; padding:2px 6px;
}
.salva-modal-body { padding:20px; }
.salva-modal-hint { color:#64748b; font-size:.85rem; margin-bottom:16px; line-height:1.5; }

/* Alert form grid inside modal */
.alert-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.alert-form-full { grid-column:1/-1; }
.alert-form-field { display:flex; flex-direction:column; gap:6px; }
.alert-form-field label { font-size:.82rem; color:#94a3b8; font-weight:600; }
.alert-form-field input, .alert-form-field select {
  background:#0f172a; border:1px solid rgba(255,255,255,.12);
  color:#f1f5f9; border-radius:8px; padding:9px 12px; font-size:.88rem;
  outline:none; transition:border-color .2s;
}
.alert-form-field input:focus, .alert-form-field select:focus { border-color:#2563eb; }
.alert-form-field select option { background:#1e293b; }
.field-required { color:#f87171; margin-left:2px; }

/* Toast notification */
.toast-notification {
  position:fixed; bottom:32px; left:50%; transform:translateX(-50%) translateY(20px);
  background:#1e293b; border:1px solid rgba(52,211,153,.4); color:#34d399;
  padding:12px 24px; border-radius:12px; font-size:.9rem; font-weight:600;
  z-index:9999; opacity:0; transition:opacity .3s, transform .3s; pointer-events:none;
}
.toast-notification.show { opacity:1; transform:translateX(-50%) translateY(0); }

/* ===== ALERT TAB (dashboard) ===== */
.alert-hint {
  background:rgba(37,99,235,.08); border:1px solid rgba(37,99,235,.2);
  border-radius:10px; padding:12px 16px; margin-bottom:20px;
  color:#93c5fd; font-size:.85rem; line-height:1.5;
}
.alert-card {
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08);
  border-radius:12px; padding:16px 20px; margin-bottom:12px;
  transition:border-color .2s;
}
.alert-card:hover { border-color:rgba(37,99,235,.4); }
.alert-card-paused { opacity:.6; }
.alert-card-body { flex:1; min-width:0; }
.alert-card-name { font-weight:700; color:#f1f5f9; font-size:.95rem; margin-bottom:4px; }
.alert-card-criteria { color:#94a3b8; font-size:.82rem; margin-bottom:4px; }
.alert-card-date { color:#64748b; font-size:.78rem; }
.alert-card-actions { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.alert-toggle-btn {
  padding:7px 14px; border-radius:8px; border:none; font-size:.82rem;
  font-weight:600; cursor:pointer; transition:background .2s;
}
.alert-toggle-btn.active {
  background:rgba(52,211,153,.15); color:#34d399; border:1px solid rgba(52,211,153,.3);
}
.alert-toggle-btn.paused {
  background:rgba(148,163,184,.1); color:#94a3b8; border:1px solid rgba(148,163,184,.2);
}
.alert-toggle-btn:hover { opacity:.8; }
.alert-delete-btn {
  background:rgba(248,113,113,.1); border:1px solid rgba(248,113,113,.25);
  color:#f87171; border-radius:8px; padding:7px 10px; font-size:.9rem;
  cursor:pointer; transition:background .2s;
}
.alert-delete-btn:hover { background:rgba(248,113,113,.2); }

/* Esplora: count row + salva btn */
.esplora-count-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.btn-salva-esplora {
  display:inline-flex; align-items:center; gap:6px;
  background:linear-gradient(135deg,#2563eb,#7c3aed); color:#fff;
  border:none; border-radius:8px; padding:8px 16px; font-size:.82rem;
  font-weight:600; cursor:pointer; white-space:nowrap; transition:opacity .2s;
}
.btn-salva-esplora:hover { opacity:.85; }

/* ===== GUIDA MEDIA ===== */
/* ─── Guida Media (gm-*) ──────────────────────────────────────────────────── */
.guida-media-page { background: #0f172a; min-height: 100vh; }
.guida-media-page .header {
  background: rgba(15,23,42,.95); border-bottom: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(12px);
}
.guida-media-page .header .logo-text,
.guida-media-page .header .nav-link { color: #e2e8f0; }
.guida-media-page .header .nav-link:hover { color: #fff; background: rgba(255,255,255,.08); }
.guida-media-page .header .nav-cta { background: var(--blue); color: #fff !important; }
.guida-media-page .footer { background: #0a1020; border-top: 1px solid rgba(255,255,255,.08); }
.guida-media-page .footer-brand,
.guida-media-page .footer-copy,
.guida-media-page .footer-link { color: #64748b; }
.guida-media-page .footer-link:hover { color: #94a3b8; }

.guida-banner-inner {
  display: flex; align-items: center; justify-content: center; gap: 16px;
  flex-wrap: wrap; max-width: 900px; margin: 0 auto; padding: 16px 24px;
}
#guida-banner span { color: #e2e8f0; font-size: .9rem; font-weight: 500; }
.guida-banner-btn {
  background: linear-gradient(135deg, #2563eb, #7c3aed); color: #fff;
  padding: 10px 22px; border-radius: 9px; text-decoration: none;
  font-weight: 700; font-size: .875rem; white-space: nowrap;
  transition: transform .2s, box-shadow .2s;
  box-shadow: 0 3px 12px rgba(37,99,235,.45);
}
.guida-banner-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(37,99,235,.55); }

.gm-hero {
  background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 60%, #0f172a 100%);
  padding: 80px 0 64px; text-align: center; border-bottom: 1px solid rgba(255,255,255,.08);
}
.gm-hero-badge {
  display: inline-block; background: rgba(37,99,235,.2); border: 1px solid rgba(37,99,235,.4);
  color: #93c5fd; padding: 6px 18px; border-radius: 20px; font-size: .82rem;
  font-weight: 600; margin-bottom: 22px; letter-spacing: .4px;
}
.gm-hero-title {
  font-size: clamp(2rem, 5vw, 3rem); font-weight: 800; color: #f1f5f9;
  margin-bottom: 16px; line-height: 1.2;
}
.gm-hero-accent {
  background: linear-gradient(135deg, #60a5fa, #a78bfa);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.gm-hero-sub { color: #cbd5e1; font-size: 1.05rem; max-width: 520px; margin: 0 auto 36px; line-height: 1.7; }
.gm-hero-stats {
  display: inline-flex; align-items: center; gap: 0;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px; padding: 16px 32px; gap: 32px;
}
.gm-stat { text-align: center; }
.gm-stat-num { font-size: 1.6rem; font-weight: 800; color: #60a5fa; line-height: 1; }
.gm-stat-label { font-size: .75rem; color: #94a3b8; margin-top: 4px; font-weight: 500; }
.gm-stat-divider { width: 1px; height: 40px; background: rgba(255,255,255,.1); }

.gm-main { padding: 64px 0 80px; }

.gm-step-block { margin-bottom: 64px; }
.gm-step-header {
  display: flex; align-items: flex-start; gap: 20px; margin-bottom: 28px;
  padding-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,.07);
}
.gm-step-num {
  font-size: 2rem; font-weight: 900; line-height: 1;
  background: linear-gradient(135deg, #2563eb, #7c3aed);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  flex-shrink: 0; min-width: 48px;
}
.gm-step-title { font-size: 1.45rem; font-weight: 800; color: #f1f5f9; margin-bottom: 6px; }
.gm-step-sub { color: #94a3b8; font-size: .9rem; margin: 0; }

.gm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; }
.gm-card {
  display: flex; gap: 14px; align-items: flex-start;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px; padding: 18px; transition: border-color .2s, background .2s;
}
.gm-card:hover { border-color: rgba(37,99,235,.3); background: rgba(37,99,235,.05); }
.gm-card-icon { font-size: 1.6rem; flex-shrink: 0; margin-top: 1px; }
.gm-card-body strong { display: block; color: #e2e8f0; font-size: .88rem; margin-bottom: 5px; }
.gm-card-body p { color: #94a3b8; font-size: .8rem; line-height: 1.55; margin: 0; }

.gm-rooms { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.gm-room {
  display: flex; gap: 14px; align-items: flex-start;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px; padding: 18px; transition: border-color .2s;
}
.gm-room:hover { border-color: rgba(37,99,235,.3); }
.gm-room-icon { font-size: 1.7rem; flex-shrink: 0; }
.gm-room-name { font-weight: 700; color: #e2e8f0; margin-bottom: 8px; font-size: .9rem; }
.gm-room ul { margin: 0; padding-left: 16px; color: #94a3b8; font-size: .8rem; line-height: 1.9; }

.gm-errors { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.gm-error-item {
  display: flex; gap: 12px; align-items: flex-start;
  background: rgba(239,68,68,.06); border: 1px solid rgba(239,68,68,.18);
  border-radius: 12px; padding: 14px 16px;
}
.gm-error-x {
  width: 22px; height: 22px; border-radius: 50%; background: rgba(239,68,68,.2);
  color: #f87171; font-size: .7rem; font-weight: 800; display: flex;
  align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px;
}
.gm-error-item strong { display: block; color: #fca5a5; font-size: .85rem; margin-bottom: 3px; }
.gm-error-item p { color: #cbd5e1; font-size: .78rem; margin: 0; line-height: 1.5; }

.gm-cta-section { margin-top: 56px; }
.gm-cta-inner {
  background: linear-gradient(135deg, rgba(37,99,235,.12), rgba(124,58,237,.12));
  border: 1px solid rgba(37,99,235,.3); border-radius: 20px;
  padding: 40px; display: flex; align-items: center; justify-content: space-between;
  gap: 28px; flex-wrap: wrap;
}
.gm-cta-badge {
  display: inline-block; background: rgba(37,99,235,.25); border: 1px solid rgba(37,99,235,.4);
  color: #93c5fd; padding: 4px 12px; border-radius: 20px; font-size: .75rem;
  font-weight: 600; margin-bottom: 10px; letter-spacing: .3px;
}
.gm-cta-text h3 { font-size: 1.2rem; font-weight: 800; color: #f1f5f9; margin-bottom: 8px; }
.gm-cta-text p { color: #cbd5e1; font-size: .88rem; margin: 0; line-height: 1.6; max-width: 440px; }
.btn-guida-cta {
  background: linear-gradient(135deg,#2563eb,#7c3aed); color: #fff;
  text-decoration: none; padding: 14px 28px; border-radius: 12px;
  font-weight: 700; font-size: .95rem; white-space: nowrap;
  transition: transform .2s, box-shadow .2s; box-shadow: 0 4px 16px rgba(37,99,235,.35);
}
.btn-guida-cta:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(37,99,235,.45); }

/* ─── Dashboard empty action cards ───────────────────────────────────────── */
.empty-action-cards {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
  margin-top: 20px; width: 100%; max-width: 420px;
}
.empty-action-card {
  display: flex; align-items: center; gap: 12px;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px; padding: 14px 16px; text-decoration: none;
  transition: border-color .2s, background .2s;
}
.empty-action-card:hover { border-color: rgba(37,99,235,.5); background: rgba(37,99,235,.1); }
.empty-action-icon { font-size: 1.4rem; flex-shrink: 0; }
.empty-action-body { flex: 1; min-width: 0; }
.empty-action-title { color: #e2e8f0; font-size: .82rem; font-weight: 700; }
.empty-action-desc { color: #64748b; font-size: .72rem; margin-top: 2px; line-height: 1.3; }
.empty-action-arrow { color: #475569; font-size: .85rem; flex-shrink: 0; transition: color .2s; }
.empty-action-card:hover .empty-action-arrow { color: #60a5fa; }
@media (max-width: 400px) { .empty-action-cards { grid-template-columns: 1fr; } }

/* ===== GALLERIA FOTO (annuncio-detail) ===== */
.detail-gallery { margin-bottom: 24px; border-radius: 16px; overflow: hidden; }
.gallery-main { position: relative; background: #0f172a; border-radius: 16px; overflow: hidden; cursor: zoom-in; height: 380px; }
.gallery-main-img { width: 100%; height: 100%; object-fit: cover; display: block; transition: opacity .2s; }
.gallery-nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(0,0,0,.55); color: #fff; border: none; border-radius: 50%;
  width: 40px; height: 40px; font-size: 1.4rem; cursor: pointer; z-index: 2;
  display: flex; align-items: center; justify-content: center; transition: background .2s;
}
.gallery-nav:hover { background: rgba(0,0,0,.8); }
.gallery-prev { left: 12px; }
.gallery-next { right: 12px; }
.gallery-counter {
  position: absolute; bottom: 12px; right: 14px;
  background: rgba(0,0,0,.6); color: #fff; padding: 4px 10px;
  border-radius: 20px; font-size: .78rem; font-weight: 600;
}
.gallery-room-label {
  position: absolute; bottom: 12px; left: 14px;
  background: rgba(37,99,235,.85); color: #fff; padding: 4px 12px;
  border-radius: 20px; font-size: .78rem; font-weight: 600;
}
.gallery-thumbs {
  display: flex; align-items: center; gap: 8px; margin-top: 10px; overflow-x: auto; padding-bottom: 4px;
}
.gallery-thumb {
  width: 72px; height: 52px; object-fit: cover; border-radius: 8px;
  cursor: pointer; border: 2px solid transparent; flex-shrink: 0; transition: border-color .15s;
}
.gallery-thumb.active { border-color: #2563eb; }
.gallery-thumb:hover { border-color: #60a5fa; }
.gallery-thumb-group-label {
  flex-shrink: 0; white-space: nowrap; align-self: stretch; display: flex; align-items: center;
  font-size: .68rem; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .03em;
  padding-left: 8px; margin-left: 2px; border-left: 1px solid rgba(148,163,184,.3);
}
.gallery-thumb-group-label:first-child { border-left: none; padding-left: 0; margin-left: 0; }

/* Lightbox */
.gallery-lightbox { display: none; position: fixed; inset: 0; z-index: 9999; align-items: center; justify-content: center; }
.gallery-lightbox.active { display: flex; }
.lightbox-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.92); }
.lightbox-img { max-width: 90vw; max-height: 88vh; object-fit: contain; border-radius: 8px; position: relative; z-index: 1; }
.lightbox-close {
  position: absolute; top: 16px; right: 20px; background: rgba(255,255,255,.15);
  border: none; color: #fff; font-size: 1.2rem; width: 36px; height: 36px;
  border-radius: 50%; cursor: pointer; z-index: 2; display: flex; align-items: center; justify-content: center;
}
.lightbox-nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(255,255,255,.15); color: #fff; border: none;
  width: 48px; height: 48px; border-radius: 50%; font-size: 1.6rem;
  cursor: pointer; z-index: 2; display: flex; align-items: center; justify-content: center; transition: background .2s;
}
.lightbox-nav:hover { background: rgba(255,255,255,.3); }
.lightbox-prev { left: 20px; }
.lightbox-next { right: 20px; }
.lightbox-counter {
  position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%);
  background: rgba(0,0,0,.6); color: #fff; padding: 5px 14px; border-radius: 20px;
  font-size: .82rem; z-index: 2;
}
.lightbox-room-label {
  position: absolute; top: 20px; left: 50%; transform: translateX(-50%);
  background: rgba(37,99,235,.85); color: #fff; padding: 5px 14px; border-radius: 20px;
  font-size: .82rem; font-weight: 600; z-index: 2;
}

/* Thumbnail card reale */
.listing-card-img-real { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 12px 12px 0 0; }

/* ===== PANNELLO FOTO DASHBOARD ===== */
.property-card-wrap { display: flex; flex-direction: column; margin-bottom: 16px; }
.property-card-wrap .property-card { margin-bottom: 0; border-radius: 12px 12px 0 0; text-decoration: none; }

/* Banner "conferma pubblicazione": annuncio rifinito dall'admin, in attesa del
   sì definitivo del cliente prima di andare online. */
.confirm-publish-banner {
  background: linear-gradient(135deg, rgba(37,99,235,.14), rgba(96,165,250,.06));
  border-left: 1px solid rgba(255,255,255,.08); border-right: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(96,165,250,.25); border-top: 1px solid rgba(96,165,250,.25);
  padding: 14px 20px;
}
/* Banner "in revisione": annuncio inviato, in attesa del controllo dell'admin.
   Nessuna azione richiesta al cliente, tono neutro/di attesa (ambra) invece del
   blu "azione richiesta" usato per la conferma pubblicazione. */
.review-pending-banner {
  background: linear-gradient(135deg, rgba(251,191,36,.14), rgba(251,191,36,.05));
  border-left: 1px solid rgba(255,255,255,.08); border-right: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(251,191,36,.3); border-top: 1px solid rgba(251,191,36,.3);
  padding: 14px 20px;
}
.confirm-publish-title { font-weight: 700; color: #fff; font-size: .9rem; margin-bottom: 4px; }
.confirm-publish-text { color: #94a3b8; font-size: .82rem; line-height: 1.5; margin: 0 0 10px; }
.confirm-publish-note { background: rgba(255,255,255,.05); border-radius: 8px; padding: 8px 12px; color: #cbd5e1; font-size: .8rem; margin-bottom: 10px; }
.confirm-publish-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.btn-confirm-publish {
  background: linear-gradient(135deg,#16a34a,#15803d); color: #fff; border: none; padding: 9px 18px;
  border-radius: 8px; font-weight: 700; font-size: .82rem; cursor: pointer; transition: opacity .15s;
}
.btn-confirm-publish:hover { opacity: .9; }
.btn-request-changes {
  background: rgba(255,255,255,.06); color: #cbd5e1; border: 1px solid rgba(255,255,255,.15); padding: 9px 18px;
  border-radius: 8px; font-weight: 600; font-size: .82rem; cursor: pointer; transition: all .15s;
}
.btn-request-changes:hover { border-color: rgba(255,255,255,.3); }
.confirm-publish-feedback { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.confirm-publish-feedback textarea {
  flex: 1; min-width: 200px; background: rgba(0,0,0,.2); border: 1px solid rgba(255,255,255,.12);
  border-radius: 8px; color: #e2e8f0; padding: 8px 10px; font-size: .82rem; font-family: inherit; resize: vertical;
}
.btn-request-changes-send {
  background: #2563eb; color: #fff; border: none; padding: 8px 16px; border-radius: 8px;
  font-weight: 600; font-size: .8rem; cursor: pointer; align-self: flex-start;
}

/* ─── Pannello dettaglio annuncio (schede unificate) ────────────────────────── */
.property-detail {
  background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.08); border-top: none;
  border-radius: 0 0 12px 12px; overflow: hidden;
}
.property-detail-tabs {
  display: flex; gap: 2px; padding: 6px; background: rgba(0,0,0,.15);
  border-bottom: 1px solid rgba(255,255,255,.06); overflow-x: auto;
}
.pdt-tab {
  flex: 1; min-width: max-content; background: none; border: none; color: #64748b;
  font-size: .78rem; font-weight: 600; padding: 8px 12px; border-radius: 8px;
  cursor: pointer; transition: all .15s; white-space: nowrap;
}
.pdt-tab:hover { color: #93c5fd; background: rgba(255,255,255,.05); }
.pdt-tab.active { color: #fff; background: rgba(37,99,235,.22); }
.property-detail-body { padding: 16px 18px; }
.pdt-pane.hidden { display: none; }
.pdt-pane-empty { color: #64748b; font-size: .82rem; text-align: center; padding: 12px 0; }
.photo-panel {
  background: rgba(37,99,235,.05); border: 1px solid rgba(37,99,235,.25);
  border-top: 2px solid rgba(37,99,235,.35); border-radius: 0 0 12px 12px; padding: 14px 16px;
}
.photo-panel-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.photo-panel-title { font-size: .82rem; font-weight: 600; color: #64748b; }
.btn-upload-foto {
  background: rgba(37,99,235,.15); border: 1px solid rgba(37,99,235,.3); color: #93c5fd;
  padding: 6px 14px; border-radius: 8px; font-size: .8rem; font-weight: 600;
  cursor: pointer; transition: background .2s; white-space: nowrap;
}
.btn-upload-foto:hover { background: rgba(37,99,235,.25); }
.photo-panel-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.photo-item { position: relative; width: 80px; height: 60px; border-radius: 8px; overflow: hidden; }
.photo-item-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.photo-item-label {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: rgba(0,0,0,.6); color: #fff; font-size: .6rem;
  padding: 2px 4px; text-align: center; white-space: nowrap; overflow: hidden;
}
.photo-item-delete {
  position: absolute; top: 2px; right: 2px; background: rgba(0,0,0,.65);
  color: #f87171; border: none; border-radius: 50%; width: 18px; height: 18px;
  font-size: .65rem; cursor: pointer; display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .15s;
}
.photo-item:hover .photo-item-delete { opacity: 1; }
.photo-empty { color: #475569; font-size: .82rem; font-style: italic; }
.photo-loading { color: #475569; font-size: .82rem; }

/* Empty state features */
.empty-features { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top:20px; }
.empty-feature { background:rgba(37,99,235,.1); border:1px solid rgba(37,99,235,.2); color:#93c5fd; padding:7px 14px; border-radius:20px; font-size:.82rem; font-weight:600; }

.empty-feature-btn {
  background:rgba(37,99,235,.12); border:1px solid rgba(37,99,235,.3);
  color:#93c5fd; padding:10px 20px; border-radius:10px; font-size:.88rem;
  font-weight:600; text-decoration:none; transition:background .2s;
}
.empty-feature-btn:hover { background:rgba(37,99,235,.22); color:#fff; }

/* ─── Analytics panel ───────────────────────────────────────────────────────── */
.analytics-panel {
  background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.07);
  border-top: none; border-radius: 0 0 14px 14px; overflow: hidden;
}
.analytics-panel-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 16px;
}
.analytics-panel-title { color: #94a3b8; font-size: .8rem; font-weight: 600; }
.analytics-toggle-btn {
  background: none; border: 1px solid rgba(255,255,255,.12); color: #64748b;
  font-size: .75rem; font-weight: 600; padding: 4px 12px; border-radius: 6px;
  cursor: pointer; transition: all .2s;
}
.analytics-toggle-btn:hover { border-color: rgba(37,99,235,.4); color: #93c5fd; }
.analytics-panel-body { padding: 0 16px 16px; }
.analytics-loading { color: #475569; font-size: .8rem; padding: 8px 0; }
.analytics-error { color: #f87171; font-size: .8rem; }

.analytics-kpis {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 20px;
}
@media (max-width: 600px) { .analytics-kpis { grid-template-columns: repeat(2, 1fr); } }

.analytics-kpi {
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px; padding: 12px 14px;
}
.analytics-kpi-num { font-size: 1.4rem; font-weight: 800; color: #f1f5f9; line-height: 1; }
.analytics-kpi-label { font-size: .72rem; color: #64748b; margin-top: 4px; font-weight: 500; }
.analytics-kpi-trend { font-size: .7rem; margin-top: 4px; font-weight: 600; }

.analytics-chart { }
.analytics-chart-title { font-size: .75rem; color: #475569; font-weight: 600; margin-bottom: 12px; }
.analytics-bars {
  display: flex; align-items: flex-end; gap: 4px; height: 100px;
}
.analytics-bar-col {
  display: flex; flex-direction: column; align-items: center;
  gap: 3px; flex: 1; height: 100%;  justify-content: flex-end;
}
.analytics-bar-val { font-size: .6rem; color: #475569; min-height: 12px; }
.analytics-bar {
  width: 100%; border-radius: 3px 3px 0 0;
  transition: background .2s; min-height: 4px;
}
.analytics-bar-col:hover .analytics-bar { background: #93c5fd !important; }
.analytics-bar-label { font-size: .58rem; color: #334155; margin-top: 4px; white-space: nowrap; }

/* ─── Docs checklist panel ──────────────────────────────────────────────────── */
.docs-check-panel {
  background: rgba(255,255,255,.02); border: 1px solid rgba(255,255,255,.07);
  border-top: none; border-radius: 0 0 14px 14px; overflow: hidden;
}
.docs-check-header {
  display: flex; align-items: center; justify-content: space-between; padding: 10px 16px;
}
.docs-check-title { color: #94a3b8; font-size: .8rem; font-weight: 600; }
.docs-check-toggle {
  background: none; border: 1px solid rgba(255,255,255,.12); color: #64748b;
  font-size: .75rem; font-weight: 600; padding: 4px 12px; border-radius: 6px;
  cursor: pointer; transition: all .2s;
}
.docs-check-toggle:hover { border-color: rgba(37,99,235,.4); color: #93c5fd; }
.docs-check-body { padding: 0 16px 16px; }

.doc-check-summary {
  font-size: .8rem; font-weight: 700; padding: 8px 0 12px;
  border-bottom: 1px solid rgba(255,255,255,.06); margin-bottom: 10px;
}
.doc-check-list { display: flex; flex-direction: column; gap: 6px; }
.doc-check-row {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.06);
  border-radius: 8px; padding: 8px 12px; font-size: .8rem;
}
.doc-check-ok      { border-color: rgba(52,211,153,.15); }
.doc-check-warning { border-color: rgba(251,191,36,.15); }
.doc-check-error   { border-color: rgba(248,113,113,.2); background: rgba(248,113,113,.04); }
.doc-check-left { display: flex; align-items: center; gap: 6px; flex: 1; min-width: 0; }
.doc-check-semaforo { font-size: .85rem; flex-shrink: 0; }
.doc-check-icon { font-size: .9rem; flex-shrink: 0; }
.doc-check-label { color: #cbd5e1; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.doc-check-status { font-size: .7rem; font-weight: 700; color: #475569; flex-shrink: 0; }
.doc-check-ok .doc-check-status     { color: #34d399; }
.doc-check-warning .doc-check-status{ color: #fbbf24; }
.doc-check-error .doc-check-status  { color: #f87171; }
.doc-check-download {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); color: #cbd5e1;
  border-radius: 6px; width: 24px; height: 24px; flex-shrink: 0; cursor: pointer;
  font-size: .75rem; line-height: 1; transition: background .15s;
}
.doc-check-download:hover { background: rgba(255,255,255,.12); }
.doc-check-notes { width: 100%; padding-top: 4px; }
.doc-check-note { font-size: .73rem; color: #94a3b8; line-height: 1.5; padding-left: 28px; }
.doc-check-error .doc-check-note { color: #fca5a5; }
.doc-check-warning .doc-check-note { color: #fde68a; }

/* ─── Verify modal (funnel) ─────────────────────────────────────────────────── */
.verify-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.65); z-index: 1000;
  display: flex; align-items: center; justify-content: center; padding: 20px;
}
.verify-modal {
  background: #1e293b; border: 1px solid rgba(255,255,255,.12); border-radius: 16px;
  width: 100%; max-width: 480px; overflow: hidden;
}
.verify-modal-header { padding: 20px 24px 16px; border-bottom: 1px solid rgba(255,255,255,.08); }
.verify-status-badge {
  display: inline-block; padding: 4px 12px; border-radius: 20px;
  font-size: .75rem; font-weight: 700; margin-bottom: 10px;
}
.verify-modal-title { font-size: .95rem; font-weight: 700; color: #f1f5f9; }
.verify-modal-body { padding: 20px 24px; max-height: 60vh; overflow-y: auto; }
.verify-fields { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.verify-field {
  display: flex; justify-content: space-between; align-items: center;
  font-size: .82rem; padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,.05);
}
.verify-field-label { color: #64748b; }
.verify-field-val { color: #e2e8f0; font-weight: 600; }
.verify-warnings { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; }
.verify-warning {
  background: rgba(251,191,36,.08); border: 1px solid rgba(251,191,36,.2);
  border-radius: 8px; padding: 8px 12px; font-size: .8rem; color: #fde68a; line-height: 1.5;
}
.verify-ok-msg { color: #34d399; font-size: .85rem; font-weight: 600; margin-top: 12px; }
.verify-modal-footer { padding: 16px 24px; border-top: 1px solid rgba(255,255,255,.08); }
.verify-btn-confirm {
  width: 100%; background: linear-gradient(135deg,#2563eb,#7c3aed); color: #fff;
  border: none; padding: 12px; border-radius: 10px; font-size: .9rem;
  font-weight: 700; cursor: pointer; transition: opacity .2s;
}
.verify-btn-confirm:hover { opacity: .88; }

/* ─── AML Modal ─────────────────────────────────────────────────────────────── */
.aml-info-box {
  background: rgba(37,99,235,.1); border: 1px solid rgba(37,99,235,.25);
  border-radius: 12px; padding: 14px 16px;
}
.aml-tabs {
  display: flex; gap: 4px; background: rgba(255,255,255,.05);
  border-radius: 10px; padding: 4px;
}
.aml-tab {
  flex: 1; padding: 8px; background: transparent; border: none; cursor: pointer;
  color: #64748b; font-size: .82rem; font-weight: 600; border-radius: 8px;
  transition: all .2s;
}
.aml-tab.active {
  background: linear-gradient(135deg,#2563eb,#7c3aed); color: #fff;
}
.aml-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
.aml-field {
  display: flex; flex-direction: column; gap: 6px;
}
.aml-field label {
  font-size: .78rem; font-weight: 600; color: #94a3b8; text-transform: uppercase; letter-spacing: .03em;
}
.aml-field input, .aml-field select {
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12);
  color: #f1f5f9; border-radius: 8px; padding: 9px 12px; font-size: .875rem;
  transition: border-color .2s; outline: none; width: 100%; box-sizing: border-box;
}
.aml-field input:focus, .aml-field select:focus {
  border-color: #2563eb; background: rgba(37,99,235,.08);
}
.aml-field select option { background: #1e293b; }
.aml-check-label {
  display: flex; align-items: flex-start; gap: 10px; cursor: pointer;
  font-size: .875rem; color: #cbd5e1; line-height: 1.5;
}
.aml-check-label input[type=checkbox] {
  width: 18px; height: 18px; min-width: 18px; accent-color: #2563eb; margin-top: 2px;
}

/* Admin AML table */
.admin-table .admin-td-muted { color: #64748b; }

/* ─── OTP / Firma Elettronica Modal ─────────────────────────────────────────── */
.otp-info-box {
  background: rgba(37,99,235,.1); border: 1px solid rgba(37,99,235,.25);
  border-radius: 12px; padding: 14px 16px;
}

/* ===== PROPOSTE D'ACQUISTO ===== */
.proposta-card {
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
  background: rgba(255,255,255,.02);
  cursor: pointer;
  transition: border-color .2s, background .2s;
}
.proposta-card:hover { border-color: rgba(96,165,250,.35); background: rgba(255,255,255,.04); }
.proposta-card-disabled { cursor: default; opacity: .6; }
.proposta-card-disabled:hover { border-color: rgba(255,255,255,.08); background: rgba(255,255,255,.02); }
.proposta-card-top { display:flex; align-items:flex-start; gap:12px; margin-bottom:10px; }
.proposta-card-title { font-weight:700; color:#e2e8f0; font-size:.95rem; }
.proposta-card-sub { color:#64748b; font-size:.78rem; margin-top:2px; }
.proposta-card-body { display:flex; gap:16px; flex-wrap:wrap; font-size:.82rem; color:#94a3b8; }
.proposta-stato-pill {
  white-space:nowrap; font-size:.75rem; font-weight:600;
  padding:3px 10px; border-radius:99px; flex-shrink:0;
}

/* Negoziato timeline */
.negoziato-timeline { display:flex; flex-direction:column; gap:10px; margin-bottom:16px; }
.negoziato-step {
  border-radius:10px; padding:12px 14px;
  border: 1px solid rgba(255,255,255,.07);
  max-width: 90%;
}
.step-mio { align-self:flex-end; background:rgba(37,99,235,.12); border-color:rgba(37,99,235,.25); }
.step-altro { align-self:flex-start; background:rgba(255,255,255,.03); }
.step-header { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.step-tipo { font-weight:700; color:#e2e8f0; font-size:.82rem; }
.step-prezzo { font-weight:700; color:#34d399; font-size:.95rem; }
.step-date { font-size:.72rem; color:#475569; margin-left:auto; }
.step-msg { color:#cbd5e1; font-size:.82rem; margin-top:6px; font-style:italic; }
.step-autore { color:#475569; font-size:.72rem; margin-top:4px; }

/* Azioni proposta */
.proposta-azioni { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.proposta-azioni .btn-auth { padding:9px 14px; font-size:.82rem; }
.proposta-contro-form { display:flex; flex-direction:column; gap:14px; border:1px solid rgba(255,255,255,.08); border-radius:10px; padding:14px; margin-top:8px; }

/* ─── Rogito panel (dashboard annunci) ──────────────────────────────────────── */
.rogito-panel {
  background: rgba(15,23,42,.6); border-radius: 12px;
  border: 1px solid rgba(52,211,153,.15); padding: 14px 16px; margin-top: 8px;
}
.rogito-panel-header {
  display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px;
}
.rogito-panel-title { font-size: .82rem; font-weight: 700; color: #e2e8f0; }
.rogito-panel-stage { font-size: .72rem; color: #34d399; font-weight: 600; }
.rogito-step-next .rogito-step-dot {
  background: rgba(37,99,235,.25) !important; border-color: #3b82f6 !important;
  color: #60a5fa !important; box-shadow: 0 0 8px rgba(59,130,246,.4);
}
.rogito-step-next .rogito-step-label { color: #60a5fa !important; }

/* Rogito timeline */
.rogito-box {
  border: 1px solid rgba(52,211,153,.2);
  border-radius: 12px;
  padding: 16px;
  margin-top: 16px;
  background: rgba(52,211,153,.04);
}
.review-box {
  border: 1px solid rgba(251,191,36,.25);
  border-radius: 12px;
  padding: 16px;
  margin-top: 16px;
  background: rgba(251,191,36,.05);
}
.review-star-picker { display: flex; gap: 4px; }
.review-star { font-size: 1.6rem; color: #fbbf24; cursor: pointer; line-height: 1; user-select: none; }
.rogito-steps { display:flex; align-items:flex-start; gap:0; flex-wrap:wrap; }
.rogito-step {
  display:flex; align-items:flex-start; gap:8px;
  flex: 1; min-width:120px;
}
.rogito-step-dot {
  width:28px; height:28px; border-radius:50%; border:2px solid rgba(255,255,255,.15);
  background:#1e293b; display:flex; align-items:center; justify-content:center;
  font-size:.75rem; font-weight:700; color:#64748b; flex-shrink:0;
}
.rogito-step.done .rogito-step-dot { background:#16a34a; border-color:#16a34a; color:#fff; }
.rogito-step-info { min-width:0; }
.rogito-step-label { font-size:.78rem; font-weight:600; color:#94a3b8; }
.rogito-step.done .rogito-step-label { color:#34d399; }
.rogito-step-date { font-size:.7rem; color:#475569; margin-top:2px; }
.rogito-connector {
  flex:0 0 20px; height:2px; background:rgba(255,255,255,.08);
  margin-top:14px; align-self:flex-start;
}

/* ─── Mercato / Market report ────────────────────────────────────────────────── */
.mkt-kpi-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; margin-bottom:32px; }
.mkt-kpi { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:14px; padding:20px; text-align:center; }
.mkt-kpi-val { font-size:1.6rem; font-weight:800; color:#60a5fa; margin-bottom:4px; }
.mkt-kpi-label { font-size:.8rem; color:#64748b; line-height:1.4; }
.mkt-section { margin-bottom:40px; }
.mkt-section-title { font-size:1.05rem; font-weight:700; color:#e2e8f0; margin:0 0 16px; }
.mkt-chart { display:flex; gap:8px; align-items:flex-end; height:180px; padding:0 4px; }
.mkt-bar-col { flex:1; display:flex; flex-direction:column; align-items:center; gap:4px; height:100%; }
.mkt-bar-val { font-size:.65rem; color:#94a3b8; text-align:center; line-height:1.2; min-height:28px; display:flex; align-items:flex-end; }
.mkt-bar-wrap { flex:1; width:100%; display:flex; align-items:flex-end; }
.mkt-bar { width:100%; background:linear-gradient(180deg,#3b82f6,#1d4ed8); border-radius:4px 4px 0 0; transition:height .4s ease; min-height:4px; }
.mkt-bar-label { font-size:.68rem; color:#64748b; text-align:center; white-space:nowrap; }
.mkt-bar-count { font-size:.62rem; color:#475569; text-align:center; }
.mkt-tipo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px; }
.mkt-tipo-card { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:12px; padding:16px; text-align:center; }
.mkt-tipo-name { font-size:.8rem; color:#94a3b8; margin-bottom:6px; }
.mkt-tipo-price { font-size:1.2rem; font-weight:800; color:#60a5fa; margin-bottom:4px; }
.mkt-tipo-count { font-size:.75rem; color:#475569; }
.mkt-table-wrap { overflow-x:auto; border-radius:12px; border:1px solid rgba(255,255,255,.08); }
.mkt-table { width:100%; border-collapse:collapse; }
.mkt-table thead tr { background:rgba(255,255,255,.04); }
.mkt-table th { padding:10px 12px; font-size:.78rem; color:#64748b; font-weight:600; text-align:left; border-bottom:1px solid rgba(255,255,255,.08); }
.mkt-table td { padding:10px 12px; border-bottom:1px solid rgba(255,255,255,.04); }
.mkt-table tbody tr:last-child td { border-bottom:none; }

/* ─── Ricerca full-text + filtri avanzati ───────────────────────────────────── */
.annunci-search-wrap { margin-bottom:16px; text-align:center; }
.annunci-search-input { width:100%;max-width:620px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:12px;color:#e2e8f0;padding:12px 18px;font-size:1rem;outline:none;transition:border-color .2s;box-sizing:border-box; }
.annunci-search-input:focus { border-color:#2563eb; }
.annunci-search-input::placeholder { color:#64748b; }
.filter-advanced-toggle { background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#94a3b8;border-radius:10px;padding:8px 14px;font-size:.8125rem;cursor:pointer;font-weight:600;transition:all .2s;white-space:nowrap; }
.filter-advanced-toggle:hover, .filter-advanced-toggle.active { background:rgba(37,99,235,.2);border-color:#2563eb;color:#60a5fa; }
.annunci-filters-advanced { display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:12px 0 4px; }
.filter-check-group { display:flex;gap:12px;flex-wrap:wrap; }
.filter-check { display:flex;align-items:center;gap:6px;color:#94a3b8;font-size:.82rem;cursor:pointer;white-space:nowrap; }
.filter-check input { accent-color:#2563eb;cursor:pointer; }
.filter-anno-wrap { display:flex;gap:20px;align-items:center; }

/* ─── Dropdown custom (sostituisce select/datalist nativi per anno e citta) ──── */
.custom-dd-wrap { position:relative; }
.newsletter-form .custom-dd-wrap { flex:1; min-width:180px; }
.newsletter-form .custom-dd-wrap input { width:100%; box-sizing:border-box; }
.custom-dd-list { position:absolute; top:calc(100% + 6px); left:0; right:0; max-height:240px; overflow-y:auto; background:#1e293b; border:1px solid rgba(255,255,255,.15); border-radius:10px; box-shadow:0 12px 32px rgba(0,0,0,.4); z-index:80; padding:6px; }
.custom-dd-list.hidden { display:none; }
.custom-dd-opt { padding:8px 12px; border-radius:6px; font-size:.85rem; color:#e2e8f0; cursor:pointer; }
.custom-dd-opt:hover { background:rgba(37,99,235,.3); }
.custom-dd-empty { padding:8px 12px; font-size:.8rem; color:#64748b; }

/* ─── Visita button ──────────────────────────────────────────────────────────── */
.btn-visita { display:block;width:100%;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;border:none;border-radius:12px;padding:12px;font-size:.9rem;font-weight:700;cursor:pointer;text-align:center;margin-top:8px;transition:transform .15s, box-shadow .15s; box-shadow: 0 4px 12px rgba(0,0,0,.35); }
.btn-visita:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,.45); }
.btn-visita:active { transform: translateY(0); box-shadow: 0 2px 6px rgba(0,0,0,.3); }

/* ─── Annunci simili ─────────────────────────────────────────────────────────── */
.simili-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:14px; }
.simili-card { display:flex; flex-direction:column; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:14px; overflow:hidden; text-decoration:none; transition:border-color .2s, transform .15s; }
.simili-card:hover { border-color:rgba(37,99,235,.5); transform:translateY(-2px); }
.simili-img { height:130px; overflow:hidden; background:#1e293b; }
.simili-img img { width:100%; height:100%; object-fit:cover; }
.simili-img-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:2.5rem; color:#334155; }
.simili-body { padding:12px; }
.simili-title { font-size:.8rem; font-weight:600; color:#e2e8f0; margin-bottom:4px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.simili-meta { font-size:.73rem; color:#64748b; margin-bottom:6px; }
.simili-price { font-size:.95rem; font-weight:800; color:#60a5fa; }

/* ─── Paginazione ────────────────────────────────────────────────────────────── */
.pagination { display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;padding:28px 0 8px; }
.pagination-btn { background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:#94a3b8;border-radius:10px;padding:8px 16px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s; }
.pagination-btn:hover:not(:disabled) { background:rgba(37,99,235,.2);border-color:#2563eb;color:#60a5fa; }
.pagination-btn:disabled { opacity:.35;cursor:default; }
.pagination-num { background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);color:#94a3b8;border-radius:8px;padding:8px 12px;font-size:.85rem;font-weight:600;cursor:pointer;min-width:38px;transition:all .2s; }
.pagination-num:hover { background:rgba(37,99,235,.15);border-color:#2563eb;color:#60a5fa; }
.pagination-num.active { background:#2563eb;border-color:#2563eb;color:#fff; }
.pagination-ellipsis { color:#64748b;padding:0 4px;font-size:.85rem;line-height:38px; }
.pagination-info { color:#64748b;font-size:.78rem;margin-left:10px;white-space:nowrap; }

/* ─── Market report suggestions ────────────────────────────────────────────── */
.mkt-suggestions { position:absolute;top:100%;left:0;right:0;background:#1e293b;border:1px solid rgba(255,255,255,.1);border-radius:10px;margin-top:4px;z-index:100;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.4); }
.mkt-suggestion-item { padding:10px 16px;color:#e2e8f0;font-size:.88rem;cursor:pointer;transition:background .15s; }
.mkt-suggestion-item:hover { background:rgba(37,99,235,.2);color:#60a5fa; }

/* ─── Confronto annunci ──────────────────────────────────────────────────────── */
.compare-check { position:absolute;top:8px;right:8px;z-index:5;background:rgba(15,23,42,.7);border-radius:6px;padding:3px 5px;cursor:pointer; }
.compare-check input { width:15px;height:15px;accent-color:#2563eb;cursor:pointer; }
.compare-bar { position:fixed;bottom:0;left:0;right:0;background:#1e3a8a;border-top:2px solid #2563eb;padding:12px 24px;display:flex;align-items:center;gap:14px;z-index:9990;box-shadow:0 -4px 20px rgba(0,0,0,.4); }
.compare-bar-label { color:#e2e8f0;font-size:.9rem;font-weight:600;flex:1; }
.compare-bar-btn { background:#fff;color:#1e3a8a;border:none;border-radius:8px;padding:8px 20px;font-weight:700;cursor:pointer;font-size:.9rem; }
.compare-bar-clear { background:transparent;border:1px solid rgba(255,255,255,.3);color:#94a3b8;border-radius:8px;padding:8px 12px;cursor:pointer;font-size:.9rem; }
.compare-modal { position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px; }
.compare-modal.hidden { display:none; }
.compare-modal-inner { background:#0f172a;border:1px solid rgba(255,255,255,.1);border-radius:16px;width:100%;max-width:900px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column; }
.compare-modal-header { display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.08);color:#f1f5f9;font-weight:700; }
.compare-modal-header button { background:transparent;border:none;color:#94a3b8;font-size:1.2rem;cursor:pointer; }
.compare-modal-body { overflow:auto;padding:16px; }
.compare-table { width:100%;border-collapse:collapse; }
.compare-table th { background:rgba(37,99,235,.15);color:#60a5fa;padding:10px 14px;text-align:left;font-size:.83rem;white-space:nowrap; }
.compare-table td { padding:9px 14px;border-bottom:1px solid rgba(255,255,255,.06);color:#e2e8f0;font-size:.85rem; }
.compare-table tbody tr:hover td { background:rgba(255,255,255,.03); }

/* ─── Boost badge ────────────────────────────────────────────────────────────── */
.listing-card-boosted { border-color:rgba(245,158,11,.4) !important;box-shadow:0 0 0 1px rgba(245,158,11,.2); }
.boost-badge { position:absolute;top:8px;left:8px;background:#f59e0b;color:#000;font-size:.67rem;font-weight:800;padding:2px 8px;border-radius:20px;letter-spacing:.03em; }

/* ─── Badge immobile impegnato ───────────────────────────────────────────────── */
.listing-impegnato-badge { position:absolute;top:8px;right:8px;background:rgba(15,23,42,.85);color:#fbbf24;font-size:.67rem;font-weight:800;padding:3px 10px;border-radius:20px;letter-spacing:.02em;border:1px solid rgba(251,191,36,.4); }
.detail-impegnato-banner { display:flex;align-items:center;gap:8px;background:rgba(251,191,36,.1);border:1px solid rgba(251,191,36,.3);color:#fbbf24;font-size:.85rem;font-weight:600;padding:12px 16px;border-radius:10px;margin-bottom:16px; }
.detail-impegnato-banner strong { color:#fde68a; }
.detail-venduto-banner { display:flex;align-items:center;gap:8px;background:rgba(167,139,250,.1);border:1px solid rgba(167,139,250,.3);color:#a78bfa;font-size:.85rem;font-weight:600;padding:12px 16px;border-radius:10px;margin-bottom:16px; }
.detail-venduto-banner strong { color:#c4b5fd; }

/* ─── Deep-link highlight (arrivo da email/notifica su un elemento di lista) ─── */
@keyframes deepLinkPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(96,165,250,0); }
  15%, 60% { box-shadow: 0 0 0 3px rgba(96,165,250,.55); }
}
.deep-link-highlight { animation: deepLinkPulse 1.4s ease-in-out 1; border-radius: 14px; }

/* ─── Newsletter widget ──────────────────────────────────────────────────────── */
.newsletter-widget { background:linear-gradient(135deg,rgba(37,99,235,.15),rgba(139,92,246,.1));border:1px solid rgba(37,99,235,.3);border-radius:14px;padding:20px 24px;margin:24px 0; }
.newsletter-widget h3 { margin:0 0 6px;color:#e2e8f0;font-size:1rem; }
.newsletter-widget p { margin:0 0 14px;color:#94a3b8;font-size:.85rem; }
.newsletter-form { display:flex;gap:8px;flex-wrap:wrap; }
.newsletter-form input { flex:1;min-width:180px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#e2e8f0;border-radius:8px;padding:9px 14px;font-size:1rem; }
.newsletter-form input::placeholder { color:#64748b; }
.newsletter-form button { background:#2563eb;color:#fff;border:none;border-radius:8px;padding:9px 20px;font-size:.88rem;font-weight:600;cursor:pointer;white-space:nowrap; }
.newsletter-form button:hover { background:#1d4ed8; }

/* ─── Mobile CRM optimizations ───────────────────────────────────────────────── */
@media (max-width: 767px) {
  /* Dashboard layout */
  .dashboard-layout { flex-direction:column; }
  .dashboard-sidebar { width:100%;min-width:unset;position:static;height:auto;border-right:none;border-bottom:1px solid rgba(255,255,255,.06);padding:12px 0; }
  .sidebar-menu { display:flex;flex-direction:row;overflow-x:auto;gap:4px;padding:0 8px;scrollbar-width:none; }
  .sidebar-menu::-webkit-scrollbar { display:none; }
  .sidebar-item { white-space:nowrap;flex-shrink:0;border-radius:20px;padding:8px 14px;font-size:.82rem; }
  .sidebar-item.active { background:rgba(37,99,235,.25); }

  /* Tabs */
  .tabs { display:flex;overflow-x:auto;gap:6px;scrollbar-width:none;padding-bottom:4px; }
  .tabs::-webkit-scrollbar { display:none; }
  .tab { white-space:nowrap;flex-shrink:0; }

  /* Cards and panels */
  .dashboard-main { padding:12px; }
  .stats-grid { grid-template-columns:1fr 1fr;gap:10px; }
  .stat-card { padding:14px; }

  /* Tables horizontal scroll */
  .table-wrapper, .table-scroll { overflow-x:auto;-webkit-overflow-scrolling:touch; }
  table { min-width:540px; }

  /* Modals full-screen on mobile */
  .modal-inner, .compare-modal-inner, .modal-box {
    width:100% !important;max-width:100% !important;height:100% !important;
    max-height:100% !important;border-radius:0 !important;margin:0 !important;
  }
  .modal, .compare-modal { padding:0 !important;align-items:flex-start !important; }

  /* Chat panel vertical */
  .chat-panel { flex-direction:column;height:auto; }
  .chat-sidebar { width:100%;height:200px;border-right:none;border-bottom:1px solid rgba(255,255,255,.06); }
  .chat-messages { height:320px; }

  /* Touch targets */
  button, .btn, a.btn, .sidebar-item, .tab, .nav-link {
    min-height:44px;min-width:44px;
  }
  .form-actions { flex-direction:column;gap:10px; }
  .form-actions button { width:100%; }

  /* Listings table on CRM */
  .crm-listings-table { display:block;overflow-x:auto; }

  /* Topbar */
  .topbar { flex-wrap:wrap;gap:8px; }
  #topbar-name { font-size:.82rem; }
  #push-toggle-btn { font-size:.75rem;padding:4px 10px; }

  /* Proposal and rogito cards */
  .proposta-card, .rogito-card { padding:14px; }
  .proposta-actions { flex-direction:column; }
  .proposta-actions button { width:100%; }

  /* Compare bar */
  .compare-bar { flex-wrap:wrap;padding:10px 12px;gap:8px; }
  .compare-bar-label { width:100%;font-size:.82rem; }

  /* Annunci filters */
  .filters-row { flex-direction:column;gap:8px; }
  .filter-group { width:100%; }
}

/* ─── KYC badge + card ────────────────────────────────────────────────────── */
.kyc-badge-verified { display:inline-flex;align-items:center;gap:5px;background:rgba(16,185,129,.15);border:1px solid rgba(16,185,129,.35);color:#34d399;border-radius:99px;padding:4px 12px;font-size:.78rem;font-weight:700; }
.kyc-badge-inline { display:inline-flex;align-items:center;gap:4px;background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.3);color:#34d399;border-radius:99px;padding:2px 8px;font-size:.7rem;font-weight:700;vertical-align:middle;margin-left:6px; }
.kyc-card { background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:20px 24px; }
.kyc-card-header { display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:8px; }
.kyc-card-title { font-size:.95rem;font-weight:700;color:#e2e8f0; }
.kyc-card-sub { font-size:.82rem;color:#64748b;margin-top:3px; }

/* ─── GDPR banner v2 ──────────────────────────────────────────────────────── */
#gdpr-banner-v2 {
  position:fixed;bottom:0;left:0;right:0;z-index:9995;
  background:#1e293b;border-top:1px solid rgba(255,255,255,.1);
  box-shadow:0 -4px 24px rgba(0,0,0,.5);
  transform:translateY(110%);transition:transform .35s cubic-bezier(.4,0,.2,1);
}
.gdpr-banner-inner { max-width:860px;margin:0 auto;padding:16px 20px; }
.gdpr-banner-top { margin-bottom:10px; }
.gdpr-banner-title { font-weight:700;color:#e2e8f0;font-size:.92rem;margin-bottom:4px; }
.gdpr-banner-text { color:#94a3b8;font-size:.82rem;line-height:1.5; }
.gdpr-link { color:#60a5fa;text-decoration:none; }
.gdpr-check-row { display:flex;align-items:flex-start;gap:8px;color:#94a3b8;font-size:.82rem;margin-bottom:8px;cursor:pointer; }
.gdpr-check-row input { margin-top:2px;accent-color:#2563eb; }
.gdpr-banner-actions { display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end; }
.gdpr-btn { border:none;border-radius:8px;padding:8px 16px;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap; }
.gdpr-btn-accept { background:#2563eb;color:#fff; }
.gdpr-btn-reject { background:rgba(255,255,255,.08);color:#94a3b8;border:1px solid rgba(255,255,255,.1); }
.gdpr-btn-ghost  { background:transparent;color:#64748b;border:1px solid rgba(255,255,255,.08); }
.gdpr-btn-custom { background:rgba(37,99,235,.15);color:#60a5fa;border:1px solid rgba(37,99,235,.3); }

/* ─── Language switcher ──────────────────────────────────────────────────── */
.lang-switcher {
  display: inline-flex;
  align-items: center;
  margin-left: 10px;
  background: var(--gray-100);
  border: 1px solid var(--gray-200);
  border-radius: 99px;
  padding: 3px;
  gap: 2px;
}
.lang-switcher-btn {
  background: transparent;
  border: none;
  border-radius: 99px;
  padding: 4px 10px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .6px;
  color: var(--gray-400);
  cursor: pointer;
  transition: all .15s;
  line-height: 1;
}
.lang-switcher-btn:hover { color: var(--gray-700); background: rgba(0,0,0,.05); }
.lang-switcher-btn.active {
  background: white;
  color: var(--blue);
  box-shadow: 0 1px 3px rgba(0,0,0,.12);
}

/* ─── Blog ──────────────────────────────────────────────────────────────── */
.blog-hero { background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);padding:56px 0 40px;margin-bottom:40px; }
.blog-hero-title { font-size:2rem;font-weight:800;color:#f1f5f9;letter-spacing:-.5px;margin-bottom:8px; }
.blog-hero-sub { color:#94a3b8;font-size:1rem;max-width:560px; }

.blog-filters { display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px; }
.blog-filter-btn { background:#fff;border:1px solid var(--gray-200);border-radius:99px;padding:5px 14px;font-size:.82rem;font-weight:600;color:var(--gray-600);cursor:pointer;transition:all .15s; }
.blog-filter-btn:hover,.blog-filter-btn.active { background:var(--blue);border-color:var(--blue);color:#fff; }

/* ─── Blog split-screen layout ──────────────────────────────────────────── */
body.blog-page { overflow:hidden;display:flex;flex-direction:column;height:100vh;background:#f1f5f9; }
body.blog-page .footer { display:none; }
.blog-split-wrap { flex:1;min-height:0;display:flex;padding:20px 24px 20px;gap:16px;background:#f1f5f9; }
.blog-split { display:contents; }

/* Column */
.blog-col { display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;border-radius:16px;background:#f8fafc;box-shadow:0 4px 20px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.05);overflow:hidden; }

/* Column header — gradient */
.blog-col-header { flex-shrink:0;overflow:hidden; }
.blog-col-header-inner { padding:22px 22px 18px; }
.blog-col-label { display:inline-block;font-size:.58rem;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:8px; }
.blog-col-title-row { display:flex;align-items:center;gap:10px;margin-bottom:5px; }
.blog-col-title { font-size:1.2rem;font-weight:800;color:#fff;letter-spacing:-.3px;margin:0;line-height:1.2; }
.blog-col-badge { background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:99px;white-space:nowrap;flex-shrink:0; }
.blog-col-desc { font-size:.78rem;color:rgba(255,255,255,.6);margin:0;line-height:1.5; }

/* Scrollable list */
.blog-col-scroll { flex:1;min-height:0;overflow-y:auto;padding:10px 10px 16px;scrollbar-width:thin;scrollbar-color:#e2e8f0 transparent; }
.blog-col-scroll::-webkit-scrollbar { width:4px; }
.blog-col-scroll::-webkit-scrollbar-thumb { background:#e2e8f0;border-radius:4px; }
.blog-col-empty { padding:48px 16px;font-size:.875rem;color:#94a3b8;text-align:center; }

/* Article cards */
.blog-list { display:flex;flex-direction:column;gap:8px; }
.blog-row { display:flex;align-items:stretch;text-decoration:none;color:inherit;background:#fff;border-radius:12px;border:1px solid #e9eef5;box-shadow:0 1px 3px rgba(0,0,0,.05);transition:box-shadow .15s,transform .15s,border-color .15s;overflow:hidden; }
.blog-row:hover { box-shadow:0 4px 14px rgba(0,0,0,.1);transform:translateY(-1px);border-color:#dbeafe; }
.blog-row-bar { width:4px;flex-shrink:0; }
.blog-row-body { flex:1;min-width:0;padding:13px 12px 12px 14px; }
.blog-row-title { font-size:.875rem;font-weight:700;color:#0f172a;line-height:1.4;margin:0 0 5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden; }
.blog-row-excerpt { font-size:.75rem;color:#64748b;margin:0 0 9px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5; }
.blog-row-meta { display:flex;align-items:center;gap:6px; }
.blog-row-cat { font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px; }
.blog-row-date { font-size:.65rem;color:#cbd5e1;margin-left:auto; }
.blog-row-arrow { display:flex;align-items:center;padding:0 14px;color:#e2e8f0;font-size:1rem;flex-shrink:0;transition:color .15s,transform .15s; }
.blog-row:hover .blog-row-arrow { color:#2563eb;transform:translateX(3px); }

@media(max-width:700px){
  body.blog-page { overflow:auto;height:auto; }
  body.blog-page .footer { display:block; }
  .blog-split-wrap { flex-direction:column;padding:12px;gap:12px;min-height:0; }
  .blog-col { min-height:0; }
  .blog-col-scroll { overflow:visible;min-height:0;max-height:none; }
}
.blog-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:22px;margin-bottom:48px; }
.blog-card { background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s;text-decoration:none;color:inherit; }
.blog-card:hover { transform:translateY(-3px);box-shadow:var(--shadow-lg); }
.blog-card-accent { height:5px; }
.blog-card-body { padding:20px;flex:1;display:flex;flex-direction:column; }
.blog-cat-pill { display:inline-block;background:var(--blue-light);color:var(--blue);border-radius:99px;padding:2px 10px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px; }
.blog-card-title { font-size:1rem;font-weight:700;color:var(--gray-900);line-height:1.4;margin-bottom:8px; }
.blog-card-excerpt { font-size:.85rem;color:var(--gray-600);line-height:1.55;flex:1; }
.blog-card-meta { display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid var(--gray-100);font-size:.78rem;color:var(--gray-400); }
.blog-card-city { display:flex;align-items:center;gap:4px; }

/* ─── Blog article page ─────────────────────────────────────────────────── */
.blog-layout { display:grid;grid-template-columns:1fr 52px;gap:32px;align-items:start;max-width:820px;margin:0 auto;padding:40px 24px; }
.blog-article-header { margin-bottom:28px; }
.blog-article-cat { display:inline-block;background:var(--blue-light);color:var(--blue);border-radius:99px;padding:3px 12px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px; }
.blog-article-title { font-size:1.9rem;font-weight:800;color:var(--gray-900);line-height:1.25;letter-spacing:-.5px;margin-bottom:12px; }
.blog-article-meta { font-size:.82rem;color:var(--gray-400);display:flex;gap:16px;flex-wrap:wrap; }
.blog-article-excerpt { font-size:1.05rem;color:var(--gray-600);line-height:1.65;border-left:3px solid var(--blue);padding-left:16px;margin-bottom:28px; }

.blog-article-body { font-size:.97rem;color:var(--gray-700);line-height:1.75; }
.blog-article-body h2 { font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:28px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--gray-200); }
.blog-article-body h3 { font-size:1.05rem;font-weight:700;color:var(--gray-800);margin:22px 0 8px; }
.blog-article-body p { margin-bottom:16px; }
.blog-article-body ul,.blog-article-body ol { padding-left:22px;margin-bottom:16px; }
.blog-article-body li { margin-bottom:5px; }
.blog-article-body strong { color:var(--gray-900); }
.blog-article-body em { font-style:italic;color:var(--gray-600); }
.blog-article-body code { background:var(--gray-100);border-radius:4px;padding:2px 6px;font-size:.88em;font-family:monospace; }
.blog-article-body pre { background:var(--gray-800);color:#e2e8f0;border-radius:var(--radius-sm);padding:16px;overflow-x:auto;margin-bottom:16px; }
.blog-article-body pre code { background:transparent;padding:0;font-size:.85em; }
.blog-article-body blockquote { border-left:3px solid var(--blue);padding-left:16px;color:var(--gray-600);font-style:italic;margin:16px 0; }

/* ── blog article rich components ── */
.blog-lead { font-size:1.12rem;line-height:1.7;color:var(--gray-700);border-left:4px solid var(--blue);padding-left:16px;margin-bottom:24px;font-style:italic; }

.blog-info-box { display:flex;flex-direction:column;gap:16px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius);padding:24px;margin:24px 0; }
.blog-info-item { display:flex;gap:14px;align-items:flex-start; }
.blog-info-icon { font-size:1.5rem;flex-shrink:0;margin-top:2px; }
.blog-info-item strong { display:block;font-size:.97rem;color:var(--gray-900);margin-bottom:4px; }
.blog-info-item p { margin:0;font-size:.88rem;color:var(--gray-600);line-height:1.6; }

.blog-summary-box { background:linear-gradient(135deg,rgba(37,99,235,.07),rgba(124,58,237,.07));border:1px solid rgba(37,99,235,.2);border-radius:var(--radius);padding:24px;margin:32px 0; }
.blog-summary-title { font-size:.75rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--blue);margin-bottom:12px; }
.blog-summary-box ul { margin:0;padding-left:18px; }
.blog-summary-box li { font-size:.92rem;color:var(--gray-700);line-height:1.6;margin-bottom:6px; }

.blog-sources { border-top:1px solid var(--gray-200);margin-top:40px;padding-top:24px; }
.blog-sources-title { font-size:.75rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--gray-500);margin-bottom:12px; }
.blog-sources ul { margin:0;padding-left:18px; }
.blog-sources li { font-size:.82rem;color:var(--gray-500);line-height:1.6;margin-bottom:6px; }
.blog-sources strong { color:var(--gray-700); }

.blog-cta-box { background:linear-gradient(135deg,var(--blue) 0%,var(--blue-dark) 100%);border-radius:var(--radius);padding:28px;color:#fff;text-align:center;margin-top:36px; }
.blog-cta-box h3 { font-size:1.15rem;font-weight:700;margin-bottom:8px; }
.blog-cta-box p { font-size:.88rem;opacity:.88;margin-bottom:18px; }

/* ─── Share sidebar ─────────────────────────────────────────────────────── */
.share-sidebar { display:flex;flex-direction:column;gap:8px;position:sticky;top:80px; }
.share-sidebar-label { font-size:.7rem;font-weight:700;color:var(--gray-400);text-transform:uppercase;letter-spacing:.8px;text-align:center;margin-bottom:4px; }
.share-btn { display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:10px;border:none;cursor:pointer;font-size:1.1rem;transition:transform .15s,box-shadow .15s;text-decoration:none; }
.share-btn:hover { transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.2); }
.share-btn-li  { background:#0a66c2;color:#fff; }
.share-btn-fb  { background:#1877f2;color:#fff; }
.share-btn-wa  { background:#25d366;color:#fff; }
.share-btn-tg  { background:#229ed9;color:#fff; }
.share-btn-x   { background:#000;color:#fff; }
.share-btn-ig  { background:linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);color:#fff; }
.share-btn-tt  { background:#010101;color:#fff; }

.share-toast { position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);background:#1e293b;color:#e2e8f0;padding:10px 22px;border-radius:99px;font-size:.85rem;font-weight:600;box-shadow:0 4px 16px rgba(0,0,0,.35);opacity:0;transition:all .3s;pointer-events:none;z-index:9999; }
.share-toast.visible { opacity:1;transform:translateX(-50%) translateY(0); }

/* ─── Blog responsive ────────────────────────────────────────────────────── */
@media(max-width:640px){
  .blog-layout { grid-template-columns:1fr;padding:24px 16px; }
  .share-sidebar { flex-direction:row;position:static;justify-content:center;margin-top:28px;padding-top:20px;border-top:1px solid var(--gray-200); }
  .share-sidebar-label { display:none; }
  .blog-article-title { font-size:1.4rem; }
  .blog-hero-title { font-size:1.4rem; }
  .blog-grid { grid-template-columns:1fr; }
}

/* ════════════════════════════════════════════════════════════════

/* ════════════════════════════════════════════════════════════════
   PUBBLICA ANNUNCIO — multi-step wizard
   Allineato al design system AbitaIA
   ════════════════════════════════════════════════════════════════ */

/* ─── Page ───────────────────────────────────────────────────────── */
.pa-body { background: var(--gray-50); min-height: 100vh; }

/* ─── Hero — identico al hero principale del sito ────────────────── */
.pa-hero {
  background: linear-gradient(135deg, #1e3a8a 0%, #2563eb 50%, #0ea5e9 100%);
  color: #fff;
  padding: 52px 0 44px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.pa-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") repeat;
  pointer-events: none;
}
.pa-hero > * { position: relative; }
.pa-hero-badge {
  display: inline-block;
  background: rgba(255,255,255,.15);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.3);
  padding: 6px 18px;
  border-radius: 100px;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .5px;
  margin-bottom: 18px;
}
.pa-hero-title {
  font-size: clamp(1.7rem, 4vw, 2.4rem);
  font-weight: 800;
  letter-spacing: -1px;
  line-height: 1.15;
  margin: 0 0 10px;
}
.pa-hero-sub {
  font-size: .97rem;
  opacity: .82;
  margin: 0;
}

/* ─── Progress bar ───────────────────────────────────────────────── */
.pa-progress-wrap {
  background: #fff;
  border-bottom: 1px solid var(--gray-200);
  padding: 16px 0 10px;
  position: sticky;
  top: 60px;
  z-index: 90;
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
}
.pa-progress-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-bottom: 10px;
}
.pa-prog-step {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.pa-prog-dot {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 2px solid var(--gray-200);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .72rem;
  font-weight: 800;
  color: var(--gray-400);
  transition: all .25s;
  z-index: 1;
}
.pa-prog-step.active .pa-prog-dot {
  border-color: var(--blue);
  background: var(--blue);
  color: #fff;
  box-shadow: 0 0 0 4px rgba(37,99,235,.15);
}
.pa-prog-step.done .pa-prog-dot {
  border-color: var(--green);
  background: var(--green);
  color: #fff;
}
.pa-prog-label {
  font-size: .63rem;
  font-weight: 700;
  color: var(--gray-400);
  margin-top: 5px;
  white-space: nowrap;
}
.pa-prog-step.active .pa-prog-label { color: var(--blue); }
.pa-prog-step.done  .pa-prog-label { color: var(--green); }
.pa-prog-line {
  width: 36px;
  height: 2px;
  background: var(--gray-200);
  margin-bottom: 16px;
  transition: background .25s;
}
.pa-prog-line.done { background: var(--green); }
.pa-progress-bar-wrap {
  height: 4px;
  background: var(--gray-100);
  border-radius: 2px;
  overflow: hidden;
}
.pa-progress-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #2563eb, #0ea5e9);
  border-radius: 2px;
  transition: width .4s ease;
}

/* ─── Container & card ───────────────────────────────────────────── */
.pa-container {
  max-width: 740px;
  margin: 36px auto 64px;
  padding: 0 16px;
}
.pa-card {
  background: #fff;
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  padding: 36px 40px;
  box-shadow: var(--shadow-md);
}

/* ─── Step header ────────────────────────────────────────────────── */
.pa-step-header {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--gray-100);
}
.pa-step-num {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--blue), #0ea5e9);
  color: #fff;
  font-size: 1.1rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(37,99,235,.3);
}
.pa-step-title {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--gray-900);
  letter-spacing: -.3px;
  margin: 0 0 4px;
}
.pa-step-sub {
  font-size: .85rem;
  color: var(--gray-600);
  margin: 0;
}

/* ─── Category cards (step 1) ────────────────────────────────────── */
.pa-category-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.pa-cat-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 28px 16px 22px;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius);
  background: #fff;
  cursor: pointer;
  transition: all .2s;
  text-align: center;
  box-shadow: var(--shadow);
}
.pa-cat-card:hover {
  border-color: var(--blue);
  background: var(--blue-light);
  transform: translateY(-3px);
  box-shadow: var(--shadow-lg);
}
.pa-cat-card.selected {
  border-color: var(--blue);
  background: linear-gradient(135deg, rgba(37,99,235,.07), rgba(14,165,233,.07));
  box-shadow: 0 0 0 3px rgba(37,99,235,.18), var(--shadow-md);
}
.pa-cat-icon { font-size: 2.2rem; }
.pa-cat-label { font-size: 1rem; font-weight: 800; color: var(--gray-900); letter-spacing: -.2px; }
.pa-cat-sub { font-size: .78rem; color: var(--gray-600); }

/* ─── Tipo chips (step 2) ────────────────────────────────────────── */
.pa-tipo-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.pa-tipo-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 16px;
  border: 1.5px solid var(--gray-200);
  border-radius: 100px;
  background: #fff;
  font-size: .87rem;
  font-weight: 600;
  color: var(--gray-700);
  cursor: pointer;
  transition: all .18s;
  box-shadow: var(--shadow);
}
.pa-tipo-chip:hover {
  border-color: var(--blue);
  color: var(--blue);
  background: var(--blue-light);
}
.pa-tipo-chip.selected {
  border-color: var(--blue);
  background: var(--blue);
  color: #fff;
  box-shadow: 0 2px 8px rgba(37,99,235,.3);
}
.pa-tipo-icon { font-size: .95rem; }

/* ─── Form fields ────────────────────────────────────────────────── */
.pa-field { display: flex; flex-direction: column; gap: 6px; }
.pa-field-row { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.pa-field-row > .pa-field { flex: 1; min-width: 140px; }
.pa-label {
  font-size: .82rem;
  font-weight: 700;
  color: var(--gray-700);
  letter-spacing: .1px;
}
.pa-req { color: var(--red); }
.pa-input, .pa-select, .pa-textarea {
  width: 100%;
  padding: 10px 14px;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-sm);
  font-size: 1rem;
  color: var(--gray-900);
  background: #fff;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
  box-sizing: border-box;
  font-family: inherit;
}
.pa-input:focus, .pa-select:focus, .pa-textarea:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(37,99,235,.1);
}
.pa-input:hover:not(:focus), .pa-select:hover:not(:focus) { border-color: var(--gray-400); }
.pa-textarea { resize: vertical; min-height: 150px; line-height: 1.65; }
.pa-field-hint { font-size: .75rem; color: var(--gray-600); margin-top: 3px; }

/* ─── Section labels ─────────────────────────────────────────────── */
.pa-section-label {
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .9px;
  text-transform: uppercase;
  color: var(--blue);
  margin: 28px 0 12px;
  padding: 0 0 8px;
  border-bottom: 1.5px solid var(--blue-light);
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ─── Check cards (amenità) ──────────────────────────────────────── */
.pa-check-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(155px, 1fr));
  gap: 10px;
  margin-bottom: 4px;
}
.pa-check-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all .18s;
  user-select: none;
  background: #fff;
  box-shadow: var(--shadow);
  min-width: 0;
}
.pa-check-card span:last-child { min-width: 0; overflow-wrap: break-word; }
.pa-check-card:hover { border-color: var(--blue); background: var(--blue-light); }
.pa-check-card:has(input:checked),
.pa-check-card.checked { border-color: var(--blue); background: linear-gradient(135deg, rgba(37,99,235,.07), rgba(14,165,233,.05)); }
.pa-check-card:has(input:checked) .pa-check-icon,
.pa-check-card.checked .pa-check-icon { background: var(--blue); color: #fff; }
.pa-check-card input[type=checkbox] { display: none; }
.pa-check-icon {
  width: 30px; height: 30px;
  border-radius: 7px;
  background: var(--gray-100);
  display: flex; align-items: center; justify-content: center;
  font-size: .95rem;
  flex-shrink: 0;
  transition: all .15s;
}

/* ─── Counter ────────────────────────────────────────────────────── */
.pa-counter { display: flex; align-items: center; gap: 10px; }
.pa-counter button {
  width: 34px; height: 34px;
  border-radius: 50%;
  border: 1.5px solid var(--gray-200);
  background: #fff;
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .15s;
  flex-shrink: 0;
  color: var(--gray-700);
  box-shadow: var(--shadow);
}
.pa-counter button:hover { border-color: var(--blue); color: var(--blue); background: var(--blue-light); }
.pa-counter-input {
  width: 52px;
  text-align: center;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-sm);
  padding: 6px 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--gray-900);
  outline: none;
}
.pa-counter-input:focus { border-color: var(--blue); box-shadow: 0 0 0 2px rgba(37,99,235,.1); }

/* ─── Radio pill buttons ─────────────────────────────────────────── */
.pa-radio-group { display: flex; flex-wrap: wrap; gap: 8px; }
.pa-radio {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border: 1.5px solid var(--gray-200);
  border-radius: 100px;
  font-size: .83rem;
  font-weight: 600;
  color: var(--gray-600);
  cursor: pointer;
  transition: all .15s;
  user-select: none;
  background: #fff;
  box-shadow: var(--shadow);
}
.pa-radio:hover { border-color: var(--blue); color: var(--blue); background: var(--blue-light); }
.pa-radio:has(input:checked),
.pa-radio.selected { border-color: var(--blue); background: var(--blue); color: #fff; box-shadow: 0 2px 8px rgba(37,99,235,.25); }
.pa-radio input[type=radio] { display: none; }

/* ─── Classe energetica ──────────────────────────────────────────── */
.pa-energy-grid { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.pa-energy-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px; height: 52px;
  border-radius: var(--radius-sm);
  border: 2px solid transparent;
  font-weight: 800;
  font-size: .88rem;
  cursor: pointer;
  transition: all .15s;
  color: #fff;
  opacity: .72;
  box-shadow: var(--shadow);
}
.pa-energy-btn:hover { opacity: 1; transform: scale(1.08); box-shadow: var(--shadow-md); }
.pa-energy-btn.pa-energy-sel {
  opacity: 1;
  transform: scale(1.12);
  border-color: var(--gray-900);
  box-shadow: 0 0 0 3px rgba(0,0,0,.18), var(--shadow-md);
}

/* ─── Autocomplete ───────────────────────────────────────────────── */
.pa-autocomplete-wrap { position: relative; }
.pa-autocomplete-list {
  position: absolute;
  top: calc(100% + 4px);
  left: 0; right: 0;
  background: #fff;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-lg);
  z-index: 200;
  max-height: 220px;
  overflow-y: auto;
}
.pa-autocomplete-item {
  padding: 10px 16px;
  font-size: .88rem;
  color: var(--gray-800);
  cursor: pointer;
  transition: background .1s;
}
.pa-autocomplete-item:hover { background: var(--blue-light); color: var(--blue); }

/* Campi "solo selezione" (Regione/Provincia/Comune e gli altri elenchi
   dello step Caratteristiche): readonly, si scelgono solo dall'elenco,
   niente digitazione libera e niente tastiera al tocco su mobile. Stessa
   freccetta dei <select> nativi per segnalare che è un picker. */
.pa-picker-input {
  cursor: pointer; caret-color: transparent;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; padding-right: 36px;
}
.pa-picker-input:disabled { cursor: not-allowed; }

/* ─── Mappa iframe OSM ───────────────────────────────────────────── */
.pa-map-wrap {
  margin-top: 16px;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--gray-50);
}
.pa-map-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--gray-400);
  padding: 32px 20px;
  text-align: center;
}
.pa-map-placeholder span { font-size: 2rem; }
.pa-map-placeholder p { margin: 0; font-size: .85rem; }
.pa-map-iframe {
  width: 100%;
  height: 300px;
  border: none;
  display: block;
}
.pa-map-addr-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  background: var(--blue-light);
  border-top: 1px solid rgba(37,99,235,.15);
  font-size: .82rem;
  font-weight: 600;
  color: var(--blue);
}
.pa-map-addr-bar span:first-child { font-size: .95rem; }

/* ─── Price hero (step 5) ────────────────────────────────────────── */
.pa-price-hero {
  background: linear-gradient(135deg, rgba(30,58,138,.04), rgba(14,165,233,.05));
  border: 1.5px solid rgba(37,99,235,.15);
  border-radius: var(--radius);
  padding: 32px 28px;
  margin-bottom: 24px;
  text-align: center;
}
.pa-price-input-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 14px 0 18px;
}
.pa-price-eur {
  font-size: 2.2rem;
  font-weight: 800;
  color: var(--blue);
}
.pa-price-input {
  font-size: 2.2rem;
  font-weight: 800;
  color: var(--gray-900);
  border: none;
  border-bottom: 2.5px solid var(--blue);
  background: transparent;
  outline: none;
  width: 210px;
  text-align: center;
  padding: 4px 0;
  font-family: inherit;
  transition: border-color .15s;
}
.pa-price-input:focus { border-bottom-color: #0ea5e9; }
.pa-price-input::placeholder { color: var(--gray-200); }
/* Comparazione risparmio */
.pa-risparmio-compare {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 12px;
  align-items: center;
  margin-top: 20px;
}
.pa-risp-col {
  border-radius: var(--radius-sm);
  padding: 14px 16px;
  text-align: center;
}
.pa-risp-bad {
  background: rgba(239,68,68,.06);
  border: 1.5px solid rgba(239,68,68,.2);
}
.pa-risp-good {
  background: rgba(16,185,129,.07);
  border: 1.5px solid rgba(16,185,129,.25);
}
.pa-risp-label { font-size: .75rem; font-weight: 700; color: var(--gray-600); margin-bottom: 6px; text-transform: uppercase; letter-spacing: .4px; }
.pa-risp-amount { font-size: 1.4rem; font-weight: 800; }
.pa-risp-bad .pa-risp-amount { color: #dc2626; text-decoration: line-through; opacity: .7; }
.pa-risp-good .pa-risp-amount { color: var(--green); }
.pa-risp-sub { font-size: .72rem; color: var(--gray-500); margin-top: 3px; }
.pa-risp-vs { font-size: .8rem; font-weight: 800; color: var(--gray-400); text-align: center; }
.pa-risp-result {
  grid-column: 1 / -1;
  background: linear-gradient(135deg, rgba(16,185,129,.12), rgba(5,150,105,.08));
  border: 1.5px solid rgba(16,185,129,.3);
  border-radius: var(--radius-sm);
  padding: 14px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.pa-risp-result-label { font-size: .82rem; font-weight: 700; color: var(--gray-700); }
.pa-risp-result-val { font-size: 1.5rem; font-weight: 800; color: var(--green); }
@media (max-width: 480px) {
  .pa-risparmio-compare { grid-template-columns: 1fr; }
  .pa-risp-vs { display: none; }
}

/* ─── Esclusiva box ──────────────────────────────────────────────── */
.pa-esclusiva-box {
  background: linear-gradient(135deg, rgba(30,58,138,.04), rgba(14,165,233,.04));
  border: 2px dashed rgba(37,99,235,.35);
  border-radius: var(--radius);
  padding: 20px 24px 14px;
  margin-top: 20px;
  cursor: pointer;
  transition: all .18s;
  display: block;
}
.pa-esclusiva-box:hover { border-color: var(--blue); border-style: solid; background: var(--blue-light); }
.pa-esclusiva-box:has(input:checked) { border-color: #16a34a; border-style: solid; background: rgba(22,163,74,.06); box-shadow: 0 0 0 3px rgba(22,163,74,.12); }
.pa-esclusiva-check {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  cursor: pointer;
}
.pa-esclusiva-check > input[type=checkbox] { display: none; }

/* Custom tick box */
.pa-esclusiva-tick {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border: 2.5px solid #94a3b8;
  border-radius: 7px;
  background: #fff;
  margin-top: 1px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .18s;
}
.pa-tick-icon { width: 14px; height: 14px; opacity: 0; transition: opacity .15s; }
.pa-esclusiva-check:has(input:checked) .pa-esclusiva-tick {
  background: #16a34a;
  border-color: #16a34a;
}
.pa-esclusiva-check:has(input:checked) .pa-tick-icon { opacity: 1; }

.pa-esclusiva-body { flex: 1; }
.pa-esclusiva-title { font-size: 1rem; font-weight: 700; color: var(--gray-900); margin: 0 0 6px; }
.pa-esclusiva-desc { font-size: .83rem; color: var(--gray-700); line-height: 1.6; margin: 0; }
.pa-esclusiva-hint {
  text-align: center;
  font-size: .78rem;
  font-weight: 600;
  color: var(--blue);
  margin-top: 10px;
  letter-spacing: .02em;
  animation: pa-hint-pulse 1.8s ease-in-out infinite;
}
@keyframes pa-hint-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: .45; }
}

/* ─── Nav buttons ────────────────────────────────────────────────── */
.pa-nav-btns {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 0;
  padding: 20px 40px;
  background: #fff;
  border-top: 1px solid var(--gray-100);
  border-radius: 0 0 var(--radius) var(--radius);
  box-shadow: var(--shadow-md);
  max-width: 740px;
  margin-left: auto;
  margin-right: auto;
  gap: 12px;
}
.pa-btn-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 22px;
  border: 1.5px solid var(--gray-200);
  border-radius: 10px;
  background: #fff;
  font-size: .9rem;
  font-weight: 600;
  color: var(--gray-600);
  cursor: pointer;
  transition: all .15s;
  box-shadow: var(--shadow);
}
.pa-btn-back:hover { border-color: var(--gray-400); color: var(--gray-800); box-shadow: var(--shadow-md); }
.pa-btn-next {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 32px;
  background: var(--blue);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-size: .95rem;
  font-weight: 700;
  cursor: pointer;
  transition: all .18s;
  box-shadow: 0 2px 8px rgba(37,99,235,.25);
}
.pa-btn-next:hover { background: var(--blue-dark); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(37,99,235,.35); }
.pa-btn-next:disabled { background: var(--gray-200); color: var(--gray-400); cursor: not-allowed; transform: none; box-shadow: none; }
.pa-submit-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 40px;
  background: linear-gradient(135deg, #2563eb, #0ea5e9);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  transition: all .2s;
  box-shadow: 0 4px 16px rgba(37,99,235,.3);
  margin-top: 20px;
}
.pa-submit-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 24px rgba(37,99,235,.4); }

/* ─── Esclusiva box ──────────────────────────────────────────────── */
.pa-esclusiva-box {
  background: linear-gradient(135deg, #0f172a, #1e2d4a);
  border: 1.5px solid rgba(99,102,241,.35);
  border-radius: 14px;
  padding: 20px;
  margin-top: 24px;
  transition: outline .2s;
}
.pa-esclusiva-header { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 16px; }
.pa-esclusiva-icon { font-size: 1.6rem; flex-shrink: 0; margin-top: 2px; }
.pa-esclusiva-title { font-weight: 800; color: #fff; font-size: 1rem; }
.pa-esclusiva-sub { font-size: .78rem; color: #94a3b8; margin-top: 2px; }
.pa-esclusiva-list { list-style: none; padding: 0; margin: 0 0 16px; display: flex; flex-direction: column; gap: 8px; }
.pa-esclusiva-list li { font-size: .85rem; color: #cbd5e1; line-height: 1.5; }
.pa-esclusiva-list li strong { color: #e2e8f0; }
.pa-esclusiva-check-label {
  display: flex; align-items: flex-start; gap: 12px;
  background: rgba(255,255,255,.05); border: 1.5px solid rgba(255,255,255,.1);
  border-radius: 10px; padding: 14px; cursor: pointer;
  font-size: .875rem; color: #94a3b8; line-height: 1.5;
  transition: border-color .2s, background .2s;
}
.pa-esclusiva-check-label:hover { border-color: rgba(99,102,241,.5); background: rgba(99,102,241,.07); }
.pa-esclusiva-check-label.checked { border-color: #6366f1; background: rgba(99,102,241,.1); color: #c7d2fe; }
.pa-esclusiva-check-label input[type="checkbox"] { width: 18px; height: 18px; flex-shrink: 0; accent-color: #6366f1; margin-top: 1px; cursor: pointer; }
.pa-esclusiva-box:hover { background: linear-gradient(135deg, #111827, #1e3560); border-color: rgba(99,102,241,.6); border-style: solid; box-shadow: 0 0 0 3px rgba(99,102,241,.08); }
.pa-esclusiva-box:has(input:checked) { background: linear-gradient(135deg, #0f172a, #1e2d4a); border-color: #6366f1; border-style: solid; box-shadow: 0 0 0 3px rgba(99,102,241,.18); }

/* ─── Error ──────────────────────────────────────────────────────── */
.pa-error {
  background: rgba(239,68,68,.07);
  border: 1px solid rgba(239,68,68,.25);
  border-radius: var(--radius-sm);
  padding: 12px 16px;
  font-size: .85rem;
  color: #b91c1c;
  margin-top: 16px;
}

/* ─── Step 6: AI info box ────────────────────────────────────────── */
.pa-ai-info-box {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: linear-gradient(135deg, #ede9fe, #dbeafe);
  border: 1px solid #c4b5fd;
  border-radius: var(--radius);
  padding: 20px 24px;
  color: #3730a3;
  font-size: .92rem;
  line-height: 1.6;
}
.pa-ai-info-icon { font-size: 2rem; flex-shrink: 0; }

/* ─── Step 8: Recap section ──────────────────────────────────────── */
.pa-recap-section {
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  padding: 20px 24px;
  margin-bottom: 32px;
}
.pa-recap-title {
  font-weight: 700;
  font-size: 1rem;
  color: var(--gray-800);
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--gray-200);
}
.pa-recap-grid { display: flex; flex-direction: column; gap: 0; }
.pa-recap-row {
  display: flex;
  padding: 9px 0;
  border-bottom: 1px solid var(--gray-100);
  gap: 16px;
  font-size: .88rem;
}
.pa-recap-row:last-child { border-bottom: none; }
.pa-recap-key {
  flex: 0 0 200px;
  color: var(--gray-600);
  font-weight: 500;
}
.pa-recap-val {
  flex: 1;
  color: var(--gray-800);
  font-weight: 600;
  word-break: break-word;
}
@media (max-width: 600px) {
  .pa-recap-row { flex-direction: column; gap: 2px; }
  .pa-recap-key { flex: 0 0 auto; }
}

/* ─── Step 8: AI generation section ─────────────────────────────── */
.pa-ai-gen-section {
  margin-bottom: 28px;
}
.pa-ai-spinner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 48px 24px;
  color: var(--gray-600);
  font-size: .95rem;
}
.pa-spinner {
  width: 40px;
  height: 40px;
  border: 4px solid var(--gray-200);
  border-top-color: #6366f1;
  border-radius: 50%;
  animation: pa-spin .8s linear infinite;
}
@keyframes pa-spin { to { transform: rotate(360deg); } }

.pa-ai-display-block {
  background: #fff;
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  padding: 18px 22px;
  box-shadow: var(--shadow);
}
.pa-ai-display-label {
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--gray-400);
  margin-bottom: 10px;
}
.pa-ai-display-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--gray-900);
  line-height: 1.45;
}
.pa-ai-display-desc {
  font-size: .9rem;
  color: var(--gray-700);
  line-height: 1.8;
  white-space: pre-wrap;
}

.pa-ai-gen-note {
  background: #fef9c3;
  border: 1px solid #fde047;
  border-radius: var(--radius-sm);
  padding: 12px 16px;
  font-size: .85rem;
  color: #854d0e;
  margin-bottom: 16px;
}

.pa-ai-gen-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, #7c3aed, #6366f1);
  color: #fff;
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .04em;
  padding: 7px 16px;
  border-radius: 99px;
  margin-bottom: 20px;
}

/* ─── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .pa-card { padding: 22px 16px; }
  .pa-category-grid { grid-template-columns: 1fr; gap: 12px; }
  .pa-cat-card { flex-direction: row; text-align: left; padding: 18px 20px; }
  .pa-cat-icon { font-size: 1.8rem; }
  .pa-check-grid { grid-template-columns: repeat(2, 1fr); }
  .pa-progress-wrap { top: 56px; }
  .pa-hero-title { font-size: 1.5rem; }
  .pa-prog-label { display: none; }
  .pa-price-input { width: 150px; font-size: 1.6rem; }
  .pa-price-eur { font-size: 1.6rem; }
  .pa-field-row { flex-direction: column; gap: 14px; }
  .pa-nav-btns { padding: 16px; flex-direction: column-reverse; }
  .pa-btn-next, .pa-submit-btn { width: 100%; justify-content: center; }
  .pa-btn-back { width: 100%; justify-content: center; }
  .pa-prog-line { width: 20px; }
}

/* ===== STEP FOTO — SLOT STANZE ===== */
.pa-foto-tip {
  display: flex; align-items: flex-start; gap: 12px;
  background: linear-gradient(135deg, #eef2ff, #e0e7ff);
  border: 1px solid #c7d2fe; border-radius: 14px;
  padding: 14px 16px; margin-bottom: 24px; color: #3730a3; font-size: .875rem; line-height: 1.5;
}
.pa-foto-tip-icon { font-size: 1.4rem; flex-shrink: 0; margin-top: 1px; }
.pa-foto-tip strong { color: #312e81; }

.pa-foto-guide-cta {
  display: flex; align-items: center; gap: 12px;
  background: linear-gradient(135deg, #2563eb, #7c3aed);
  border-radius: 14px; padding: 14px 18px; margin-bottom: 14px;
  color: #fff; font-size: .875rem; line-height: 1.5;
  text-decoration: none; transition: opacity .15s;
}
.pa-foto-guide-cta:hover { opacity: .92; }
.pa-foto-guide-cta strong { color: #fff; }
.pa-foto-guide-cta-arrow { font-size: 1.2rem; flex-shrink: 0; margin-left: auto; }

.pa-guide-subtitle { color: #64748b; font-size: .85rem; margin: 0 0 16px; }
.pa-guide-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin-bottom: 24px; }
.pa-guide-card {
  display: flex; gap: 12px; align-items: flex-start;
  background: #fff; border: 1px solid #e2e8f0;
  border-radius: 12px; padding: 14px 16px;
  box-shadow: 0 1px 4px rgba(0,0,0,.05);
}
.pa-guide-card-icon { font-size: 1.4rem; flex-shrink: 0; margin-top: 1px; }
.pa-guide-card-body strong { display: block; color: #1e293b; font-size: .85rem; margin-bottom: 3px; }
.pa-guide-card-body p { color: #64748b; font-size: .78rem; margin: 0; line-height: 1.5; }

.pa-guide-errors { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; margin-bottom: 24px; }
.pa-guide-error-item {
  display: flex; gap: 10px; align-items: flex-start;
  background: #fef2f2; border: 1px solid #fecaca;
  border-radius: 10px; padding: 10px 14px;
}
.pa-guide-error-x {
  width: 18px; height: 18px; border-radius: 50%; background: #fee2e2;
  color: #dc2626; font-size: .65rem; font-weight: 800; display: flex;
  align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px;
}
.pa-guide-error-item strong { display: block; color: #991b1b; font-size: .8rem; }
.pa-guide-error-item p { color: #7f1d1d; font-size: .74rem; margin: 0; }

.pa-stanze-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 16px;
}
@media (max-width: 600px) { .pa-stanze-grid { grid-template-columns: 1fr; } }

.pa-stanza-card {
  background: #fff; border: 2px dashed #cbd5e1;
  border-radius: 14px; overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.pa-stanza-card:hover { border-color: #818cf8; box-shadow: 0 2px 10px rgba(99,102,241,.12); }
.pa-stanza-card.has-photos {
  border-style: solid; border-color: #6366f1;
  background: #fafafe; box-shadow: 0 2px 10px rgba(99,102,241,.1);
}
.pa-stanza-input { display: none; }

.pa-stanza-top {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 16px; cursor: pointer; transition: background .15s;
}
.pa-stanza-top:hover { background: #f5f3ff; }
.pa-stanza-icon { font-size: 1.6rem; flex-shrink: 0; }
.pa-stanza-label { font-weight: 700; font-size: .9rem; color: #1e293b; flex: 1; }
.pa-stanza-count { font-size: .78rem; font-weight: 600; color: #94a3b8; white-space: nowrap; }
.pa-stanza-card.has-photos .pa-stanza-count { color: #4f46e5; }

.pa-stanza-add-btn {
  display: inline-flex; align-items: center; gap: 5px;
  background: #eef2ff; border: 1px solid #c7d2fe;
  color: #4f46e5; font-size: .75rem; font-weight: 700;
  padding: 5px 10px; border-radius: 20px;
  transition: background .15s, color .15s;
}
.pa-stanza-top:hover .pa-stanza-add-btn { background: #e0e7ff; color: #3730a3; }

.pa-stanza-thumbs { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 14px 14px; }
.pa-stanza-thumb-wrap { position: relative; width: 72px; height: 72px; flex-shrink: 0; }
.pa-stanza-thumb { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; display: block; border: 1px solid #e2e8f0; }
.pa-stanza-thumb-add {
  width: 72px; height: 72px; flex-shrink: 0;
  border: 2px dashed rgba(99,102,241,.5); border-radius: 8px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  cursor: pointer; color: #6366f1; transition: all .2s;
  background: linear-gradient(135deg, rgba(99,102,241,.06), rgba(139,92,246,.04));
}
.pa-stanza-thumb-add:hover {
  background: linear-gradient(135deg, rgba(99,102,241,.15), rgba(139,92,246,.1));
  border-color: #6366f1;
  transform: scale(1.04);
  box-shadow: 0 4px 12px rgba(99,102,241,.25);
}
.pa-stanza-thumb-add-icon {
  width: 26px; height: 26px;
  background: linear-gradient(135deg, #6366f1, #4f46e5);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: white; font-size: .9rem; font-weight: 700; line-height: 1;
  box-shadow: 0 2px 6px rgba(99,102,241,.4);
}
.pa-stanza-thumb-add-label { font-size: .58rem; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; color: #6366f1; }
.pa-stanza-thumb-del {
  position: absolute; top: -6px; right: -6px;
  background: #ef4444; color: #fff; border: none; border-radius: 50%;
  width: 20px; height: 20px; font-size: .65rem; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 6px rgba(239,68,68,.4); line-height: 1;
}
.pa-stanza-cover-badge {
  position: absolute; bottom: 4px; left: 2px; right: 2px;
  background: rgba(0,0,0,.65); color: #fde68a; font-size: .58rem;
  font-weight: 700; text-align: center; border-radius: 4px; padding: 2px 3px;
}

.pa-add-stanza-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; padding: 13px;
  background: #f8fafc; border: 1.5px dashed #cbd5e1;
  border-radius: 12px; color: #64748b; font-size: .875rem; font-weight: 700;
  cursor: pointer; transition: all .18s; margin-top: 4px;
}
.pa-add-stanza-btn:hover { border-color: #818cf8; color: #4f46e5; background: #eef2ff; }

/* ===== PWA install banner ===== */
.pwa-install-banner {
  position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 2000;
  display: flex; align-items: center; gap: 10px;
  background: #0f172a; color: #fff;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px; padding: 12px 12px 12px 14px;
  box-shadow: 0 12px 34px rgba(0,0,0,.35);
  max-width: 460px; margin: 0 auto;
  animation: pwaSlideUp .3s ease-out;
}
@keyframes pwaSlideUp { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.pwa-install-icon { font-size: 1.3rem; flex-shrink: 0; }
.pwa-install-text { flex: 1; font-size: .82rem; line-height: 1.35; color: #e2e8f0; }
.pwa-install-btn {
  background: var(--blue); color: #fff; border: none; border-radius: 9px;
  padding: 9px 14px; font-size: .82rem; font-weight: 700; cursor: pointer;
  white-space: nowrap; flex-shrink: 0; transition: background .15s;
}
.pwa-install-btn:hover { background: var(--blue-dark); }
.pwa-install-close {
  background: none; border: none; color: #94a3b8; font-size: .85rem;
  cursor: pointer; padding: 4px 6px; flex-shrink: 0; line-height: 1;
}
.pwa-install-close:hover { color: #fff; }
@media (max-width: 480px) {
  .pwa-install-banner { left: 8px; right: 8px; bottom: 8px; padding: 10px 10px 10px 12px; }
}
