*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    font-family:Arial;
    background:#edf6ff;
    display:flex;
}

/* SIDEBAR */
.sidebar{
    width:230px;
    min-height:100vh;

    background:linear-gradient(
        180deg,
        #023e8a,
        #0077b6
    );

    padding:20px;
}

.sidebar h2{
    color:white;
    text-align:center;
    margin-bottom:30px;
}

.sidebar a{
    display:block;

    color:white;

    text-decoration:none;

    padding:14px;

    border-radius:12px;

    margin-bottom:15px;

    background:rgba(255,255,255,0.1);
}

.sidebar a:hover{
    background:#00b4d8;
}

/* MAIN */
.main{
    flex:1;
    padding:20px;
}

/* GRID */
.grid{
    display:grid;

    grid-template-columns:
    repeat(12,1fr);

    grid-auto-rows:120px;

    gap:15px;
}

/* CARD */
.card{
    background:white;

    border-radius:20px;

    padding:20px;

    box-shadow:
    0 5px 15px rgba(0,0,0,0.1);
}

/* TITLE */
.title{
    grid-column:1 / span 9;

    background:linear-gradient(
        135deg,
        #00b4d8,
        #0077b6
    );

    color:white;

    display:flex;

    justify-content:space-between;

    align-items:center;
}

.title-left{
    font-size:30px;
    font-weight:bold;
}

.title-right{
    display:flex;
    align-items:center;
    gap:10px;
}

.title select{
    padding:10px;
    border:none;
    border-radius:10px;
}

/* CAMERA */
.camera{
    grid-column:10 / span 3;
    grid-row:1 / span 2;

    background:linear-gradient(
        135deg,
        #90e0ef,
        #48cae4
    );

    display:flex;
    justify-content:center;
    align-items:center;

    text-align:center;

    font-size:28px;
    font-weight:bold;
}

/* SENSOR */
.sensor{
    color:white;

    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
}

.sensor p{
    font-size:32px;
    font-weight:bold;
}

.suhu-card{
    grid-column:1 / span 3;

    background:linear-gradient(
        135deg,
        #ff9f1c,
        #ff5400
    );
}

.ph-card{
    grid-column:4 / span 3;

    background:linear-gradient(
        135deg,
        #2a9d8f,
        #1d3557
    );
}

.keruh-card{
    grid-column:7 / span 3;

    background:linear-gradient(
        135deg,
        #577590,
        #277da1
    );
}

/* JAM */
.jam{
    grid-column:10 / span 3;

    background:linear-gradient(
        135deg,
        #7209b7,
        #560bad
    );

    color:white;

    display:flex;
    justify-content:center;
    align-items:center;

    font-size:28px;
    font-weight:bold;
}

/* CHART */
.chart{
    grid-column:1 / span 6;
    grid-row:3 / span 2;

    height:260px;
}

/* AIR */
.air-card{
    grid-column:7 / span 3;
    grid-row:3;

    background:linear-gradient(
        135deg,
        #00b4d8,
        #0077b6
    );

    color:white;

    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
}

.air-card p{
    font-size:32px;
}

/* STATUS */
.status{
    color:white;

    display:flex;
    justify-content:center;
    align-items:center;

    text-align:center;

    font-weight:bold;
}

#kipas{
    grid-column:1 / span 3;
    grid-row:5;
}

#feeder{
    grid-column:4 / span 3;
    grid-row:5;
}

#isi{
    grid-column:7 / span 3;
    grid-row:4;
}

#kuras{
    grid-column:7 / span 3;
    grid-row:5;
}

.hidup{
    background:linear-gradient(
        135deg,
        #38b000,
        #70e000
    );
}

.mati{
    background:linear-gradient(
        135deg,
        #d90429,
        #ef233c
    );
}

/* JADWAL */
.jadwal{
    grid-column:10 / span 3;
    grid-row:4 / span 2;

    background:linear-gradient(
        135deg,
        #caf0f8,
        #ade8f4
    );
}

.jadwal h3{
    text-align:center;
    margin-bottom:15px;
}

.jadwal ul{
    list-style:none;
}

.jadwal li{
    background:white;

    padding:12px;

    margin-bottom:10px;

    border-radius:10px;

    text-align:center;

    font-weight:bold;
}

/* TABLE */
.page-title{
    margin-bottom:20px;
}

.table-container{
    margin-top:20px;

    background:white;

    border-radius:20px;

    overflow:auto;
}

table{
    width:100%;
    border-collapse:collapse;
}

th{
    background:#0077b6;
    color:white;
}

th, td{
    padding:14px;
    text-align:center;
    border-bottom:1px solid #ddd;
}

/* FORM */
form{
    background:white;

    padding:25px;

    border-radius:20px;
}

.setting-group{
    margin-bottom:30px;
}

.setting-group h3{
    margin-bottom:15px;
}

input{
    width:100%;

    padding:14px;

    margin-bottom:14px;

    border:1px solid #ccc;

    border-radius:10px;
}

button{
    padding:14px 20px;

    border:none;

    border-radius:12px;

    background:linear-gradient(
        135deg,
        #0077b6,
        #00b4d8
    );

    color:white;

    cursor:pointer;
}
/* CAMERA IMAGE */
.camera img{
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:15px;
}

/* ESP32 STATUS */
.esp32-status{
    grid-column:10 / span 3;

    background:white;

    display:flex;
    justify-content:center;
    align-items:center;

    font-weight:bold;
    font-size:20px;
}