
/* Floating status + speed widget */
.net-widget{position:fixed;right:16px;bottom:16px;z-index:9998;display:flex;align-items:center;gap:10px;
  padding:7px 8px 7px 14px;background:#fff;border:1px solid #e3e8f0;border-radius:24px;
  box-shadow:0 4px 14px rgba(31,42,68,.15);font-size:12px;line-height:1.2}
.speed-chip{font-size:12px;color:#5b6785;white-space:nowrap}
.net-dot{display:inline-flex;align-items:center;gap:5px;font-weight:600;color:#1f2a44;white-space:nowrap}
.net-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:#2e9e5b}
.net-dot.unstable:before{background:#f0ad4e}
.net-dot.poor:before,.net-dot.lost:before,.net-dot.offline:before{background:#d9534f}
.net-widget{transition:background .3s,border-color .3s}
.net-widget[data-state="unstable"]{background:#fff8ec;border-color:#f0ad4e}
.net-widget[data-state="poor"],.net-widget[data-state="lost"],.net-widget[data-state="offline"]{background:#fdeeee;border-color:#d9534f}
.net-widget[data-state="back"]{background:#eaf7ef;border-color:#2e9e5b}
.net-recheck{border:0;background:#eef2f9;color:#1f2a44;border-radius:50%;width:26px;height:26px;padding:0;
  font-size:15px;line-height:26px;cursor:pointer}
.net-recheck:hover{background:#dfe6f3}
.net-recheck:disabled{opacity:.5;cursor:default}
.net-close{border:0;background:transparent;color:#7a859c;width:22px;height:22px;padding:0;margin-left:-4px;
  font-size:18px;line-height:22px;border-radius:50%;cursor:pointer}
.net-close:hover{background:#eef2f9;color:#1f2a44}
.net-widget.closed{display:none}
.net-widget.pop{animation:netpop .4s ease-out}
@keyframes netpop{0%{transform:translateY(20px);
/* Phones: widget full width at the bottom, alert sits above it */
@media (max-width:600px){
  .net-widget{left:12px;right:12px;bottom:12px;justify-content:center;flex-wrap:wrap}
}
