*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:Arial,Helvetica,sans-serif;
}

body{
background:#0c111b;
color:#fff;
padding:18px;
}

#app{
max-width:1300px;
margin:auto;
}

.header{
display:flex;
justify-content:space-between;
align-items:center;
margin-bottom:20px;
}

.title h1{
font-size:42px;
font-weight:800;
line-height:1;
}

.title p{
margin-top:10px;
color:#7d8b9f;
letter-spacing:3px;
font-size:13px;
}

.live{
font-size:22px;
font-weight:700;
color:#53ef75;
}

.grid3{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
gap:18px;
margin-top:20px;
}

.card{
background:#171f2b;
border:1px solid #263446;
border-radius:22px;
padding:24px;
box-shadow:0 10px 25px rgba(0,0,0,.35);
}

.label{
font-size:14px;
letter-spacing:4px;
color:#8e99aa;
margin-bottom:18px;
}

.value{
font-size:62px;
font-weight:800;
}

.avg{
margin-top:12px;
color:#9aa8bb;
font-size:24px;
}

canvas{
width:100%;
display:block;
}

.gaugeCard{
height:360px;
}

.chartCard{
height:340px;
}


.gaugeCard{
height:280px !important;
padding:12px !important;
display:flex;
justify-content:center;
align-items:center;
}

.gaugeCard canvas{
width:220px !important;
height:220px !important;
display:block;
margin:auto;
}



.value{
font-size:48px !important;
}

.avg{
font-size:16px !important;
margin-top:8px !important;
}

.card{
padding:16px !important;
}

.chartCard{
height:260px !important;
}

.chartCard canvas{
height:180px !important;
}



.header{
margin-bottom:12px !important;
}

.grid3{
gap:12px !important;
}

.gaugeCard{
height:240px !important;
}

.gaugeCard canvas{
width:190px !important;
height:190px !important;
}

.chartCard{
height:220px !important;
}

.chartCard canvas{
height:150px !important;
}



@media (min-width:1200px){

.grid3{
grid-template-columns:repeat(3,1fr);
}

.card{
border-radius:18px;
}

.gaugeCard{
height:210px !important;
}

.gaugeCard canvas{
width:170px !important;
height:170px !important;
}

.chartCard{
height:200px !important;
}

.chartCard canvas{
height:135px !important;
}

}



body{
zoom:0.92;
overflow-x:hidden;
}

#app{
max-width:1500px;
margin:auto;
}

.header{
padding-bottom:10px;
border-bottom:1px solid #263446;
}

.value{
font-size:40px !important;
}

.label{
font-size:12px !important;
letter-spacing:2px !important;
}

.gaugeCard{
padding:8px !important;
}

.chartCard{
padding:12px !important;
}



/* Professional dashboard spacing */

.grid3{
row-gap:10px !important;
column-gap:10px !important;
}

.card{
background:#151d27 !important;
border:1px solid #2b394b !important;
box-shadow:0 6px 18px rgba(0,0,0,.28) !important;
}

.gaugeCard{
height:190px !important;
}

.gaugeCard canvas{
width:155px !important;
height:155px !important;
}

.chartCard{
height:185px !important;
}

.chartCard canvas{
height:120px !important;
}



/* Final compact SCADA layout */

@media (min-width:1200px){

#app{
max-width:1450px;
}

.grid3{
display:grid;
grid-template-columns:repeat(3,minmax(0,1fr));
gap:8px !important;
}

.card{
padding:12px !important;
border-radius:14px !important;
}

.value{
font-size:34px !important;
line-height:1.1;
}

.avg{
font-size:14px !important;
}

.gaugeCard{
height:170px !important;
}

.gaugeCard canvas{
width:145px !important;
height:145px !important;
}

.chartCard{
height:170px !important;
}

.chartCard canvas{
height:105px !important;
}

}



/* Finish V1 */

.header{
margin-bottom:8px !important;
}

.title h1{
font-size:30px !important;
}

.title p{
font-size:11px !important;
letter-spacing:2px !important;
}

.live{
font-size:16px !important;
}

.label{
margin-bottom:8px !important;
}

.value{
font-size:30px !important;
}

.avg{
margin-top:4px !important;
font-size:13px !important;
}

.gaugeCard{
height:160px !important;
}

.gaugeCard canvas{
width:135px !important;
height:135px !important;
}

.chartCard{
height:160px !important;
}

.chartCard canvas{
height:95px !important;
}



/* ===== Dashboard V2 Final Layout ===== */

body{
background:#0b1017!important;
}

#app{
max-width:1700px!important;
padding:10px!important;
}

.grid3{
display:grid!important;
grid-template-columns:repeat(3,1fr)!important;
gap:10px!important;
}

.card{
background:#151d28!important;
border:1px solid #29384a!important;
border-radius:14px!important;
padding:12px!important;
}

.gaugeCard{
height:260px!important;
}

.gaugeCard canvas{
width:210px!important;
height:210px!important;
}

.chartCard{
height:240px!important;
}

.chartCard canvas{
height:170px!important;
}

.value{
font-size:36px!important;
font-weight:700!important;
}

.avg{
font-size:14px!important;
opacity:.8;
}



/* ---------- V3 Final Layout ---------- */

.gaugeCard{
height:220px !important;
padding:6px !important;
display:flex;
justify-content:center;
align-items:center;
}

.gaugeCard canvas{
width:170px !important;
height:170px !important;
}

.chartCard{
height:190px !important;
padding:10px !important;
}

.chartCard canvas{
height:125px !important;
}

.card{
padding:10px !important;
}

.value{
font-size:28px !important;
}

.avg{
font-size:12px !important;
}



body{
overflow-x:hidden!important;
}

#app{
max-width:1550px!important;
margin:auto!important;
padding:8px!important;
}

.header{
margin-bottom:8px!important;
}

.grid3{
gap:8px!important;
}

.card{
border-radius:12px!important;
box-shadow:0 4px 12px rgba(0,0,0,.25)!important;
}



/* ===== V4 Dashboard ===== */

.grid3{
display:grid;
grid-template-columns:repeat(3,minmax(0,1fr));
gap:12px;
}

.card{
background:#141b24;
border:1px solid #2d3948;
border-radius:14px;
padding:14px;
box-shadow:0 4px 12px rgba(0,0,0,.25);
}

.gaugeCard{
height:230px;
display:flex;
justify-content:center;
align-items:center;
}

.gaugeCard canvas{
width:180px;
height:180px;
}

.chartCard{
height:220px;
}

.chartCard canvas{
height:150px!important;
}


.avg{
font-size:11px!important;
line-height:1.7!important;
color:#b8c4d1!important;
white-space:normal!important;
}


.avg{
display:grid!important;
grid-template-columns:1fr 1fr!important;
gap:2px 10px!important;
margin-top:8px!important;
font-size:11px!important;
line-height:1.5!important;
color:#b8c4d1!important;
}

.avg b{
color:#ffffff!important;
font-weight:700!important;
}



.avg{
display:flex!important;
justify-content:space-between!important;
align-items:flex-start!important;
gap:8px!important;
margin-top:10px!important;
}

.avg div{
flex:1;
text-align:center;
padding:4px;
border-top:1px solid #2d3948;
}

.avg b{
display:block;
font-size:10px;
letter-spacing:1px;
color:#8fbfff;
margin-bottom:2px;
}


.avg div{
display:flex!important;
flex-direction:column!important;
align-items:center!important;
}

.avg span{
display:block!important;
margin-top:3px!important;
font-size:11px!important;
font-weight:600!important;
color:#ffffff!important;
}


.avg{
margin-top:12px!important;
padding-top:8px!important;
border-top:1px solid #2c3948!important;
}

.avg div{
background:#1b2430!important;
border:1px solid #304255!important;
border-radius:8px!important;
padding:6px 4px!important;
transition:.2s;
}

.avg div:hover{
background:#233041!important;
}

.avg b{
font-size:10px!important;
color:#7ec8ff!important;
letter-spacing:1px!important;
}

.avg span{
font-size:12px!important;
font-weight:700!important;
color:#fff!important;
}


.avg{
display:grid!important;
grid-template-columns:repeat(3,1fr)!important;
gap:6px!important;
}

.avg div{
display:flex!important;
flex-direction:column!important;
justify-content:center!important;
align-items:center!important;
background:#1a2330!important;
border:1px solid #314254!important;
border-radius:8px!important;
padding:8px 4px!important;
min-height:56px!important;
}

.avg b{
font-size:10px!important;
color:#77c8ff!important;
margin-bottom:4px!important;
}

.avg span{
font-size:12px!important;
font-weight:700!important;
color:#fff!important;
}


.value{
margin-bottom:12px!important;
}

.avg{
margin-top:0!important;
padding-top:10px!important;
border-top:1px solid #2f3d4f!important;
}

.avg div{
box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}


.value{
margin-bottom:12px!important;
}

.avg{
margin-top:0!important;
padding-top:10px!important;
border-top:1px solid #2f3d4f!important;
}

.avg div{
box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}


#trendTemp,#trendHum,#trendPres{
font-size:18px;
font-weight:700;
color:#6ee7ff;
}


.sensorStatus{
margin-top:8px;
text-align:center;
font-size:11px;
font-weight:700;
color:#4ee67a;
letter-spacing:1px;
}


#sysState{
color:#4ee67a!important;
font-weight:700!important;
}

#lastUpdate,
#uptime{
font-size:20px!important;
font-weight:700!important;
text-align:center!important;
color:#ffffff!important;
}

.label{
display:flex!important;
justify-content:space-between!important;
align-items:center!important;
}

.card{
transition:.2s;
}

.card:hover{
border-color:#4aa8ff!important;
box-shadow:0 0 14px rgba(74,168,255,.25)!important;
}


.avg{
grid-template-columns:repeat(5,1fr)!important;
}

.avg div{
min-height:62px!important;
}

.avg b{
font-size:9px!important;
}

.avg span{
font-size:11px!important;
line-height:1.2!important;
}

#trendTemp,
#trendHum,
#trendPres{
font-size:20px!important;
font-weight:700!important;
}


#clock{
font-weight:700;
color:#ffffff;
margin-left:10px;
}

.sensorStatus{
background:#1b2532;
border:1px solid #304356;
border-radius:8px;
padding:6px;
}


#comfort,
#dewPoint,
#heatIndex{
font-size:22px!important;
font-weight:700!important;
text-align:center!important;
}

#comfort{
color:#4ee67a;
}

#dewPoint{
color:#4aa8ff;
}

#heatIndex{
color:#ffb347;
}


#airQuality,
#pressureTrend,
#sampleAge{
font-size:22px!important;
font-weight:700!important;
text-align:center!important;
}

#airQuality{
color:#4ee67a;
}

#pressureTrend{
color:#7ec8ff;
}

#sampleAge{
color:#ffd166;
}


#sensorHealth,
#dataQuality,
#updateRate{
font-size:22px!important;
font-weight:700!important;
text-align:center!important;
}

#sensorHealth{color:#4ee67a;}
#dataQuality{color:#4aa8ff;}
#updateRate{color:#ffd166;}

.value{
text-shadow:0 0 10px rgba(255,255,255,.08);
}

.card{
overflow:hidden;
}


#alarmState{color:#4ee67a;}
#aiState{color:#4aa8ff;}

#sumTemp,#sumHum,#sumPres{
font-weight:700;
color:#fff;
}


#cpuLoad,
#memLoad,
#netState{
font-size:22px!important;
font-weight:700!important;
text-align:center!important;
}

#netState{
color:#4ee67a;
}


#dataPoints,
#refreshRate,
#dashState{
font-size:22px!important;
font-weight:700!important;
text-align:center!important;
}

#dashState{
color:#4ee67a;
}


#tempRate,
#humRate,
#presRate{
font-size:20px!important;
font-weight:700!important;
text-align:center!important;
color:#7ec8ff!important;
}


#records,
#sessionTime,
#apiStatus{
font-size:22px!important;
font-weight:700!important;
text-align:center!important;
}

#apiStatus{
color:#4ee67a!important;
}



#pres{
font-size:28px!important;
line-height:1.1!important;
white-space:nowrap!important;
letter-spacing:0!important;
}



#aiMini{
width:220px;
min-height:140px;
padding:12px;
border-radius:14px;
font-size:14px;
}

#aiMini h3{
margin:0 0 8px 0;
font-size:18px;
}

#aiMini div{
margin:4px 0;
}
