* { box-sizing: border-box; margin: 0; padding: 0; }
html, body, #root { height: 100%; width: 100%; }

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #0d1117; }
::-webkit-scrollbar-thumb { background: #30363d; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #484f58; }

.glow-green { text-shadow: 0 0 10px #00ff41, 0 0 20px #00ff4180, 0 0 40px #00ff4140; }
.glow-amber { text-shadow: 0 0 10px #f0a500, 0 0 20px #f0a50080; }
.glow-blue { text-shadow: 0 0 8px #58a6ff80; }

@keyframes pulse-dot {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}
.pulse-dot { animation: pulse-dot 1.5s ease-in-out infinite; }

@keyframes flash-yellow {
  0% { background-color: #f0a50040; }
  100% { background-color: transparent; }
}
.reg-flash { animation: flash-yellow 0.6s ease-out; }

@keyframes blink-cursor {
  0%, 50% { opacity: 1; }
  51%, 100% { opacity: 0; }
}
.blink-cursor { animation: blink-cursor 1s step-end infinite; }

.scanlines {
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(0,0,0,0.15) 2px,
    rgba(0,0,0,0.15) 4px
  );
  pointer-events: none;
}

.drop-zone {
  border: 2px dashed #30363d;
  transition: all 0.2s;
}
.drop-zone:hover, .drop-zone.drag-over {
  border-color: #58a6ff;
  background: #58a6ff10;
}

.tab-active {
  border-bottom: 2px solid #58a6ff;
  color: #58a6ff;
}

input[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  height: 4px;
  background: #30363d;
  border-radius: 2px;
  outline: none;
}
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #58a6ff;
  cursor: pointer;
}

.terminal-container {
  position: relative;
  overflow: hidden;
}
.terminal-container::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at center, transparent 60%, rgba(0,0,0,0.4) 100%);
  pointer-events: none;
  z-index: 2;
}