/* ============================================================================
   App themes — carries the chosen sign-in style through the whole app.
   Each theme keeps a dark, theme-tinted chrome (header / tabs / status strip)
   so chrome text stays readable, sets the accent everywhere, and gives the grid
   a light, theme-tinted surface so data stays legible. Applied via data-theme,
   set pre-paint by theme-boot.js from the login choice.

   Reduced from 11 to 8 (Graphite, Ivory & Ink, and Aurora retired) after
   Harbor was added and reported as still not working reliably. Harbor takes
   Graphite's place as this palette's steel-blue representative — Graphite
   was the same hue family in a dark mood, Harbor covers it in a light one,
   so nothing about that hue is actually lost. Ivory and Aurora were both
   the more redundant half of a pairing already covered elsewhere (Ivory
   overlapped with Bordeaux's red family; Aurora overlapped with Onyx and
   Midnight's dark, jewel-toned mood) — trimmed for a more distinctive set
   of 8 rather than removed for any technical reason.
   ========================================================================== */

/* 1 — Ledger (default house style) */
html[data-theme="ledger"] {
  --ink:#171c22; --ink-2:#232a33; --paper:#fbfbfc;
  --line:#d9dde2; --line-soft:#eceef1; --text:#1f242b; --text-dim:#5b6572;
  --accent:#0e7c66; --accent-soft:#e2f0ec; --accent-on-dark:#2fae93;
}
/* 2 — Onyx & Brass */
html[data-theme="onyx"] {
  --ink:#14130f; --ink-2:#211f18; --paper:#faf8f2;
  --line:#e3ddce; --line-soft:#f1ede2; --text:#2a251c; --text-dim:#726a5b;
  --accent:#9a7c3e; --accent-soft:#efe7d3; --accent-on-dark:#c9a86b;
}
/* 3 — Porcelain */
html[data-theme="porcelain"] {
  --ink:#1e2a30; --ink-2:#26343c; --paper:#ffffff;
  --line:#dde3e8; --line-soft:#eef2f5; --text:#26333c; --text-dim:#6d7a84;
  --accent:#3f7a78; --accent-soft:#dcecec; --accent-on-dark:#66b7b4;
}
/* 4 — Midnight Oil */
html[data-theme="midnight"] {
  --ink:#0f1a2e; --ink-2:#16243d; --paper:#f7f8fb;
  --line:#d7dde8; --line-soft:#eaeef4; --text:#1e2a3d; --text-dim:#5f6d84;
  --accent:#a9862f; --accent-soft:#f0e7cf; --accent-on-dark:#d8b45c;
}
/* 5 — Bordeaux */
html[data-theme="bordeaux"] {
  --ink:#17110f; --ink-2:#231917; --paper:#faf6f4;
  --line:#e6dad5; --line-soft:#f2eae7; --text:#2b201d; --text-dim:#77655f;
  --accent:#8c2b38; --accent-soft:#f0dcdf; --accent-on-dark:#c85c68;
}
/* 6 — Sage Atelier */
html[data-theme="sage"] {
  --ink:#22302a; --ink-2:#2b3d34; --paper:#f7f5ee;
  --line:#dcd9cb; --line-soft:#eeece2; --text:#2b3830; --text-dim:#6f7a70;
  --accent:#35604a; --accent-soft:#dcebe1; --accent-on-dark:#6fae8c;
}
/* 7 — Copper Dusk */
html[data-theme="copper"] {
  --ink:#1b1613; --ink-2:#241d18; --paper:#faf5ef;
  --line:#e7dccf; --line-soft:#f3ece1; --text:#2b221b; --text-dim:#786a5c;
  --accent:#a15f36; --accent-soft:#f1e2d5; --accent-on-dark:#c47e4f;
}
/* 8 — Harbor: soft steel-blue corporate dashboard — clean cards, cool light surface */
html[data-theme="harbor"] {
  --ink:#16212c; --ink-2:#1e2c39; --paper:#eef1f4;
  --line:#d3dbe2; --line-soft:#e7ecf0; --text:#202b35; --text-dim:#63717e;
  --accent:#4d7597; --accent-soft:#dde8ef; --accent-on-dark:#8fb4d4;
}

/* 9 — Vantagepoint: the Deltek Vantagepoint 2026.3 "Harmony" product skin.
   ------------------------------------------------------------------------
   Colours taken from the shipped product stylesheet (vp2026.3.css), light
   theme — the `body.harmony` token block. Mapped onto this app's own token
   names rather than copied wholesale, because the product sheet is a webpack
   bundle carrying GridStack, a jQuery datetimepicker and ~5,000 lines of
   component CSS for a UI this app does not have. Dropping it in would bloat
   the page, collide on generic class names and drag in styles for widgets
   that do not exist here. The palette is the part that carries the brand.

   Source tokens → tokens here:
     --color-banner-bg #FFFFFF            → --chrome-bg
     --color-application-header-bg #EDF0F6→ --chrome-bg-2
     --color-banner-product-name #373F4E  → --chrome-text / --ink
     --color-banner-text #646D82          → --chrome-dim
     --color-application-top-line #4C92D9 → --chrome-edge-bottom / --accent
     --color-button-bg-primary #4C92D9,
       hover #3A70A6, --color-link-text #3A70A6
     --color-base-text #4d4d4d, --color-field-text #333333
     --color-grid-* (#BDBDBD, #D1D1D1, #f3f3f3, #F9F9F9, #D9EBF2)
     --color-grid-alt-header-bg #227fbb    → --band-bg
     --color-field-border-invalid #D83148  → --neg
     --color-banner-notification #eb7114   → --warn (darkened for contrast)

   This is the only LIGHT-CHROME theme in the set, which is why the chrome
   tokens in app.css exist at all — see the note beside them. */
html[data-theme="vantagepoint"] {
  /* --ink stays DARK: in app.css it is the heading/figure text colour on the
     light paper surface as well as the old chrome background. The chrome is
     re-pointed below instead. */
  --ink:#373F4E; --ink-2:#4A5365; --paper:#ffffff;
  --line:#BDBDBD; --line-soft:#E0E4EB; --text:#333333; --text-dim:#646D82;
  --accent:#3A70A6; --accent-soft:#D9EBF2; --accent-on-dark:#2C6BB0;
  --warn:#9A6700; --neg:#D83148;

  /* light chrome */
  --chrome-bg:#FFFFFF;
  --chrome-bg-2:#EDF0F6;
  --chrome-text:#373F4E;
  --chrome-strong:#1F2430;
  --chrome-dim:#646D82;
  --chrome-tab-hover:#3A70A6;
  --chrome-btn-text:#3A70A6;
  --chrome-line:#BFC6D4;
  --chrome-divider:#E0E4EB;
  --chrome-status-text:#5A6170;
  --chrome-status-key:#646D82;   /* 5.18:1 on the white bar; #7A8395 measured 3.81 */
  --chrome-warn:#9A6700;
  --chrome-active-bg:#4C92D9;
  --chrome-active-text:#FFFFFF;
  --chrome-edge-bottom:2px solid #4C92D9;
  --chrome-edge-top:1px solid #BFC6D4;
  --chrome-pop-border:#BFC6D4;
  --chrome-pop-shadow:0 12px 40px rgba(16,24,64,.24);

  /* In-grid banding: the product's alternate grid header, white on steel blue.
     The product itself pairs #FFFFFF with --color-grid-alt-header-bg #227FBB,
     which measures 4.36:1 — under WCAG AA for normal text, and the grand-total
     band here carries soft-tinted figures as well, which fell as low as 3.33:1.
     Darkened to #1D5C87, which sits inside Deltek's own blue family (between
     #227FBB and the #245871 / #20516A it uses for dialog headers and menu
     chrome), so the band still reads as the product's blue while every pairing
     clears AA: white 7.16, soft 6.38, dim 5.47, accent 5.65. */
  --band-bg:#1D5C87;
  --band-text:#FFFFFF;
  --band-text-soft:#EAF3FA;
  --band-text-strong:#FFFFFF;
  --band-dim:#CFE4F2;
  --band-line:rgba(255,255,255,.26);
  --band-accent:#CDE8FF;

  /* Lexend is the Harmony display face; it is a web font the product loads and
     this app deliberately loads none (offline/air-gapped installs, strict CSP),
     so the stack falls through to the same system faces the product lists. */
  --sans: Lexend, 'Segoe UI', tahoma, calibri, 'Trebuchet MS', system-ui, sans-serif;
}
