.dq-form fieldset { margin:20px 0; padding:15px; border:1px solid #e1e1e1; }
.dq-form legend { font-weight:600; margin-bottom:10px; }
.dq-q { margin:10px 0; }
.dq-btn { background:#3498db; border:none; color:#fff; padding:10px 16px; cursor:pointer; }
.dq-results { border:1px solid #eee; padding:20px; }
.dq-badge-ok { border-left:6px solid #2ecc71; }
.dq-badge-warn { border-left:6px solid #f39c12; }
.dq-badge-danger { border-left:6px solid #e74c3c; }

/* Report v1.4+ */
.dq-report { border:1px solid #eee; border-radius:16px; overflow:hidden; }
.dq-ips { position:relative; background:linear-gradient(135deg,#f5f7fa 0%,#c3cfe2 100%); padding:30px 20px; text-align:center; }
.dq-ips-bar { position:absolute; left:0; right:0; top:0; height:5px; background:linear-gradient(90deg,#3498db 0%, #2ecc71 50%, #e74c3c 100%); }
.dq-ips-label { font-size:14px; color:#2c3e50; opacity:.8; }
.dq-ips-value { font-size:40px; font-weight:700; color:#2c3e50; margin:8px 0; }
.dq-ips-badge { display:inline-block; padding:6px 10px; border-radius:999px; font-weight:600; }
.dq-badge { display:inline-block; padding:4px 8px; border-radius:999px; font-size:13px; }
.dq-badge-ok { background:#eafaf1; color:#2ecc71; border:1px solid #2ecc71; }
.dq-badge-warn { background:#fff5e6; color:#f39c12; border:1px solid #f39c12; }
.dq-badge-danger { background:#fdecea; color:#e74c3c; border:1px solid #e74c3c; }

.dq-chart { padding:24px; background:#fff; }
.dq-priorities { padding:10px 24px 24px; }
.dq-priority-grid { display:grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
.dq-priority-card { background:#f8f9fa; border-radius:12px; padding:16px; border:1px solid #eee; }
.dq-priority-num { width:32px; height:32px; border-radius:999px; background:#3498db; color:#fff; display:inline-flex; align-items:center; justify-content:center; font-weight:700; margin-bottom:6px; }
.dq-priority-title { font-weight:700; color:#2c3e50; margin-bottom:6px; }
.dq-priority-desc { color:#566270; font-size:14px; }

.dq-table { padding:0 24px 24px; }
.dq-areas-table { width:100%; border-collapse:collapse; background:#fff; border:1px solid #eee; border-radius:12px; overflow:hidden; }
.dq-areas-table th, .dq-areas-table td { padding:12px 14px; border-bottom:1px solid #f0f0f0; text-align:left; }
.dq-areas-table thead { background:#fafafa; }
.dq-legend { padding:8px 24px 24px; display:flex; gap:18px; flex-wrap:wrap; color:#7f8c8d; }
.dq-legend-item { display:flex; align-items:center; gap:10px; }

/* Descrizione generale IPS */
.dq-ips-description {
  padding: 16px 24px 8px;
  background: #fff;
  color: #566270;
  font-size: 16px;
}
.dq-ips-description p {
  margin: 0;
}

/* Titoli delle sezioni principali */
.dq-chart h3,
.dq-table h3,
.dq-areas-detail h3 {
  margin: 0 0 12px;
  font-size: 18px;
  color: #2c3e50;
}

/* Griglia dettaglio aree */
.dq-areas-detail {
  padding: 8px 24px 24px;
}
.dq-areas-detail-grid {
  display: block;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}
.dq-area-detail {
  background: #fff;
  border-radius: 12px;
  border: 1px solid #eee;
  padding: 14px 16px;
}
.dq-area-detail-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 8px;
}
.dq-area-title {
  margin: 0;
  font-size: 16px;
  color: #2c3e50;
}
.dq-area-score {
  font-weight: 600;
  color: #2c3e50;
}
.dq-area-status {
  margin-bottom: 6px;
}
.dq-area-description p {
  margin: 0;
  font-size: 16px;
  color: #566270;
  line-height: 1.5;
}

/* =========================================
   TITOLI, PUNTEGGI E STATI CENTRATI
   ========================================= */

.dq-chart h3,
.dq-table h3,
.dq-areas-detail h3 {
  text-align: center;
}

.dq-area-title {
  text-align: center;
  width: 100%;
}

.dq-area-score {
  text-align: center;
  width: 100%;
  margin-top: 4px;
}

.dq-area-status {
  text-align: center;
}

.dq-ips-badge {
  text-align: center;
}

.dq-ips-label,
.dq-ips-value {
  text-align: center;
}

/* =========================================
   DISTANZA TRA I BOX DELLE AREE
   ========================================= */

.dq-areas-detail-grid {
  display: block;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 28px;
}

.dq-area-detail {
  padding: 18px 20px;
  border-radius: 15px;
  background: #ffffff;
  border: 1px solid #e6e6e6;
  box-shadow: 0 4px 10px rgba(0,0,0,0.04);
  margin: 50px 0;
}

.dq-area-detail-header {
  flex-direction: column;
  align-items: center;
  margin-bottom: 12px;
}

.dq-area-description {
  margin-top: 12px;
  color: #566270;
}

.dq-ips-big {
  font-size: 30px;
  font-weight: 700;
  text-align: center;
  color: #2c3e50;
  margin-bottom: 6px;
}

.dq-ips-actions {
  margin-top: 30px;
  display: flex;
  justify-content: center;
  gap: 18px;
  flex-wrap: wrap;
}

.dq-ips-action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 18px;
  cursor: pointer;
  color: #2c3e50;
  transition: opacity 0.15s ease;
}

.dq-ips-action:hover {
  opacity: 0.7;
}

.dq-ips-icon {
  font-size: 18px;
  line-height: 1;
}

/* =========================================
   STAMPA: FIX FINALE (STRUTTURA FORZATA)
   ========================================= */
@media print {
    /* 1. RESET TOTALE: Appiattisce la struttura di WordPress/Elementor */
    html, body {
        margin: 0 !important;
        padding: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        display: block !important;
        overflow: visible !important;
    }

    /* 2. RIMOZIONE ELEMENTI DISTURBO: Nasconde tutto tranne il report */
    /* Inclusi i contenitori invisibili di Elementor che creano lo spazio */
    body > *:not(main), 
    header, footer, .site-header, .site-footer, 
    #wpadminbar, .dq-ips-actions, 
    .elementor-location-header, .elementor-location-footer {
        display: none !important;
        height: 0 !important;
    }

    /* 3. FORZATURA POSIZIONE: Spinge il report in cima alla pagina 1 */
    .dq-report {
        display: block !important;
        position: relative !important;
        top: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        border: none !important;
        /* Elimina eventuali salti pagina ereditati */
        page-break-before: avoid !important;
        break-before: avoid !important;
    }

    /* 4. RESET DEI CONTENITORI GENITORI (ELEMENTOR FIX) */
    /* Forza tutti i contenitori sopra il plugin a non avere altezza o padding */
    .elementor-section, .elementor-container, .elementor-column, .elementor-widget-container {
        padding: 0 !important;
        margin: 0 !important;
        min-height: 0 !important;
        display: block !important;
    }

    /* 5. FIX RADAR (Pagina 2) */
    .dq-chart {
        page-break-before: always !important;
        break-before: page !important;
        padding: 10mm 0 !important;
        display: block !important;
    }

    #dqRadar {
        /* Ridotto per dare margine di sicurezza ed evitare la pagina finale bianca */
        max-width: 160mm !important; 
        height: auto !important;
        margin: 0 auto !important;
    }

    /* 6. FIX AREE ED EVITARE PAGINA BIANCA FINALE */
    .dq-area-detail {
        page-break-inside: avoid !important;
        break-inside: avoid !important;
        margin: 5mm 0 !important; /* Margini ridotti per la stampa */
        border: 1px solid #eee !important;
    }

    .dq-areas-detail-grid {
        display: block !important; /* Disattiva la grid che in stampa dà problemi */
    }

    /* Rimuove spazi extra creati da WordPress */
    br { display: none !important; }
}