/* Sow tokens. Generated by rake sow:kit:build (tasks/kit.rb, Sow::Style::Palette); do not edit. */
:root { color-scheme: light; }
[data-theme$="-light"] { color-scheme: light; }
[data-theme$="-dark"] { color-scheme: dark; }

:root, [data-theme="sow-light"] {
  --canvas: oklch(0.962 0.006 80);
  --bg: oklch(0.996 0.003 80);
  --bg-subtle: oklch(0.976 0.006 80);
  --surface: oklch(1.000 0.000 0);
  --surface-raised: oklch(1.000 0.000 0);
  --surface-hover: oklch(0.300 0.012 80 / 0.055);
  --surface-active: oklch(0.300 0.012 80 / 0.095);
  --text: oklch(0.215 0.009 80);
  --text-muted: oklch(0.508 0.013 80);
  --text-faint: oklch(0.537 0.013 80);
  --line: oklch(0.906 0.010 80);
  --line-strong: oklch(0.644 0.010 80);
  --surface-inverse: oklch(0.215 0.009 80);
  --text-inverse: oklch(0.985 0.003 80);
  --accent: oklch(0.540 0.150 145);
  --accent-hover: oklch(0.490 0.150 145);
  --on-accent: oklch(0.995 0.000 0);
  --accent-soft: oklch(0.952 0.039 145);
  --accent-soft-hover: oklch(0.925 0.054 145);
  --accent-line: oklch(0.800 0.082 145);
  --accent-text: oklch(0.509 0.135 145);
  --focus: oklch(0.595 0.150 145);
  --selection: oklch(0.900 0.063 145);
  --primary: oklch(0.215 0.009 80);
  --primary-hover: oklch(0.305 0.009 80);
  --on-primary: oklch(0.990 0.002 80);
  --canvas-text: oklch(0.215 0.009 80);
  --canvas-text-muted: oklch(0.508 0.013 80);
  --canvas-hover: oklch(0.300 0.012 80 / 0.055);
  --canvas-active: oklch(1.000 0.000 0);
  --canvas-active-text: oklch(0.215 0.009 80);
  --canvas-line: oklch(0.906 0.010 80);
  --scrim: oklch(0.220 0.010 80 / 0.34);
  --glass: oklch(1.000 0.000 0 / 0.78);
  --danger: oklch(0.581 0.190 27);
  --on-danger: oklch(0.995 0.000 0);
  --danger-soft: oklch(0.958 0.021 27);
  --danger-text: oklch(0.541 0.162 27);
  --warn: oklch(0.800 0.150 70);
  --on-warn: oklch(0.250 0.040 70);
  --warn-soft: oklch(0.958 0.030 70);
  --warn-text: oklch(0.529 0.115 70);
  --success: oklch(0.543 0.140 150);
  --on-success: oklch(0.995 0.000 0);
  --success-soft: oklch(0.958 0.028 150);
  --success-text: oklch(0.513 0.119 150);
  --info: oklch(0.558 0.150 250);
  --on-info: oklch(0.995 0.000 0);
  --info-soft: oklch(0.958 0.021 250);
  --info-text: oklch(0.524 0.128 250);
  --app-red: oklch(0.680 0.150 25);
  --app-red-soft: oklch(0.925 0.038 25);
  --app-red-ink: oklch(0.513 0.128 25);
  --app-orange: oklch(0.680 0.150 50);
  --app-orange-soft: oklch(0.925 0.043 50);
  --app-orange-ink: oklch(0.510 0.128 50);
  --app-amber: oklch(0.680 0.142 78);
  --app-amber-soft: oklch(0.925 0.048 78);
  --app-amber-ink: oklch(0.504 0.105 78);
  --app-lime: oklch(0.680 0.150 128);
  --app-lime-soft: oklch(0.925 0.048 128);
  --app-lime-ink: oklch(0.494 0.128 128);
  --app-green: oklch(0.680 0.150 150);
  --app-green-soft: oklch(0.925 0.048 150);
  --app-green-ink: oklch(0.491 0.128 150);
  --app-teal: oklch(0.680 0.120 185);
  --app-teal-soft: oklch(0.925 0.048 185);
  --app-teal-ink: oklch(0.494 0.087 185);
  --app-sky: oklch(0.680 0.129 225);
  --app-sky-soft: oklch(0.925 0.048 225);
  --app-sky-ink: oklch(0.497 0.094 225);
  --app-blue: oklch(0.680 0.150 262);
  --app-blue-soft: oklch(0.925 0.036 262);
  --app-blue-ink: oklch(0.504 0.128 262);
  --app-violet: oklch(0.680 0.150 295);
  --app-violet-soft: oklch(0.925 0.040 295);
  --app-violet-ink: oklch(0.510 0.128 295);
  --app-pink: oklch(0.680 0.150 345);
  --app-pink-soft: oklch(0.925 0.048 345);
  --app-pink-ink: oklch(0.513 0.128 345);
  --syn-keyword: oklch(0.552 0.150 300);
  --syn-string: oklch(0.522 0.150 140);
  --syn-symbol: oklch(0.526 0.090 195);
  --syn-number: oklch(0.547 0.135 55);
  --syn-constant: oklch(0.538 0.150 255);
  --syn-method: oklch(0.554 0.150 25);
  --syn-ivar: oklch(0.556 0.150 340);
  --syn-comment: oklch(0.547 0.013 80);
  --syn-punct: oklch(0.508 0.013 80);
  --diff-add-bg: oklch(0.958 0.035 150);
  --diff-add-word: oklch(0.905 0.075 150);
  --diff-del-bg: oklch(0.958 0.021 25);
  --diff-del-word: oklch(0.910 0.046 25);
  --diff-add-mark: oklch(0.543 0.140 150);
  --diff-del-mark: oklch(0.581 0.190 27);
  --shadow-xs: 0 1px 1px oklch(0.250 0.020 80 / 0.06);
  --shadow-sm: 0 1px 2px oklch(0.250 0.020 80 / 0.06), 0 2px 8px -2px oklch(0.250 0.020 80 / 0.08);
  --shadow-md: 0 2px 4px -1px oklch(0.250 0.020 80 / 0.06), 0 12px 32px -8px oklch(0.250 0.020 80 / 0.18);
  --shadow-lg: 0 4px 8px -2px oklch(0.250 0.020 80 / 0.08), 0 28px 64px -12px oklch(0.250 0.020 80 / 0.3);
}
[data-theme="sow-dark"] {
  --canvas: oklch(0.150 0.006 80);
  --bg: oklch(0.190 0.003 80);
  --bg-subtle: oklch(0.170 0.006 80);
  --surface: oklch(0.214 0.002 80);
  --surface-raised: oklch(0.240 0.002 80);
  --surface-hover: oklch(1.000 0.000 0 / 0.065);
  --surface-active: oklch(1.000 0.000 0 / 0.11);
  --text: oklch(0.945 0.009 80);
  --text-muted: oklch(0.735 0.013 80);
  --text-faint: oklch(0.665 0.013 80);
  --line: oklch(0.285 0.010 80);
  --line-strong: oklch(0.529 0.010 80);
  --surface-inverse: oklch(0.940 0.006 80);
  --text-inverse: oklch(0.180 0.006 80);
  --accent: oklch(0.679 0.150 145);
  --accent-hover: oklch(0.719 0.142 145);
  --on-accent: oklch(0.170 0.010 145);
  --accent-soft: oklch(0.285 0.054 145);
  --accent-soft-hover: oklch(0.330 0.066 145);
  --accent-line: oklch(0.500 0.082 145);
  --accent-text: oklch(0.661 0.135 145);
  --focus: oklch(0.535 0.150 145);
  --selection: oklch(0.400 0.075 145);
  --primary: oklch(0.940 0.006 80);
  --primary-hover: oklch(0.880 0.006 80);
  --on-primary: oklch(0.170 0.006 80);
  --canvas-text: oklch(0.945 0.009 80);
  --canvas-text-muted: oklch(0.735 0.013 80);
  --canvas-hover: oklch(1.000 0.000 0 / 0.065);
  --canvas-active: oklch(0.240 0.002 80);
  --canvas-active-text: oklch(0.945 0.009 80);
  --canvas-line: oklch(0.285 0.010 80);
  --scrim: oklch(0.050 0.000 0 / 0.62);
  --glass: oklch(0.240 0.002 80 / 0.74);
  --danger: oklch(0.697 0.162 27);
  --on-danger: oklch(0.180 0.010 27);
  --danger-soft: oklch(0.275 0.061 27);
  --danger-text: oklch(0.675 0.162 27);
  --warn: oklch(0.685 0.128 70);
  --on-warn: oklch(0.180 0.010 70);
  --warn-soft: oklch(0.275 0.048 70);
  --warn-text: oklch(0.666 0.128 70);
  --success: oklch(0.666 0.119 150);
  --on-success: oklch(0.180 0.010 150);
  --success-soft: oklch(0.275 0.045 150);
  --success-text: oklch(0.653 0.119 150);
  --info: oklch(0.678 0.128 250);
  --on-info: oklch(0.180 0.010 250);
  --info-soft: oklch(0.275 0.048 250);
  --info-text: oklch(0.661 0.128 250);
  --app-red: oklch(0.700 0.135 25);
  --app-red-soft: oklch(0.310 0.063 25);
  --app-red-ink: oklch(0.701 0.128 25);
  --app-orange: oklch(0.700 0.135 50);
  --app-orange-soft: oklch(0.310 0.063 50);
  --app-orange-ink: oklch(0.699 0.128 50);
  --app-amber: oklch(0.700 0.135 78);
  --app-amber-soft: oklch(0.310 0.063 78);
  --app-amber-ink: oklch(0.695 0.128 78);
  --app-lime: oklch(0.700 0.135 128);
  --app-lime-soft: oklch(0.310 0.063 128);
  --app-lime-ink: oklch(0.688 0.128 128);
  --app-green: oklch(0.700 0.135 150);
  --app-green-soft: oklch(0.310 0.063 150);
  --app-green-ink: oklch(0.686 0.128 150);
  --app-teal: oklch(0.700 0.123 185);
  --app-teal-soft: oklch(0.310 0.055 185);
  --app-teal-ink: oklch(0.685 0.121 185);
  --app-sky: oklch(0.700 0.133 225);
  --app-sky-soft: oklch(0.310 0.059 225);
  --app-sky-ink: oklch(0.688 0.128 225);
  --app-blue: oklch(0.700 0.135 262);
  --app-blue-soft: oklch(0.310 0.063 262);
  --app-blue-ink: oklch(0.694 0.128 262);
  --app-violet: oklch(0.700 0.135 295);
  --app-violet-soft: oklch(0.310 0.063 295);
  --app-violet-ink: oklch(0.698 0.128 295);
  --app-pink: oklch(0.700 0.135 345);
  --app-pink-soft: oklch(0.310 0.063 345);
  --app-pink-ink: oklch(0.702 0.128 345);
  --syn-keyword: oklch(0.690 0.150 300);
  --syn-string: oklch(0.661 0.150 140);
  --syn-symbol: oklch(0.663 0.113 195);
  --syn-number: oklch(0.688 0.150 55);
  --syn-constant: oklch(0.677 0.150 255);
  --syn-method: oklch(0.693 0.150 25);
  --syn-ivar: oklch(0.695 0.150 340);
  --syn-comment: oklch(0.608 0.013 80);
  --syn-punct: oklch(0.735 0.013 80);
  --diff-add-bg: oklch(0.255 0.045 150);
  --diff-add-word: oklch(0.335 0.080 150);
  --diff-del-bg: oklch(0.255 0.045 25);
  --diff-del-word: oklch(0.340 0.075 25);
  --diff-add-mark: oklch(0.666 0.119 150);
  --diff-del-mark: oklch(0.697 0.162 27);
  --shadow-xs: 0 1px 1px oklch(0.000 0.000 0 / 0.35);
  --shadow-sm: inset 0 1px 0 oklch(1.000 0.000 0 / 0.05), 0 1px 2px oklch(0.000 0.000 0 / 0.4), 0 2px 8px -2px oklch(0.000 0.000 0 / 0.4);
  --shadow-md: inset 0 1px 0 oklch(1.000 0.000 0 / 0.05), 0 2px 4px -1px oklch(0.000 0.000 0 / 0.45), 0 12px 32px -8px oklch(0.000 0.000 0 / 0.6);
  --shadow-lg: inset 0 1px 0 oklch(1.000 0.000 0 / 0.05), 0 4px 8px -2px oklch(0.000 0.000 0 / 0.5), 0 28px 64px -12px oklch(0.000 0.000 0 / 0.7);
}
[data-theme="graphite-light"] {
  --canvas: oklch(0.955 0.008 255);
  --bg: oklch(0.995 0.002 255);
  --bg-subtle: oklch(0.972 0.008 255);
  --surface: oklch(1.000 0.000 0);
  --surface-raised: oklch(1.000 0.000 0);
  --surface-hover: oklch(0.300 0.016 255 / 0.055);
  --surface-active: oklch(0.300 0.016 255 / 0.095);
  --text: oklch(0.200 0.012 255);
  --text-muted: oklch(0.503 0.018 255);
  --text-faint: oklch(0.532 0.018 255);
  --line: oklch(0.905 0.013 255);
  --line-strong: oklch(0.640 0.013 255);
  --surface-inverse: oklch(0.200 0.012 255);
  --text-inverse: oklch(0.985 0.004 255);
  --accent: oklch(0.556 0.070 262);
  --accent-hover: oklch(0.506 0.070 262);
  --on-accent: oklch(0.995 0.000 0);
  --accent-soft: oklch(0.952 0.018 262);
  --accent-soft-hover: oklch(0.925 0.025 262);
  --accent-line: oklch(0.800 0.038 262);
  --accent-text: oklch(0.520 0.063 262);
  --focus: oklch(0.606 0.070 262);
  --selection: oklch(0.900 0.029 262);
  --primary: oklch(0.200 0.012 255);
  --primary-hover: oklch(0.290 0.012 255);
  --on-primary: oklch(0.990 0.003 255);
  --canvas-text: oklch(0.200 0.012 255);
  --canvas-text-muted: oklch(0.503 0.018 255);
  --canvas-hover: oklch(0.300 0.016 255 / 0.055);
  --canvas-active: oklch(1.000 0.000 0);
  --canvas-active-text: oklch(0.200 0.012 255);
  --canvas-line: oklch(0.905 0.013 255);
  --scrim: oklch(0.220 0.010 255 / 0.34);
  --glass: oklch(1.000 0.000 0 / 0.78);
  --danger: oklch(0.581 0.190 27);
  --on-danger: oklch(0.995 0.000 0);
  --danger-soft: oklch(0.958 0.021 27);
  --danger-text: oklch(0.541 0.162 27);
  --warn: oklch(0.800 0.150 70);
  --on-warn: oklch(0.250 0.040 70);
  --warn-soft: oklch(0.958 0.030 70);
  --warn-text: oklch(0.528 0.114 70);
  --success: oklch(0.543 0.140 150);
  --on-success: oklch(0.995 0.000 0);
  --success-soft: oklch(0.958 0.028 150);
  --success-text: oklch(0.509 0.119 150);
  --info: oklch(0.558 0.150 250);
  --on-info: oklch(0.995 0.000 0);
  --info-soft: oklch(0.958 0.021 250);
  --info-text: oklch(0.522 0.128 250);
  --app-red: oklch(0.680 0.128 25);
  --app-red-soft: oklch(0.925 0.038 25);
  --app-red-ink: oklch(0.510 0.108 25);
  --app-orange: oklch(0.680 0.128 50);
  --app-orange-soft: oklch(0.925 0.041 50);
  --app-orange-ink: oklch(0.508 0.108 50);
  --app-amber: oklch(0.680 0.128 78);
  --app-amber-soft: oklch(0.925 0.041 78);
  --app-amber-ink: oklch(0.504 0.105 78);
  --app-lime: oklch(0.680 0.128 128);
  --app-lime-soft: oklch(0.925 0.041 128);
  --app-lime-ink: oklch(0.495 0.108 128);
  --app-green: oklch(0.680 0.128 150);
  --app-green-soft: oklch(0.925 0.041 150);
  --app-green-ink: oklch(0.492 0.108 150);
  --app-teal: oklch(0.680 0.120 185);
  --app-teal-soft: oklch(0.925 0.041 185);
  --app-teal-ink: oklch(0.494 0.087 185);
  --app-sky: oklch(0.680 0.128 225);
  --app-sky-soft: oklch(0.925 0.041 225);
  --app-sky-ink: oklch(0.497 0.094 225);
  --app-blue: oklch(0.680 0.128 262);
  --app-blue-soft: oklch(0.925 0.036 262);
  --app-blue-ink: oklch(0.503 0.108 262);
  --app-violet: oklch(0.680 0.128 295);
  --app-violet-soft: oklch(0.925 0.040 295);
  --app-violet-ink: oklch(0.508 0.108 295);
  --app-pink: oklch(0.680 0.128 345);
  --app-pink-soft: oklch(0.925 0.041 345);
  --app-pink-ink: oklch(0.511 0.108 345);
  --syn-keyword: oklch(0.549 0.150 300);
  --syn-string: oklch(0.520 0.150 140);
  --syn-symbol: oklch(0.523 0.089 195);
  --syn-number: oklch(0.545 0.135 55);
  --syn-constant: oklch(0.536 0.150 255);
  --syn-method: oklch(0.552 0.150 25);
  --syn-ivar: oklch(0.553 0.150 340);
  --syn-comment: oklch(0.544 0.018 255);
  --syn-punct: oklch(0.503 0.018 255);
  --diff-add-bg: oklch(0.958 0.035 150);
  --diff-add-word: oklch(0.905 0.075 150);
  --diff-del-bg: oklch(0.958 0.021 25);
  --diff-del-word: oklch(0.910 0.046 25);
  --diff-add-mark: oklch(0.543 0.140 150);
  --diff-del-mark: oklch(0.581 0.190 27);
  --shadow-xs: 0 1px 1px oklch(0.250 0.020 255 / 0.06);
  --shadow-sm: 0 1px 2px oklch(0.250 0.020 255 / 0.06), 0 2px 8px -2px oklch(0.250 0.020 255 / 0.08);
  --shadow-md: 0 2px 4px -1px oklch(0.250 0.020 255 / 0.06), 0 12px 32px -8px oklch(0.250 0.020 255 / 0.18);
  --shadow-lg: 0 4px 8px -2px oklch(0.250 0.020 255 / 0.08), 0 28px 64px -12px oklch(0.250 0.020 255 / 0.3);
}
[data-theme="graphite-dark"] {
  --canvas: oklch(0.145 0.008 255);
  --bg: oklch(0.185 0.004 255);
  --bg-subtle: oklch(0.165 0.008 255);
  --surface: oklch(0.210 0.002 255);
  --surface-raised: oklch(0.236 0.002 255);
  --surface-hover: oklch(1.000 0.000 0 / 0.065);
  --surface-active: oklch(1.000 0.000 0 / 0.11);
  --text: oklch(0.950 0.012 255);
  --text-muted: oklch(0.731 0.018 255);
  --text-faint: oklch(0.662 0.018 255);
  --line: oklch(0.280 0.013 255);
  --line-strong: oklch(0.526 0.013 255);
  --surface-inverse: oklch(0.940 0.008 255);
  --text-inverse: oklch(0.180 0.008 255);
  --accent: oklch(0.694 0.070 262);
  --accent-hover: oklch(0.734 0.066 262);
  --on-accent: oklch(0.170 0.010 262);
  --accent-soft: oklch(0.285 0.025 262);
  --accent-soft-hover: oklch(0.330 0.031 262);
  --accent-line: oklch(0.500 0.038 262);
  --accent-text: oklch(0.670 0.063 262);
  --focus: oklch(0.549 0.070 262);
  --selection: oklch(0.400 0.035 262);
  --primary: oklch(0.940 0.008 255);
  --primary-hover: oklch(0.880 0.008 255);
  --on-primary: oklch(0.170 0.008 255);
  --canvas-text: oklch(0.950 0.012 255);
  --canvas-text-muted: oklch(0.731 0.018 255);
  --canvas-hover: oklch(1.000 0.000 0 / 0.065);
  --canvas-active: oklch(0.236 0.002 255);
  --canvas-active-text: oklch(0.950 0.012 255);
  --canvas-line: oklch(0.280 0.013 255);
  --scrim: oklch(0.050 0.000 0 / 0.62);
  --glass: oklch(0.236 0.002 255 / 0.74);
  --danger: oklch(0.697 0.162 27);
  --on-danger: oklch(0.180 0.010 27);
  --danger-soft: oklch(0.275 0.061 27);
  --danger-text: oklch(0.675 0.162 27);
  --warn: oklch(0.685 0.128 70);
  --on-warn: oklch(0.180 0.010 70);
  --warn-soft: oklch(0.275 0.048 70);
  --warn-text: oklch(0.666 0.128 70);
  --success: oklch(0.666 0.119 150);
  --on-success: oklch(0.180 0.010 150);
  --success-soft: oklch(0.275 0.045 150);
  --success-text: oklch(0.653 0.119 150);
  --info: oklch(0.678 0.128 250);
  --on-info: oklch(0.180 0.010 250);
  --info-soft: oklch(0.275 0.048 250);
  --info-text: oklch(0.661 0.128 250);
  --app-red: oklch(0.700 0.115 25);
  --app-red-soft: oklch(0.310 0.054 25);
  --app-red-ink: oklch(0.699 0.108 25);
  --app-orange: oklch(0.700 0.115 50);
  --app-orange-soft: oklch(0.310 0.054 50);
  --app-orange-ink: oklch(0.698 0.108 50);
  --app-amber: oklch(0.700 0.115 78);
  --app-amber-soft: oklch(0.310 0.054 78);
  --app-amber-ink: oklch(0.695 0.108 78);
  --app-lime: oklch(0.700 0.115 128);
  --app-lime-soft: oklch(0.310 0.054 128);
  --app-lime-ink: oklch(0.688 0.108 128);
  --app-green: oklch(0.700 0.115 150);
  --app-green-soft: oklch(0.310 0.054 150);
  --app-green-ink: oklch(0.687 0.108 150);
  --app-teal: oklch(0.700 0.115 185);
  --app-teal-soft: oklch(0.310 0.054 185);
  --app-teal-ink: oklch(0.686 0.108 185);
  --app-sky: oklch(0.700 0.115 225);
  --app-sky-soft: oklch(0.310 0.054 225);
  --app-sky-ink: oklch(0.689 0.108 225);
  --app-blue: oklch(0.700 0.115 262);
  --app-blue-soft: oklch(0.310 0.054 262);
  --app-blue-ink: oklch(0.694 0.108 262);
  --app-violet: oklch(0.700 0.115 295);
  --app-violet-soft: oklch(0.310 0.054 295);
  --app-violet-ink: oklch(0.697 0.108 295);
  --app-pink: oklch(0.700 0.115 345);
  --app-pink-soft: oklch(0.310 0.054 345);
  --app-pink-ink: oklch(0.700 0.108 345);
  --syn-keyword: oklch(0.688 0.150 300);
  --syn-string: oklch(0.659 0.150 140);
  --syn-symbol: oklch(0.660 0.113 195);
  --syn-number: oklch(0.685 0.150 55);
  --syn-constant: oklch(0.674 0.150 255);
  --syn-method: oklch(0.691 0.150 25);
  --syn-ivar: oklch(0.693 0.150 340);
  --syn-comment: oklch(0.606 0.018 255);
  --syn-punct: oklch(0.731 0.018 255);
  --diff-add-bg: oklch(0.255 0.045 150);
  --diff-add-word: oklch(0.335 0.080 150);
  --diff-del-bg: oklch(0.255 0.045 25);
  --diff-del-word: oklch(0.340 0.075 25);
  --diff-add-mark: oklch(0.666 0.119 150);
  --diff-del-mark: oklch(0.697 0.162 27);
  --shadow-xs: 0 1px 1px oklch(0.000 0.000 0 / 0.35);
  --shadow-sm: inset 0 1px 0 oklch(1.000 0.000 0 / 0.05), 0 1px 2px oklch(0.000 0.000 0 / 0.4), 0 2px 8px -2px oklch(0.000 0.000 0 / 0.4);
  --shadow-md: inset 0 1px 0 oklch(1.000 0.000 0 / 0.05), 0 2px 4px -1px oklch(0.000 0.000 0 / 0.45), 0 12px 32px -8px oklch(0.000 0.000 0 / 0.6);
  --shadow-lg: inset 0 1px 0 oklch(1.000 0.000 0 / 0.05), 0 4px 8px -2px oklch(0.000 0.000 0 / 0.5), 0 28px 64px -12px oklch(0.000 0.000 0 / 0.7);
}
[data-theme="botanical-light"] {
  --canvas: oklch(0.330 0.070 156);
  --bg: oklch(0.988 0.006 110);
  --bg-subtle: oklch(0.968 0.012 110);
  --surface: oklch(0.998 0.004 110);
  --surface-raised: oklch(1.000 0.000 0);
  --surface-hover: oklch(0.300 0.024 110 / 0.055);
  --surface-active: oklch(0.300 0.024 110 / 0.095);
  --text: oklch(0.215 0.018 110);
  --text-muted: oklch(0.511 0.026 110);
  --text-faint: oklch(0.540 0.026 110);
  --line: oklch(0.898 0.019 110);
  --line-strong: oklch(0.637 0.019 110);
  --surface-inverse: oklch(0.215 0.018 110);
  --text-inverse: oklch(0.985 0.006 110);
  --accent: oklch(0.539 0.156 148);
  --accent-hover: oklch(0.489 0.142 148);
  --on-accent: oklch(0.995 0.000 0);
  --accent-soft: oklch(0.952 0.044 148);
  --accent-soft-hover: oklch(0.925 0.061 148);
  --accent-line: oklch(0.800 0.094 148);
  --accent-text: oklch(0.508 0.147 148);
  --focus: oklch(0.597 0.170 148);
  --selection: oklch(0.900 0.071 148);
  --primary: oklch(0.539 0.156 148);
  --primary-hover: oklch(0.489 0.142 148);
  --on-primary: oklch(0.995 0.000 0);
  --canvas-text: oklch(0.975 0.018 156);
  --canvas-text-muted: oklch(0.729 0.028 156);
  --canvas-hover: oklch(1.000 0.000 0 / 0.08);
  --canvas-active: oklch(1.000 0.000 0 / 0.15);
  --canvas-active-text: oklch(0.975 0.014 156);
  --canvas-line: oklch(1.000 0.000 0 / 0.14);
  --scrim: oklch(0.220 0.010 110 / 0.34);
  --glass: oklch(0.998 0.004 110 / 0.78);
  --danger: oklch(0.581 0.190 27);
  --on-danger: oklch(0.995 0.000 0);
  --danger-soft: oklch(0.958 0.021 27);
  --danger-text: oklch(0.541 0.162 27);
  --warn: oklch(0.800 0.150 70);
  --on-warn: oklch(0.250 0.040 70);
  --warn-soft: oklch(0.958 0.030 70);
  --warn-text: oklch(0.529 0.115 70);
  --success: oklch(0.543 0.140 150);
  --on-success: oklch(0.995 0.000 0);
  --success-soft: oklch(0.958 0.028 150);
  --success-text: oklch(0.513 0.119 150);
  --info: oklch(0.558 0.150 250);
  --on-info: oklch(0.995 0.000 0);
  --info-soft: oklch(0.958 0.021 250);
  --info-text: oklch(0.524 0.128 250);
  --app-red: oklch(0.680 0.165 25);
  --app-red-soft: oklch(0.925 0.038 25);
  --app-red-ink: oklch(0.514 0.140 25);
  --app-orange: oklch(0.680 0.165 50);
  --app-orange-soft: oklch(0.925 0.043 50);
  --app-orange-ink: oklch(0.511 0.135 50);
  --app-amber: oklch(0.680 0.142 78);
  --app-amber-soft: oklch(0.925 0.053 78);
  --app-amber-ink: oklch(0.504 0.105 78);
  --app-lime: oklch(0.680 0.165 128);
  --app-lime-soft: oklch(0.925 0.053 128);
  --app-lime-ink: oklch(0.495 0.129 128);
  --app-green: oklch(0.680 0.165 150);
  --app-green-soft: oklch(0.925 0.053 150);
  --app-green-ink: oklch(0.490 0.135 150);
  --app-teal: oklch(0.680 0.120 185);
  --app-teal-soft: oklch(0.925 0.053 185);
  --app-teal-ink: oklch(0.495 0.087 185);
  --app-sky: oklch(0.680 0.129 225);
  --app-sky-soft: oklch(0.925 0.049 225);
  --app-sky-ink: oklch(0.497 0.094 225);
  --app-blue: oklch(0.680 0.165 262);
  --app-blue-soft: oklch(0.925 0.036 262);
  --app-blue-ink: oklch(0.505 0.140 262);
  --app-violet: oklch(0.680 0.165 295);
  --app-violet-soft: oklch(0.925 0.040 295);
  --app-violet-ink: oklch(0.512 0.140 295);
  --app-pink: oklch(0.680 0.165 345);
  --app-pink-soft: oklch(0.925 0.048 345);
  --app-pink-ink: oklch(0.515 0.140 345);
  --syn-keyword: oklch(0.547 0.150 300);
  --syn-string: oklch(0.517 0.150 140);
  --syn-symbol: oklch(0.521 0.089 195);
  --syn-number: oklch(0.542 0.134 55);
  --syn-constant: oklch(0.533 0.150 255);
  --syn-method: oklch(0.549 0.150 25);
  --syn-ivar: oklch(0.551 0.150 340);
  --syn-comment: oklch(0.540 0.026 110);
  --syn-punct: oklch(0.511 0.026 110);
  --diff-add-bg: oklch(0.958 0.035 150);
  --diff-add-word: oklch(0.905 0.075 150);
  --diff-del-bg: oklch(0.958 0.021 25);
  --diff-del-word: oklch(0.910 0.046 25);
  --diff-add-mark: oklch(0.543 0.140 150);
  --diff-del-mark: oklch(0.581 0.190 27);
  --mark: oklch(0.86 0.14 138);
  --shadow-xs: 0 1px 1px oklch(0.250 0.020 110 / 0.06);
  --shadow-sm: 0 1px 2px oklch(0.250 0.020 110 / 0.06), 0 2px 8px -2px oklch(0.250 0.020 110 / 0.08);
  --shadow-md: 0 2px 4px -1px oklch(0.250 0.020 110 / 0.06), 0 12px 32px -8px oklch(0.250 0.020 110 / 0.18);
  --shadow-lg: 0 4px 8px -2px oklch(0.250 0.020 110 / 0.08), 0 28px 64px -12px oklch(0.250 0.020 110 / 0.3);
}
[data-theme="botanical-dark"] {
  --canvas: oklch(0.205 0.045 156);
  --bg: oklch(0.165 0.006 110);
  --bg-subtle: oklch(0.150 0.012 110);
  --surface: oklch(0.192 0.004 110);
  --surface-raised: oklch(0.222 0.004 110);
  --surface-hover: oklch(1.000 0.000 0 / 0.065);
  --surface-active: oklch(1.000 0.000 0 / 0.11);
  --text: oklch(0.950 0.018 110);
  --text-muted: oklch(0.721 0.026 110);
  --text-faint: oklch(0.652 0.026 110);
  --line: oklch(0.260 0.019 110);
  --line-strong: oklch(0.517 0.019 110);
  --surface-inverse: oklch(0.940 0.012 110);
  --text-inverse: oklch(0.180 0.012 110);
  --accent: oklch(0.676 0.170 148);
  --accent-hover: oklch(0.716 0.162 148);
  --on-accent: oklch(0.170 0.010 148);
  --accent-soft: oklch(0.285 0.061 148);
  --accent-soft-hover: oklch(0.330 0.075 148);
  --accent-line: oklch(0.500 0.094 148);
  --accent-text: oklch(0.659 0.153 148);
  --focus: oklch(0.524 0.152 148);
  --selection: oklch(0.400 0.085 148);
  --primary: oklch(0.676 0.170 148);
  --primary-hover: oklch(0.716 0.162 148);
  --on-primary: oklch(0.170 0.010 148);
  --canvas-text: oklch(0.950 0.018 110);
  --canvas-text-muted: oklch(0.721 0.026 110);
  --canvas-hover: oklch(1.000 0.000 0 / 0.065);
  --canvas-active: oklch(0.222 0.004 110);
  --canvas-active-text: oklch(0.950 0.018 110);
  --canvas-line: oklch(0.260 0.019 110);
  --scrim: oklch(0.050 0.000 0 / 0.62);
  --glass: oklch(0.222 0.004 110 / 0.74);
  --danger: oklch(0.697 0.162 27);
  --on-danger: oklch(0.180 0.010 27);
  --danger-soft: oklch(0.275 0.061 27);
  --danger-text: oklch(0.675 0.162 27);
  --warn: oklch(0.685 0.128 70);
  --on-warn: oklch(0.180 0.010 70);
  --warn-soft: oklch(0.275 0.048 70);
  --warn-text: oklch(0.666 0.128 70);
  --success: oklch(0.666 0.119 150);
  --on-success: oklch(0.180 0.010 150);
  --success-soft: oklch(0.275 0.045 150);
  --success-text: oklch(0.653 0.119 150);
  --info: oklch(0.678 0.128 250);
  --on-info: oklch(0.180 0.010 250);
  --info-soft: oklch(0.275 0.048 250);
  --info-text: oklch(0.661 0.128 250);
  --app-red: oklch(0.700 0.148 25);
  --app-red-soft: oklch(0.310 0.069 25);
  --app-red-ink: oklch(0.701 0.140 25);
  --app-orange: oklch(0.700 0.148 50);
  --app-orange-soft: oklch(0.310 0.069 50);
  --app-orange-ink: oklch(0.699 0.140 50);
  --app-amber: oklch(0.700 0.146 78);
  --app-amber-soft: oklch(0.310 0.065 78);
  --app-amber-ink: oklch(0.696 0.140 78);
  --app-lime: oklch(0.700 0.148 128);
  --app-lime-soft: oklch(0.310 0.069 128);
  --app-lime-ink: oklch(0.687 0.140 128);
  --app-green: oklch(0.700 0.148 150);
  --app-green-soft: oklch(0.310 0.069 150);
  --app-green-ink: oklch(0.685 0.140 150);
  --app-teal: oklch(0.700 0.123 185);
  --app-teal-soft: oklch(0.310 0.055 185);
  --app-teal-ink: oklch(0.685 0.121 185);
  --app-sky: oklch(0.700 0.133 225);
  --app-sky-soft: oklch(0.310 0.059 225);
  --app-sky-ink: oklch(0.688 0.130 225);
  --app-blue: oklch(0.700 0.148 262);
  --app-blue-soft: oklch(0.310 0.069 262);
  --app-blue-ink: oklch(0.694 0.140 262);
  --app-violet: oklch(0.700 0.148 295);
  --app-violet-soft: oklch(0.310 0.069 295);
  --app-violet-ink: oklch(0.699 0.140 295);
  --app-pink: oklch(0.700 0.148 345);
  --app-pink-soft: oklch(0.310 0.069 345);
  --app-pink-ink: oklch(0.703 0.140 345);
  --syn-keyword: oklch(0.678 0.150 300);
  --syn-string: oklch(0.649 0.150 140);
  --syn-symbol: oklch(0.651 0.111 195);
  --syn-number: oklch(0.676 0.150 55);
  --syn-constant: oklch(0.665 0.150 255);
  --syn-method: oklch(0.681 0.150 25);
  --syn-ivar: oklch(0.683 0.150 340);
  --syn-comment: oklch(0.595 0.026 110);
  --syn-punct: oklch(0.721 0.026 110);
  --diff-add-bg: oklch(0.255 0.045 150);
  --diff-add-word: oklch(0.335 0.080 150);
  --diff-del-bg: oklch(0.255 0.045 25);
  --diff-del-word: oklch(0.340 0.075 25);
  --diff-add-mark: oklch(0.666 0.119 150);
  --diff-del-mark: oklch(0.697 0.162 27);
  --shadow-xs: 0 1px 1px oklch(0.000 0.000 0 / 0.35);
  --shadow-sm: inset 0 1px 0 oklch(1.000 0.000 0 / 0.05), 0 1px 2px oklch(0.000 0.000 0 / 0.4), 0 2px 8px -2px oklch(0.000 0.000 0 / 0.4);
  --shadow-md: inset 0 1px 0 oklch(1.000 0.000 0 / 0.05), 0 2px 4px -1px oklch(0.000 0.000 0 / 0.45), 0 12px 32px -8px oklch(0.000 0.000 0 / 0.6);
  --shadow-lg: inset 0 1px 0 oklch(1.000 0.000 0 / 0.05), 0 4px 8px -2px oklch(0.000 0.000 0 / 0.5), 0 28px 64px -12px oklch(0.000 0.000 0 / 0.7);
}
[data-theme="gouache-light"] {
  --canvas: oklch(0.885 0.032 150);
  --bg: oklch(0.968 0.008 70);
  --bg-subtle: oklch(0.948 0.016 70);
  --surface: oklch(0.987 0.005 70);
  --surface-raised: oklch(0.992 0.005 70);
  --surface-hover: oklch(0.300 0.032 70 / 0.055);
  --surface-active: oklch(0.300 0.032 70 / 0.095);
  --text: oklch(0.235 0.024 70);
  --text-muted: oklch(0.457 0.035 70);
  --text-faint: oklch(0.486 0.035 70);
  --line: oklch(0.878 0.026 70);
  --line-strong: oklch(0.623 0.026 70);
  --surface-inverse: oklch(0.235 0.024 70);
  --text-inverse: oklch(0.985 0.008 70);
  --accent: oklch(0.566 0.110 40);
  --accent-hover: oklch(0.516 0.110 40);
  --on-accent: oklch(0.995 0.000 0);
  --accent-soft: oklch(0.952 0.025 40);
  --accent-soft-hover: oklch(0.925 0.040 40);
  --accent-line: oklch(0.800 0.060 40);
  --accent-text: oklch(0.484 0.099 40);
  --focus: oklch(0.567 0.110 40);
  --selection: oklch(0.900 0.046 40);
  --primary: oklch(0.566 0.110 40);
  --primary-hover: oklch(0.516 0.110 40);
  --on-primary: oklch(0.995 0.000 0);
  --canvas-text: oklch(0.235 0.024 70);
  --canvas-text-muted: oklch(0.457 0.035 70);
  --canvas-hover: oklch(0.300 0.032 70 / 0.055);
  --canvas-active: oklch(0.987 0.005 70);
  --canvas-active-text: oklch(0.235 0.024 70);
  --canvas-line: oklch(0.878 0.026 70);
  --scrim: oklch(0.220 0.010 70 / 0.34);
  --glass: oklch(0.987 0.005 70 / 0.78);
  --danger: oklch(0.581 0.190 27);
  --on-danger: oklch(0.995 0.000 0);
  --danger-soft: oklch(0.958 0.021 27);
  --danger-text: oklch(0.494 0.162 27);
  --warn: oklch(0.800 0.150 70);
  --on-warn: oklch(0.250 0.040 70);
  --warn-soft: oklch(0.958 0.030 70);
  --warn-text: oklch(0.480 0.104 70);
  --success: oklch(0.543 0.140 150);
  --on-success: oklch(0.995 0.000 0);
  --success-soft: oklch(0.958 0.028 150);
  --success-text: oklch(0.462 0.119 150);
  --info: oklch(0.558 0.150 250);
  --on-info: oklch(0.995 0.000 0);
  --info-soft: oklch(0.958 0.021 250);
  --info-text: oklch(0.474 0.128 250);
  --app-red: oklch(0.680 0.090 25);
  --app-red-soft: oklch(0.925 0.029 25);
  --app-red-ink: oklch(0.507 0.076 25);
  --app-orange: oklch(0.680 0.090 50);
  --app-orange-soft: oklch(0.925 0.029 50);
  --app-orange-ink: oklch(0.505 0.076 50);
  --app-amber: oklch(0.680 0.090 78);
  --app-amber-soft: oklch(0.925 0.029 78);
  --app-amber-ink: oklch(0.503 0.076 78);
  --app-lime: oklch(0.680 0.090 128);
  --app-lime-soft: oklch(0.925 0.029 128);
  --app-lime-ink: oklch(0.496 0.076 128);
  --app-green: oklch(0.680 0.090 150);
  --app-green-soft: oklch(0.925 0.029 150);
  --app-green-ink: oklch(0.494 0.076 150);
  --app-teal: oklch(0.680 0.090 185);
  --app-teal-soft: oklch(0.925 0.029 185);
  --app-teal-ink: oklch(0.494 0.076 185);
  --app-sky: oklch(0.680 0.090 225);
  --app-sky-soft: oklch(0.925 0.029 225);
  --app-sky-ink: oklch(0.497 0.076 225);
  --app-blue: oklch(0.680 0.090 262);
  --app-blue-soft: oklch(0.925 0.029 262);
  --app-blue-ink: oklch(0.502 0.076 262);
  --app-violet: oklch(0.680 0.090 295);
  --app-violet-soft: oklch(0.925 0.029 295);
  --app-violet-ink: oklch(0.505 0.076 295);
  --app-pink: oklch(0.680 0.090 345);
  --app-pink-soft: oklch(0.925 0.029 345);
  --app-pink-ink: oklch(0.508 0.076 345);
  --syn-keyword: oklch(0.532 0.150 300);
  --syn-string: oklch(0.503 0.150 140);
  --syn-symbol: oklch(0.506 0.086 195);
  --syn-number: oklch(0.527 0.130 55);
  --syn-constant: oklch(0.519 0.150 255);
  --syn-method: oklch(0.534 0.150 25);
  --syn-ivar: oklch(0.536 0.150 340);
  --syn-comment: oklch(0.528 0.035 70);
  --syn-punct: oklch(0.457 0.035 70);
  --diff-add-bg: oklch(0.958 0.035 150);
  --diff-add-word: oklch(0.905 0.075 150);
  --diff-del-bg: oklch(0.958 0.021 25);
  --diff-del-word: oklch(0.910 0.046 25);
  --diff-add-mark: oklch(0.543 0.140 150);
  --diff-del-mark: oklch(0.581 0.190 27);
  --shadow-xs: 0 1px 0 oklch(0.800 0.030 75);
  --shadow-sm: 0 2px 0 oklch(0.800 0.030 75);
  --shadow-md: 0 4px 0 oklch(0.800 0.030 75);
  --shadow-lg: 0 8px 0 oklch(0.740 0.035 75);
}
[data-theme="gouache-dark"] {
  --canvas: oklch(0.245 0.024 150);
  --bg: oklch(0.205 0.008 70);
  --bg-subtle: oklch(0.185 0.016 70);
  --surface: oklch(0.230 0.005 70);
  --surface-raised: oklch(0.255 0.005 70);
  --surface-hover: oklch(1.000 0.000 0 / 0.065);
  --surface-active: oklch(1.000 0.000 0 / 0.11);
  --text: oklch(0.930 0.024 70);
  --text-muted: oklch(0.747 0.035 70);
  --text-faint: oklch(0.677 0.035 70);
  --line: oklch(0.300 0.026 70);
  --line-strong: oklch(0.539 0.026 70);
  --surface-inverse: oklch(0.940 0.016 70);
  --text-inverse: oklch(0.180 0.016 70);
  --accent: oklch(0.704 0.110 40);
  --accent-hover: oklch(0.744 0.104 40);
  --on-accent: oklch(0.170 0.010 40);
  --accent-soft: oklch(0.285 0.040 40);
  --accent-soft-hover: oklch(0.330 0.048 40);
  --accent-line: oklch(0.500 0.060 40);
  --accent-text: oklch(0.676 0.099 40);
  --focus: oklch(0.571 0.110 40);
  --selection: oklch(0.400 0.055 40);
  --primary: oklch(0.704 0.110 40);
  --primary-hover: oklch(0.744 0.104 40);
  --on-primary: oklch(0.170 0.010 40);
  --canvas-text: oklch(0.930 0.024 70);
  --canvas-text-muted: oklch(0.747 0.035 70);
  --canvas-hover: oklch(1.000 0.000 0 / 0.065);
  --canvas-active: oklch(0.255 0.005 70);
  --canvas-active-text: oklch(0.930 0.024 70);
  --canvas-line: oklch(0.300 0.026 70);
  --scrim: oklch(0.050 0.000 0 / 0.62);
  --glass: oklch(0.255 0.005 70 / 0.74);
  --danger: oklch(0.697 0.162 27);
  --on-danger: oklch(0.180 0.010 27);
  --danger-soft: oklch(0.275 0.061 27);
  --danger-text: oklch(0.675 0.162 27);
  --warn: oklch(0.685 0.128 70);
  --on-warn: oklch(0.180 0.010 70);
  --warn-soft: oklch(0.275 0.048 70);
  --warn-text: oklch(0.666 0.128 70);
  --success: oklch(0.666 0.119 150);
  --on-success: oklch(0.180 0.010 150);
  --success-soft: oklch(0.275 0.045 150);
  --success-text: oklch(0.653 0.119 150);
  --info: oklch(0.678 0.128 250);
  --on-info: oklch(0.180 0.010 250);
  --info-soft: oklch(0.275 0.048 250);
  --info-text: oklch(0.661 0.128 250);
  --app-red: oklch(0.700 0.081 25);
  --app-red-soft: oklch(0.310 0.038 25);
  --app-red-ink: oklch(0.697 0.076 25);
  --app-orange: oklch(0.700 0.081 50);
  --app-orange-soft: oklch(0.310 0.038 50);
  --app-orange-ink: oklch(0.696 0.076 50);
  --app-amber: oklch(0.700 0.081 78);
  --app-amber-soft: oklch(0.310 0.038 78);
  --app-amber-ink: oklch(0.694 0.076 78);
  --app-lime: oklch(0.700 0.081 128);
  --app-lime-soft: oklch(0.310 0.038 128);
  --app-lime-ink: oklch(0.690 0.076 128);
  --app-green: oklch(0.700 0.081 150);
  --app-green-soft: oklch(0.310 0.038 150);
  --app-green-ink: oklch(0.688 0.076 150);
  --app-teal: oklch(0.700 0.081 185);
  --app-teal-soft: oklch(0.310 0.038 185);
  --app-teal-ink: oklch(0.688 0.076 185);
  --app-sky: oklch(0.700 0.081 225);
  --app-sky-soft: oklch(0.310 0.038 225);
  --app-sky-ink: oklch(0.690 0.076 225);
  --app-blue: oklch(0.700 0.081 262);
  --app-blue-soft: oklch(0.310 0.038 262);
  --app-blue-ink: oklch(0.693 0.076 262);
  --app-violet: oklch(0.700 0.081 295);
  --app-violet-soft: oklch(0.310 0.038 295);
  --app-violet-ink: oklch(0.696 0.076 295);
  --app-pink: oklch(0.700 0.081 345);
  --app-pink-soft: oklch(0.310 0.038 345);
  --app-pink-ink: oklch(0.698 0.076 345);
  --syn-keyword: oklch(0.700 0.150 300);
  --syn-string: oklch(0.672 0.150 140);
  --syn-symbol: oklch(0.672 0.115 195);
  --syn-number: oklch(0.698 0.150 55);
  --syn-constant: oklch(0.687 0.150 255);
  --syn-method: oklch(0.703 0.150 25);
  --syn-ivar: oklch(0.705 0.150 340);
  --syn-comment: oklch(0.619 0.035 70);
  --syn-punct: oklch(0.747 0.035 70);
  --diff-add-bg: oklch(0.255 0.045 150);
  --diff-add-word: oklch(0.335 0.080 150);
  --diff-del-bg: oklch(0.255 0.045 25);
  --diff-del-word: oklch(0.340 0.075 25);
  --diff-add-mark: oklch(0.666 0.119 150);
  --diff-del-mark: oklch(0.697 0.162 27);
  --shadow-xs: 0 1px 0 oklch(0.120 0.012 75);
  --shadow-sm: 0 2px 0 oklch(0.120 0.012 75);
  --shadow-md: 0 4px 0 oklch(0.120 0.012 75);
  --shadow-lg: 0 8px 0 oklch(0.090 0.010 75);
}
[data-theme="classic-light"] {
  --canvas: #fffdf7;
  --bg: #f7f3e9;
  --bg-subtle: #efe9da;
  --surface: #fffdf7;
  --surface-raised: #fffdf7;
  --surface-hover: oklch(0.3 0.02 85 / 0.06);
  --surface-active: oklch(0.3 0.02 85 / 0.1);
  --text: #2c2a24;
  --text-muted: #666151;
  --text-faint: #6e6856;
  --line: #d9d1bd;
  --line-strong: #8f876f;
  --surface-inverse: #2c2a24;
  --text-inverse: #fffdf7;
  --accent: #5b7c5a;
  --accent-hover: #4e6c4d;
  --on-accent: #ffffff;
  --accent-soft: #e7efe5;
  --accent-soft-hover: #dbe7d8;
  --accent-line: #a9c2a6;
  --accent-text: #456544;
  --focus: #5b7c5a;
  --selection: #d5e3d2;
  --primary: #5b7c5a;
  --primary-hover: #4e6c4d;
  --on-primary: #ffffff;
  --canvas-text: #2c2a24;
  --canvas-text-muted: #666151;
  --canvas-hover: oklch(0.3 0.02 85 / 0.06);
  --canvas-active: #e7efe5;
  --canvas-active-text: #2c2a24;
  --canvas-line: #d9d1bd;
  --scrim: oklch(0 0 0 / 0.32);
  --glass: oklch(0.99 0.01 90 / 0.8);
  --danger: #d93036;
  --on-danger: #ffffff;
  --danger-soft: #fde8e8;
  --danger-text: #c0343a;
  --warn: #e8893b;
  --on-warn: #2c2a24;
  --warn-soft: #fff7ed;
  --warn-text: #a85610;
  --success: #25803a;
  --on-success: #ffffff;
  --success-soft: #e6f5ea;
  --success-text: #1f7d35;
  --info: #3b6fb3;
  --on-info: #ffffff;
  --info-soft: #eaf0fe;
  --info-text: #2f5c96;
  --app-red: oklch(0.680 0.150 25);
  --app-red-soft: oklch(0.925 0.038 25);
  --app-red-ink: oklch(0.513 0.128 25);
  --app-orange: oklch(0.680 0.150 50);
  --app-orange-soft: oklch(0.925 0.043 50);
  --app-orange-ink: oklch(0.510 0.128 50);
  --app-amber: oklch(0.680 0.142 78);
  --app-amber-soft: oklch(0.925 0.048 78);
  --app-amber-ink: oklch(0.504 0.105 78);
  --app-lime: oklch(0.680 0.150 128);
  --app-lime-soft: oklch(0.925 0.048 128);
  --app-lime-ink: oklch(0.494 0.128 128);
  --app-green: oklch(0.680 0.150 150);
  --app-green-soft: oklch(0.925 0.048 150);
  --app-green-ink: oklch(0.491 0.128 150);
  --app-teal: oklch(0.680 0.120 185);
  --app-teal-soft: oklch(0.925 0.048 185);
  --app-teal-ink: oklch(0.494 0.087 185);
  --app-sky: oklch(0.680 0.129 225);
  --app-sky-soft: oklch(0.925 0.048 225);
  --app-sky-ink: oklch(0.497 0.094 225);
  --app-blue: oklch(0.680 0.150 262);
  --app-blue-soft: oklch(0.925 0.036 262);
  --app-blue-ink: oklch(0.504 0.128 262);
  --app-violet: oklch(0.680 0.150 295);
  --app-violet-soft: oklch(0.925 0.040 295);
  --app-violet-ink: oklch(0.510 0.128 295);
  --app-pink: oklch(0.680 0.150 345);
  --app-pink-soft: oklch(0.925 0.048 345);
  --app-pink-ink: oklch(0.513 0.128 345);
  --syn-keyword: #a35226;
  --syn-string: #5f6b2a;
  --syn-symbol: #7a5f22;
  --syn-number: #7d5a22;
  --syn-constant: #4e7a4a;
  --syn-method: #4e7a4a;
  --syn-ivar: #9c5a2c;
  --syn-comment: #666151;
  --syn-punct: #666151;
  --diff-add-bg: oklch(0.958 0.035 150);
  --diff-add-word: oklch(0.905 0.075 150);
  --diff-del-bg: oklch(0.958 0.021 25);
  --diff-del-word: oklch(0.910 0.046 25);
  --diff-add-mark: oklch(0.543 0.140 150);
  --diff-del-mark: oklch(0.581 0.190 27);
  --shadow-xs: 0 1px 2px rgba(0,0,0,0.06);
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
  --shadow-md: 0 8px 24px rgba(0,0,0,0.16);
  --shadow-lg: 0 24px 60px rgba(0,0,0,0.28);
}
[data-theme="classic-dark"] {
  --canvas: #26241f;
  --bg: #1c1b18;
  --bg-subtle: #171613;
  --surface: #26241f;
  --surface-raised: #2c2a25;
  --surface-hover: oklch(1 0 0 / 0.06);
  --surface-active: oklch(1 0 0 / 0.1);
  --text: #ece7d8;
  --text-muted: #a8a290;
  --text-faint: #a39d8b;
  --line: #45423a;
  --line-strong: #7a7466;
  --surface-inverse: #ece7d8;
  --text-inverse: #1c1b18;
  --accent: #8fb48b;
  --accent-hover: #9fc19b;
  --on-accent: #1c1b18;
  --accent-soft: #2b332a;
  --accent-soft-hover: #333d32;
  --accent-line: #5d7a5a;
  --accent-text: #8fb48b;
  --focus: #8fb48b;
  --selection: #3a4a39;
  --primary: #8fb48b;
  --primary-hover: #9fc19b;
  --on-primary: #1c1b18;
  --canvas-text: #ece7d8;
  --canvas-text-muted: #a8a290;
  --canvas-hover: oklch(1 0 0 / 0.06);
  --canvas-active: #2b332a;
  --canvas-active-text: #ece7d8;
  --canvas-line: #45423a;
  --scrim: oklch(0 0 0 / 0.55);
  --glass: oklch(0.25 0.01 85 / 0.78);
  --danger: #f2777c;
  --on-danger: #1c1b18;
  --danger-soft: #3a2323;
  --danger-text: #f2777c;
  --warn: #f0a860;
  --on-warn: #1c1b18;
  --warn-soft: #3a2e1f;
  --warn-text: #f0a860;
  --success: #57c96a;
  --on-success: #1c1b18;
  --success-soft: #1f3325;
  --success-text: #57c96a;
  --info: #6ea8e6;
  --on-info: #1c1b18;
  --info-soft: #1f2a3a;
  --info-text: #6ea8e6;
  --app-red: oklch(0.700 0.135 25);
  --app-red-soft: oklch(0.310 0.063 25);
  --app-red-ink: oklch(0.701 0.128 25);
  --app-orange: oklch(0.700 0.135 50);
  --app-orange-soft: oklch(0.310 0.063 50);
  --app-orange-ink: oklch(0.699 0.128 50);
  --app-amber: oklch(0.700 0.135 78);
  --app-amber-soft: oklch(0.310 0.063 78);
  --app-amber-ink: oklch(0.695 0.128 78);
  --app-lime: oklch(0.700 0.135 128);
  --app-lime-soft: oklch(0.310 0.063 128);
  --app-lime-ink: oklch(0.688 0.128 128);
  --app-green: oklch(0.700 0.135 150);
  --app-green-soft: oklch(0.310 0.063 150);
  --app-green-ink: oklch(0.686 0.128 150);
  --app-teal: oklch(0.700 0.123 185);
  --app-teal-soft: oklch(0.310 0.055 185);
  --app-teal-ink: oklch(0.685 0.121 185);
  --app-sky: oklch(0.700 0.133 225);
  --app-sky-soft: oklch(0.310 0.059 225);
  --app-sky-ink: oklch(0.688 0.128 225);
  --app-blue: oklch(0.700 0.135 262);
  --app-blue-soft: oklch(0.310 0.063 262);
  --app-blue-ink: oklch(0.694 0.128 262);
  --app-violet: oklch(0.700 0.135 295);
  --app-violet-soft: oklch(0.310 0.063 295);
  --app-violet-ink: oklch(0.698 0.128 295);
  --app-pink: oklch(0.700 0.135 345);
  --app-pink-soft: oklch(0.310 0.063 345);
  --app-pink-ink: oklch(0.702 0.128 345);
  --syn-keyword: #e89a6a;
  --syn-string: #bccb70;
  --syn-symbol: #cbb070;
  --syn-number: #d6a866;
  --syn-constant: #9fc89a;
  --syn-method: #9fc89a;
  --syn-ivar: #d69a6a;
  --syn-comment: #a8a290;
  --syn-punct: #a8a290;
  --diff-add-bg: oklch(0.255 0.045 150);
  --diff-add-word: oklch(0.335 0.080 150);
  --diff-del-bg: oklch(0.255 0.045 25);
  --diff-del-word: oklch(0.340 0.075 25);
  --diff-add-mark: oklch(0.666 0.119 150);
  --diff-del-mark: oklch(0.697 0.162 27);
  --shadow-xs: 0 1px 2px rgba(0,0,0,0.4);
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.5);
  --shadow-md: 0 10px 28px rgba(0,0,0,0.6);
  --shadow-lg: 0 24px 60px rgba(0,0,0,0.7);
}

:root {
  --on-app: oklch(0.2 0.012 70);
  --fill-hover: oklch(0 0 0 / 0.08);
  --qr-ink: #141414;
  --qr-paper: #ffffff;
  --shadow-knob: 0 1px 2px oklch(0 0 0 / 0.25);
  --shadow-cursor: 0 1px 1.5px oklch(0 0 0 / 0.28);
  --space-0: 0px;
  --space-2: 2px;
  --space-4: 4px;
  --space-6: 6px;
  --space-8: 8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-20: 20px;
  --space-24: 24px;
  --space-32: 32px;
  --space-40: 40px;
  --space-48: 48px;
  --space-64: 64px;
  --space-80: 80px;
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 24px;
  --radius-full: 999px;
  --control-xs: 24px;
  --control-sm: 28px;
  --control-md: 32px;
  --control-lg: 40px;
  --control-xl: 48px;
  --touch-min: 44px;
  --icon-sm: 16px;
  --icon-md: 20px;
  --icon-lg: 24px;
  --icon-xl: 32px;
  --icon-2xl: 48px;
  --sidebar-w: 248px;
  --rail-w: 56px;
  --topbar-h: 48px;
  --pane-head-h: 40px;
  --statusbar-h: 28px;
  --chat-w: 380px;
  --composer-max: 760px;
  --content-max: 1120px;
  --frame-inset: 8px;
  --focus-width: 2px;
  --focus-offset: 2px;
  --z-raised: 1;
  --z-sticky: 10;
  --z-dock: 20;
  --z-overlay: 40;
  --z-popover: 50;
  --z-toast: 60;
  --z-tooltip: 70;
  --dur-instant: 80ms;
  --dur-fast: 140ms;
  --dur-base: 220ms;
  --dur-slow: 360ms;
  --dur-slower: 560ms;
  --loop-spin: 700ms;
  --loop-pulse: 1.1s;
  --loop-blink: 1.1s;
  --loop-leaf: 1.3s;
  --loop-slide: 1.4s;
  --loop-shimmer: 1.6s;
  --loop-breathe: 2.4s;
  --loop-busy: 2.4s;
  --loop-sway: 2.6s;
  --loop-orbit: 8s;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --ease-enter: cubic-bezier(0.05, 0.7, 0.1, 1);
  --ease-exit: cubic-bezier(0.3, 0, 0.8, 0.15);
  --ease-linear: linear;
  --opacity-disabled: 0.45;
  --opacity-ghost: 0.6;
  --move: 1;
  --font-ui: "Google Sans Flex", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-display: "Google Sans Flex", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "Google Sans Code", ui-monospace, "SF Mono", Menlo, monospace;
  --display-settings: "ROND" 100;
  --ui-settings: "ROND" 0;
}

/* More contrast, over every theme: AAA body text, 3:1 on every line, thicker rings. */
[data-contrast="more"] { --focus-width: 3px; --line: var(--line-strong); --text-faint: var(--text-muted); --accent-line: var(--accent-text); }
[data-contrast="more"][data-theme$="-light"] { --text: oklch(0.12 0 0); --text-muted: oklch(0.30 0 0); --text-faint: oklch(0.36 0 0); --line-strong: oklch(0.42 0 0); --canvas-text-muted: oklch(0.30 0 0); --surface-hover: oklch(0 0 0 / 0.08); }
[data-contrast="more"][data-theme$="-dark"] { --text: oklch(0.99 0 0); --text-muted: oklch(0.86 0 0); --text-faint: oklch(0.80 0 0); --line-strong: oklch(0.70 0 0); --canvas-text-muted: oklch(0.86 0 0); --surface-hover: oklch(1 0 0 / 0.1); }
[data-contrast="more"][data-theme="botanical-light"] { --canvas-text-muted: oklch(0.92 0.01 156); }

/* Font. Google Sans Flex is the default. */
[data-font="atkinson"] {
  --font-ui: "Atkinson Hyperlegible Next", system-ui, sans-serif; --font-display: "Atkinson Hyperlegible Next", system-ui, sans-serif;
  --font-mono: "Atkinson Hyperlegible Mono", ui-monospace, monospace; --display-settings: normal; --ui-settings: normal;
}
[data-font="system"] {
  --font-ui: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; --font-display: ui-rounded, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace; --display-settings: normal; --ui-settings: normal;
}

/* Density: compact trims control heights and pane chrome by one step. */
[data-density="compact"] { --control-sm: 24px; --control-md: 28px; --control-lg: 36px; --pane-head-h: 34px; --topbar-h: 42px; --row-pad: 4px; }

/* Interface size scales the whole interface, type and space together. */
[data-scale="small"] { zoom: 0.9; } [data-scale="large"] { zoom: 1.125; } [data-scale="larger"] { zoom: 1.25; }

/* Motion: reduced keeps fades and progress, drops movement and the celebration. */
[data-motion="reduced"] { --move: 0; --dur-slower: 0ms; }
@media (prefers-reduced-motion: reduce) { :root { --move: 0; --dur-slower: 0ms; } }

/* A coarse pointer gets 44px targets. */
@media (pointer: coarse) { :root { --control-sm: 44px; --control-md: 44px; --control-lg: 48px; } }

.display-xl { font-family: var(--font-display); font-size: 48px; line-height: 52px; font-weight: 700; letter-spacing: -0.025em; }
.display-lg { font-family: var(--font-display); font-size: 36px; line-height: 42px; font-weight: 700; letter-spacing: -0.02em; }
.display-md { font-family: var(--font-display); font-size: 28px; line-height: 34px; font-weight: 700; letter-spacing: -0.015em; }
.title-lg { font-family: var(--font-ui); font-size: 20px; line-height: 26px; font-weight: 650; letter-spacing: -0.01em; }
.title-md { font-family: var(--font-ui); font-size: 16px; line-height: 22px; font-weight: 650; letter-spacing: -0.005em; }
.title-sm { font-family: var(--font-ui); font-size: 14px; line-height: 20px; font-weight: 650; }
.text-lg { font-family: var(--font-ui); font-size: 16px; line-height: 24px; font-weight: 400; }
.text-md { font-family: var(--font-ui); font-size: 14px; line-height: 20px; font-weight: 400; }
.text-sm { font-family: var(--font-ui); font-size: 13px; line-height: 18px; font-weight: 400; }
.text-xs { font-family: var(--font-ui); font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: 0.01em; }
.label-md { font-family: var(--font-ui); font-size: 14px; line-height: 20px; font-weight: 560; }
.label-sm { font-family: var(--font-ui); font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: 0.01em; }
.code-md { font-family: var(--font-mono); font-size: 13px; line-height: 21px; font-weight: 400; }
.code-sm { font-family: var(--font-mono); font-size: 12px; line-height: 18px; font-weight: 400; }

/* The key frame's own rules, over the kit tokens (tokens.css rides first). */
:root {
  background: var(--surface);
  color: var(--text);
  font: 14px/1.45 var(--font-ui);
}

body {
  margin: 0;
}

main {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
  padding: var(--space-20) var(--space-24) var(--space-24);
  outline: none;
}

h1 {
  margin: 0;
  font: 600 18px/1.3 var(--font-display);
}

p {
  margin: 0;
}

.muted {
  color: var(--text-muted);
}

.state.on {
  color: var(--success-text);
}

.state.failed {
  color: var(--danger-text);
}

form {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

label {
  font-weight: 600;
}

.row {
  display: flex;
  gap: var(--space-8);
  align-items: center;
}

input {
  flex: 1;
  min-width: 0;
  height: var(--control-md);
  padding: 0 var(--space-8);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  background: var(--bg);
  color: var(--text);
  font: inherit;
}

.button {
  height: var(--control-md);
  padding: 0 var(--space-12);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  background: var(--surface);
  color: var(--text);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.button:hover {
  background: var(--surface-hover);
}

.button.primary {
  border-color: var(--primary);
  background: var(--primary);
  color: var(--on-primary);
}

.button.primary:hover {
  background: var(--primary-hover);
}

.button.danger {
  border-color: var(--danger);
  color: var(--danger-text);
}

a {
  color: var(--accent-text);
}

:focus-visible {
  outline: var(--focus-width) solid var(--focus);
  outline-offset: var(--focus-offset);
}

.note:empty {
  display: none;
}
