/* Infrarity — warm stone, pine, teal and lime.
   Marketing surfaces are light; product and visualisation surfaces use deep pine.
   Status colours keep their established meaning: green, amber and red. */
:root {
  color-scheme: light;
  --cream: #f4f2e9;
  --mist: #e9eee8;
  --pine: #123a36;
  --deep: #0b2e2b;
  --teal: #286f67;
  --lime: #d5e578;
  --navy: #123a36;
  --navy-hi: #286f67;
  --navy-tint: #7aada2;
  --bg: #f4f2e9;
  --bg-1: #fffef9;
  --panel: #e9eee8;
  --panel-2: #e0e9e1;
  --panel-3: #d3e2d6;
  --glass: rgba(255, 254, 249, 0.86);
  --line: #cdd8d0;
  --line-2: #b7c9bf;
  --line-3: #8ca99c;
  --text: #1a302e;
  --text-2: #4d6561;
  --text-3: #5d706d;
  --accent: #286f67;
  --accent-2: #235f57;
  --accent-3: #123a36;
  --grad: linear-gradient(105deg, #123a36 5%, #286f67 85%);
  --scan: #187363;
  --scan-bg: rgba(40, 111, 103, 0.1);
  --ok: #267748;
  --ok-bg: rgba(38, 119, 72, 0.1);
  --warn: #8d6217;
  --warn-bg: rgba(166, 119, 31, 0.12);
  --bad: #b64b58;
  --bad-text: #a33b49;
  --bad-bg: rgba(182, 75, 88, 0.1);
  --planned: #728c84;
  --paper: #fffef9;
  --ink: #1a302e;
}

/* Light text is scoped to the dark product and media surfaces. */
:is(.bsa, .window, .player, .frame, .how__visual, .pipe, .tech,
    .pilot__card, .final, .foot, .charttip, .ownerimg__tags, .bs-compare__tag),
body:has(> #app) {
  color-scheme: dark;
  --bg: #0b2e2b;
  --bg-1: #0e3430;
  --panel: #153e38;
  --panel-2: #1a4941;
  --panel-3: #24574d;
  --glass: rgba(18, 58, 54, 0.86);
  --line: rgba(173, 206, 187, 0.13);
  --line-2: rgba(173, 206, 187, 0.23);
  --line-3: rgba(173, 206, 187, 0.38);
  --text: #f4f2e9;
  --text-2: #bccfc4;
  --text-3: #9db7aa;
  --accent: #d5e578;
  --accent-2: #dce9ab;
  --accent-3: #79b9a2;
  --grad: linear-gradient(105deg, #e4edb4 0%, #d5e578 55%, #87bda3 100%);
  --scan: #68d9b5;
  --scan-bg: rgba(104, 217, 181, 0.1);
  --ok: #74d59c;
  --ok-bg: rgba(116, 213, 156, 0.12);
  --warn: #efc96d;
  --warn-bg: rgba(239, 201, 109, 0.13);
  --bad: #dc7780;
  --bad-text: #f0a1a8;
  --bad-bg: rgba(220, 119, 128, 0.15);
  --planned: #8eafa1;
  color: var(--text);
}

/* Navigation and shared controls. */
.nav.is-solid { background: rgba(244, 242, 233, 0.93); }
.nav__sheet { background: rgba(244, 242, 233, 0.98); }
a:hover, .btn--text:hover { color: var(--accent); }
.btn--light { background: var(--lime); color: var(--deep); }
.btn--light:hover { background: #e0ed99; color: var(--deep); }
.btn--ghost { border-color: var(--line-3); background: rgba(40, 111, 103, 0.06); color: var(--text); }
.btn--ghost:hover { border-color: var(--accent); background: rgba(40, 111, 103, 0.13); color: var(--text); }
.eyebrow { border-color: var(--line-2); background: rgba(40, 111, 103, 0.06); color: var(--text-2); }
.eyebrow i { background: var(--accent); box-shadow: 0 0 9px rgba(40, 111, 103, 0.2); }
.chip, .mods__k, .ind__ico, .secu__list li > span {
  background: rgba(40, 111, 103, 0.1);
  color: var(--accent-2);
}
.status--dev { color: var(--text-2); background: rgba(40, 111, 103, 0.08); }
.bs-pill--quiet { background: rgba(120, 154, 137, 0.12); }
.nav__brand em, .wm em, .mark em { color: var(--accent); }

/* Product windows retain a readable, dark working surface. */
.window {
  background: #0e3430;
  box-shadow: 0 30px 90px rgba(18, 58, 54, 0.18), 0 0 0 1px rgba(213, 229, 120, 0.06) inset;
}
.window__bar { background: rgba(40, 111, 103, 0.18); }
.window__dots i { background: #456d60; }
.window__shield span { background: rgba(11, 46, 43, 0.92); }
.walk { background: radial-gradient(ellipse 75% 60% at 50% 58%, rgba(40, 111, 103, 0.08), transparent 72%); }
.player { background: var(--deep); box-shadow: 0 30px 90px rgba(18, 58, 54, 0.2); }
.player__open { background: rgba(11, 46, 43, 0.92); color: #f4f2e9; }
.player__open:hover { background: #286f67; color: #fffef9; }
.chapters button { background: rgba(255, 254, 249, 0.7); }
.chapters button.is-on { border-color: #286f67; background: #e0e9dc; color: #123a36; }

/* Light editorial cards and the project flow. */
.flow__src li { background: var(--bg-1); }
.flow__lines path { stroke: rgba(40, 111, 103, 0.24); }
.flow__lines path.out { stroke: rgba(40, 111, 103, 0.72); }
.flow__core {
  border-color: #91b2a4;
  background: radial-gradient(circle at 50% 0%, rgba(213, 229, 120, 0.32), transparent 72%), #e9eee8;
  box-shadow: 0 0 40px rgba(40, 111, 103, 0.08);
}
.flow__out li { border-color: #b7c9bf; background: linear-gradient(90deg, #e0e9dc, #eef2e7); }
.flow stop { stop-color: #286f67; }
.feat, .mods .mod, .roles li, .secu__list li {
  background: linear-gradient(165deg, rgba(233, 238, 232, 0.45), transparent 65%), #fffef9;
}
.mods .mod:hover { border-color: #87a899; background: #edf1e7; }
.mods .mods__cta .mod { border-color: #9ab49c; background: radial-gradient(ellipse at 100% 0%, rgba(213, 229, 120, 0.35), transparent 70%), #eef1e5; }
.inds li { background: linear-gradient(180deg, rgba(40, 111, 103, 0.06), transparent); }
.vs__row span:first-child { text-decoration-color: #b7c9bf; }
.vs__row span:last-child { background: rgba(40, 111, 103, 0.06); }
.page-hero::before {
  background: radial-gradient(ellipse 60% 70% at 75% 0%, rgba(213, 229, 120, 0.24), transparent 70%), radial-gradient(ellipse 60% 70% at 10% 20%, rgba(40, 111, 103, 0.08), transparent 70%);
}
.modnav { background: rgba(244, 242, 233, 0.94); }
.modnav a:hover, .modnav a.is-on { background: #e0e9dc; }
.layers__b--ai { border-color: rgba(40, 111, 103, 0.38); background: rgba(40, 111, 103, 0.07); color: var(--scan); }
.form input:focus, .form select:focus, .form textarea:focus { box-shadow: 0 0 0 3px rgba(40, 111, 103, 0.13); }
.form__done { border-color: #87a899; background: rgba(40, 111, 103, 0.06); }

/* Pine technology bands and interactive diagrams. */
.pipe { background: radial-gradient(ellipse at 72% 42%, rgba(213, 229, 120, 0.08), transparent 60%), radial-gradient(ellipse at 18% 100%, rgba(40, 111, 103, 0.35), transparent 62%), #0b2e2b; }
.pipe__copy .eyebrow, .pipe__modes button { background: rgba(11, 46, 43, 0.68); }
.pipe__modes button[aria-pressed='true'] { background: var(--lime); color: var(--deep); }
.how__visual { background: radial-gradient(ellipse at 70% 0%, rgba(40, 111, 103, 0.4), transparent 62%), #0e3430; }
.how__steps li.is-on .how__n { background: #286f67; color: #fffef9; }
.hv__phone { background: #082824; box-shadow: 0 24px 60px rgba(0, 25, 20, 0.4); }
.hv__phonebar b { color: #0b2e2b; }
.hv__q { background: rgba(213, 229, 120, 0.13); }
.hv__toast { background: #174a37; }
.frame { background: #123a36; }
.zchips button[aria-selected='true'] { background: rgba(213, 229, 120, 0.12); }
.chain li:nth-child(4) { border-color: var(--accent); }
.sheetwrap { background: #284d43; }
.mapdemo.is-3d-live:not(.is-plan) .mapdemo__stage { background: radial-gradient(ellipse at 60% 30%, rgba(40, 111, 103, 0.32), transparent 70%); }
.charttip, .ownerimg__tags span, .bs-compare__tag { background: rgba(11, 46, 43, 0.95); }
.tech { background: radial-gradient(ellipse 90% 80% at 50% 0%, #20584b 0%, rgba(40, 111, 103, 0.18) 58%, transparent 85%), #0b2e2b; }
.passes li { border-color: var(--line-2); background: var(--bg-1); }
.passes li::after { border-color: var(--text-3); }
.tech__foot { border-color: var(--line-2); background: rgba(40, 111, 103, 0.18); }
.pilot__card { border-color: #547d67; background: radial-gradient(ellipse at 0% 0%, rgba(213, 229, 120, 0.12), transparent 58%), linear-gradient(135deg, #184a40, #0b2e2b); }
.pilot__steps li { background: rgba(11, 46, 43, 0.42); border-color: rgba(173, 206, 187, 0.2); }
.pilot__steps .mono { color: #0b2e2b; }
.final { background: #0b2e2b; }
.final__art { filter: saturate(0.45); opacity: 0.38; }
.final .lead { color: #c4d5ca; }
.final__in { position: relative; }
.final__in::before { content: ''; position: absolute; left: 50%; top: 50%; z-index: -1; width: min(1100px, 120%); height: 150%; transform: translate(-50%, -50%); background: radial-gradient(ellipse at center, rgba(11, 46, 43, 0.84), rgba(11, 46, 43, 0.4) 55%, transparent 75%); pointer-events: none; }
.foot { background: #092824; }

/* Application accents, including all interactive selected states. */
.bsa-side, .bsa-tabbar { background: #0a2b27; }
.bsa-top { background: rgba(14, 52, 48, 0.95); }
.bsa-cmd { background: #082824; }
.bsa-av { background: linear-gradient(135deg, #3d6b58, #264e42); }
.bsa-nav__item.is-on { background: rgba(213, 229, 120, 0.1); }
.bsa-btn--pri, .bsa-send { background: #d5e578 !important; color: #0b2e2b !important; }
.bsa-btn--pri:hover, .bsa-send:hover { background: #e0ed99 !important; }
.bsa-ask { background: linear-gradient(180deg, rgba(213, 229, 120, 0.05), transparent), var(--panel); }
.bsa-drop:hover, .bsa-upl__slot:hover, .bsa-upl__slot:focus-within { background: rgba(213, 229, 120, 0.05) !important; }
.bsa-capgrid button.is-sel, .bsa-levels button.is-on, .bsa-reg button.is-sel { background: rgba(213, 229, 120, 0.09) !important; }
.bsa-msg--u p, .bsa-rep__list li.is-on { background: rgba(213, 229, 120, 0.11); }
.bsa-tabbar button.is-cap .bs-ico { color: #0b2e2b; }
.bsa-toast { background: #174a37; }
body .demo-flag { background: rgba(11, 46, 43, 0.95); color: #c4d5ca; border-color: rgba(173, 206, 187, 0.26); }
body .demo-flag a { background: #d5e578; color: #0b2e2b; }

/* Drawing and printed report accents are teal on paper. */
.bs-sheet__bay { fill: rgba(40, 111, 103, 0.06); stroke: #286f67; }
.bs-sheet__colg.is-hl .bs-sheet__col { fill: #286f67; }
.bs-sheet__colg.is-hl .bs-sheet__clabel { fill: #123a36; }
.bs-light .bs-chart__observed, .bs-light .bs-chart__dot { stroke: #286f67; }
.bs-light .bs-chart__dot, .bs-light .bs-chart__end--o { fill: #286f67; }
.bs-light .bs-chart__end--p { fill: #627b70; }
.bs-pill--late, td.is-late, dd.is-late, b.is-late, .bad, .bsa-table td.is-late, .hv__att i.late { color: var(--bad-text); }
.bsa-att__shape.is-late, .bs-plan__zone--late .bs-plan__shape { color: var(--bad); fill: var(--bad); }
