*, *::before, *::after { box-sizing: border-box; }
html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  min-height: 100%;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  line-height: 1.4;
}
button {
  font: inherit;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-user-select: none;
  user-select: none;
}
[hidden] { display: none !important; }

/* Connection indicator injected by bus.js */
.bus-dot {
  position: fixed;
  top: calc(env(safe-area-inset-top, 0px) + 8px);
  right: 8px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  z-index: 9999;
  pointer-events: none;
  background: #e0a100;
  transition: background 0.3s;
}
.bus-dot[data-status="online"] { background: #22b04b; }
.bus-dot[data-status="offline"] { background: #d33; }
