body{
font-family:Arial;
background:#eef2f6;
margin:0;
padding-top:0px;
display:block;
padding-bottom:70px;

}
.nav{
display:flex;
gap:6px;
justify-content:center;
margin-bottom:20px;
}

.nav a{
background:#3498db;
color:white;
padding:8px 14px;
border-radius:8px;
text-decoration:none;
font-weight:bold;
}
.onActive{
background:#27ae60;
color:white;
}
.offActive{
background:#7f8c8d;
color:white;
}

.panel{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
gap:10px;
width:100%;
padding:0 10px;
box-sizing:border-box;
align-items:start;
}

.box{
width:100%;
box-sizing:border-box;
border-radius:12px;
padding:9px;
text-align:center;


background:#4f5b66;
color:white;
font-weight:bold;
box-shadow:0 4px 10px rgba(0,0,0,0.25);
}



.controlRow{
display:flex;
justify-content:space-between;
align-items:center;
}
.prog{
font-size:12px;
padding:5px 5px;
border-radius:10px;
background:#bdc3c7;
color:#333;
}
.prog.active{
background:#1f618d;
color:white;
}
.modeBtn{
border:none;
border-radius:7px;
padding:4px 7px;
cursor:pointer;
font-weight:bold;
font-size:14px;
}
.auto{
background:#3498db;
color:white;
}
.manual{
background:#f1c40f;
color:black;
}
.buttons{
margin-top:9px;
display:none;
justify-content:center;
gap:6px;
}
.buttons button{
border:none;
border-radius:6px;
padding:6px 21px;
cursor:pointer;
font-weight:bold;
}
.on{
background:#2ecc71;
color:white;
}
.off{
background:#bdc3c7;
color:black;
}


.online{
color:#2ecc71;
}

.offline{
color:#e74c3c;
}
.manualMode{
border:2px solid #f1c40f;
}

.modeBtn:hover{
filter:brightness(1.1);
}

.off:hover{
background:#aeb6bf;
}

.on:hover{
background:#27ae60;
}





































.bottom-nav{
position:fixed;
bottom:0;
left:0;
width:100%;
height:50px;
background:#2c3e50;
display:flex;
justify-content:space-around;
align-items:center;
z-index:999;
}

.nav-item{
color:#bdc3c7;
text-align:center;
font-size:14px;
cursor:pointer;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
height:100%;
flex:1;
transition:0.2s;
}

.nav-item span{
font-size:15px;
margin-top:2px;
}

.nav-item:hover{
color:#ffffff;
background:rgba(255,255,255,0.08);
}

.nav-item.active{
color:#2ecc71;
background:rgba(46,204,113,0.12);
font-weight:bold;
}




.nav-item.disabled{
  opacity:0.35;
  filter:grayscale(1);
  pointer-events:none;
}

/* =========================================================
   CONFIRMARE COMANDĂ NOD - spinner deasupra lui M
   ========================================================= */

.progSlot{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}







.pendingSpinner{
  position:absolute;
  left:50%;
  top:50%;
  margin-left:-6px;
  margin-top:-6px;

  width:9px;
  height:9px;

  border:2px solid rgba(255,255,255,0.75);
  border-top-color:#2c3e50;
  border-radius:50%;

  animation:pendingNodeSpin 0.75s linear infinite;

  z-index:10;
  pointer-events:none;

  box-shadow:0 0 2px rgba(0,0,0,0.25);
}

@keyframes pendingNodeSpin{
  from{ transform:rotate(0deg); }
  to{ transform:rotate(360deg); }
}
.progSlot .pendingSpinner + .prog{
  color:transparent !important;
}





.modeBtn:disabled,
.buttons button:disabled{
  cursor:wait;
}

