/* ============================================================================
   Blueshift — Shared Theme System
   ----------------------------------------------------------------------------
   One source of truth for every page's color themes.

   HOW IT WORKS
   - Each page keeps its own :root { ... } block. That block IS the "default"
     theme for that page, so the app looks exactly as it does today by default.
   - This file defines the 5 ALTERNATE themes as :root[data-theme="x"] blocks.
     Because :root[data-theme] is more specific than a plain :root, these win
     whenever theme.js sets a data-theme on <html>.
   - theme.js sets the data-theme (and persists the choice to config.json).

   ADDING A NEW PAGE (going forward)
     Put these two lines in the <head>, after the page's own <style>:
       <link rel="stylesheet" href="theme.css">
       <script src="theme.js"></script>
     The page must define a normal :root with its base colors. Done — every
     theme below will apply automatically.

   ADDING A NEW THEME
     Add a :root[data-theme="name"] block here (copy one below), then add the
     name to BUILT_IN + labels in theme.js. It appears in the shell picker and
     applies to every page automatically.

   VARIABLE NAMING
     Pages historically used three naming conventions. Each block sets the base
     palette (--bg, --bg2.., --text..) and then aliases the other conventions
     to it with var(), so one definition covers all pages:
       --panel/--panel2      (app-family) -> --bg2/--bg3
       --border-bright       (app-family) -> --border2
       --text-dim / --muted               -> --text2
       --accent/2/3                        -> signature / green / amber
       --admin / --gene                    -> --purple
       --danger / --warn                   -> --red / --amber
   ========================================================================== */

/* ── IMPERIAL — red empire, near-black steel ───────────────────────────── */
:root[data-theme="imperial"]{
  --bg:#08090b; --bg2:#0d1014; --bg3:#121518; --bg4:#1a1d22;
  --border:rgba(255,255,255,0.06); --border2:rgba(255,255,255,0.12);
  --text:#e8eaed; --text2:#7a8490; --text3:#3c444d;
  --gold:#c0252a; --gold2:#e8383e;
  --blue:#5a8ab0; --green:#3a7a5a; --red:#e8383e; --amber:#8a6a40; --purple:#6a7080;
  /* aliases */
  --panel:var(--bg2); --panel2:var(--bg3);
  --border-bright:var(--border2);
  --text-dim:var(--text2); --muted:var(--text2);
  --accent:var(--gold2); --accent2:var(--green); --accent3:var(--amber);
  --admin:var(--purple); --gene:var(--purple);
  --danger:var(--red); --warn:var(--amber);
  --row-hover:var(--bg3); --house-color:var(--gold2);
  --glow:0 0 12px rgba(232,56,62,0.5);
  --glow-green:0 0 12px rgba(58,122,90,0.5);
  --glow-admin:0 0 12px rgba(106,112,128,0.5);
}

/* ── HOLONET — deep blue, cyan signal ──────────────────────────────────── */
:root[data-theme="holonet"]{
  --bg:#040810; --bg2:#070d1a; --bg3:#0b1225; --bg4:#111a30;
  --border:rgba(0,120,255,0.12); --border2:rgba(0,150,255,0.22);
  --text:#c8e4ff; --text2:#5a8ab8; --text3:#2a4a6a;
  --gold:#0096ff; --gold2:#40b8ff;
  --blue:#40b8ff; --green:#00d4a0; --red:#ff4466; --amber:#0070cc; --purple:#6688cc;
  /* aliases */
  --panel:var(--bg2); --panel2:var(--bg3);
  --border-bright:var(--border2);
  --text-dim:var(--text2); --muted:var(--text2);
  --accent:var(--gold2); --accent2:var(--green); --accent3:var(--amber);
  --admin:var(--purple); --gene:var(--purple);
  --danger:var(--red); --warn:var(--amber);
  --row-hover:var(--bg3); --house-color:var(--gold2);
  --glow:0 0 12px rgba(64,184,255,0.5);
  --glow-green:0 0 12px rgba(0,212,160,0.5);
  --glow-admin:0 0 12px rgba(102,136,204,0.5);
}

/* ── CANTINA — warm tan, smoky amber ───────────────────────────────────── */
:root[data-theme="cantina"]{
  --bg:#120e09; --bg2:#1c1610; --bg3:#261e14; --bg4:#30261a;
  --border:rgba(200,150,80,0.12); --border2:rgba(220,170,100,0.22);
  --text:#f0e0c8; --text2:#a08060; --text3:#604830;
  --gold:#d4924a; --gold2:#f0b870;
  --blue:#8090a8; --green:#7aaa6a; --red:#c05040; --amber:#d4924a; --purple:#907868;
  /* aliases */
  --panel:var(--bg2); --panel2:var(--bg3);
  --border-bright:var(--border2);
  --text-dim:var(--text2); --muted:var(--text2);
  --accent:var(--gold2); --accent2:var(--green); --accent3:var(--amber);
  --admin:var(--purple); --gene:var(--purple);
  --danger:var(--red); --warn:var(--amber);
  --row-hover:var(--bg3); --house-color:var(--gold2);
  --glow:0 0 12px rgba(240,184,112,0.5);
  --glow-green:0 0 12px rgba(122,170,106,0.5);
  --glow-admin:0 0 12px rgba(144,120,104,0.5);
}

/* ── BANTHA — desert dusk, sandy orange ────────────────────────────────── */
:root[data-theme="bantha"]{
  --bg:#0e0a06; --bg2:#1a1008; --bg3:#261810; --bg4:#322014;
  --border:rgba(200,140,60,0.14); --border2:rgba(220,160,80,0.24);
  --text:#f0e0c8; --text2:#b09070; --text3:#705030;
  --gold:#d4824a; --gold2:#f0a060;
  --blue:#8ab8d8; --green:#7aaa6a; --red:#c05040; --amber:#d4824a; --purple:#907868;
  /* aliases */
  --panel:var(--bg2); --panel2:var(--bg3);
  --border-bright:var(--border2);
  --text-dim:var(--text2); --muted:var(--text2);
  --accent:var(--gold2); --accent2:var(--green); --accent3:var(--amber);
  --admin:var(--purple); --gene:var(--purple);
  --danger:var(--red); --warn:var(--amber);
  --row-hover:var(--bg3); --house-color:var(--gold2);
  --glow:0 0 12px rgba(240,160,96,0.5);
  --glow-green:0 0 12px rgba(122,170,106,0.5);
  --glow-admin:0 0 12px rgba(144,120,104,0.5);
}

/* ── VOID QUEEN — deep purple, regal gold ──────────────────────────────── */
:root[data-theme="void"]{
  --bg:#060410; --bg2:#0d0820; --bg3:#160e30; --bg4:#1e1440;
  --border:rgba(144,80,208,0.15); --border2:rgba(144,80,208,0.30);
  --text:#ede8f8; --text2:#a090c8; --text3:#7060a0;
  --gold:#b8882a; --gold2:#d4a84a;
  --blue:#4a6890; --green:#3a6e58; --red:#884040; --amber:#7a6030;
  --purple:#6a18a0; --purple2:#9050d0;
  /* aliases */
  --panel:var(--bg2); --panel2:var(--bg3);
  --border-bright:var(--border2);
  --text-dim:var(--text2); --muted:var(--text2);
  --accent:var(--gold2); --accent2:var(--green); --accent3:var(--amber);
  --admin:var(--purple2); --gene:var(--purple2);
  --danger:var(--red); --warn:var(--amber);
  --row-hover:var(--bg3); --house-color:var(--gold2);
  --glow:0 0 12px rgba(212,168,74,0.5);
  --glow-green:0 0 12px rgba(58,110,88,0.5);
  --glow-admin:0 0 12px rgba(144,80,208,0.5);
}

/* ── TARTAN — Scottish Highland sett: emerald green + petrol blue, cream ── */
:root[data-theme="tartan"]{
  --bg:#0a0f0c; --bg2:#0e1713; --bg3:#13201a; --bg4:#1a2b22;
  --border:rgba(120,180,150,0.16); --border2:rgba(150,210,175,0.32);
  --text:#eef0e6; --text2:#8fae9e; --text3:#52685c;
  --gold:#2f9d6e; --gold2:#46c08a;
  --blue:#4f9fc2; --green:#3fb37e; --red:#c0504a; --amber:#cf8f4a; --purple:#7a8aa8;
  /* aliases — green-led, petrol blue as the secondary accent */
  --panel:var(--bg2); --panel2:var(--bg3);
  --border-bright:var(--border2);
  --text-dim:var(--text2); --muted:var(--text2);
  --accent:var(--gold2); --accent2:var(--blue); --accent3:var(--amber);
  --admin:var(--purple); --gene:var(--purple);
  --danger:var(--red); --warn:var(--amber);
  --row-hover:var(--bg3); --house-color:var(--gold2);
  --glow:0 0 12px rgba(70,192,138,0.5);
  --glow-green:0 0 12px rgba(63,179,126,0.5);
  --glow-admin:0 0 12px rgba(122,138,168,0.45);
}
/* Soft tartan-tinted backdrop — faint windowpane weave, easy on the eyes.
   (Replaced the bold plaid, which competed with text on lighter screens.) */
:root[data-theme="tartan"] body{
  background-color:#0a0f0c;
  background-image:
    repeating-linear-gradient(90deg,rgba(143,174,158,0.06) 0,rgba(143,174,158,0.06) 1px,transparent 1px,transparent 120px),
    repeating-linear-gradient(0deg,rgba(143,174,158,0.06) 0,rgba(143,174,158,0.06) 1px,transparent 1px,transparent 120px),
    repeating-linear-gradient(90deg,rgba(79,159,194,0.035) 0,rgba(79,159,194,0.035) 1px,transparent 1px,transparent 40px),
    repeating-linear-gradient(0deg,rgba(79,159,194,0.035) 0,rgba(79,159,194,0.035) 1px,transparent 1px,transparent 40px);
  background-attachment:fixed;
}

/* ── HOMESTEAD — muted charcoal-slate, cream text, soft warm amber ───────── */
:root[data-theme="homestead"]{
  --bg:#222629; --bg2:#2a2f33; --bg3:#333a3f; --bg4:#3d454b;
  --border:rgba(244,244,246,0.08); --border2:rgba(244,244,246,0.16);
  --text:#f4f4f6; --text2:#a8adb2; --text3:#6b7176;
  --gold:#d9b274; --gold2:#e5c287;
  --blue:#8fb4c8; --green:#8abf8f; --red:#d98a7a; --amber:#e5c287; --purple:#a89ec0;
  /* aliases */
  --panel:var(--bg2); --panel2:var(--bg3);
  --border-bright:var(--border2);
  --text-dim:var(--text2); --muted:var(--text2);
  --accent:var(--gold2); --accent2:var(--green); --accent3:var(--amber);
  --admin:var(--purple); --gene:var(--purple);
  --danger:var(--red); --warn:var(--amber);
  --row-hover:var(--bg3); --house-color:var(--gold2);
  --glow:0 0 12px rgba(229,194,135,0.35);
  --glow-green:0 0 12px rgba(138,191,143,0.45);
  --glow-admin:0 0 12px rgba(168,158,192,0.45);
}

/* ── ALLIANCE — gunmetal-grey hull, rebel insignia orange ───────────────── */
:root[data-theme="alliance"]{
  --bg:#15181a; --bg2:#1d2124; --bg3:#262b2e; --bg4:#30363a;
  --border:rgba(230,120,50,0.12); --border2:rgba(230,120,50,0.26);
  --text:#eef0f0; --text2:#8a9296; --text3:#4c5358;
  --gold:#e0631f; --gold2:#ff7a32;
  --blue:#5f9bb8; --green:#5aa86a; --red:#e2483a; --amber:#e0a040; --purple:#8a7f9a;
  /* aliases */
  --panel:var(--bg2); --panel2:var(--bg3);
  --border-bright:var(--border2);
  --text-dim:var(--text2); --muted:var(--text2);
  --accent:var(--gold2); --accent2:var(--green); --accent3:var(--amber);
  --admin:var(--purple); --gene:var(--purple);
  --danger:var(--red); --warn:var(--amber);
  --row-hover:var(--bg3); --house-color:var(--gold2);
  --glow:0 0 12px rgba(255,122,50,0.45);
  --glow-green:0 0 12px rgba(90,168,106,0.5);
  --glow-admin:0 0 12px rgba(138,127,154,0.45);
}

/* ── JEDI TEMPLE — bright cool blue-slate, serene blue + temple gold ─────── */
:root[data-theme="jedi"]{
  --bg:#1b2530; --bg2:#23303d; --bg3:#2d3d4c; --bg4:#384a5b;
  --border:rgba(120,180,210,0.16); --border2:rgba(120,180,210,0.30);
  --text:#eaf2f8; --text2:#9db4c6; --text3:#5d7385;
  --gold:#cba96a; --gold2:#e6cc8a;
  --blue:#6fb0d6; --green:#5fb39a; --red:#cc6a6a; --amber:#d9a85a; --purple:#8aa0c8;
  /* aliases — gold-led, serene blue as the secondary accent */
  --panel:var(--bg2); --panel2:var(--bg3);
  --border-bright:var(--border2);
  --text-dim:var(--text2); --muted:var(--text2);
  --accent:var(--gold2); --accent2:var(--blue); --accent3:var(--amber);
  --admin:var(--purple); --gene:var(--purple);
  --danger:var(--red); --warn:var(--amber);
  --row-hover:var(--bg3); --house-color:var(--gold2);
  --glow:0 0 12px rgba(230,204,138,0.40);
  --glow-green:0 0 12px rgba(95,179,154,0.5);
  --glow-admin:0 0 12px rgba(138,160,200,0.45);
}

/* ── CRIMSON ORDER — near-black with red undertone, electric-red signal ─── */
:root[data-theme="crimson"]{
  --bg:#120a0c; --bg2:#1a0e11; --bg3:#241317; --bg4:#2e191e;
  --border:rgba(220,40,50,0.16); --border2:rgba(220,40,50,0.32);
  --text:#f0e6e8; --text2:#b08087; --text3:#6e4248;
  --gold:#c41e2a; --gold2:#ff2d3e;
  --blue:#7a6a8a; --green:#5a8a6a; --red:#ff2d3e; --amber:#c47a2a; --purple:#9a3a5a;
  /* aliases */
  --panel:var(--bg2); --panel2:var(--bg3);
  --border-bright:var(--border2);
  --text-dim:var(--text2); --muted:var(--text2);
  --accent:var(--gold2); --accent2:var(--green); --accent3:var(--amber);
  --admin:var(--purple); --gene:var(--purple);
  --danger:var(--red); --warn:var(--amber);
  --row-hover:var(--bg3); --house-color:var(--gold2);
  --glow:0 0 14px rgba(255,45,62,0.55);
  --glow-green:0 0 12px rgba(90,138,106,0.5);
  --glow-admin:0 0 12px rgba(154,58,90,0.5);
}

/* ── BESKAR — slate hull, brushed beskar-steel + warm forge-spark amber ─── */
:root[data-theme="beskar"]{
  --bg:#13171a; --bg2:#1b2024; --bg3:#252c31; --bg4:#303840;
  --border:rgba(180,195,205,0.12); --border2:rgba(180,195,205,0.26);
  --text:#e8edf0; --text2:#8b97a0; --text3:#4d575e;
  --gold:#9fb2bf; --gold2:#c4d4de;
  --blue:#7fa8c4; --green:#6aa88a; --red:#d2685a; --amber:#e0944a; --purple:#8a93a8;
  /* aliases — steel-led, warm amber as the secondary signal accent */
  --panel:var(--bg2); --panel2:var(--bg3);
  --border-bright:var(--border2);
  --text-dim:var(--text2); --muted:var(--text2);
  --accent:var(--gold2); --accent2:var(--amber); --accent3:var(--amber);
  --admin:var(--purple); --gene:var(--purple);
  --danger:var(--red); --warn:var(--amber);
  --row-hover:var(--bg3); --house-color:var(--gold2);
  --glow:0 0 12px rgba(196,212,222,0.35);
  --glow-green:0 0 12px rgba(106,168,138,0.5);
  --glow-admin:0 0 12px rgba(138,147,168,0.45);
}

/* Page-specific signature accents (e.g. armor.html --armor, ship-re.html --re)
   follow the active theme's accent. Only applies when a theme is set, so each
   page keeps its own signature color under the Default theme. */
:root[data-theme]{ --armor:var(--accent); --re:var(--accent); --comp:var(--accent);
  --fc:var(--accent); --loot:var(--accent); --ml:var(--accent); --veh:var(--accent);
  --chef:var(--accent); --droid:var(--accent); --market:var(--accent3); }

/* Canonical brand tokens (tokens.css :root ramp) re-pointed at the active
   theme so pages using --space/--line/--cyan/... (and the Kith proper names)
   fully re-theme instead of mixing Kith defaults into an alternate palette. */
:root[data-theme]{
  --space:var(--bg); --space-deep:var(--bg);
  --panel-2:var(--bg2); --panel-3:var(--bg3);
  --line:var(--border); --line-bright:var(--border2);
  --cyan:var(--accent); --signal:var(--accent2); --cobalt:var(--accent3);
  --ice:var(--text); --dim:var(--text2); --dim-2:var(--text3);
  --cream:var(--text); --gold-soft:var(--gold2);
  --rose:var(--purple); --lav:var(--purple); --plum:var(--bg3);
  --glow-cyan:var(--glow);
  --nightfall:var(--bg); --lamplight:var(--accent); --patina:var(--accent2);
  --clay:var(--accent3); --rust:var(--red); --hearth:var(--amber);
  --mist:var(--text); --rain:var(--text2);
}

/* ── Shared theme / font pickers (mounted by theme.js, used on the shell) ── */
select#swg-theme-picker,
select#swg-font-picker,
select#swg-size-picker{
  background:var(--panel,var(--bg2,#17171c));
  color:var(--text,#e8e6e0);
  border:1px solid var(--border,rgba(255,255,255,0.14));
  border-radius:4px;
  font-family:inherit;
  font-size:11px;
  letter-spacing:1px;
  padding:6px 10px;
  cursor:pointer;
  outline:none;
}
select#swg-theme-picker:hover,
select#swg-font-picker:hover{ border-color:var(--border-bright,var(--border2,rgba(255,255,255,0.24))); }
