@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Share+Tech+Mono&display=swap');

/* Base Styles & Typography */
body {
  font-family: 'Outfit', sans-serif;
  background-color: #020617; /* bg-slate-950 */
  color: #f8fafc; /* text-slate-50 */
  overflow: hidden;
  height: 100vh;
  height: 100dvh;
}

.font-mono {
  font-family: 'Share Tech Mono', monospace;
}

/* Glassmorphism Styles */
.glass-panel {
  background: rgba(15, 23, 42, 0.65); /* slate-900 with opacity */
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
}

.glass-panel-light {
  background: rgba(255, 255, 255, 0.03);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

/* Animations */
@keyframes pulse-glow {
  0%, 100% {
    box-shadow: 0 0 15px rgba(59, 130, 246, 0.2);
    border-color: rgba(59, 130, 246, 0.3);
  }
  50% {
    box-shadow: 0 0 25px rgba(59, 130, 246, 0.5);
    border-color: rgba(59, 130, 246, 0.6);
  }
}

.glow-active {
  animation: pulse-glow 2s infinite;
}

@keyframes LED-blink {
  0%, 100% {
    opacity: 0.3;
    box-shadow: none;
  }
  50% {
    opacity: 1;
    box-shadow: 0 0 10px currentColor;
  }
}

.led-blink {
  animation: LED-blink 1s infinite;
}

/* Custom Scrollbar for Sidebar */
::-webkit-scrollbar {
  width: 6px;
}

::-webkit-scrollbar-track {
  background: rgba(15, 23, 42, 0.3);
}

::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.25);
}

/* Canvas styling */
canvas {
  image-rendering: -moz-crisp-edges;
  image-rendering: -webkit-crisp-edges;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

/* Custom progress ring for Speedometer */
.speedometer-ring {
  transition: stroke-dashoffset 0.1s ease-out;
}

/* Button transitions */
.btn-transition {
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Responsive Canvas Wrapper */
.canvas-wrapper {
  position: relative;
  width: min(1100px, 100%, calc((100vh - 110px) * 1.333));
  height: auto;
  aspect-ratio: 4 / 3;
}
