:root {
    --bg-color: #000000;
    --text-color: #FFFFFF;
    --accent-color: #00FFE0;
    /* Kontrast 3.3:1 > 3:1 */
    --border-color: rgba(0, 255, 224, 0.45);
}
html {
    /* Base font size for scalable text */
    font-size: 16px;
}
body {
    background-color: var(--bg-color);
    color: var(--text-color);
    font-family: 'JetBrains Mono', monospace;
    overscroll-behavior: none;
}
body.mobile-menu-open {
    overflow: hidden;
}
.console-border {
    border: 1px solid var(--border-color);
}
.console-accent {
    color: var(--accent-color);
}
.focus-ring:focus {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}
/* Dodano focus-visible dla lepszej dostępności klawiatury */
.focus-ring:focus-visible {
     outline: 2px solid var(--accent-color);
     outline-offset: 2px;
}

.blinking-cursor {
    display: inline-block;
    width: 8px;
    height: 1.2em;
    background-color: var(--accent-color);
    animation: blink 1s step-end infinite;
}
@keyframes blink {
    50% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .blinking-cursor, .fade-in, body:not(.animations-forced) .fade-in, body:not(.animations-forced) .blinking-cursor {
        animation: none !important;
        transition: none !important;
    }
}
/* Accessibility Overrides */
body.no-animations * {
     animation: none !important;
     transition: none !important;
}
body.readable-font {
    font-family: Arial, Helvetica, sans-serif;
}
body.underline-links a, body.underline-links button[data-modal-target] {
    text-decoration: underline;
}
body.high-contrast {
    --bg-color: #000000;
    --text-color: #FFFF00;
    --accent-color: #00FFFF;
    --border-color: #FFFF00;
}
body.high-contrast a, body.high-contrast button {
     color: var(--accent-color);
}
body.high-contrast img {
    filter: grayscale(100%) contrast(200%);
}

.fade-in {
    animation: fadeInAnimation 0.5s ease-in-out;
}
@keyframes fadeInAnimation {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}
.system-log-item {
    display: flex;
    gap: 1rem;
    white-space: pre;
}
/* Poprawka kontrastu znacznika czasu (4.79:1 > 4.5:1) */
.system-log-item .log-timestamp {
    color: #9CA3AF; /* Tailwind gray-400 */
}

/* Scrollbar styles */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
::-webkit-scrollbar-track {
    background: rgba(0, 255, 224, 0.05);
}
::-webkit-scrollbar-thumb {
    background: var(--accent-color);
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #00b3a4;
}

/* Dostępny tekst błędu (kontrast 5.5:1) */
.text-error {
    color: #F87171; /* Tailwind red-400 */
}

/* Ukrywanie tylko wizualne dla linku Skip */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.focus\:not-sr-only:focus {
  position: static;
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
}