:root {
  --radius: 14px;
  --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.25);
  --shadow-md: 0 10px 30px rgba(0, 0, 0, 0.35);
  --shadow-lg: 0 24px 70px rgba(0, 0, 0, 0.5), 0 2px 0 rgba(255, 255, 255, 0.06) inset;
  --blur: 24px;
}

html[data-theme="forest"] {
  --text: #e8fff2;
  --text-dim: rgba(232, 255, 242, 0.62);
  --glass: rgba(10, 38, 26, 0.42);
  --glass-strong: rgba(9, 34, 23, 0.72);
  --glass-solid: #0b2a1d;
  --stroke: rgba(190, 255, 220, 0.16);
  --stroke-strong: rgba(190, 255, 220, 0.28);
  --tint: linear-gradient(180deg, rgba(4, 26, 16, 0.42), rgba(2, 14, 9, 0.55));
  --field: rgba(255, 255, 255, 0.08);
  --terminal-bg: rgba(3, 16, 10, 0.86);
  --terminal-text: #86f7b4;
}

html[data-theme="moss"] {
  --text: #16281d;
  --text-dim: rgba(22, 40, 29, 0.62);
  --glass: rgba(233, 249, 236, 0.55);
  --glass-strong: rgba(240, 252, 243, 0.82);
  --glass-solid: #eaf6ec;
  --stroke: rgba(20, 60, 38, 0.14);
  --stroke-strong: rgba(20, 60, 38, 0.26);
  --tint: linear-gradient(180deg, rgba(226, 245, 231, 0.36), rgba(200, 232, 209, 0.44));
  --field: rgba(20, 60, 38, 0.07);
  --terminal-bg: rgba(12, 34, 22, 0.92);
  --terminal-text: #8bf5b8;
}

html[data-theme="autumn"] {
  --text: #fff2e2;
  --text-dim: rgba(255, 242, 226, 0.65);
  --glass: rgba(66, 27, 10, 0.44);
  --glass-strong: rgba(56, 23, 9, 0.74);
  --glass-solid: #3a1a0a;
  --stroke: rgba(255, 214, 170, 0.18);
  --stroke-strong: rgba(255, 214, 170, 0.3);
  --tint: linear-gradient(180deg, rgba(60, 22, 6, 0.4), rgba(28, 10, 3, 0.56));
  --field: rgba(255, 255, 255, 0.09);
  --terminal-bg: rgba(24, 9, 3, 0.88);
  --terminal-text: #ffc987;
}

html[data-theme="night"] {
  --text: #e6f0ff;
  --text-dim: rgba(230, 240, 255, 0.6);
  --glass: rgba(11, 22, 45, 0.5);
  --glass-strong: rgba(9, 18, 38, 0.78);
  --glass-solid: #0b1730;
  --stroke: rgba(180, 210, 255, 0.16);
  --stroke-strong: rgba(180, 210, 255, 0.28);
  --tint: linear-gradient(180deg, rgba(5, 12, 30, 0.5), rgba(2, 6, 18, 0.66));
  --field: rgba(255, 255, 255, 0.08);
  --terminal-bg: rgba(3, 8, 20, 0.9);
  --terminal-text: #8fd7ff;
}

html[data-accent="green"] {
  --accent: #2fbf6b;
  --accent-2: #1d8f4d;
  --accent-contrast: #04180d;
}

html[data-accent="lime"] {
  --accent: #a6de37;
  --accent-2: #7db61c;
  --accent-contrast: #17200a;
}

html[data-accent="teal"] {
  --accent: #24c4c0;
  --accent-2: #128f8c;
  --accent-contrast: #04201f;
}

html[data-accent="amber"] {
  --accent: #f0a92c;
  --accent-2: #c07d10;
  --accent-contrast: #241503;
}

.accent-btn {
  background: var(--accent);
  color: var(--accent-contrast);
  border-radius: 10px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 600;
  transition: transform 120ms ease, filter 120ms ease;
}

.accent-btn:hover {
  filter: brightness(1.08);
}

.accent-btn:active {
  transform: scale(0.96);
}

.ghost-btn {
  background: var(--field);
  border: 1px solid var(--stroke);
  border-radius: 10px;
  padding: 8px 14px;
  font-size: 13px;
  transition: transform 120ms ease, background 120ms ease;
}

.ghost-btn:hover {
  background: var(--stroke);
}

.ghost-btn:active {
  transform: scale(0.96);
}
