/* ── Design tokens — single source of truth ──────────────────────────────── */
/* Change here → updates everywhere.                                           */

:root {
  /* Member/public defaults */
  --black:      oklch(0.985 0.006 75);
  --white:      oklch(0.13 0.010 55);
  --surface:    oklch(0.955 0.008 75);
  --surface2:   oklch(0.925 0.010 75);
  --surface3:   oklch(0.895 0.012 75);

  /* Semantic aliases kept stable across admin/staff/member surfaces */
  --bg:         var(--black);
  --panel:      var(--surface);
  --panel-2:    var(--surface2);
  --text:       var(--white);
  --text2:      var(--muted);
  --border:     var(--divider);

  /* Brand */
  --teal:       oklch(0.64 0.048 204);
  --teal-deep:  oklch(0.50 0.058 207);
  --wood:       oklch(0.62 0.055 72);
  --accent:     var(--teal-deep);

  /* Text */
  --muted:      oklch(0.45 0.010 75);
  --mute:       var(--muted);

  /* Overlays */
  --dim:        oklch(0.13 0.010 55 / 0.07);
  --dim2:       oklch(0.13 0.010 55 / 0.13);

  /* Logo */
  --logo-blend: normal;

  /* Danger — light-theme: solid pastel bg + dark text */
  --danger:     oklch(0.62 0.19 35);
  --danger-tx:  oklch(0.36 0.18 35);
  --danger-bg:  oklch(0.93 0.05 35);
  --danger-bd:  oklch(0.62 0.19 35 / 0.32);

  /* Success — light-theme: solid pastel bg + dark text */
  --success:    oklch(0.72 0.14 145);
  --success-tx: oklch(0.30 0.15 145);
  --success-bg: oklch(0.92 0.05 145);
  --success-bd: oklch(0.60 0.12 145 / 0.35);

  /* Warning — light-theme: solid pastel bg + dark text (was oklch(0.88…) = too light on light bg) */
  --warn:       oklch(0.82 0.12 70);
  --warn-tx:    oklch(0.36 0.13 65);
  --warn-bg:    oklch(0.93 0.055 65);
  --warn-bd:    oklch(0.65 0.12 65 / 0.35);

  /* Alert (errors) */
  --alert-tx:   oklch(0.82 0.12 35);
  --alert-bg:   oklch(0.62 0.19 35 / 0.10);
  --alert-bd:   oklch(0.62 0.19 35 / 0.28);

  /* Dividers */
  --divider:    oklch(0.13 0.010 55 / 0.10);
  --teal-bd:    oklch(0.64 0.048 204 / 0.45);

  /* Typography */
  --f-disp:     'Barlow Condensed', sans-serif;
  --f-body:     'Mulish', sans-serif;

  /* Motion */
  --ease-out:   cubic-bezier(0.25, 1, 0.5, 1);
}

/* ── Operational themes — admin/staff only ───────────────────────────────── */
html[data-ui-surface="ops"][data-theme="light"] {
  --black:      oklch(0.965 0.006 182);
  --white:      oklch(0.24 0.016 196);
  --surface:    oklch(0.992 0.003 180);
  --surface2:   oklch(0.972 0.005 180);
  --surface3:   oklch(0.944 0.008 180);
  --bg:         var(--black);
  --panel:      var(--surface);
  --panel-2:    var(--surface2);
  --panel-3:    var(--surface3);
  --text:       var(--white);
  --text2:      var(--muted);
  --border:     var(--divider);
  --teal:       oklch(0.60 0.09 197);
  --teal-deep:  oklch(0.50 0.085 197);
  --wood:       oklch(0.72 0.06 191);
  --accent:     var(--teal-deep);
  --muted:      oklch(0.48 0.012 190);
  --mute:       var(--muted);
  --dim:        oklch(0.24 0.016 196 / 0.07);
  --dim2:       oklch(0.24 0.016 196 / 0.13);
  --logo-blend: normal;
  --danger:     oklch(0.62 0.19 28);
  --danger-tx:  oklch(0.38 0.16 28);
  --danger-bg:  oklch(0.94 0.04 28);
  --danger-bd:  oklch(0.62 0.19 28 / 0.28);
  --success:    oklch(0.64 0.13 154);
  --success-tx: oklch(0.34 0.11 154);
  --success-bg: oklch(0.93 0.045 154);
  --success-bd: oklch(0.60 0.11 154 / 0.28);
  --warn:       oklch(0.74 0.14 66);
  --warn-tx:    oklch(0.44 0.10 66);
  --warn-bg:    oklch(0.95 0.04 66);
  --warn-bd:    oklch(0.70 0.12 66 / 0.30);
  --alert-tx:   oklch(0.72 0.13 28);
  --alert-bg:   oklch(0.62 0.19 28 / 0.10);
  --alert-bd:   oklch(0.62 0.19 28 / 0.20);
  --divider:    oklch(0.24 0.016 196 / 0.10);
  --teal-bd:    oklch(0.60 0.09 197 / 0.28);
  --ops-haze:   oklch(0.82 0.04 192 / 0.16);
}

html[data-ui-surface="ops"][data-theme="dark"] {
  --black:      oklch(0.22 0.008 250);
  --white:      oklch(0.95 0.004 240);
  --surface:    oklch(0.26 0.008 250);
  --surface2:   oklch(0.30 0.009 250);
  --surface3:   oklch(0.35 0.010 250);
  --bg:         var(--black);
  --panel:      var(--surface);
  --panel-2:    var(--surface2);
  --panel-3:    var(--surface3);
  --text:       var(--white);
  --text2:      var(--muted);
  --border:     var(--divider);
  --teal:       oklch(0.69 0.08 196);
  --teal-deep:  oklch(0.61 0.08 196);
  --wood:       oklch(0.70 0.025 235);
  --accent:     var(--teal);
  --muted:      oklch(0.77 0.008 245);
  --mute:       var(--muted);
  --dim:        oklch(0.95 0.004 240 / 0.08);
  --dim2:       oklch(0.95 0.004 240 / 0.15);
  --danger:     oklch(0.66 0.18 28);
  --danger-tx:  oklch(0.84 0.10 28);
  --danger-bg:  oklch(0.66 0.18 28 / 0.13);
  --danger-bd:  oklch(0.66 0.18 28 / 0.30);
  --success:    oklch(0.71 0.13 154);
  --success-tx: oklch(0.85 0.08 154);
  --success-bg: oklch(0.71 0.13 154 / 0.14);
  --success-bd: oklch(0.71 0.13 154 / 0.32);
  --warn:       oklch(0.80 0.12 66);
  --warn-tx:    oklch(0.88 0.08 66);
  --warn-bg:    oklch(0.80 0.12 66 / 0.15);
  --warn-bd:    oklch(0.80 0.12 66 / 0.30);
  --alert-tx:   oklch(0.84 0.10 28);
  --alert-bg:   oklch(0.66 0.18 28 / 0.12);
  --alert-bd:   oklch(0.66 0.18 28 / 0.28);
  --divider:    oklch(0.95 0.004 240 / 0.08);
  --teal-bd:    oklch(0.69 0.08 196 / 0.34);
  --ops-haze:   oklch(0.54 0.04 210 / 0.10);
}
