/*! FocalShift Ai · Mission Control shell · MC-SHELL-DELIVERY (ruling 454, 11 Sep 2026).
    Generated by build/externalise.py from the shell's own inline block(s) — byte-for-byte the same
    rules/code, moved out of the document so the browser can cache them. The filename carries the
    content hash; a changed file is a new name, never an overwrite. */
/* ── from public_html/_mc_shellA.php: <style id=fs-lucide-shell> ── */
.fslh-ic svg,.fsst-ic svg,.fsst-btn svg,.fslh-link svg,.fslh-themeopt svg,.fslh-chip svg,.fslh-xptoggle svg,.fslh-pop svg,.fsmsg svg,.fsmsg-all svg,.fslh-mhead svg.lucide,.mc-wshead-ic svg,.fslh-credit svg,.fslh-search svg,.fslh-foot svg,.fs-langnav svg{width:1em;height:1em;vertical-align:-.125em;stroke-width:1.25}.fslh-link svg{width:14px;height:14px}.mc-wshead-ic svg{width:16px;height:16px}.fslh-hex svg{width:100%;height:100%;stroke-width:0}.fslh-bigbot svg{width:24px !important;height:24px !important}

/* ── from public_html/_mc_shellA.php: <style id=fs-topbar-0729> ── */
.fslh-ic:hover{background:none !important;color:var(--fsc-ok,#0d8128) !important}.fsnav-btn:hover{background:transparent !important;color:var(--fsc-ok,#0d8128) !important}.fslh-lpulse:hover,.fs-dark .fslh-lpulse:hover{background:none !important;color:var(--fsc-ok,#0d8128) !important}

/* ── from public_html/_mc_shellA.php: <style id=fs-avdrop-0729> ── */
.fslh-onboard{display:inline-flex;align-items:center;gap:3px;flex:none;cursor:pointer;border:0;background:none;padding:6px 9px;border-radius:9px;color:var(--fsc-ok,#0d8128);font:800 12.5px Inter,sans-serif;letter-spacing:.01em;transition:.14s}.fslh-onboard span{color:var(--fsc-ok,#0d8128)}.fslh-onboard:hover{transform:translateY(-1px);color:#3da012}.fslh-onboard:hover span{color:#3da012}html.fs-dark .fslh-onboard span{color:#5fd626}html.fs-dark .fslh-onboard:hover span{color:#74e83b}.fslh-mrole-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px}.fslh-cogql{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;color:var(--fsc-violet,#514dfa);flex:none;text-decoration:none;transition:background .15s,color .15s}.fslh-cogql svg{width:22px !important;height:22px !important;stroke-width:1.6 !important}.fslh-cogql:hover{background:none;color:var(--fsc-ok,#0d8128)}html.fs-dark .fslh-cogql{color:#8f8bff}html.fs-dark .fslh-cogql:hover{background:none;color:var(--fsc-ok,#0d8128)}.fslh-nmline{display:inline-flex;align-items:center;gap:2px;min-width:0}.fslh-nmline .fslh-mname{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fslh-cogql.fslh-cogin{width:33px;height:33px;border-radius:9px;margin-left:2px}.fslh-cogql.fslh-cogin svg{width:24px !important;height:24px !important}.fslh-menu::before{content:"";position:absolute;top:-7px;right:16px;width:12px;height:12px;background:#fff;border-left:1px solid #ececf4;border-top:1px solid #ececf4;transform:rotate(45deg);border-top-left-radius:3px}html.fs-dark .fslh-menu::before{background:#1a1b26;border-color:#2b2c3e}html.fs-dark .fslh-mname{color:#fff}

/* ── from public_html/_mc_shellA.php: <style id=fs-hdrchev-0801> ── */
.fslh-dd>.fslh-hex{width:auto;align-items:center;gap:4px}.fslh-dd>.fslh-hex>svg:not(.fslh-hexchev){width:42px;height:46.2px;flex:0 0 42px}.fslh-dd>.fslh-hex>.lv{left:21px}.fslh-hex svg.fslh-hexchev{width:10px;height:10px;flex:0 0 10px;stroke-width:1.25;color:#5b5b76;transition:transform .16s}.fslh-dd.open .fslh-hex svg.fslh-hexchev{transform:rotate(180deg)}html.fs-dark .fslh-hex svg.fslh-hexchev{color:var(--fsc-muted,#6a6a8b)}

/* ── from public_html/_mc_shellA.php: <style id=fs-hdrcard-hd1-0801> ── */
/* HD1 (Hans 8/1) — ONE hover-card language in the header.
   Anatomy is copied from the card that already existed on the XP/level control
   (.fslh-pop, fs-pages.css:189-196) so this is not a new dialect:
     248px wide · #fff on 1px #ececf4 · 13px radius · 14px 15px padding
     shadow 0 16px 38px -12px rgba(40,40,70,.30) · .15s opacity/transform fade
     title 12px/800 #2c2c44 · sentence 11.5px #8a8aa6
   The nub uses the house caret technique already shipped on #fs-railtip: a rotated
   square carrying two of the card's OWN borders, so card + caret read as one shape. */
#fsHdrCard{position:fixed;left:0;top:0;z-index:12000;width:248px;box-sizing:border-box;background:#fff;border:1px solid #ececf4;border-radius:13px;box-shadow:0 16px 38px -12px rgba(40,40,70,.30);padding:14px 15px;text-align:left;pointer-events:none;opacity:0;visibility:hidden;transform:translateY(-5px);transition:opacity .15s,transform .15s,visibility .15s}
#fsHdrCard.on{opacity:1;visibility:visible;transform:none}
#fsHdrCard b{display:block;font:800 12px/1.35 'Inter',system-ui,-apple-system,sans-serif;color:var(--fsc-ink,#2c2c44);margin:0 0 5px}
#fsHdrCard span{display:block;font:400 11.5px/1.45 'Inter',system-ui,-apple-system,sans-serif;color:var(--fsc-muted,#6a6a8b)}
#fsHdrCard::before{content:"";position:absolute;left:var(--fshc-x,32px);top:-6px;width:11px;height:11px;margin-left:-6px;background:#fff;border-left:1px solid #ececf4;border-top:1px solid #ececf4;border-top-left-radius:3px;transform:rotate(45deg)}
html.fs-dark #fsHdrCard{background:#1c1d2b;border-color:#2e2f44;box-shadow:0 18px 42px -12px rgba(0,0,0,.72)}
html.fs-dark #fsHdrCard b{color:#e7e8f5}
html.fs-dark #fsHdrCard span{color:var(--fsc-muted,#6a6a8b)}
html.fs-dark #fsHdrCard::before{background:#1c1d2b;border-color:#2e2f44}
@media(max-width:760px){#fsHdrCard{display:none!important}}
/* HD1 square-fill audit — a header CONTROL shows hover by changing its ICON COLOUR,
   never by painting a filled box behind it. .fslh-ic / .fsnav-btn / .fslh-lpulse were
   already converted (fs-topbar-0729); these are the two that were still filling.
   Genuine ACTIVE states (.fsst.open) and popup LIST rows are deliberately untouched. */
.fslh-xptoggle:hover{background:none !important;color:var(--fsc-ok,#0d8128) !important}
.fsst-btn:hover,html.fs-dark .fsst-btn:hover{background:transparent !important;color:var(--fsc-ok,#0d8128) !important;border-color:#d9d9ec !important}
html.fs-dark .fsst-btn:hover{border-color:#3a3f5c !important}

/* ── from public_html/_mc_shellA.php: <style id=fs-railtip-style> ── */
#fs-railtip{position:fixed;left:0;top:0;z-index:9999;pointer-events:none;padding:10px 17px;border-radius:12px;background:#fff;border:1px solid #ececf4;color:var(--fsc-violet,#514dfa);font:800 13px/1 'Inter',system-ui,-apple-system,sans-serif;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;box-shadow:0 16px 38px -12px rgba(20,20,50,.45);opacity:0;visibility:hidden;transform:translateY(-50%) translateX(-4px);transition:opacity .13s ease,transform .13s ease,visibility .13s}
#fs-railtip.on{opacity:1;visibility:visible;transform:translateY(-50%) translateX(0)}
#fs-railtip::before{content:"";position:absolute;left:-5px;top:50%;width:10px;height:10px;margin-top:-5px;background:#fff;border-left:1px solid #ececf4;border-bottom:1px solid #ececf4;transform:rotate(45deg)}
html.fs-dark #fs-railtip{background:#14182a;border-color:#262b40;color:#a9a6ff;box-shadow:0 16px 40px -12px rgba(0,0,0,.72)}
html.fs-dark #fs-railtip::before{background:#14182a;border-color:#262b40}
@media(max-width:760px){#fs-railtip{display:none!important}}

/* ── from public_html/_mc_shellA.php: <style id=fs-boardrailcard-css> ── */
/* Both fences below are written twice: once as :has(#mc-board), which is live at FIRST PAINT,
 * and once as body.bdrc-on, a class the controller adds to <body> the moment it confirms the
 * same #mc-board mount. Two spellings of ONE condition, so the CSS half and the JS half can
 * never disagree — and on any engine without :has() support the class still fences everything
 * (the estate already depends on :has() here: board-detail.php:565 and :598 use it).
 *
 * 1 · the shell's own plain hover card is SUPERSEDED on board pages by #bdRailFly below —
 *     same card, plus the item's links. One card at a time, never two stacked.
 *     #fsRailFly keeps running: it is still filled by _sidebarA.html's own show(), and the
 *     card below reads the title and description straight out of it, so the 21-entry DESC
 *     table stays in ONE place and can never drift into a second copy. */
/* WO-MAVENDRAWER-0831 · founder amendment #5, 31 Aug: "when the page loads the left rail
   submenu pop-out must not appear — hovering shows the hover cards instead", ordered for
   maven-today.php. REUSE, NOT REBUILD: this is WO-BOARDRAILCARD-0828's block, unchanged in
   behaviour; only its FENCE is widened by one alternative marker, #mc-railcard, so a page can
   opt in WITHOUT claiming to be a focus board. Faking #mc-board would also have switched on
   board-detail.php's own body:has(#mc-board) rules (:565, :598 — WO-BOARDMEET's green reopen
   hexagon) on a page that has no board, which is why the marker is a second name and not a lie.
   Blast radius: exactly the pages that mount #mc-railcard. Today that is one — maven-today.php.
   Every one of the ~195 other pages through this shell matches neither marker and leaves on the
   controller's first line, as before. */
html body:has(#mc-board) #fsRailFly,html body:has(#mc-railcard) #fsRailFly,html body.bdrc-on #fsRailFly{display:none !important}

/* 2 · 821-1099 (the WO-NAVRAIL-0827 band). The band controller is not intercepted anywhere —
 *     that is how its tap/close/Escape/restoreHome contract stays verbatim — so it still adds
 *     body.fsnr-open. On a board page the pop-out simply must not paint.
 *     SPECIFICITY: :has(#mc-board) contributes its argument's specificity, an id, so this is
 *     (1,3,2) against the band's own (0,3,2), and it is later in the cascade besides. The
 *     .bdrc-on twin is (0,4,2) — also a win on class count, and later. */
@media (min-width:821px) and (max-width:1099px){
  html body:has(#mc-board).fsnr-open .two-col-sidebar .sidebar-right,
  html body:has(#mc-board).fsnr-open .sidebar-twocol.sidebar .sidebar-right,
  html body:has(#mc-railcard).fsnr-open .two-col-sidebar .sidebar-right,
  html body:has(#mc-railcard).fsnr-open .sidebar-twocol.sidebar .sidebar-right,
  html body.bdrc-on.fsnr-open .two-col-sidebar .sidebar-right,
  html body.bdrc-on.fsnr-open .sidebar-twocol.sidebar .sidebar-right{display:none !important}
}

/* 3 · THE CARD.
 *     Box, radius, padding, the HD1 caret and the transitions are #fsRailFly's own values
 *     (_sidebarA.html:9-27), verbatim, so this reads as the same component the estate already
 *     ships. What is ADDED is the Network's .frf-links list — the data-fly-links contract in
 *     private_html/fsn_shell.php on focalshift.network — and pointer-events, so the links can
 *     be clicked. COLOURS ARE MISSION CONTROL'S OWN, measured out of this very file:
 *       #ececf4 (30 uses) · #23233a (5) · #8a8aa6 (12) · #2c2c44 (10) · #615dfa (29)
 *       #14182a/#262b40/#a9a6ff (the shell's dark rail-hover surface, 7/6/3 uses)
 *       0 16px 38px -12px rgba(20,20,50,.45) — #fs-railtip's own shadow
 *     and the dark card is #fsRailFly's own #12121d/#2c2c46/#eef0ff/#9a9ab8/#1d1d31/#a78bfa.
 *     Nothing here is a Network pixel: this is an MC surface wearing a Network interaction. */
#bdRailFly{position:fixed;z-index:12000;width:256px;background:#fff;border:1px solid #ececf4;
  border-radius:14px;padding:13px 15px;box-shadow:0 16px 38px -12px rgba(20,20,50,.45);
  opacity:0;pointer-events:none;transform:translateX(-6px);box-sizing:border-box;
  transition:opacity .14s ease,transform .14s ease;
  font-family:'Inter',system-ui,-apple-system,sans-serif}
#bdRailFly.on{opacity:1;transform:translateX(0);pointer-events:auto}
#bdRailFly::before{content:"";position:absolute;left:-6px;top:var(--frf-caret,42px);width:11px;height:11px;
  margin-top:-6px;background:#fff;border-left:1px solid #ececf4;border-bottom:1px solid #ececf4;
  border-bottom-left-radius:3px;transform:rotate(45deg)}
#bdRailFly.frf-flip{transform:translateX(6px)}
#bdRailFly.frf-flip.on{transform:translateX(0)}
#bdRailFly.frf-flip::before{left:auto;right:-6px;border-left:0;border-bottom:0;
  border-right:1px solid #ececf4;border-top:1px solid #ececf4;border-bottom-left-radius:0;border-top-right-radius:3px}
#bdRailFly .frf-top{display:flex;align-items:center;gap:10px;margin-bottom:7px}
#bdRailFly .frf-ic{width:36px;height:36px;border-radius:10px;background:rgba(97,93,250,.12);
  display:flex;align-items:center;justify-content:center;color:var(--fsc-violet,#514dfa);flex:0 0 auto}
#bdRailFly .frf-ic svg{width:19px;height:19px}
#bdRailFly .frf-ic .fs-icm{width:19px !important;height:19px !important}
#bdRailFly .frf-ic .fs-maven-hb{width:38px !important;height:38px !important}
#bdRailFly b{font-size:14px;color:#23233a;font-weight:700;line-height:1.2;display:block}
#bdRailFly .frf-desc{font-size:12px;color:var(--fsc-muted,#6a6a8b);line-height:1.5;margin:0}
#bdRailFly .frf-links{margin:9px 0 0;display:flex;flex-direction:column;gap:1px;overflow:auto}
#bdRailFly .frf-links a{display:flex;align-items:center;gap:9px;font:600 12.5px 'Inter',system-ui,sans-serif;
  color:var(--fsc-ink,#2c2c44);text-decoration:none;padding:7px 9px;border-radius:9px;min-height:32px;
  box-sizing:border-box;transition:background .12s,color .12s}
#bdRailFly .frf-links a:hover,#bdRailFly .frf-links a:focus-visible{background:rgba(97,93,250,.10);color:var(--fsc-violet,#514dfa);outline:none}
#bdRailFly .frf-links a .frf-dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.42;flex:0 0 auto;margin-left:3px}
#bdRailFly .frf-links a.frf-all{color:var(--fsc-violet,#514dfa);font-weight:700}
#bdRailFly .frf-links a.frf-all .frf-dot{opacity:.85}
#bdRailFly .frf-bar{height:2px;border-radius:2px;background:linear-gradient(90deg,#8b5cf6,#ff2e93);margin-top:10px;opacity:.7}
html.fs-dark #bdRailFly,[data-theme="dark"] #bdRailFly{background:#12121d;border-color:#2c2c46;box-shadow:0 14px 40px rgba(5,5,15,.55)}
html.fs-dark #bdRailFly::before,[data-theme="dark"] #bdRailFly::before{background:#12121d;border-color:#2c2c46}
html.fs-dark #bdRailFly b,[data-theme="dark"] #bdRailFly b{color:#eef0ff}
html.fs-dark #bdRailFly .frf-desc,[data-theme="dark"] #bdRailFly .frf-desc{color:var(--fsc-muted,#6a6a8b)}
html.fs-dark #bdRailFly .frf-ic,[data-theme="dark"] #bdRailFly .frf-ic{background:#1d1d31;color:#a78bfa}
html.fs-dark #bdRailFly .frf-links a,[data-theme="dark"] #bdRailFly .frf-links a{color:#e6e6f2}
html.fs-dark #bdRailFly .frf-links a:hover,html.fs-dark #bdRailFly .frf-links a:focus-visible,
[data-theme="dark"] #bdRailFly .frf-links a:hover,[data-theme="dark"] #bdRailFly .frf-links a:focus-visible{background:rgba(167,139,250,.16);color:#c4b5fd}
html.fs-dark #bdRailFly .frf-links a.frf-all,[data-theme="dark"] #bdRailFly .frf-links a.frf-all{color:#a9a6ff}
@media(prefers-reduced-motion:reduce){#bdRailFly,#bdRailFly .frf-links a{transition:none}}
/* <=820 is the phone drawer (WO-MOBRAIL-V2-0811). Not this lane's regime, closed explicitly. */
@media(max-width:820px){#bdRailFly{display:none !important}}
