/* Theme CSS Custom Properties
 * Light mode (default) and dark mode overrides.
 * WCAG AA compliant: 4.5:1 for normal text, 3:1 for large text.
 */

:root {
  /* Backgrounds */
  --bg-page:       #f9fafb; /* gray-50 */
  --bg-surface:    #ffffff; /* white */
  --bg-subtle:     #f3f4f6; /* gray-100 */
  --bg-muted:      #e5e7eb; /* gray-200 */

  /* Text */
  --text-primary:  #111827; /* gray-900 — contrast 16:1 on white */
  --text-secondary:#374151; /* gray-700 — contrast 10:1 on white */
  --text-muted:    #6b7280; /* gray-500 — contrast 4.6:1 on white */
  --text-faint:    #9ca3af; /* gray-400 — use for large/decorative only */

  /* Borders */
  --border:        #e5e7eb; /* gray-200 */
  --border-strong: #d1d5db; /* gray-300 */

  /* Nav */
  --nav-bg:        #ffffff;
  --nav-border:    #e5e7eb;
  --nav-text:      #4b5563; /* gray-600 */
  --nav-text-hover:#111827;

  /* Forms */
  --input-bg:      #ffffff;
  --input-border:  #d1d5db; /* gray-300 */
  --input-text:    #111827;
  --input-placeholder: #9ca3af;

  /* Buttons — secondary/outlined */
  --btn-secondary-bg:     #ffffff;
  --btn-secondary-border: #d1d5db;
  --btn-secondary-text:   #374151;
  --btn-secondary-hover:  #f9fafb;

  /* Badges */
  --badge-gray-bg:    #f3f4f6;
  --badge-gray-text:  #374151;
  --badge-green-bg:   #d1fae5;
  --badge-green-text: #065f46;
  --badge-blue-bg:    #dbeafe;
  --badge-blue-text:  #1e40af;
  --badge-amber-bg:   #fef3c7;
  --badge-amber-text: #92400e;
  --badge-red-bg:     #fee2e2;
  --badge-red-text:   #991b1b;
  --badge-purple-bg:  #ede9fe;
  --badge-purple-text:#5b21b6;

  /* Flash messages */
  --flash-success-bg:     #f0fdf4;
  --flash-success-border: #bbf7d0;
  --flash-success-text:   #166534;
  --flash-error-bg:       #fef2f2;
  --flash-error-border:   #fecaca;
  --flash-error-text:     #991b1b;

  /* Dividers */
  --divide:        #f3f4f6; /* gray-100 */
}

[data-theme="dark"] {
  /* Backgrounds */
  --bg-page:       #0f172a; /* slate-900 */
  --bg-surface:    #1e293b; /* slate-800 */
  --bg-subtle:     #334155; /* slate-700 */
  --bg-muted:      #475569; /* slate-600 */

  /* Text — all WCAG AA on dark backgrounds */
  --text-primary:  #f1f5f9; /* slate-100 — contrast 15:1 on slate-800 */
  --text-secondary:#cbd5e1; /* slate-300 — contrast 9:1 on slate-800 */
  --text-muted:    #94a3b8; /* slate-400 — contrast 4.7:1 on slate-800 */
  --text-faint:    #64748b; /* slate-500 */

  /* Borders */
  --border:        #334155; /* slate-700 */
  --border-strong: #475569; /* slate-600 */

  /* Nav */
  --nav-bg:        #1e293b;
  --nav-border:    #334155;
  --nav-text:      #cbd5e1;
  --nav-text-hover:#f1f5f9;

  /* Forms */
  --input-bg:      #334155;
  --input-border:  #475569;
  --input-text:    #f1f5f9;
  --input-placeholder: #64748b;

  /* Buttons — secondary/outlined */
  --btn-secondary-bg:     #334155;
  --btn-secondary-border: #475569;
  --btn-secondary-text:   #cbd5e1;
  --btn-secondary-hover:  #475569;

  /* Badges */
  --badge-gray-bg:    #334155;
  --badge-gray-text:  #cbd5e1;
  --badge-green-bg:   #064e3b;
  --badge-green-text: #6ee7b7;
  --badge-blue-bg:    #1e3a5f;
  --badge-blue-text:  #93c5fd;
  --badge-amber-bg:   #451a03;
  --badge-amber-text: #fcd34d;
  --badge-red-bg:     #450a0a;
  --badge-red-text:   #fca5a5;
  --badge-purple-bg:  #2e1065;
  --badge-purple-text:#c4b5fd;

  /* Flash messages */
  --flash-success-bg:     #052e16;
  --flash-success-border: #166534;
  --flash-success-text:   #86efac;
  --flash-error-bg:       #450a0a;
  --flash-error-border:   #991b1b;
  --flash-error-text:     #fca5a5;

  /* Dividers */
  --divide:        #334155;
}
