/* Terminal Classic - Web Terminal Emulator Styles */

/* Base terminal colors */
:root {
  --term-bg: #0D0D0D;
  --term-fg: #F8F8F2;
  --term-selection: #44475A;
  
  /* Theme palette */
  --term-comment: #6272A4;
  --term-cyan: #8BE9FD;
  --term-green: #50FA7B;
  --term-orange: #FFB86C;
  --term-pink: #FF79C6;
  --term-purple: #BD93F9;
  --term-red: #FF5555;
  --term-yellow: #F1FA8C;
  
  /* Bright variants */
  --term-bright-black: #6272A4;
  --term-bright-red: #FF6E6E;
  --term-bright-green: #69FF94;
  --term-bright-yellow: #FFFFA5;
  --term-bright-blue: #D6ACFF;
  --term-bright-magenta: #FF92DF;
  --term-bright-cyan: #A4FFFF;
  --term-bright-white: #FFFFFF;
  
  /* Box drawing - light */
  --box-h: '─';
  --box-v: '│';
  --box-tl: '┌';
  --box-tr: '┐';
  --box-bl: '└';
  --box-br: '┘';
  
  /* Progress */
  --progress-filled: '█';
  --progress-empty: '░';
}

.terminal {
  background: var(--term-bg);
  color: var(--term-fg);
  font-family: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', 'Consolas', monospace;
  font-size: 14px;
  line-height: 1.5;
  padding: 16px;
}

.terminal::selection {
  background: var(--term-selection);
}

/* Syntax highlighting classes */
.terminal .keyword { color: var(--term-pink); }
.terminal .string { color: var(--term-cyan); }
.terminal .number { color: var(--term-orange); }
.terminal .comment { color: var(--term-comment); font-style: italic; }
.terminal .function { color: var(--term-green); }
.terminal .variable { color: var(--term-fg); }
.terminal .operator { color: var(--term-pink); }
.terminal .tag { color: var(--term-purple); }
.terminal .attribute { color: var(--term-orange); }
.terminal .type { color: var(--term-purple); }

/* Status indicators */
.terminal .success { color: var(--term-green); }
.terminal .error { color: var(--term-red); }
.terminal .warning { color: var(--term-yellow); }
.terminal .info { color: var(--term-cyan); }

/* Prompt styles */
.terminal .prompt { color: var(--term-purple); }
.terminal .prompt-user { color: var(--term-cyan); }
.terminal .prompt-host { color: var(--term-pink); }
.terminal .prompt-path { color: var(--term-green); }
.terminal .prompt-symbol { color: var(--term-yellow); }

/* Box drawing helpers */
.terminal .box-light { color: var(--term-fg); }
.terminal .box-heavy { color: var(--term-purple); }
.terminal .box-accent { color: var(--term-cyan); }

/* Progress bar */
.terminal .progress {
  display: inline-block;
  background: var(--term-selection);
  padding: 2px 0;
}

.terminal .progress-fill {
  background: var(--term-green);
  height: 100%;
}

.terminal .spinner {
  animation: spin 1s steps(10) infinite;
}

@keyframes spin {
  0% { content: '⠋'; }
  10% { content: '⠙'; }
  20% { content: '⠹'; }
  30% { content: '⠸'; }
  40% { content: '⠼'; }
  50% { content: '⠴'; }
  60% { content: '⠦'; }
  70% { content: '⠧'; }
  80% { content: '⠇'; }
  90% { content: '⠏'; }
}

/* Cursor */
.terminal .cursor {
  display: inline-block;
  width: 8px;
  height: 1.2em;
  background: var(--term-fg);
  animation: blink 1s step-end infinite;
}

.terminal .cursor.block {
  background: var(--term-fg);
}

.terminal .cursor.underline {
  height: 2px;
  width: auto;
  min-width: 8px;
}

.terminal .cursor.bar {
  width: 2px;
}

@keyframes blink {
  0%, 50% { opacity: 1; }
  51%, 100% { opacity: 0; }
}

/* Scrollbar */
.terminal ::-webkit-scrollbar {
  width: 8px;
}

.terminal ::-webkit-scrollbar-track {
  background: var(--term-bg);
}

.terminal ::-webkit-scrollbar-thumb {
  background: var(--term-comment);
  border-radius: 4px;
}

.terminal ::-webkit-scrollbar-thumb:hover {
  background: var(--term-bright-black);
}
