:root {
  --text-primary: #33414e;
  --text-secondary: #44515e;
  --text-muted: #6b7a86;
  --accent-green: #6dbe88;
  --accent-sage: #9fd2a8;
  --accent-deep: #4a9a66;
  --border-soft: #33414e1a;
  --border-strong: #33414e29;
  --glass-bg: #ffffffb8;
  --glass-border: #6dbe8847;
  --kenya-black: #1a1a1a;
  --kenya-red: #bb0000;
  --kenya-green: #006600;
}

html, body {
  height: 100%;
}

body {
  margin: 0;
  padding: 0;
  font-family: "Figtree", "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  color: var(--text-primary);
}

@media (prefers-color-scheme: dark) {
  body {
    background: var(--kenya-black);
  }
}

.root {
  display: flex;
  flex-direction: column;
  height: 100%;
}

@keyframes niot-rise {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes niot-ring-pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 0.55;
  }
  50% {
    transform: scale(1.03);
    opacity: 0.9;
  }
}

@keyframes niot-ring-spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes niot-iris {
  0%, 100% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0.85;
  }
  50% {
    transform: translate(-50%, -50%) scale(1.08);
    opacity: 1;
  }
}

@keyframes niot-scan {
  to {
    transform: translate(-50%, -100%) rotate(360deg);
  }
}

@keyframes niot-pulse-ring {
  0% {
    box-shadow: 0 0 0 0 rgba(109, 190, 136, 0.45);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(109, 190, 136, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(109, 190, 136, 0);
  }
}

.ae-status-online,
.niot-status-online {
  animation: niot-pulse-ring 2.2s ease-out infinite;
}

@media print {
  * {
    height: auto !important;
    overflow: visible !important;
  }
}
