/* ==========================================================================
   INNODIGYM Power -- theme tokens.
   A theme is nothing but a block of custom properties; components in style.css
   use var(--token) only. Selected through data-theme on <html> (see theme.js and
   the boot script in index.html). Adding a theme = one block here + one picker
   card + i18n keys. Contrast numbers: docs/plan-themes.md section 3.
   ========================================================================== */

/* shared, not theme dependent */
:root {
  --radius-sm: 8px;
  --radius: 14px;
  --radius-lg: 20px;
  --tabbar-h: 64px;

  /* constant dark fades/badges that sit on arbitrary photos (white text on top) */
  --on-media: #ffffff;
  --media-fade-strong: rgba(15, 23, 42, .85);
  --media-fade-soft: rgba(15, 23, 42, .6);
  --media-badge-bg: rgba(15, 23, 42, .65);
}

:root,
[data-theme="default"] {
  color-scheme: light;
  --meta-theme-color: #f4f6fb;
  --bg: #f4f6fb;
  --surface: #ffffff;
  --surface-2: #f8fafc;
  --border: #e3e8f0;
  --border-strong: #cbd5e1;
  --input-border: #7e8ea4;
  --border-hover: #94a3b8;
  --text: #0f172a;
  --text-2: #475569;
  --muted: #5b6a80;
  --placeholder: #64748b;
  --primary: #0f766e;
  --primary-hover: #115e59;
  --primary-soft: #e6f6f4;
  --primary-border: #b6e3dd;
  --on-primary: #ffffff;
  --accent: #84cc16;
  --danger: #dc2626;
  --danger-soft: #fef2f2;
  --danger-border: #fecaca;
  --danger-text: #b91c1c;
  --on-danger: #ffffff;
  --ok: #15803d;
  --warn: #b45309;
  --warn-soft: #fffbeb;
  --warn-border: #fcd34d;
  --warn-text: #78350f;
  --warn-hover: #fef3c7;
  --chip-official-bg: #eef2ff;
  --chip-official-fg: #3730a3;
  --chip-official-border: #c7d2fe;
  --toast-bg: #0f172a;
  --toast-fg: #ffffff;
  --tabbar-bg: rgba(255,255,255,.92);
  --scrim: rgba(15,23,42,.5);
  --scrim-strong: rgba(15,23,42,.7);
  --focus: #0f766e;
  --ring: 0 0 0 3px rgba(15,118,110,.25);
  --brand-1: #0f766e;
  --brand-2: #14b8a6;
  --brand-3: #84cc16;
  --brand-fg: #ffffff;
  --brand-shadow: 0 6px 16px -4px rgba(15,118,110,.5);
  --act-duration: #0e7490;
  --act-duration-2: #0891b2;
  --glow-1: rgba(132,204,22,.14);
  --glow-2: rgba(15,118,110,.12);
  --shadow-sm: 0 1px 2px rgba(15,23,42,.06);
  --shadow: 0 1px 3px rgba(15,23,42,.06), 0 8px 24px -8px rgba(15,23,42,.10);
  --shadow-lg: 0 24px 48px -12px rgba(15,23,42,.25);
  --shadow-hover: 0 6px 16px rgba(15,23,42,.12);
  --shadow-menu: 0 10px 30px rgba(15,23,42,.18);
  --shadow-tabbar: 0 -4px 16px rgba(15,23,42,.06);
  --img-filter: none;
  --fit-on-badge: #ffffff;
  --fit-c: #3b5b92;
  --fit-b: #15803d;
  --fit-a: #92600a;
  --fit-s: #7e22ce;
}

[data-theme="dark"] {
  color-scheme: dark;
  --meta-theme-color: #0e1523;
  --bg: #0e1523;
  --surface: #151e30;
  --surface-2: #1c273b;
  --border: #2a364d;
  --border-strong: #3d4c66;
  --input-border: #7a8aa6;
  --border-hover: #9aa9c2;
  --text: #e8edf6;
  --text-2: #b7c2d6;
  --muted: #98a5bc;
  --placeholder: #8795ae;
  --primary: #2dd4bf;
  --primary-hover: #5eead4;
  --primary-soft: #123a3d;
  --primary-border: #1f5d5c;
  --on-primary: #04211e;
  --accent: #a3e635;
  --danger: #f87171;
  --danger-soft: #3a1c22;
  --danger-border: #7f2f38;
  --danger-text: #fca5a5;
  --on-danger: #2a0a0c;
  --ok: #4ade80;
  --warn: #fbbf24;
  --warn-soft: #2d2410;
  --warn-border: #6b5316;
  --warn-text: #fde68a;
  --warn-hover: #3a2e12;
  --chip-official-bg: #25285a;
  --chip-official-fg: #c7d2fe;
  --chip-official-border: #454a99;
  --toast-bg: #e8edf6;
  --toast-fg: #0e1523;
  --tabbar-bg: rgba(21,30,48,.92);
  --scrim: rgba(3,7,16,.65);
  --scrim-strong: rgba(3,7,16,.82);
  --focus: #5eead4;
  --ring: 0 0 0 3px rgba(94,234,212,.35);
  --brand-1: #14b8a6;
  --brand-2: #2dd4bf;
  --brand-3: #a3e635;
  --brand-fg: #04211e;
  --brand-shadow: 0 6px 16px -4px rgba(45,212,191,.35);
  --act-duration: #22d3ee;
  --act-duration-2: #67e8f9;
  --glow-1: rgba(163,230,53,.05);
  --glow-2: rgba(45,212,191,.09);
  --shadow-sm: 0 1px 2px rgba(0,0,0,.40);
  --shadow: 0 1px 3px rgba(0,0,0,.40), 0 8px 24px -8px rgba(0,0,0,.55);
  --shadow-lg: 0 24px 48px -12px rgba(0,0,0,.70);
  --shadow-hover: 0 6px 16px rgba(0,0,0,.50);
  --shadow-menu: 0 10px 30px rgba(0,0,0,.60);
  --shadow-tabbar: 0 -4px 16px rgba(0,0,0,.35);
  --img-filter: brightness(.9);
  --fit-on-badge: #0e1523;
  --fit-c: #9db4de;
  --fit-b: #4ade80;
  --fit-a: #fbbf24;
  --fit-s: #c4a1fa;
}

[data-theme="ember"] {
  color-scheme: light;
  --meta-theme-color: #faf4ec;
  --bg: #faf4ec;
  --surface: #fffdf9;
  --surface-2: #fbf5ec;
  --border: #ecdfcc;
  --border-strong: #d9c6aa;
  --input-border: #8d765a;
  --border-hover: #a38b6c;
  --text: #2a1c11;
  --text-2: #5a4536;
  --muted: #755f4c;
  --placeholder: #85705c;
  --primary: #8a4a12;
  --primary-hover: #6b370c;
  --primary-soft: #f7ebdc;
  --primary-border: #e2c7a0;
  --on-primary: #ffffff;
  --accent: #f5b83d;
  --danger: #be123c;
  --danger-soft: #fff1f5;
  --danger-border: #f5b5c8;
  --danger-text: #9f1239;
  --on-danger: #ffffff;
  --ok: #3f7a1a;
  --warn: #6b5600;
  --warn-soft: #fffbd1;
  --warn-border: #e3cf2c;
  --warn-text: #4a3b00;
  --warn-hover: #fff3a0;
  --chip-official-bg: #f3ebff;
  --chip-official-fg: #6b21a8;
  --chip-official-border: #d9c2fa;
  --toast-bg: #2a1c11;
  --toast-fg: #fffdf9;
  --tabbar-bg: rgba(255,253,249,.92);
  --scrim: rgba(42,28,17,.5);
  --scrim-strong: rgba(42,28,17,.72);
  --focus: #8a4a12;
  --ring: 0 0 0 3px rgba(138,74,18,.28);
  --brand-1: #6b370c;
  --brand-2: #a8651a;
  --brand-3: #f5b83d;
  --brand-fg: #ffffff;
  --brand-shadow: 0 6px 16px -4px rgba(107,55,12,.45);
  --act-duration: #0e7490;
  --act-duration-2: #0891b2;
  --glow-1: rgba(245,184,61,.18);
  --glow-2: rgba(138,74,18,.09);
  --shadow-sm: 0 1px 2px rgba(42,28,17,.07);
  --shadow: 0 1px 3px rgba(42,28,17,.07), 0 8px 24px -8px rgba(42,28,17,.12);
  --shadow-lg: 0 24px 48px -12px rgba(42,28,17,.28);
  --shadow-hover: 0 6px 16px rgba(42,28,17,.14);
  --shadow-menu: 0 10px 30px rgba(42,28,17,.20);
  --shadow-tabbar: 0 -4px 16px rgba(42,28,17,.07);
  --img-filter: none;
  --fit-on-badge: #ffffff;
  --fit-c: #3b5b92;
  --fit-b: #15803d;
  --fit-a: #92600a;
  --fit-s: #7e22ce;
}

[data-theme="tide"] {
  color-scheme: light;
  --meta-theme-color: #eef3fa;
  --bg: #eef3fa;
  --surface: #ffffff;
  --surface-2: #f5f8fd;
  --border: #dce5f1;
  --border-strong: #bccbe0;
  --input-border: #74869f;
  --border-hover: #8697b1;
  --text: #0b1a33;
  --text-2: #40526c;
  --muted: #586982;
  --placeholder: #64748f;
  --primary: #1d4ed8;
  --primary-hover: #1e40af;
  --primary-soft: #e4ecfd;
  --primary-border: #bfd1f8;
  --on-primary: #ffffff;
  --accent: #06b6d4;
  --danger: #c81e1e;
  --danger-soft: #fef2f2;
  --danger-border: #fecaca;
  --danger-text: #a61b1b;
  --on-danger: #ffffff;
  --ok: #15803d;
  --warn: #b45309;
  --warn-soft: #fffbeb;
  --warn-border: #fcd34d;
  --warn-text: #78350f;
  --warn-hover: #fef3c7;
  --chip-official-bg: #f1ebff;
  --chip-official-fg: #5b21b6;
  --chip-official-border: #d6c8fa;
  --toast-bg: #0b1a33;
  --toast-fg: #ffffff;
  --tabbar-bg: rgba(255,255,255,.92);
  --scrim: rgba(11,26,51,.5);
  --scrim-strong: rgba(11,26,51,.72);
  --focus: #1d4ed8;
  --ring: 0 0 0 3px rgba(29,78,216,.25);
  --brand-1: #1d4ed8;
  --brand-2: #3b82f6;
  --brand-3: #22d3ee;
  --brand-fg: #ffffff;
  --brand-shadow: 0 6px 16px -4px rgba(29,78,216,.45);
  --act-duration: #0e7490;
  --act-duration-2: #0891b2;
  --glow-1: rgba(34,211,238,.14);
  --glow-2: rgba(29,78,216,.10);
  --shadow-sm: 0 1px 2px rgba(11,26,51,.06);
  --shadow: 0 1px 3px rgba(11,26,51,.06), 0 8px 24px -8px rgba(11,26,51,.11);
  --shadow-lg: 0 24px 48px -12px rgba(11,26,51,.26);
  --shadow-hover: 0 6px 16px rgba(11,26,51,.12);
  --shadow-menu: 0 10px 30px rgba(11,26,51,.18);
  --shadow-tabbar: 0 -4px 16px rgba(11,26,51,.06);
  --img-filter: none;
  --fit-on-badge: #ffffff;
  --fit-c: #3b5b92;
  --fit-b: #15803d;
  --fit-a: #92600a;
  --fit-s: #7e22ce;
}

[data-theme="graphite"] {
  color-scheme: light;
  --meta-theme-color: #ececee;
  --bg: #ececee;
  --surface: #ffffff;
  --surface-2: #f4f4f5;
  --border: #c9c9ce;
  --border-strong: #71717a;
  --input-border: #52525b;
  --border-hover: #3f3f46;
  --text: #09090b;
  --text-2: #2e2e34;
  --muted: #46464e;
  --placeholder: #5f5f68;
  --primary: #18181b;
  --primary-hover: #000000;
  --primary-soft: #e4e4e7;
  --primary-border: #a1a1aa;
  --on-primary: #ffffff;
  --accent: #a3e635;
  --danger: #b91c1c;
  --danger-soft: #fef2f2;
  --danger-border: #e08a8a;
  --danger-text: #991b1b;
  --on-danger: #ffffff;
  --ok: #166534;
  --warn: #92400e;
  --warn-soft: #fef3c7;
  --warn-border: #b7791f;
  --warn-text: #451a03;
  --warn-hover: #fde68a;
  --chip-official-bg: #e0e7ff;
  --chip-official-fg: #1e1b4b;
  --chip-official-border: #6366f1;
  --toast-bg: #09090b;
  --toast-fg: #ffffff;
  --tabbar-bg: rgba(255,255,255,.96);
  --scrim: rgba(9,9,11,.6);
  --scrim-strong: rgba(9,9,11,.8);
  --focus: #1d4ed8;
  --ring: 0 0 0 3px rgba(29,78,216,.45);
  --brand-1: #18181b;
  --brand-2: #3f3f46;
  --brand-3: #a3e635;
  --brand-fg: #ffffff;
  --brand-shadow: 0 6px 16px -4px rgba(9,9,11,.4);
  --act-duration: #0e7490;
  --act-duration-2: #0891b2;
  --glow-1: rgba(163,230,53,.10);
  --glow-2: rgba(9,9,11,.05);
  --shadow-sm: 0 1px 2px rgba(9,9,11,.10);
  --shadow: 0 1px 3px rgba(9,9,11,.10), 0 8px 24px -8px rgba(9,9,11,.14);
  --shadow-lg: 0 24px 48px -12px rgba(9,9,11,.35);
  --shadow-hover: 0 6px 16px rgba(9,9,11,.18);
  --shadow-menu: 0 10px 30px rgba(9,9,11,.25);
  --shadow-tabbar: 0 -4px 16px rgba(9,9,11,.10);
  --img-filter: none;
  --fit-on-badge: #ffffff;
  --fit-c: #3b5b92;
  --fit-b: #15803d;
  --fit-a: #92600a;
  --fit-s: #7e22ce;
}

[data-theme="fit-xmas"] {
  color-scheme: light;
  --meta-theme-color: #f3f8f5;
  --bg: #f3f8f5;
  --surface: #ffffff;
  --surface-2: #eaf3ee;
  --border: #d3e3da;
  --border-strong: #6f8f7f;
  --input-border: #4f6e5f;
  --border-hover: #2f4a3c;
  --text: #12261c;
  --text-2: #3b5446;
  --muted: #4a6254;
  --placeholder: #5a7165;
  --primary: #b3122b;
  --primary-hover: #8f0e22;
  --primary-soft: #fdecee;
  --primary-border: #e59aa5;
  --on-primary: #ffffff;
  --accent: #e0a800;
  --danger: #c2410c;
  --danger-soft: #fff1e8;
  --danger-border: #e8a37c;
  --danger-text: #9a3412;
  --on-danger: #ffffff;
  --ok: #15803d;
  --warn: #92400e;
  --warn-soft: #fef3c7;
  --warn-border: #b7791f;
  --warn-text: #451a03;
  --warn-hover: #fde68a;
  --chip-official-bg: #dcf0e5;
  --chip-official-fg: #0f3d27;
  --chip-official-border: #1f7a4d;
  --toast-bg: #12261c;
  --toast-fg: #ffffff;
  --tabbar-bg: rgba(255,255,255,.96);
  --scrim: rgba(18,38,28,.6);
  --scrim-strong: rgba(18,38,28,.8);
  --focus: #0b5d3b;
  --ring: 0 0 0 3px rgba(11,93,59,.35);
  --brand-1: #b3122b;
  --brand-2: #d4283f;
  --brand-3: #1f7a4d;
  --brand-fg: #ffffff;
  --brand-shadow: 0 6px 16px -4px rgba(179,18,43,.4);
  --act-duration: #0e7490;
  --act-duration-2: #0891b2;
  --glow-1: rgba(224,168,0,.14);
  --glow-2: rgba(31,122,77,.12);
  --shadow-sm: 0 1px 2px rgba(18,38,28,.10);
  --shadow: 0 1px 3px rgba(18,38,28,.10), 0 8px 24px -8px rgba(18,38,28,.16);
  --shadow-lg: 0 24px 48px -12px rgba(18,38,28,.35);
  --shadow-hover: 0 6px 16px rgba(18,38,28,.18);
  --shadow-menu: 0 10px 30px rgba(18,38,28,.25);
  --shadow-tabbar: 0 -4px 16px rgba(18,38,28,.10);
  --img-filter: none;
  --fit-on-badge: #ffffff;
  --fit-c: #3b5b92;
  --fit-b: #15803d;
  --fit-a: #92600a;
  --fit-s: #7e22ce;
}

[data-theme="hallowfit"] {
  color-scheme: dark;
  --meta-theme-color: #120d1a;
  --bg: #120d1a;
  --surface: #1c1428;
  --surface-2: #261a36;
  --border: #3a2850;
  --border-strong: #54397a;
  --input-border: #8e75b4;
  --border-hover: #b79bde;
  --text: #f4ecff;
  --text-2: #cdbce6;
  --muted: #b09ccc;
  --placeholder: #a08bbd;
  --primary: #ff8a1f;
  --primary-hover: #ffa347;
  --primary-soft: #3a2310;
  --primary-border: #8a4f12;
  --on-primary: #1a0f00;
  --accent: #9dff4a;
  --danger: #ff6b6b;
  --danger-soft: #3a1c22;
  --danger-border: #7f2f38;
  --danger-text: #ffb3b3;
  --on-danger: #2a0a0c;
  --ok: #6ee7a0;
  --warn: #ffd24a;
  --warn-soft: #2d2410;
  --warn-border: #6b5316;
  --warn-text: #fde68a;
  --warn-hover: #3a2e12;
  --chip-official-bg: #2e1d4d;
  --chip-official-fg: #e0ccff;
  --chip-official-border: #6a45a8;
  --toast-bg: #f4ecff;
  --toast-fg: #120d1a;
  --tabbar-bg: rgba(28,20,40,.92);
  --scrim: rgba(6,3,12,.68);
  --scrim-strong: rgba(6,3,12,.84);
  --focus: #ffb25e;
  --ring: 0 0 0 3px rgba(255,178,94,.4);
  --brand-1: #ff7a00;
  --brand-2: #ffa133;
  --brand-3: #b45cff;
  --brand-fg: #1a0f00;
  --brand-shadow: 0 6px 16px -4px rgba(255,122,0,.4);
  --act-duration: #22d3ee;
  --act-duration-2: #67e8f9;
  --glow-1: rgba(255,122,0,.10);
  --glow-2: rgba(140,60,255,.16);
  --shadow-sm: 0 1px 2px rgba(0,0,0,.45);
  --shadow: 0 1px 3px rgba(0,0,0,.45), 0 8px 24px -8px rgba(60,20,110,.55);
  --shadow-lg: 0 24px 48px -12px rgba(0,0,0,.75);
  --shadow-hover: 0 6px 16px rgba(0,0,0,.55);
  --shadow-menu: 0 10px 30px rgba(0,0,0,.65);
  --shadow-tabbar: 0 -4px 16px rgba(0,0,0,.4);
  --img-filter: brightness(.9);
  --fit-on-badge: #120d1a;
  --fit-c: #b9a3f0;
  --fit-b: #6ee7a0;
  --fit-a: #ffd24a;
  --fit-s: #d9a8ff;
}

/* ---------- theme-specific tweaks (kept tiny) ---------- */
[data-theme="graphite"] a { text-decoration: underline; }
