/*
 * LaurenceYang Excel Intelligence & Controls compatibility theme
 *
 * Load this file after each page's existing style block. It intentionally
 * maps the preserved legacy page variables to the shared LaurenceYang green
 * editorial system without changing product behavior.
 */

html:root {
  color-scheme: light;

  /* Primitive green scale shared with the LaurenceYang product family. */
  --ja-green-50: #f4faf6;
  --ja-green-100: #e5f4ea;
  --ja-green-200: #c8e8d3;
  --ja-green-300: #9fd5b3;
  --ja-green-400: #6dbb8d;
  --ja-green-500: #439c6d;
  --ja-green-600: #2f7d55;
  --ja-green-700: #276446;
  --ja-green-800: #214f3a;
  --ja-green-900: #193f2f;
  --ja-green-950: #0b2319;

  --ja-stone-0: #ffffff;
  --ja-stone-50: #f7f8f5;
  --ja-stone-100: #eef1ec;
  --ja-stone-200: #dfe5de;
  --ja-stone-300: #c5cec5;
  --ja-stone-500: #647168;
  --ja-stone-700: #3e4942;
  --ja-stone-900: #17201a;

  --ja-amber-soft: #f7ecd9;
  --ja-amber: #80510f;
  --ja-red-soft: #f9e9e6;
  --ja-red: #963b34;

  /* Typography roles: editorial headings, neutral UI, evidence data. */
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Charter, Georgia, serif;
  --sans: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;

  /* Semantic layer. */
  --ja-canvas: var(--ja-green-50);
  --ja-surface: var(--ja-stone-0);
  --ja-surface-subtle: var(--ja-stone-50);
  --ja-ink: var(--ja-stone-900);
  --ja-ink-muted: #4f6056;
  --ja-ink-soft: var(--ja-stone-500);
  --ja-border: var(--ja-stone-200);
  --ja-border-strong: var(--ja-stone-300);
  --ja-action: var(--ja-green-700);
  --ja-action-hover: var(--ja-green-800);
  --ja-link: var(--ja-green-700);
  --ja-focus: var(--ja-green-500);

  /* Compatibility aliases used by the directly copied product pages. */
  --surface: var(--ja-surface);
  --plane: var(--ja-surface-subtle);
  --raise: var(--ja-surface);
  --ink: var(--ja-ink);
  --ink2: var(--ja-ink-muted);
  --ink3: var(--ja-ink-soft);
  --grid: var(--ja-border);
  --line: var(--ja-border-strong);
  --line2: var(--ja-border);
  --accent: var(--ja-action);
  --accent-soft: var(--ja-green-100);
  --orange: #986b25;
  --good: var(--ja-green-700);
  --good-text: var(--ja-green-800);
  --bad: var(--ja-red);
  --warn: var(--ja-amber);
  --code-bg: var(--ja-stone-100);

  /* Alternate names used by the Kanban surface. */
  --bg: var(--ja-canvas);
  --bg2: var(--ja-surface-subtle);
  --fg: var(--ja-ink);
  --fg2: var(--ja-ink-muted);
  --fg3: var(--ja-ink-soft);
  --ok: var(--ja-green-700);
  --code: var(--ja-stone-100);

  --ja-radius-sm: 8px;
  --ja-radius-md: 12px;
  --ja-radius-lg: 18px;
  --ja-shadow-sm: 0 1px 2px rgba(11, 35, 25, 0.06);
  --ja-shadow-md: 0 12px 32px rgba(11, 35, 25, 0.08);
  --ja-motion-fast: 180ms;
  --ja-motion-standard: 240ms;
}

html:root[data-theme="light"] {
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  html:root:not([data-theme="light"]) {
    color-scheme: dark;
    --ja-canvas: #0d1712;
    --ja-surface: #122119;
    --ja-surface-subtle: #172b20;
    --ja-ink: #eff7f1;
    --ja-ink-muted: #c0cec4;
    --ja-ink-soft: #a7b8ac;
    --ja-border: #294335;
    --ja-border-strong: #3d5b49;
    --ja-action: var(--ja-green-700);
    --ja-action-hover: var(--ja-green-600);
    --ja-link: var(--ja-green-300);
    --ja-focus: var(--ja-green-300);
    --ja-amber-soft: #3a2b15;
    --ja-amber: #e4b86b;
    --ja-red-soft: #3b201e;
    --ja-red: #ed978e;
    --surface: var(--ja-surface);
    --plane: var(--ja-surface-subtle);
    --raise: var(--ja-surface);
    --ink: var(--ja-ink);
    --ink2: var(--ja-ink-muted);
    --ink3: var(--ja-ink-soft);
    --grid: var(--ja-border);
    --line: var(--ja-border-strong);
    --line2: var(--ja-border);
    --accent: var(--ja-action);
    --accent-soft: #183c2a;
    --orange: #e4b86b;
    --good: var(--ja-green-300);
    --good-text: var(--ja-green-200);
    --bad: var(--ja-red);
    --warn: var(--ja-amber);
    --code-bg: var(--ja-surface-subtle);
    --bg: var(--ja-canvas);
    --bg2: var(--ja-surface-subtle);
    --fg: var(--ja-ink);
    --fg2: var(--ja-ink-muted);
    --fg3: var(--ja-ink-soft);
    --ok: var(--ja-green-300);
    --code: var(--ja-surface-subtle);
  }
}

html:root[data-theme="dark"] {
  color-scheme: dark;
  --ja-canvas: #0d1712;
  --ja-surface: #122119;
  --ja-surface-subtle: #172b20;
  --ja-ink: #eff7f1;
  --ja-ink-muted: #c0cec4;
  --ja-ink-soft: #a7b8ac;
  --ja-border: #294335;
  --ja-border-strong: #3d5b49;
  --ja-action: var(--ja-green-700);
  --ja-action-hover: var(--ja-green-600);
  --ja-link: var(--ja-green-300);
  --ja-focus: var(--ja-green-300);
  --ja-amber-soft: #3a2b15;
  --ja-amber: #e4b86b;
  --ja-red-soft: #3b201e;
  --ja-red: #ed978e;
  --surface: var(--ja-surface);
  --plane: var(--ja-surface-subtle);
  --raise: var(--ja-surface);
  --ink: var(--ja-ink);
  --ink2: var(--ja-ink-muted);
  --ink3: var(--ja-ink-soft);
  --grid: var(--ja-border);
  --line: var(--ja-border-strong);
  --line2: var(--ja-border);
  --accent: var(--ja-action);
  --accent-soft: #183c2a;
  --orange: #e4b86b;
  --good: var(--ja-green-300);
  --good-text: var(--ja-green-200);
  --bad: var(--ja-red);
  --warn: var(--ja-amber);
  --code-bg: var(--ja-surface-subtle);
  --bg: var(--ja-canvas);
  --bg2: var(--ja-surface-subtle);
  --fg: var(--ja-ink);
  --fg2: var(--ja-ink-muted);
  --fg3: var(--ja-ink-soft);
  --ok: var(--ja-green-300);
  --code: var(--ja-surface-subtle);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  background: var(--ja-canvas);
  scroll-behavior: smooth;
}

body {
  min-width: 0;
  color: var(--ja-ink);
  background:
    radial-gradient(circle at 8% 4%, rgba(159, 213, 179, 0.24), transparent 28rem),
    radial-gradient(circle at 94% 18%, rgba(229, 244, 234, 0.72), transparent 32rem),
    var(--ja-canvas);
  font-family: var(--sans);
  line-height: 1.55;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

:root[data-theme="dark"] body {
  background:
    radial-gradient(circle at 8% 4%, rgba(47, 125, 85, 0.18), transparent 28rem),
    radial-gradient(circle at 94% 18%, rgba(39, 100, 70, 0.12), transparent 32rem),
    var(--ja-canvas);
}

h1,
h2,
h3,
.serif {
  font-family: var(--serif);
  font-weight: 600;
  letter-spacing: -0.025em;
  text-wrap: balance;
}

h4,
h5,
h6 {
  font-family: var(--sans);
  letter-spacing: -0.01em;
}

code,
pre,
kbd,
samp,
.mono,
.num,
td.num,
th.num {
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
}

img,
svg,
video,
canvas {
  max-width: 100%;
}

a {
  color: var(--ja-link);
  text-underline-offset: 0.18em;
  text-decoration-thickness: 0.08em;
}

a:hover {
  color: var(--ja-action-hover);
}

button,
input,
select,
textarea {
  font: inherit;
}

button,
[role="button"],
[role="tab"],
summary,
.btn,
.themebtn,
.btns a {
  cursor: pointer;
  touch-action: manipulation;
}

button,
.btn,
.themebtn,
.btns a,
header nav a,
header a.home,
[role="tab"] {
  min-height: 44px;
}

button,
.btn,
.themebtn,
.btns a {
  border-radius: var(--ja-radius-sm);
  transition:
    color var(--ja-motion-fast) ease,
    background-color var(--ja-motion-fast) ease,
    border-color var(--ja-motion-fast) ease,
    box-shadow var(--ja-motion-fast) ease,
    transform var(--ja-motion-fast) ease;
}

.themebtn {
  min-width: 44px;
}

#theme,
#prev,
#next,
#fs {
  min-width: 44px;
}

button:hover,
.btn:hover,
.themebtn:hover,
.btns a:hover {
  transform: translateY(-1px);
}

button:active,
.btn:active,
.themebtn:active,
.btns a:active {
  transform: translateY(0);
}

:where(a, button, input, select, textarea, summary, [tabindex], [role="button"], [role="tab"]):focus-visible {
  outline: 3px solid var(--ja-focus);
  outline-offset: 3px;
}

input,
select,
textarea {
  min-height: 44px;
  color: var(--ja-ink);
  background: var(--ja-surface);
  border: 1px solid var(--ja-border-strong);
  border-radius: var(--ja-radius-sm);
}

header,
header.site,
.site-header {
  background: var(--ja-surface);
  border-bottom-color: var(--ja-border);
  box-shadow: var(--ja-shadow-sm);
  backdrop-filter: none;
}

header .wrap {
  max-width: 1120px;
}

header nav a,
header a.home {
  display: inline-flex;
  align-items: center;
}

header .name,
header .en,
.eyebrow,
.kicker,
.tag,
.pill,
.chip,
.badge {
  font-family: var(--sans);
}

.eyebrow,
.kicker {
  color: var(--ja-green-700);
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

:where(.card, .panel, .sheet, .pcard, .kpi, .stat, .entry, .week, .next, .figure, .tbl, .drop, .quote, .claim, .callout) {
  border-color: var(--ja-border);
  background-color: var(--ja-surface);
  box-shadow: var(--ja-shadow-sm);
}

:where(.card, .panel, .sheet, .pcard, .kpi, .stat, .entry, .week, .next, .figure, .tbl, .drop, .quote, .claim, .callout):hover {
  border-color: var(--ja-border-strong);
}

.drop {
  background:
    linear-gradient(135deg, rgba(229, 244, 234, 0.76), rgba(255, 255, 255, 0.92)),
    var(--ja-surface);
  border-color: var(--ja-green-400);
}

:root[data-theme="dark"] .drop {
  background:
    linear-gradient(135deg, rgba(39, 100, 70, 0.24), rgba(18, 33, 25, 0.9)),
    var(--ja-surface);
}

.btn.primary,
.btns a.primary,
.tab.on,
.station.on .dot {
  color: #ffffff;
  background: var(--ja-action);
  border-color: var(--ja-action);
}

.btn.primary:hover,
.btns a.primary:hover,
.tab.on:hover {
  color: #ffffff;
  background: var(--ja-action-hover);
  border-color: var(--ja-action-hover);
}

.pill,
.chip,
.badge {
  border-color: var(--ja-border);
  background: var(--ja-green-50);
}

:root[data-theme="dark"] :where(.pill, .chip, .badge) {
  background: var(--ja-surface-subtle);
}

.hl,
.accent,
.on,
.active {
  color: var(--ja-green-700);
}

:root[data-theme="dark"] :where(.hl, .accent) {
  color: var(--ja-green-300);
}

.tablewrap,
.tblscroll,
.flow,
.figure {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

table {
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}

thead,
th {
  background: var(--ja-green-50);
}

:root[data-theme="dark"] :where(thead, th) {
  background: var(--ja-surface-subtle);
}

tbody tr:hover {
  background: rgba(229, 244, 234, 0.6);
}

:root[data-theme="dark"] tbody tr:hover {
  background: rgba(39, 100, 70, 0.18);
}

@media (max-width: 820px) {
  header .bar {
    min-width: 0;
    flex-wrap: wrap;
    row-gap: 8px;
  }

  header nav {
    display: flex;
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
    gap: 4px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }

  header nav a,
  header nav button {
    flex: 0 0 auto;
  }

  .tablewrap,
  .tblscroll,
  .figure,
  pre {
    scrollbar-width: thin;
  }
}

@media (max-width: 640px) {
  body {
    font-size: 16px;
    background:
      radial-gradient(circle at 12% 2%, rgba(159, 213, 179, 0.2), transparent 20rem),
      var(--ja-canvas);
  }

  .wrap {
    width: min(100%, 100% - 28px);
  }

  h1 {
    line-height: 1.04;
  }

  input,
  select,
  textarea {
    font-size: 16px;
  }

  :where(.card, .panel, .sheet, .pcard, .kpi, .stat, .entry, .week, .next, .figure, .tbl, .drop, .quote, .claim, .callout) {
    border-radius: var(--ja-radius-md);
  }
}

@media (max-height: 430px) and (orientation: landscape) {
  header,
  header.site {
    position: relative;
  }

  header .bar {
    min-height: 52px;
  }

  .hero {
    padding-block: 24px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  button:hover,
  .btn:hover,
  .themebtn:hover,
  .btns a:hover {
    transform: none;
  }
}

@media print {
  html,
  body {
    background: #ffffff;
  }

  header,
  .themebtn,
  .deck-controls {
    box-shadow: none;
  }
}
