/* Stile CSS per il Dashboard */

/* Reset iniziale */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* Stile del corpo della pagina */
body {
    background-color: #0b1d33; /* Blu scuro dello sfondo */
    color: #ffffff;
    padding: 30px;
    display: flex;
    justify-content: center;
    align-items: center; /* AGGIORNATO: Centra la dashboard nello schermo */
    min-height: 100vh;
}

/* Contenitore principale del dashboard */
.dashboard-container {
    display: flex;
    gap: 25px;
    max-width: 1200px;
    width: 100%;
    height: calc(100vh - 60px); /* MODIFICATO: Forza la dashboard all'altezza dello schermo meno il padding */
    margin: 0 auto;
}

/* Colonne principali: Main e Side */
.main-column {
    flex: 1.2;
    display: flex;
    flex-direction: column;
    gap: 25px;
    height: 100%; /* Sblocca l'altezza verticale sul lato sinistro */
}

/* Colonna laterale più stretta (card) */
.side-column {
    flex: 0.8;
    display: flex;
    flex-direction: column;
    gap: 25px;
    height: 100%; /* MODIFICATO: Forza anche la colonna destra al 100% dell'altezza disponibile */
}

/* Stile delle card */
.card {
    background: linear-gradient(145deg, #122844, #0e1f37);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 28px; /* Curve morbide come nello screenshot */
    padding: 30px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

/* Stile dell'intestazione della card */
.card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    width: 100%;
}

/* Titolo della card */
h2 {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 10px;
    color: rgb(255, 255, 255);
}

/* Icona freccia */
.arrow-icon {
    font-size: 1.4rem;
    color: rgb(255, 255, 255);
    cursor: pointer;
    transition: color 0.2s ease;
}

/* Stile specifico per la card dei dati live */
.live-data-card {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding-top: 30px;
    margin-bottom: 10px;
}

/* Stile per i dati live */
.label {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.95rem;
    margin-top: 15px;
}

/* Stile per lo stato "Eccellente" */
.stats-excellent {
    display: inline-block;
    color: #4da3ff;
    font-size: 2.2rem;
    font-weight: bold;
    margin-bottom: 25px;
}

/* Stile base per lo stato (lo spinge sotto, lo ingrandisce e lo rende maiuscolo) */
.status-value {
    display: block;          /* Spinge lo stato ad andare a capo */
    font-size: 1.8rem;       /* Carattere più grande */
    font-weight: bold;       /* Grassetto */
    text-transform: uppercase; /* Tutto in MAIUSCOLO */
    margin-top: 8px;         /* Spazio dal testo sopra */
    transition: color 0.3s ease; /* Transizione fluida quando cambia colore */
}

/* Classi dinamiche per i colori degli stati */
.status-ottimale {
    color: #00ff88; /* Verde brillante (o #4da3ff se preferisci l'azzurro del tuo tema) */
}

.status-attenzione {
    color: #ffb300; /* Giallo / Arancione */
}

.status-critico {
    color: #ff4d4d; /* Rosso acceso */
}

/* Stile per la riga dei metriche (umidità, temperatura, luce) */
.metrics-row {
    display: flex;
    gap: 15px;
}

/* Stile per i mini box delle metriche */
.mini-box {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    padding: 12px 15px;
    min-width: 140px; /* Più largo per non far andare a capo il testo */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 4px;
    margin-top: 50px;
}

/* Stile per le etichette più piccole all'interno dei mini box */
.mini-label {
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.5);
    display: block;
    margin-bottom: 5px;
}

/* Stile per i valori più grandi all'interno dei mini box */
.value {
    font-size: 1.8rem;
    font-weight: bold;
}

#matrix {
    background-color: transparent;
    display: grid;
    /* Usiamo 20px fissi per colonna così si allinea perfettamente alla dimensione del pixel */
    grid-template-columns: repeat(8, 20px); 
    gap: 3px;
    flex-shrink: 0; /* Impedisce alla faccina di rimpicciolirsi o deformarsi */
}

.pixel {
    width: 20px;
    height: 20px;
    background: transparent;
    border-radius: 50%; 
    transition: all 0.2s ease;
}

.pixel.on {
    background: #ffffff !important;
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.8); 
}

/* Sistemiamo il contenitore Flex */
.live-flex-row {
    display: flex !important;
    flex-direction: row;
    justify-content: flex-start; /* Allinea gli elementi all'inizio (a sinistra) */
    align-items: center;
    margin-top: 10px;
    width: 100%;
}

.live-left-content {
    flex: 0 1 auto; /* Non si allarga più del necessario */
    margin-right: 50px; /* Scegli qui quanti pixel di spazio vuoi tra il testo e la faccina */
}

/* Stile per la sezione "Setup" */
.setup-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Stile per ogni item_setup */
.setup-item {
    display: flex;
    align-items: center;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.06);
    padding: 15px 20px;
    border-radius: 16px;
    justify-content: space-between;
}

/* Stile per il nome dell'item_setup */
.setup-item .item-name {
    flex: 1;
    margin-left: 15px;
    color: rgb(255, 255, 255);
}

/* Stile per il valore dell'item_setup */
.item-value {
    font-weight: 500;
}

/* Stile per lo stato "Connesso" */
.status-connected {
    color: rgba(255, 255, 255, 0.6);
}

/* Stile il punteggio */
.score-card {
    display: flex;
    flex-direction: column;
    flex: 1; /* FORZA la card ad allungarsi e a occupare tutto lo spazio verticale rimanente a destra */
}

.score-flex {
    display: flex;
    justify-content: space-between;
    align-items: flex-start; /* Alza la coppa al pari del testo */
    margin-top: 15px;
}

/* Stile per la sezione_punteggio */
.score-display {
    margin: 10px 0;
}

/* Stile per il numero_punteggio */
.score-number {
    font-size: 3.5rem;
    font-weight: bold;
    color: #4da3ff;
}

/* Stile per il testo "Punteggio Totale" */
.score-total {
    font-size: 1.2rem;
    color: rgba(255, 255, 255, 0.4);
}

/* Stile per la barra di progresso_punteggio */
.progress-bar-container {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    height: 12px;
    width: 100%;
    margin: 20px 0;
    overflow: hidden;
}

/* Stile per la barra di progresso colorata che indica il punteggio */
.progress-bar {
    background: #4da3ff;
    height: 100%;
    border-radius: 10px;
}

/* Stile per il box badge */
.badge-box {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.05);
    padding: 12px 20px;
    border-radius: 16px;
    margin-top: 12px;
}

/* Stile per il testo_badge */
.badge-text {
    font-size: 1.1rem;
    font-weight: 500;
    margin-top: 2px;
}

/* Stile per la matrice della coppa 8x8 */
.trophy-matrix {
    width: 100px; /* Leggermente più piccola della faccina per proporzione */
    height: 100px;
    background-color: transparent;
    padding: 4px;
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    grid-template-rows: repeat(8, 1fr);
    gap: 2px;
}

/* Pixel spenti invisibili */
.trophy-matrix span {
    background-color: transparent;
}

/* Pixel accesi diventano tondi e colorati di bianco con effetto luce LED */
.trophy-matrix span.gold, .trophy-matrix span.white {
    background-color: #ffffff; 
    border-radius: 50%; 
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.6); 
}

.chart-card {
    display: flex;
    flex-direction: column;
    flex: 1; /* Forza la card ad allungarsi per occupare tutto lo spazio vuoto rimasto */
}

/* Stile per il contenitore_grafico */
.chart-container {
    width: 100%;
    flex: 1; /* Espande il grafico verticalmente fino al fondo della card */
    position: relative;
}