/* (Bundle 68) Ensure trailhead-block-dark.css loads everywhere this file does.
 * The block-dark file lived as a static asset but no page was actually <link>ing it,
 * so B66+B67 dark-row rules in it were orphaned. Import here means every Rock page
 * that loads trailhead-chrome.css (= all of them) also gets the block-dark cascade. */
@import url('/Content/LIT/trailhead-block-dark.css?v=2');

/* ============================================================
 * Trailhead Chrome Overrides for Rock RMS
 * Bundle 50 — chrome slice ONLY (top bar + left rail)
 * Author: chrome-redesign agent, 2026-06-14
 * Scope: visual re-skin of .rock-top-header + #zone-navigation
 *         No markup/structure changes. No per-page content.
 *         No JS. No icon swaps (icons stay from Page.IconCssClass).
 * Rollback: remove this file's <link> from Site.Master and recycle IIS.
 * ============================================================
 *
 * Loads AFTER Themes/Rock/Styles/theme.css so it wins specificity.
 * Targets only chrome selectors. Will NOT touch:
 *   - page body content
 *   - blocks
 *   - Bootstrap utility classes
 *   - Obsidian SPA pages (they inherit body bg only)
 *   - mobile breakpoint (< 768px) — preserves Rock responsive nav
 * ============================================================ */

/* Trailhead content SKIN (tokens + buttons/badges/inputs/cards +
 * CampOS block primitives; light-default with dark via data-theme).
 * Kept in a sibling file for a clean, reviewable diff and loaded here
 * because THIS file is already <link>-ed by Site.Master — so the skin
 * ships with no new wiring and no DB change. @import must precede the
 * rules below. See docs/trailhead-skin-enumeration.md for the spec. */
@import url("/Content/LIT/trailhead-skin.css?v=2");
/* CampOS block dark-mode overrides — the design's token mapping applied to the
 * LIVE block classes (see trailhead-block-dark.css header). */
@import url("/Content/LIT/trailhead-block-dark.css?v=2");
@import url("/Content/LIT/event-pipeline-guide.css?v=3");
/* Shared motion + focus polish for CampOS blocks (reduced-motion aware). */
@import url("/Content/LIT/trailhead-motion.css?v=1");

/* ── Bundle 71 FOUC guard ─────────────────────────────────────
 * Hide the legacy Rock top header + side rail from first paint so users do
 * not see them flash before trailhead-chrome.js injects its inline shim.
 * The same rules also live in the JS-injected #trailhead-chrome-style
 * shim, but that shim does not exist until after this file's <link> has
 * already loaded, leaving a paint window where bootstrap.css and theme.css
 * have rendered the legacy bars. Duplicating the rule here closes that
 * window — once the file arrives, !important wins the cascade and the
 * legacy bars never appear, even before JS runs.
 * Wrapped in the same min-width 768px media query as the JS shim so the
 * mobile breakpoint (< 768px) keeps Rock's responsive nav untouched.
 *
 * Bundle 93 (per Jake 2026-07-07 "still not showing the classic top+left
 * bar in classic view"): Bundle 90 rescoped the LATER FOUC + skin blocks
 * below to html.trailhead-active but MISSED this earlier Bundle 71 guard.
 * It kept firing unconditionally on ?classic=1 — the classic Rock chrome
 * stayed display:none even after trailhead-chrome.js stripped the
 * trailhead-active class off <html>. Adding the same html.trailhead-active
 * scope here lets classic-view (no class) leave Rock's native chrome
 * visible. Verified via Chrome MCP DOM inspection on /page/12?classic=1:
 * html.className = "brand-refresh" (no trailhead-active), yet computed
 * display on .navbar.navbar-fixed-top.rock-top-header and
 * nav.navbar-default.navbar-static-side was "none" — coming from THIS
 * rule at 48-51 in the pre-fix file. */
@media (min-width: 768px) {
  html.trailhead-active .navbar.navbar-fixed-top.rock-top-header,
  html.trailhead-active nav.navbar-default.navbar-static-side { display: none !important; }
}

/* ── design tokens (Trailhead palette) ─────────────────────── */
:root {
  --th-chrome-bg-1: #0E2A1F;          /* deep forest, top of gradient */
  --th-chrome-bg-2: #14392A;          /* slightly lighter, bottom of gradient */
  --th-chrome-fg:   #F5EFDD;          /* warm cream text */
  --th-chrome-muted:#9CB3A5;          /* muted sage (labels only; rail icons use cream) */
  --th-gold:        #E6C26A;          /* primary gold accent */
  --th-gold-deep:   #C89B3C;          /* deeper gold for hover */
  --th-ink:         #14342B;          /* forest ink on gold fills */
  --th-rail-w:      72px;             /* slim rail width — slightly wider than current 50px so SVG icons breathe */
  --th-top-h:       56px;             /* top bar height to match */

  /* Ministry Hub tile hues (hub.obs GradSymbol) — left-rail selected/hover */
  --th-hue-launchpad:  #9A6B43;       /* campfire logs */
  --th-hue-events:     #EA7A1E;       /* calendar / Event Editor */
  --th-hue-people:     #2563EB;       /* Person Editor */
  --th-hue-payments:   #0D9488;       /* coin / Payments teal */
  --th-hue-admin:      #6C757D;       /* cog */
  --th-hue-website:    #2563EB;       /* Website Studio globe */
  --th-hue-conference: #7C4DD6;       /* ConferenceOS / plugins purple */
  --th-hue-forest:     #14342B;       /* Admin forest / chrome ink */
}

/* ════════════════════════════════════════════════════════════
 * ANTI-FLASH — eliminate the native-chrome flash.
 * This file is <link>-ed in <head>, so it applies BEFORE first paint.
 * The flash happened because Rock's native top bar + sidebar painted first,
 * then trailhead-chrome.js (deferred, runs on DOMContentLoaded) hid them and
 * built the Trailhead chrome — the old chrome was briefly visible behind.
 * Here we hide the native bars and reserve their space pre-paint, and paint a
 * dark placeholder frame (the JS chrome's own gradients, z-index just below it:
 * rail 1055 / topbar 1060) so the JS chrome fills in seamlessly — no flash, no
 * white/cream gap. Safe: trailhead-chrome.js loads on every Site-1 page via
 * Site.Master, so the Trailhead chrome always replaces what we hide here.
 * ════════════════════════════════════════════════════════════ */
/* Bundle 90 (per Jake 2026-07-06 "notice the rock button goes to classic view
 * of rock (not using my ui), but it does not have the classic left and right
 * bar. i believe it is due to use replacing the bar with our own, which
 * became universal. could we not instead have our bars custom built, and
 * hide rock's classic bars on all our pages?"): architectural fix. Every
 * Rock-chrome suppression rule below scoped to html.trailhead-active so
 * classic-view (?classic=1) — which doesn't set the class — leaves Rock's
 * native navbar-fixed-top + navbar-static-side visible alongside the page
 * content. The Bundle 80 runtime <style> override lost the cascade race
 * against this file (both !important, later-in-DOM wins — CSS <link> may
 * finish loading AFTER runtime <style> is appended, flipping the winner);
 * class-scoping bypasses the race entirely because CSS specificity ties
 * are irrelevant — the selectors just stop matching when the class isn't
 * set. */
@media (min-width: 768px) {
  html.trailhead-active .navbar.navbar-fixed-top.rock-top-header,
  html.trailhead-active nav.navbar-default.navbar-static-side { display: none !important; }
  html.trailhead-active body { padding-top: 56px !important; padding-left: 66px !important; }
  html.trailhead-active .page-wrapper { padding-top: 0 !important; padding-left: 0 !important; }

  /* Bundle 88 (per Jake 2026-07-06 "this is also on all pages. the license
   * blurb. can that go lower dynamically to bottom of screen ratio?"): the
   * Rock "Crafted by Spark Development Network / License" footer sits after
   * page content — on short pages (Ministry Hub with 5 tiles, empty Cabin
   * Editor before session picked, etc.) it lands halfway down the viewport
   * instead of sticking to the visible bottom, wasting the lower ratio of
   * screen. Sticky-footer pattern: turn .page-wrapper into a flex column
   * that fills the remaining viewport height (accounting for the 56px
   * top-bar padding-top on body), and push .main-footer to the end via
   * margin-top:auto so it hugs the viewport bottom on short pages while
   * still flowing naturally after long content.
   * Bundle 90 mega-merge (feat/bundles-88-92-mega): scoped to
   * html.trailhead-active so ?classic=1 bypass (which strips the class
   * off <html>) also disables the sticky-footer flex layout — otherwise
   * classic-view pages would still get flex-column applied to page-wrapper. */
  html.trailhead-active .page-wrapper {
    display: flex !important;
    flex-direction: column !important;
    min-height: calc(100vh - 56px) !important;
  }
  html.trailhead-active .page-wrapper .main-footer {
    margin-top: auto !important;
  }
  html.trailhead-active::before {
    content: ''; position: fixed; top: 0; left: 0; right: 0; height: 56px;
    background: linear-gradient(90deg, #102A20, #14342B 60%, #1B4332);
    border-top: 3px solid #1B4332; z-index: 1050; pointer-events: none;
  }
  html.trailhead-active::after {
    content: ''; position: fixed; top: 56px; left: 0; bottom: 0; width: 66px;
    background: linear-gradient(180deg, #14342B, #0B1C16); z-index: 1050; pointer-events: none;
  }
}

/* ── desktop only — preserve Rock's mobile chrome ─────────── */
/* Bundle 93 (per Jake 2026-07-07 classic-view restore continuation): every
 * skin rule below prefixed with html.trailhead-active so on ?classic=1
 * (which strips the class) the classic Rock chrome renders unpainted —
 * pure default Rock look, matching Jake's "classic left and right bar"
 * intent. Without this scope, after fixing the FOUC guard above, the
 * classic chrome would render but painted in Trailhead colors —
 * confusing hybrid rather than pure classic. */
@media (min-width: 768px) {

  /* ── TOP BAR ─────────────────────────────────────────────── */
  html.trailhead-active .navbar.navbar-fixed-top.rock-top-header {
    background: linear-gradient(180deg, var(--th-chrome-bg-1) 0%, var(--th-chrome-bg-2) 100%);
    border-bottom: 1px solid rgba(230, 194, 106, 0.18);
    min-height: var(--th-top-h);
    box-shadow: 0 1px 0 rgba(0,0,0,0.35);
  }

  html.trailhead-active .rock-top-header .navbar-brand-corner {
    background: transparent;
    border-right: 1px solid rgba(230, 194, 106, 0.18);
  }

  html.trailhead-active .rock-top-header .navbar-brand-corner img,
  html.trailhead-active .rock-top-header .navbar-brand-corner svg {
    /* gold tint to the existing R-mark via filter — preserves existing mark, recolors it */
    filter: drop-shadow(0 0 0.5px var(--th-gold)) brightness(1.05);
  }

  /* search input — Trailhead-style subtle dark pill */
  html.trailhead-active .rock-top-header .smartsearch,
  html.trailhead-active .rock-top-header .smartsearch input {
    background: rgba(245, 239, 221, 0.06);
    color: var(--th-chrome-fg);
    border: 1px solid rgba(230, 194, 106, 0.20);
    border-radius: 8px;
  }
  html.trailhead-active .rock-top-header .smartsearch input::placeholder {
    color: rgba(245, 239, 221, 0.40);
  }
  html.trailhead-active .rock-top-header .smartsearch input:focus {
    border-color: var(--th-gold);
    box-shadow: 0 0 0 2px rgba(230, 194, 106, 0.20);
  }

  /* bell + bookmark icons */
  html.trailhead-active .rock-top-header .rock-bookmark,
  html.trailhead-active .rock-top-header .navbar-zone-header a,
  html.trailhead-active .rock-top-header .navbar-zone-login a {
    color: var(--th-chrome-muted);
  }
  html.trailhead-active .rock-top-header .rock-bookmark:hover,
  html.trailhead-active .rock-top-header .navbar-zone-header a:hover,
  html.trailhead-active .rock-top-header .navbar-zone-login a:hover {
    color: var(--th-gold);
  }

  /* user dropdown "Hello Jake" */
  html.trailhead-active .rock-top-header .navbar-zone-login .dropdown-toggle {
    color: var(--th-chrome-fg);
    border-left: 1px solid rgba(230, 194, 106, 0.18);
    padding-left: 14px;
  }
  html.trailhead-active .rock-top-header .navbar-zone-login .dropdown-menu {
    background: var(--th-chrome-bg-2);
    border: 1px solid rgba(230, 194, 106, 0.20);
  }
  html.trailhead-active .rock-top-header .navbar-zone-login .dropdown-menu a {
    color: var(--th-chrome-fg);
  }
  html.trailhead-active .rock-top-header .navbar-zone-login .dropdown-menu a:hover {
    background: rgba(230, 194, 106, 0.12);
    color: var(--th-gold);
  }

  /* ── LEFT RAIL ──────────────────────────────────────────── */
  html.trailhead-active nav.navbar-default.navbar-static-side {
    background: var(--th-chrome-bg-1);
    width: var(--th-rail-w);
    border-right: 1px solid rgba(230, 194, 106, 0.10);
  }

  /* push body content over to account for the slightly wider rail */
  html.trailhead-active body.page-loaded #content,
  html.trailhead-active body.page-loaded #content-wrapper {
    margin-left: var(--th-rail-w);
  }

  html.trailhead-active #zone-navigation {
    background: transparent;
    padding-top: 10px;
  }

  html.trailhead-active #zone-navigation > div,
  html.trailhead-active #zone-navigation ul,
  html.trailhead-active #zone-navigation li {
    background: transparent;
    list-style: none;
    margin: 0;
    padding: 0;
  }

  /* each nav button — slim square; hover/active use that item's Hub hue */
  html.trailhead-active #zone-navigation a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin: 6px 10px;
    border-radius: 10px;
    color: var(--th-chrome-fg) !important;
    background: transparent;
    transition: background 120ms ease, color 120ms ease, transform 120ms ease;
    text-decoration: none;
    position: relative;
  }
  html.trailhead-active #zone-navigation a:link,
  html.trailhead-active #zone-navigation a:visited {
    color: var(--th-chrome-fg) !important;
    background: transparent;
  }
  html.trailhead-active #zone-navigation a:hover {
    background: color-mix(in srgb, var(--rail-hue, var(--th-gold)) 16%, transparent);
    color: var(--rail-hue, var(--th-gold)) !important;
    transform: translateY(-1px);
  }
  html.trailhead-active #zone-navigation a:focus {
    outline: 2px solid var(--rail-hue, var(--th-gold));
    outline-offset: 2px;
  }

  /* active page — Hub-hue icon + small indicator (not Bootstrap blue, not a gold bar) */
  html.trailhead-active #zone-navigation a.active,
  html.trailhead-active #zone-navigation a.active:link,
  html.trailhead-active #zone-navigation a.active:visited,
  html.trailhead-active #zone-navigation a.current,
  html.trailhead-active #zone-navigation li.active > a,
  html.trailhead-active #zone-navigation li.active > a:link,
  html.trailhead-active #zone-navigation li.active > a:visited,
  html.trailhead-active #zone-navigation li.current > a,
  html.trailhead-active nav.navbar-default.navbar-static-side .nav > li.active > a,
  html.trailhead-active nav.navbar-default.navbar-static-side .nav > li.active > a:hover,
  html.trailhead-active nav.navbar-default.navbar-static-side .nav > li.active > a:focus,
  html.trailhead-active nav.navbar-default.navbar-static-side .nav > li.active > a:visited,
  html.trailhead-active #side-menu > li.active > a {
    background: color-mix(in srgb, var(--rail-hue, var(--th-gold)) 18%, transparent) !important;
    background-color: color-mix(in srgb, var(--rail-hue, var(--th-gold)) 18%, transparent) !important;
    background-image: none !important;
    color: var(--rail-hue, var(--th-gold)) !important;
    box-shadow: none;
  }

  /* icon sizing — let Font Awesome glyphs breathe */
  html.trailhead-active #zone-navigation a i,
  html.trailhead-active #zone-navigation a .fa {
    font-size: 20px;
    line-height: 1;
  }

  /* Per-item Hub hues on Rock's native #zone-navigation (href map). */
  html.trailhead-active #zone-navigation a[href*="/page/29430"],
  html.trailhead-active #zone-navigation a[href*="/campos/launchpad"] { --rail-hue: var(--th-hue-launchpad); }
  html.trailhead-active #zone-navigation a[href*="/page/29434"],
  html.trailhead-active #zone-navigation a[href*="/campos/people"] { --rail-hue: var(--th-hue-people); }
  html.trailhead-active #zone-navigation a[href*="/page/88646"],
  html.trailhead-active #zone-navigation a[href*="/campos/events"],
  html.trailhead-active #zone-navigation a[href*="/campos/editor"] { --rail-hue: var(--th-hue-events); }
  html.trailhead-active #zone-navigation a[href*="panel=cms"] { --rail-hue: var(--th-hue-payments); }
  html.trailhead-active #zone-navigation a[href*="/campos/admin"],
  html.trailhead-active #zone-navigation a[href*="/page/88645"] { --rail-hue: var(--th-hue-admin); }
  html.trailhead-active #zone-navigation a[href*="/campos/website"] { --rail-hue: var(--th-hue-website); }
  html.trailhead-active #zone-navigation a[href*="/confos"] { --rail-hue: var(--th-hue-conference); }

  /* ── content area — preserve Rock's existing layout ───── */
  /* No changes to .content, .container, .panel — page content untouched */

} /* end @media min-width 768 */

/* ── Injected Trailhead rail — Hub-hue selected/hover (not Bootstrap blue) ──
 * trailhead-chrome.js injects .trailhead-rail / .trailhead-railbtn and also
 * writes matching rules into #trailhead-chrome-style. data-rail is set by JS.
 * Hub hues live here as tokens; JS duplicates the data-rail hexes so a stale
 * CSS cache still paints the right color. */
.trailhead-railbtn[data-rail="launchpad"] { --rail-hue: var(--th-hue-launchpad); }
.trailhead-railbtn[data-rail="people"]    { --rail-hue: var(--th-hue-people); }
.trailhead-railbtn[data-rail="events"]    { --rail-hue: var(--th-hue-events); }
.trailhead-railbtn[data-rail="payments"]  { --rail-hue: var(--th-hue-payments); }
.trailhead-railbtn[data-rail="admin"]     { --rail-hue: var(--th-hue-admin); }
.trailhead-railbtn[data-rail="website"]   { --rail-hue: var(--th-hue-website); }
.trailhead-railbtn[data-rail="conference"]{ --rail-hue: var(--th-hue-conference); }

.trailhead-railbtn {
  color: var(--th-chrome-fg) !important;
  background: transparent;
}
a.trailhead-railbtn:link,
a.trailhead-railbtn:visited {
  color: var(--th-chrome-fg) !important;
  background: transparent;
}
a.trailhead-railbtn:hover,
a.trailhead-railbtn:focus {
  color: var(--rail-hue, var(--th-gold)) !important;
  background: color-mix(in srgb, var(--rail-hue, var(--th-gold)) 16%, transparent);
}
.trailhead-railbtn--active,
a.trailhead-railbtn--active:link,
a.trailhead-railbtn--active:visited,
a.trailhead-railbtn--active:hover,
a.trailhead-railbtn--active:focus,
.trailhead-railbtn.active,
.trailhead-railbtn.current {
  color: var(--rail-hue, var(--th-gold)) !important;
  background: color-mix(in srgb, var(--rail-hue, var(--th-gold)) 18%, transparent) !important;
  background-color: color-mix(in srgb, var(--rail-hue, var(--th-gold)) 18%, transparent) !important;
  background-image: none !important;
  box-shadow: none !important;
}
.trailhead-railbtn--active::before {
  content: '';
  position: absolute;
  left: 4px;
  top: 10px;
  width: 3px;
  height: 24px;
  border-radius: 2px;
  background: var(--rail-hue, var(--th-gold));
}

/* ── Bundle 97 — Ministry Hub classic-view mountain-M icon ────────────
 * Rock's PageMenu block renders the top-level rail icon as
 *   <i class="{Page.IconCssClass}">
 * verbatim. Setting Page 29428 IconCssClass = 'cedine-hub-icon' means
 * the classic-view left rail renders <i class="cedine-hub-icon"> for
 * Ministry Hub. This rule paints that <i> as the same mountain-in-gold-
 * chip look the Trailhead top-bar Home button carries — same SVG path
 * (verbatim IC_MOUNTAIN from trailhead-chrome.js line 107, "m8 3 4 8 5-5
 * 5 15H2L8 3z"), same #E6C26A gold color, same 2px outlined chip. Fixed
 * ~28px canvas so the icon fits Rock's slim left-rail slot; the ::before
 * background-image inline SVG paints the mountain path.
 *
 * Per Jake 2026-07-08 "have it pull from the live product logo (top bar
 * of campos)". SVG is inlined as data URI rather than an @import so it
 * ships with this stylesheet and doesn't need a BinaryFile row.
 *
 * NOTE: class name is 'cedine-hub-icon' (no 'fa' prefix). Rock's rail
 * template writes IconCssClass verbatim into the <i> — starting with a
 * generic class name (rather than 'fa fa-mountain') avoids any Font
 * Awesome side-effect styles landing on top of ours.
 * ────────────────────────────────────────────────────────────── */
nav.navbar-default.navbar-static-side .cedine-hub-icon,
.rock-top-header .cedine-hub-icon {
    display: inline-block;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    border: 2px solid #E6C26A;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E6C26A' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='m8 3 4 8 5-5 5 15H2L8 3z'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 18px 18px;
    vertical-align: middle;
    box-sizing: border-box;
}
/* Hover — subtle lift (echoes the Trailhead top-bar .trailhead-home:hover
 * treatment: background rgba(230,194,106,0.12) + border lighten). */
nav.navbar-default.navbar-static-side a:hover .cedine-hub-icon,
.rock-top-header a:hover .cedine-hub-icon {
    background-color: rgba(230, 194, 106, 0.12);
    border-color: #F0D488;
}

/* ── kiosk + check-in modes — leave alone ──────────────── */
/* Don't touch .body-kiosk, .checkin-* — those have their own chrome */

/* ── overflow / configuration overlay — leave alone ────── */
.zone-configuration,
.zoneinstance-config,
.zone-blocks,
.block-move,
.block-actions {
  /* Rock's admin overlay icons keep their default styling so editor mode still works */
}

/* ── print — strip chrome on print ─────────────────────── */
@media print {
  .navbar.navbar-fixed-top.rock-top-header,
  nav.navbar-default.navbar-static-side {
    display: none !important;
  }
  body, #content, #content-wrapper {
    margin: 0 !important;
    padding-top: 0 !important;
  }
}

/* ── Footer on theme (b13, per Jake 2026-09-30 "this black off theme at
 * bottom … needs fixed across all obsidian pages") ─────────────────────
 * Rock's theme paints .main-footer as a near-black card (#0d1117, 8px
 * radius) and our contrast pass inks the links (#14241C), so the links
 * vanish. Replace the card with a quiet parchment strip: hairline rule,
 * muted ink text, forest links. Dark mode keeps the same shape in forest. */
html.trailhead-active .main-content .main-footer,
html.trailhead-active .main-footer {
  background: transparent !important;
  color: #5C6B62 !important;
  border: 0 !important;
  border-top: 1px solid rgba(27, 67, 50, 0.14) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 14px 24px 18px !important;
  font-size: 0.84rem !important;
  line-height: 1.5 !important;
}
html.trailhead-active .main-footer p,
html.trailhead-active .main-footer span,
html.trailhead-active .main-footer div {
  color: inherit !important;
  background: transparent !important;
}
html.trailhead-active .main-footer a,
html.trailhead-active body .main-footer a {
  color: #1B4332 !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(27, 67, 50, 0.25);
}
html.trailhead-active .main-footer a:hover,
html.trailhead-active .main-footer a:focus-visible {
  color: #9A7420 !important;
  border-bottom-color: currentColor;
}
/* Rock's admin zone/block config bars inside the footer keep their look. */
html.trailhead-active .main-footer .config-bar,
html.trailhead-active .main-footer .config-bar a {
  border-bottom: 0 !important;
}
html.trailhead-active .main-footer .config-bar { background: #0176d3 !important; }
html.trailhead-active .main-footer .config-bar a { color: #fff !important; }

html.trailhead-active[data-theme="dark"] .main-footer,
html.trailhead-active[data-bs-theme="dark"] .main-footer,
html.trailhead-active.dark-mode .main-footer,
html.trailhead-active body.dark-mode .main-footer {
  background: transparent !important;
  color: #A9BBB0 !important;
  border-top-color: rgba(245, 239, 221, 0.16) !important;
}
html.trailhead-active[data-theme="dark"] .main-footer a,
html.trailhead-active[data-bs-theme="dark"] .main-footer a,
html.trailhead-active.dark-mode .main-footer a,
html.trailhead-active body.dark-mode .main-footer a {
  color: #F0D078 !important;
  border-bottom-color: rgba(240, 208, 120, 0.3);
}

/* ── Nested-row gutter guard (b38) ──────────────────────────────────────
 * Some Rock core blocks (e.g. CSV Import) emit unbalanced markup, so the
 * browser closes .col-* early and later layout .rows land directly inside
 * another .row. Bootstrap 3 only nests .row inside .col-*, so .row > .row
 * is never valid; its second -15px gutter pushes the page 14px wider than
 * the viewport. Cancel that second gutter. Layout only; hides nothing. */
html.trailhead-active #page-content .row > .row {
  margin-left: 0;
  margin-right: 0;
}
