/* ===== ACCESSIBILITY THEME (High Contrast & WCAG AAA) ===== */

body.theme-a11y {
  background-color: #000000; /* Pure black background */
  color: #ffffff; /* Pure white text - maximum contrast */
  background-image: none; /* Remove any textures */
  font-size: 18px; /* Larger base font size */
  line-height: 1.6; /* Increased line height for readability */
}

body.theme-a11y .prompt {
  color: #00ffff; /* Bright cyan for prompt - high visibility */
  font-weight: bold;
  text-shadow: 1px 1px 2px #000000; /* Subtle shadow for clarity */
}

body.theme-a11y .input-area {
  color: #ffffff; /* Pure white */
  caret-color: #00ffff; /* Bright cyan cursor */
  font-size: inherit; /* Respect larger font size */
}

body.theme-a11y .date {
  color: #ffff00; /* Bright yellow for dates - high contrast */
  font-weight: bold;
}

body.theme-a11y .response-line {
  color: #ffffff; /* Pure white */
  line-height: 1.6; /* Extra spacing */
}

/* ===== HIGH CONTRAST SEMANTIC COLORS ===== */
/* All colors meet WCAG AAA standards (7:1 contrast ratio) */

body.theme-a11y .command {
  color: #00ff00; /* Bright green for commands */
  font-weight: bold;
  text-decoration: underline; /* Extra visual indicator */
}

body.theme-a11y .flag {
  color: #ff8c00; /* Bright orange for flags */
  font-weight: bold;
  text-decoration: underline;
}

body.theme-a11y .header div {
  color: #ffff00; /* Bright yellow for headers */
  font-weight: bold;
  font-size: 1.2em; /* Larger headers */
  text-decoration: underline;
}

body.theme-a11y .section {
  color: #ff69b4; /* Hot pink for sections */
  font-weight: bold;
  text-decoration: underline;
}

body.theme-a11y .label {
  color: #00ffff; /* Cyan for labels */
  font-weight: bold;
}

body.theme-a11y .number {
  color: #ff4444; /* Bright red for numbers */
  font-weight: bold;
  background-color: #333333; /* Dark background for extra contrast */
  padding: 2px 4px;
  border-radius: 3px;
}

body.theme-a11y .tech {
  color: #00ff88; /* Bright green-cyan for tech */
  font-weight: bold;
}

body.theme-a11y .company {
  color: #ff88ff; /* Bright magenta for companies */
  font-weight: bold;
  font-style: italic;
}

body.theme-a11y .path {
  color: #88ccff; /* Light blue for paths */
  font-weight: bold;
  font-family: monospace; /* Ensure monospace for paths */
}

body.theme-a11y .directory {
  color: #88ccff; /* Light blue for directories */
  font-weight: bold;
  text-decoration: underline;
}

body.theme-a11y .success {
  color: #00ff00; /* Bright green for success */
  font-weight: bold;
  background-color: #004400; /* Dark green background */
  padding: 2px 6px;
  border-radius: 3px;
  border: 1px solid #00ff00;
}

body.theme-a11y .error {
  color: #ff0000; /* Bright red for errors */
  font-weight: bold;
  background-color: #440000; /* Dark red background */
  padding: 2px 6px;
  border-radius: 3px;
  border: 1px solid #ff0000;
  text-decoration: underline;
}

body.theme-a11y .tip {
  color: #ffff00; /* Bright yellow for tips */
  font-weight: bold;
  font-style: italic;
}

body.theme-a11y .link {
  color: #00ddff; /* Bright cyan for links */
  font-weight: bold;
  text-decoration: underline;
  border-bottom: 2px solid #00ddff; /* Double underline */
}

body.theme-a11y .emoji {
  color: inherit;
  font-size: 1.2em; /* Larger emojis for visibility */
}

/* ===== ENHANCED FOCUS INDICATORS ===== */
body.theme-a11y .input-area:focus,
body.theme-a11y .input-area:focus-visible {
  outline: 3px solid #ffff00; /* Bright yellow focus ring */
  outline-offset: 3px;
  background-color: #222222; /* Subtle background highlight */
  border-radius: 3px;
}

/* ===== ACCESSIBILITY ENHANCEMENTS ===== */

/* Larger click targets */
body.theme-a11y .prompt-line {
  min-height: 28px; /* Larger touch target */
  padding: 4px 0;
}

/* Enhanced spacing */
body.theme-a11y .header {
  margin-bottom: 30px; /* More space after header */
}

body.theme-a11y .response-line {
  margin: 8px 0; /* More space between responses */
  padding: 4px 0;
}

/* High contrast selection */
body.theme-a11y ::selection {
  background-color: #ffff00; /* Yellow selection background */
  color: #000000; /* Black text on yellow */
}

body.theme-a11y ::-moz-selection {
  background-color: #ffff00;
  color: #000000;
}

/* Ensure minimum contrast for all text */
body.theme-a11y * {
  text-shadow: none; /* Remove any conflicting shadows */
}

/* Special indicators for interactive elements */
body.theme-a11y .command:hover,
body.theme-a11y .flag:hover,
body.theme-a11y .link:hover {
  background-color: #333333;
  padding: 2px 4px;
  border-radius: 3px;
  cursor: pointer;
}

/* Screen reader helpers (visually hidden but available to SR) */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

body.theme-a11y .terminal {
  background-image: repeating-linear-gradient(0deg, #06370c2b, transparent 2px, rgba(0, 255, 0, 0.03) 2px, rgba(0, 255, 0, 0.03) 4px)!important; /* High contrast terminal background */
}

body.theme-a11y pre em { color: #fe00ff; }
body.theme-a11y pre i  { color: #250f90; }
body.theme-a11y pre b  { color: #440101; }

body.theme-a11y pre em { color: yellow; }
body.theme-a11y pre i  { color: #00ffff77; }
body.theme-a11y pre b  { color: #003301; }


body.theme-a11y .ascii-art:hover em span {
  animation: digitalGlitch 2s infinite;
}

@keyframes digitalGlitch {
  0%, 90% { transform: translateX(0); }
  91% { transform: translateX(-2px); color: #ff0000; }
  92% { transform: translateX(2px); color: #00ff00; }
  93% { transform: translateX(-1px); color: #0000ff; }
  100% { transform: translateX(0); color: #00ff00; }
}