* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --amiga-blue: #0055aa;
  --amiga-dark-blue: #000088;
  --amiga-orange: #ff8800;
  --amiga-white: #ffffff;
  --amiga-grey: #aaaaaa;
  --amiga-dark-grey: #666666;
  --amiga-bg: #222233;
  --amiga-panel: #444455;
  --amiga-black: #000000;
  --amiga-green: #00ff66;
  --amiga-red: #ff3333;
}

body {
  background: var(--amiga-bg);
  font-family: 'IBM Plex Mono', monospace;
  color: var(--amiga-white);
  min-height: 100vh;
  overflow-x: hidden;
}

/* Scanline overlay */
body::after {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9999;
  background: repeating-linear-gradient(
    0deg,
    rgba(0, 0, 0, 0.08) 0px,
    rgba(0, 0, 0, 0.08) 1px,
    transparent 1px,
    transparent 3px
  );
}

.pixel-font {
  font-family: 'Press Start 2P', monospace;
}

.mono-font {
  font-family: 'IBM Plex Mono', monospace;
}

/* Amiga beveled button */
.amiga-btn {
  background: #bbbbbb;
  color: #000;
  border-top: 2px solid #ffffff;
  border-left: 2px solid #ffffff;
  border-bottom: 2px solid #555555;
  border-right: 2px solid #555555;
  padding: 6px 16px;
  font-family: 'Press Start 2P', monospace;
  font-size: 10px;
  cursor: pointer;
  user-select: none;
  transition: none;
}

.amiga-btn:active, .amiga-btn.pressed {
  border-top: 2px solid #555555;
  border-left: 2px solid #555555;
  border-bottom: 2px solid #ffffff;
  border-right: 2px solid #ffffff;
  background: #999999;
}

.amiga-btn:hover {
  background: #cccccc;
}

.amiga-btn.active-toggle {
  background: var(--amiga-orange);
  color: #000;
  border-top: 2px solid #ffcc66;
  border-left: 2px solid #ffcc66;
  border-bottom: 2px solid #884400;
  border-right: 2px solid #884400;
}

/* Amiga panel (sunken) */
.amiga-panel {
  background: #333344;
  border-top: 2px solid #222233;
  border-left: 2px solid #222233;
  border-bottom: 2px solid #666677;
  border-right: 2px solid #666677;
}

/* Amiga panel (raised) */
.amiga-panel-raised {
  background: #555566;
  border-top: 2px solid #888899;
  border-left: 2px solid #888899;
  border-bottom: 2px solid #333344;
  border-right: 2px solid #333344;
}

/* Title bar stripes */
.title-stripes {
  background: repeating-linear-gradient(
    0deg,
    var(--amiga-blue) 0px,
    var(--amiga-blue) 2px,
    var(--amiga-white) 2px,
    var(--amiga-white) 4px
  );
}

/* Workbench title bar */
.workbench-titlebar {
  background: var(--amiga-blue);
  display: flex;
  align-items: center;
  padding: 4px 8px;
  gap: 8px;
}

/* Drop zone */
.drop-zone {
  border: 3px dashed var(--amiga-orange);
  transition: all 0.2s;
}

.drop-zone.dragover {
  border-color: var(--amiga-green);
  background: rgba(0, 255, 102, 0.05);
}

/* Volume slider */
input[type="range"].amiga-slider {
  -webkit-appearance: none;
  appearance: none;
  height: 8px;
  background: #222;
  border: 1px solid #666;
  outline: none;
  cursor: pointer;
}

input[type="range"].amiga-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 24px;
  background: #bbbbbb;
  border-top: 2px solid #ffffff;
  border-left: 2px solid #ffffff;
  border-bottom: 2px solid #555555;
  border-right: 2px solid #555555;
  cursor: pointer;
}

input[type="range"].amiga-slider::-moz-range-thumb {
  width: 16px;
  height: 24px;
  background: #bbbbbb;
  border-top: 2px solid #ffffff;
  border-left: 2px solid #ffffff;
  border-bottom: 2px solid #555555;
  border-right: 2px solid #555555;
  cursor: pointer;
  border-radius: 0;
}

/* Floppy spin animation */
@keyframes floppySpin {
  0% { transform: rotateY(0deg); }
  100% { transform: rotateY(360deg); }
}

.floppy-spin {
  animation: floppySpin 1s linear infinite;
  display: inline-block;
}

/* Channel canvas */
.channel-canvas {
  image-rendering: pixelated;
}

/* Green terminal text */
.terminal-text {
  color: var(--amiga-green);
  text-shadow: 0 0 8px rgba(0, 255, 102, 0.4);
}

/* VU meter colors */
.vu-bar {
  transition: width 0.05s linear;
}

/* Pattern list scrollbar */
.pattern-list::-webkit-scrollbar {
  width: 12px;
}

.pattern-list::-webkit-scrollbar-track {
  background: #222;
}

.pattern-list::-webkit-scrollbar-thumb {
  background: #666;
  border: 1px solid #888;
}

/* Copper bar gradient for spectrum */
.copper-gradient {
  background: linear-gradient(
    180deg,
    #ff0000 0%,
    #ff8800 14%,
    #ffff00 28%,
    #00ff00 42%,
    #00ffff 57%,
    #0088ff 71%,
    #8800ff 85%,
    #ff00ff 100%
  );
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.6; }
}

.pulse-anim {
  animation: pulse 1.5s ease-in-out infinite;
}

/* Responsive */
@media (max-width: 640px) {
  .amiga-btn {
    padding: 8px 12px;
    font-size: 8px;
  }
}