/**
 * Stili per la Visualizzazione 6: Report
 * 
 * Stili specifici per la vista di reportistica,
 * che estendono gli stili base dell'applicazione.
 */

/* Container principale della vista report */
.report-container {
  padding: 20px;
  background: var(--bg-primary, #ffffff);
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  margin-top: 20px;
}

/* Header del report */
.report-header {
  margin-bottom: 20px;
}

.report-title {
  font-size: 2rem;
  font-weight: var(--font-weight-bold, 700);
  color: var(--text-primary, #333);
  margin: 0;
}

/* Sezioni del report */
.report-section {
  margin-bottom: 30px;
  padding: 20px;
  background: var(--bg-secondary, #f8f9fa);
  border-radius: 0px;
  /* border-left: 4px solid var(--color-primary, #007bff);*/
}

.report-section.sankey {
  background: white;
  position: relative;
  /* Per posizionamento assoluto se necessario */
}

.report-section-title {
  font-size: 1.3rem;
  font-weight: var(--font-weight-semibold, 600);
  color: var(--text-primary, #333);
  margin: 0 0 15px 0;
}

/* Etichette verticali per Sankey */
.sankey-labels {
  display: flex;
  justify-content: space-between;
  padding: 0 5%;
  /* Padding laterale per allinearsi approssimativamente con i nodi esterni */
  margin-bottom: 0;
  height: 60px;
  /* Spazio per le etichette ruotate */
  position: relative;

}

.sankey-label {
  font-size: 0.8rem;
  font-weight: bolder;
  color: #777;
  text-transform: uppercase;
  letter-spacing: 1px;

  /* Rotazione verticale */
  transform: rotate(-90deg);
  transform-origin: center;

  /* Posizionamento */
  width: 60px;
  /* Larghezza fissa per centrare la rotazione */
  text-align: left;
  display: flex;
  align-items: left;
  justify-content: left;

}

/* Posizionamento specifico per le 3 colonne */
/* Nota: I valori percentuali devono corrispondere a quelli usati in view6.js (0.1, 0.5, 0.9) */
.sankey-label:nth-child(1) {
  /* EVENTO - allineato a sinistra */
  position: absolute;
  left: 20px;
  bottom: 20px;
  transform: translateX(-50%) rotate(-90deg);
}

.sankey-label:nth-child(2) {
  /* CITTÀ - centrato */
  position: absolute;
  left: 50%;
  bottom: 20px;
  transform: translateX(-50%) rotate(-90deg);
}

.sankey-label:nth-child(3) {
  /* QUANDO - allineato a destra */
  position: absolute;
  left: auto;
  right: 20px;
  bottom: 20px;
  transform: translateX(50%) rotate(-90deg);
}

/* Messaggi di stato */
.report-message {
  padding: 20px;
  text-align: center;
  background: var(--bg-info, #e3f2fd);
  border: 1px solid var(--border-info, #2196f3);
  border-radius: 8px;
  color: var(--text-info, #1976d2);
  margin: 20px 0;
}

/* Container del grafico Sankey */
#sankey-report {
  min-height: 400px;
  /* Altezza minima */
  overflow: visible;
  /* Permette al contenuto di espandersi */
}

/* Assicura che il container del grafico si espanda */
.report-section:has(#sankey-report) {
  overflow: visible;
  min-height: auto;
}

/* Responsive design */
@media (max-width: 768px) {
  .report-container {
    padding: 15px;
  }

  .report-title {
    font-size: 1.5rem;
    text-align: center;
  }

  .sankey-labels {
    display: none;
    /* Nascondi etichette su mobile se non c'è spazio */
  }
}

@media (max-width: 480px) {
  .report-container {
    padding: 10px;
  }
}