/* GPS 387 v0.9.23E geozone + cold-chain operational workspace */
.iot-work{display:grid;gap:16px;min-width:0}
.iot-title{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;
 border:1px solid var(--border,#dbe5ef);border-radius:15px;background:var(--paper,#fff);padding:20px}
.iot-title span{font-size:11px;color:var(--primary,#2166b6);font-weight:800;letter-spacing:.1em}
.iot-title h2{font-size:23px;letter-spacing:-.035em;margin:6px 0}
.iot-title p,.iot-footnote{font-size:12px;color:var(--muted,#62778e);line-height:1.65}
.iot-title p{max-width:740px}
.iot-select{padding:13px 17px;background:var(--paper,#fff);border-radius:12px;border:1px solid var(--border,#dbe5ef)}
.iot-select label{display:flex;align-items:center;gap:13px;font-size:13px;font-weight:700;flex-wrap:wrap}
.iot-select select{min-width:220px;max-width:100%;min-height:43px;border:1px solid var(--border,#dbe5ef);
 border-radius:9px;padding:9px;background:var(--paper,#fff);color:inherit;flex:1}
.iot-columns{display:grid;grid-template-columns:minmax(260px,.95fr) minmax(320px,1.4fr);gap:15px}
.iot-card{border-radius:14px;border:1px solid var(--border,#dbe5ef);min-width:0;overflow:hidden;background:var(--paper,#fff)}
.iot-card>header{padding:15px 17px;border-bottom:1px solid var(--border,#dbe5ef)}
.iot-card>header h3{font-size:15px;font-weight:770;margin:0}
.iot-card>.iot-footnote{padding:4px 16px 11px;margin:0}
.iot-zone{margin:12px;padding:12px 13px;border-radius:10px;background:var(--paper-soft,#f4f7fa);
 border:1px solid var(--border,#e3e8ef);display:grid;gap:6px}
.iot-zone h4{margin:0;font-size:15px}
.iot-zone>div{font-size:12px;color:var(--muted,#62778e)}
.iot-zone small{font-size:11px;color:var(--muted,#62778e)}
.iot-zone-status{border-radius:40px;padding:5px 9px;width:fit-content;font-size:11px;font-weight:760;
 color:#825321;background:#fff0de}
.iot-zone-status.gps_inside_zone{background:#dcf8e6;color:#146a43}
.iot-zone-status.gps_outside_zone{background:#e7eef7;color:#40607e}
#iotMap{height:400px;background:#e8edf2;position:relative}
.iot-pin{display:flex;align-items:center;justify-content:center;color:white;background:#1a5d9f;width:29px;height:29px;
 border-radius:50%;font-size:16px;font-weight:800;border:2px solid white;box-shadow:0 2px 8px #0004}
.iot-pin.inside{background:#147b53}.iot-pin.gps{background:#d7eeff;color:#0b406d;width:40px;height:40px}
.iot-empty{font-size:13px;color:var(--muted,#62778e);padding:16px}
.iot-sensors{padding-bottom:15px}
.iot-probe{display:grid;grid-template-columns:minmax(140px,2fr) minmax(120px,1fr) auto;align-items:center;
 gap:16px;padding:17px;border-bottom:1px solid var(--border,#dbe5ef)}
.iot-probe>div{min-width:0;display:grid;gap:6px}
.iot-probe strong{font-size:14px}.iot-probe small,.iot-probe-reading span{font-size:11px;color:var(--muted,#62778e)}
.iot-probe-reading strong{font-size:21px;letter-spacing:-.025em}
.iot-probe-reading .iot-exception{color:#b2311b;font-weight:780}
.iot-config{padding:12px 18px}
.iot-config summary{cursor:pointer;font-size:13px;font-weight:780;color:var(--primary,#2166b6)}
.iot-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:13px 0}
.iot-form label{display:grid;gap:6px;font-size:12px;color:var(--muted,#62778e)}
.iot-form select,.iot-form input{min-width:0;width:100%;padding:10px;min-height:42px;
 border:1px solid var(--border,#dbe5ef);border-radius:9px;background:var(--paper,#fff);color:inherit}
.iot-form button{min-height:43px;grid-column:1/-1;justify-self:start}
#iotStatus{font-size:12px;color:var(--primary,#2166b6);min-height:12px}
@media(max-width:1060px){.iot-columns{grid-template-columns:1fr}#iotMap{height:335px}}
@media(max-width:590px){.iot-title{padding:14px}.iot-title h2{font-size:19px}
 .iot-select{padding:11px}.iot-select label{display:grid}.iot-select select{min-width:0}
 .iot-probe{grid-template-columns:1fr 1fr;gap:10px}.iot-probe button{grid-column:1/-1}
 .iot-form{grid-template-columns:1fr}#iotMap{height:270px}}

/* Avoid an intermediate narrow canvas while transitioning from desktop to mobile;
   the native sidebar is already compact at these breakpoints. */
@media(max-width:710px){.app .sidebar{transition:none}}

.iot-events{border-top:1px solid var(--border,#dbe5ef);padding:12px 16px}
.iot-events h4{font-size:13px;margin:0 0 8px}
.iot-event{border-left:3px solid var(--primary,#2166b6);padding:5px 10px;margin:7px 0;display:grid;gap:4px;font-size:11px;background:var(--paper-soft,#f4f7fa)}
.iot-event span{color:var(--muted,#62778e);overflow-wrap:anywhere}
.iot-probe-reading strong.iot-exception{font-size:13px;color:#b2311b}
.iot-probe>div small{overflow-wrap:anywhere}
@media(max-width:590px){.iot-event{margin:6px 0}}
