.sidebar {
  flex: 0 0 35%;
  max-width: 320px;
  border-right: 1px solid var(--color-secondary);
  padding: var(--space-md);
  background-color: var(--color-surface);
  overflow-y: auto;
}
[data-theme="dark"] .sidebar {
  border-right: 1px solid var(--link-color);
}

@media (max-width: 600px) {
  .sidebar {
    max-width: none;
    border-right: none;
    border-bottom: 1px solid var(--color-secondary);
  }
}

.sidebar-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.sidebar-list li {
  padding: var(--space-sm) var(--space-md);
  min-height: var(--touch-target-size, 44px);
  cursor: pointer;
  border-left: 4px solid transparent;
  display: flex;
  align-items: center;
}

.sidebar-list li:hover:not(.selected),
.sidebar-list li:active:not(.selected) {
  background: var(--color-secondary);
  color: var(--color-text-inverted);
}

[data-theme="dark"] .sidebar-list li:hover:not(.selected),
[data-theme="dark"] .sidebar-list li:active:not(.selected) {
  background: var(--link-color);
}

/* Highlight the item currently focused via keyboard */
.sidebar-list li:focus {
  outline: 2px solid var(--link-color);
  outline-offset: -2px;
}

.sidebar-list li:nth-child(odd),
.sidebar-list li.odd {
  background-color: var(--color-surface);
}

.sidebar-list li:nth-child(even),
.sidebar-list li.even {
  background-color: var(--color-tertiary);
}

@keyframes sidebarPulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.03);
  }
  100% {
    transform: scale(1);
  }
}

.sidebar-list li.selected {
  background: var(--color-secondary);
  color: var(--color-text-inverted);
  animation: sidebarPulse 150ms ease;
}
[data-theme="dark"] .sidebar-list li.selected {
  background: var(--link-color);
}

@media (prefers-reduced-motion: reduce) {
  .sidebar-list li.selected {
    animation: none;
  }
}

.sidebar-list li[data-valid="false"] {
  color: #c62828;
}

.tooltip-invalid-icon {
  margin-left: var(--space-xs);
  color: #c62828;
  font-weight: bold;
}

.tooltip-invalid-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.sidebar-list li.stat {
  border-left-color: var(--color-primary);
}

.sidebar-list li.ui {
  border-left-color: var(--color-secondary);
}

.sidebar-list li.mode {
  border-left-color: #08a700;
}

.sidebar-list li.nav {
  border-left-color: #ff9800;
}

.sidebar-list li.settings {
  border-left-color: #9c27b0;
}

.sidebar-list li.card {
  border-left-color: #795548;
}
