/*****************************************/
/* Styles specifiques a la page Dashboard */
/* (fonts, couleurs et layout communs :   */
/* voir base.css)                        */
/*****************************************/

body {
    padding: 60px;
    padding-bottom: 0px;
    height: calc(100vh - 80px);
}

/* le span des gauges reprend le style de h2 (valeurs de mesure) */
span {
    position: relative;
    text-align: center;
    color: #fff;
    font-weight: 300;
    font-family: 'GlacialIndifference Regular', sans-serif;
    font-size: 25px;
    display: block;
}



/************/
/*** MAIN ***/
/************/
.dashboard {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, 350px);
    grid-template-rows: repeat(3, 400px);
    grid-gap: 40px;
    margin: auto 100px;
    height: auto;
    /*     grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));    */
}

.panel {
    background-color: rgba(53, 53, 53, 0.5);
    padding: 10px;
    border-radius: 20px;
    box-shadow: 0 0 40px #0088ff30;
}

.cpu-panel {
    grid-column: 1;
    grid-row: 1;
}
  
.memory-panel {

}
  
.storage-panel {
  
}
  
.traffic-panel {
    grid-column: span 3 / span 4;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.traffic-panel h2,
.traffic-panel .custom-legend {
    flex: 0 0 auto;
}

.chart-container {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
}

.alerts-panel {
    grid-column: 4;
    grid-row: span 2 / span 3;
}

.sys-panel {
    grid-column: span 3 / span 4;
}



/****************/
/* RESPONSIVE   */
/****************/

@media (max-width: 1500px) {
    .dashboard {
        grid-template-columns: repeat(2, minmax(280px, 1fr));
        grid-template-rows: repeat(6, 350px);
        margin: auto 40px;
    }

    .cpu-panel { grid-column: 1; grid-row: 1; }
    .memory-panel { grid-column: 2; grid-row: 1; }
    .storage-panel { grid-column: 1; grid-row: 2; }
    .traffic-panel { grid-column: 1 / span 2; grid-row: 3; }
    .alerts-panel { grid-column: 1 / span 2; grid-row: 4 / span 2; }
    .sys-panel { grid-column: 1 / span 2; grid-row: 6; }
}

@media (max-width: 700px) {
    body {
        padding: 20px;
        padding-top: 50px;
        height: auto;
    }

    h1 {
        font-size: 36px;
    }

    .dashboard {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        grid-gap: 20px;
        margin: 0;
    }

    .cpu-panel, .memory-panel, .storage-panel,
    .traffic-panel, .alerts-panel, .sys-panel {
        grid-column: auto;
        grid-row: auto;
    }

    .panel {
        min-height: 260px;
    }

    /* prevent the chart from collapsing to 0 height once the grid row is no longer fixed */
    .traffic-panel {
        min-height: 320px;
    }

    .meter {
        height: 140px;
    }
}

@media (max-width: 480px) {
    body {
        padding: 12px;
        padding-top: 44px;
    }

    h1 {
        font-size: 28px;
        margin: 10px;
    }

    h2, span {
        font-size: 20px;
    }

    p {
        font-size: 16px;
    }

    .dashboard {
        grid-gap: 14px;
    }

    .panel {
        padding: 8px;
        border-radius: 14px;
    }

    .meter {
        height: 110px;
    }

    .modal-content {
        margin: 10vh 5vw;
        padding: 12px;
    }
}