:root {
  /* Base colors */
  --color-bg-primary: #1e1e2e;
  --color-bg-secondary: #181825;
  --color-bg-tertiary: #11111b;
  --color-bg-elevated: #313244;

  /* Foreground/text colors */
  --color-fg-primary: #cdd6f4;
  --color-fg-secondary: #a6adc8;
  --color-fg-muted: #7f849c;
  --color-fg-subtle: #585b70;

  /* Accent colors (inspired by Catppuccin Mocha) */
  --color-accent-blue: #89b4fa;
  --color-accent-lavender: #b4befe;
  --color-accent-sapphire: #74c7ec;
  --color-accent-mauve: #cba6f7;
  --color-accent-pink: #f5c2e7;
  --color-accent-red: #f38ba8;
  --color-accent-peach: #fab387;
  --color-accent-yellow: #f9e2af;
  --color-accent-green: #a6e3a1;

  /* Terminal specific colors */
  --color-terminal-black: #45475a;
  --color-terminal-red: #f38ba8;
  --color-terminal-green: #a6e3a1;
  --color-terminal-yellow: #f9e2af;
  --color-terminal-blue: #89b4fa;
  --color-terminal-magenta: #cba6f7;
  --color-terminal-cyan: #94e2d5;
  --color-terminal-white: #bac2de;
  --color-terminal-bright-black: #585b70;
  --color-terminal-bright-red: #f38ba8;
  --color-terminal-bright-green: #a6e3a1;
  --color-terminal-bright-yellow: #f9e2af;
  --color-terminal-bright-blue: #89b4fa;
  --color-terminal-bright-magenta: #cba6f7;
  --color-terminal-bright-cyan: #94e2d5;
  --color-terminal-bright-white: #cdd6f4;

  /* UI element colors */
  --color-border: #313244;
  --color-shadow: rgba(0, 0, 0, 0.3);
  --color-selection: rgba(180, 190, 254, 0.3);
  --color-focus-ring: #89b4fa;

  /* Gradient variations */
  --gradient-primary: linear-gradient(
    135deg,
    #89b4fa,
    #cba6f7
  ); /* Blue to mauve */
  --gradient-secondary: linear-gradient(
    135deg,
    #74c7ec,
    #89b4fa
  ); /* Sapphire to blue */

  /* Other theme variables */
  --border-radius-sm: 4px;
  --border-radius-md: 8px;
  --border-radius-lg: 12px;
  --shadow-sm: 0 2px 4px var(--color-shadow);
  --shadow-md: 0 4px 6px var(--color-shadow);
  --shadow-lg: 0 10px 15px var(--color-shadow);
  --transition-fast: 0.1s ease;
  --transition-normal: 0.2s ease;
  --transition-slow: 0.3s ease;
}

/* Apply colors to base elements */
body {
  background-color: var(--color-bg-primary);
  color: var(--color-fg-primary);
}

::selection {
  background-color: var(--color-selection);
  color: var(--color-fg-primary);
}

a {
  color: var(--color-accent-blue);
  transition: color var(--transition-fast);
}

a:hover {
  color: var(--color-accent-lavender);
}

a:focus-visible {
  outline: 2px solid var(--color-focus-ring);
  outline-offset: 2px;
}

hr {
  border: none;
  border-top: 1px solid var(--color-border);
  margin: 1rem 0;
}

/* Boot and login screens */
#boot-screen {
  background-color: var(--color-bg-tertiary);
  color: var(--color-accent-green);
}

#login-screen {
  background-color: var(--color-bg-tertiary);
  color: var(--color-fg-primary);
}

#login-screen .login-form {
  background-color: var(--color-bg-secondary);
  border-radius: var(--border-radius-md);
  padding: 2rem;
  box-shadow: var(--shadow-md);
  border: 1px solid var(--color-border);
}

#login-screen input {
  background-color: var(--color-bg-tertiary);
  border: 1px solid var(--color-border);
  border-radius: var(--border-radius-sm);
  padding: 0.5rem 1rem;
  color: var(--color-fg-primary);
  margin: 1rem 0;
}

#login-screen button {
  background-color: var(--color-accent-blue);
  color: var(--color-bg-tertiary);
  padding: 0.5rem 1rem;
  border-radius: var(--border-radius-sm);
  transition: background-color var(--transition-fast);
}

#login-screen button:hover {
  background-color: var(--color-accent-lavender);
}

/* Waybar */
#waybar {
  background-color: var(--color-bg-tertiary);
  border-bottom: 1px solid var(--color-border);
  color: var(--color-fg-secondary);
  font-family: var(--font-terminal);
  font-size: var(--fs-sm);
}

#waybar .workspace-buttons {
  display: flex;
  gap: 0.5rem;
}

#waybar .workspace-buttons .workspace {
  padding: 0 0.5rem;
  cursor: pointer;
  opacity: 0.6;
  transition: opacity var(--transition-fast);
}

#waybar .workspace-buttons .workspace.active {
  opacity: 1;
  color: var(--color-accent-blue);
}

#waybar .window-title {
  color: var(--color-fg-primary);
  font-weight: var(--fw-medium);
}

#waybar .system-info {
  display: flex;
  gap: 1rem;
}

/* Desktop */
#desktop {
  background-color: var(--color-bg-primary);
}

/* Notifications */
.notification {
  background-color: var(--color-bg-secondary);
  border-left: 4px solid var(--color-accent-blue);
  border-radius: var(--border-radius-sm);
  padding: 0.75rem 1rem;
  margin-bottom: 0.5rem;
  box-shadow: var(--shadow-sm);
  animation: slideIn var(--transition-normal);
}

.notification.error {
  border-left-color: var(--color-accent-red);
}

.notification.warning {
  border-left-color: var(--color-accent-peach);
}

.notification.success {
  border-left-color: var(--color-accent-green);
}

@keyframes slideIn {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
