/*! FocalShift Ai · Mission Control shell partials · MC-SHELL-DELIVERY-2 (ruling 454 phase 2, 11 Sep 2026).
    Generated by build/externalise.py from the partial'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/_fs_cookie_consent.php: <style id=fscc-style> ── */
#fscc-root,.fscc-reopen{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;box-sizing:border-box}
#fscc-root *,.fscc-reopen *{box-sizing:border-box}
.fscc-card{position:fixed;left:20px;bottom:20px;z-index:2147483000;width:340px;max-width:calc(100vw - 32px);
  background:#ffffff;color:#1d1e2b;border:1px solid #e6e7f0;border-radius:16px;
  box-shadow:0 18px 48px -12px rgba(29,30,43,.28),0 2px 8px rgba(29,30,43,.06);
  padding:18px 18px 16px;animation:fscc-in .32s cubic-bezier(.2,.8,.25,1) both}
@keyframes fscc-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.fscc-head{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.fscc-glyph{display:flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 34px;
  border-radius:10px;background:rgba(91,87,239,.12);color:var(--fsc-violet-2,#5450ee)}
.fscc-htext strong{font-size:14.5px;font-weight:700;letter-spacing:-.01em}
.fscc-desc{margin:0 0 14px;font-size:12.75px;line-height:1.55;color:#4b4d63}
.fscc-policy{color:var(--fsc-violet-2,#5450ee);text-decoration:none;font-weight:600;white-space:nowrap}
.fscc-policy:hover{text-decoration:underline}
.fscc-actions{display:flex;flex-wrap:wrap;gap:8px}
.fscc-btn{appearance:none;border:0;cursor:pointer;font-family:inherit;font-size:12.75px;font-weight:600;
  border-radius:10px;padding:9px 13px;line-height:1.1;transition:background .15s,border-color .15s,transform .05s;flex:1 1 auto;white-space:nowrap}
.fscc-btn:active{transform:translateY(1px)}
.fscc-btn-primary{background:#ececf4;color:#1d1e2b}
.fscc-btn-primary:hover{background:#e2e2ee}
.fscc-btn-ghost{background:transparent;color:var(--fsc-violet-2,#5450ee);border:1px solid transparent;flex:0 0 auto}
.fscc-btn-ghost:hover{background:rgba(91,87,239,.08)}
.fscc-options{margin-top:14px;border-top:1px solid #ececf4;padding-top:6px}
.fscc-row{display:flex;align-items:flex-start;gap:12px;padding:11px 0;border-bottom:1px solid #f1f1f7}
.fscc-row:last-of-type{border-bottom:0}
.fscc-rowtext{flex:1;min-width:0}
.fscc-rowlabel{display:block;font-size:13px;font-weight:600;color:#1d1e2b}
.fscc-rowsub{display:block;font-size:11.5px;line-height:1.45;color:#6b6d84;margin-top:2px}
.fscc-switch{position:relative;flex:0 0 auto;width:40px;height:23px;margin-top:2px;cursor:pointer}
.fscc-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.fscc-track{position:absolute;inset:0;background:#d3d4e2;border-radius:999px;transition:background .18s}
.fscc-track::after{content:"";position:absolute;top:2px;left:2px;width:19px;height:19px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .18s}
.fscc-switch input:checked+.fscc-track{background:#5b57ef}
.fscc-switch input:checked+.fscc-track::after{transform:translateX(17px)}
.fscc-switch.fscc-locked{cursor:default}
.fscc-switch.fscc-locked input{cursor:default}
.fscc-switch.fscc-locked input:checked+.fscc-track{background:#a9a7ee}
.fscc-save{margin-top:12px;width:100%;background:#5b57ef;color:#fff}
.fscc-save:hover{background:#4b47e0}
/* COOKIESNOOZE-0829 — the floating chip is retired; this is the footer link + the card's X. */
.fscc-foot{width:100%;display:flex;justify-content:center;padding:16px 20px 20px}
.fscc-footlink{background:none;border:0;cursor:pointer;font:500 11.5px Inter,system-ui,sans-serif;
  color:#6b7194;opacity:.75;text-decoration:underline dotted;padding:4px 8px}
.fscc-footlink:hover{opacity:1;color:var(--fsc-violet,#514dfa)}
.fscc-footlink svg,.fscc-footlink .fscc-ic{display:none}
.fscc-x{position:absolute;top:8px;inset-inline-end:8px;width:26px;height:26px;border:0;background:none;
  cursor:pointer;color:var(--fsc-muted,#6a6a8b);font:400 18px/1 Inter,sans-serif;border-radius:8px}
.fscc-x:hover{color:var(--fsc-ink,#2c2c44);background:rgba(0,0,0,.05)}
html.fs-dark .fscc-x:hover,html[data-theme="dark"] .fscc-x:hover{color:#e8ecf8;background:rgba(255,255,255,.08)}
.fscc-reopen{position:fixed;left:55px;bottom:20px;z-index:2147482000;width:42px;height:42px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  background:#ffffff;color:var(--fsc-violet-2,#5450ee);border:1px solid #e6e7f0;
  box-shadow:0 8px 24px -8px rgba(29,30,43,.35),0 1px 4px rgba(29,30,43,.08);
  opacity:.85;transition:opacity .15s,transform .12s}
.fscc-reopen:hover{opacity:1;transform:translateY(-1px)}

/* ---- dark: explicit host dark class/attr always wins ---- */
html.fs-dark .fscc-card,html[data-theme="dark"] .fscc-card{background:#242536;color:#ececf4;border-color:#34354c;
  box-shadow:0 20px 52px -12px rgba(0,0,0,.6),0 2px 8px rgba(0,0,0,.35)}
html.fs-dark .fscc-desc,html[data-theme="dark"] .fscc-desc{color:#b7b9d0}
/* WO-NETDOORS 0810 (MIRROR of the network fix) — the accent ink had NO dark variant:
   #5b57ef (the LIGHT accent) sat on the dark card at a measured 2.91:1, under the 4.5:1
   minimum for body text. The dark periwinkle #8d8aff measures 5.18:1 on #242536. */
html.fs-dark .fscc-policy,html[data-theme="dark"] .fscc-policy{color:var(--fsc-violet,#514dfa)}
html.fs-dark .fscc-btn-ghost,html[data-theme="dark"] .fscc-btn-ghost{color:var(--fsc-violet,#514dfa)}
html.fs-dark .fscc-btn-ghost:hover,html[data-theme="dark"] .fscc-btn-ghost:hover{background:rgba(141,138,255,.12)}
html.fs-dark .fscc-btn-primary,html[data-theme="dark"] .fscc-btn-primary{background:#33344a;color:#ececf4}
html.fs-dark .fscc-btn-primary:hover,html[data-theme="dark"] .fscc-btn-primary:hover{background:#3d3e57}
html.fs-dark .fscc-save,html[data-theme="dark"] .fscc-save{background:#5b57ef;color:#fff}
html.fs-dark .fscc-save:hover,html[data-theme="dark"] .fscc-save:hover{background:#6d69f2}
html.fs-dark .fscc-options,html[data-theme="dark"] .fscc-options{border-top-color:#2f3045}
html.fs-dark .fscc-row,html[data-theme="dark"] .fscc-row{border-bottom-color:#2b2c40}
html.fs-dark .fscc-rowlabel,html[data-theme="dark"] .fscc-rowlabel{color:#ececf4}
html.fs-dark .fscc-rowsub,html[data-theme="dark"] .fscc-rowsub{color:#9a9cb4}
html.fs-dark .fscc-track,html[data-theme="dark"] .fscc-track{background:#41425a}
html.fs-dark .fscc-reopen,html[data-theme="dark"] .fscc-reopen{background:#242536;color:#8b88f5;border-color:#34354c;
  box-shadow:0 10px 28px -8px rgba(0,0,0,.6)}
/* ---- dark: system preference, unless host explicitly forced light ---- */
@media (prefers-color-scheme:dark){
  html:not(.fs-light):not([data-theme="light"]) .fscc-card{background:#242536;color:#ececf4;border-color:#34354c;
    box-shadow:0 20px 52px -12px rgba(0,0,0,.6),0 2px 8px rgba(0,0,0,.35)}
  html:not(.fs-light):not([data-theme="light"]) .fscc-desc{color:#b7b9d0}
  html:not(.fs-light):not([data-theme="light"]) .fscc-btn-primary{background:#33344a;color:#ececf4}
  html:not(.fs-light):not([data-theme="light"]) .fscc-btn-primary:hover{background:#3d3e57}
  html:not(.fs-light):not([data-theme="light"]) .fscc-options{border-top-color:#2f3045}
  html:not(.fs-light):not([data-theme="light"]) .fscc-row{border-bottom-color:#2b2c40}
  html:not(.fs-light):not([data-theme="light"]) .fscc-rowlabel{color:#ececf4}
  html:not(.fs-light):not([data-theme="light"]) .fscc-rowsub{color:#9a9cb4}
  html:not(.fs-light):not([data-theme="light"]) .fscc-track{background:#41425a}
  html:not(.fs-light):not([data-theme="light"]) .fscc-reopen{background:#242536;color:#8b88f5;border-color:#34354c}
}
@media (max-width:420px){.fscc-card{left:12px;right:12px;bottom:12px;width:auto}.fscc-reopen{left:12px;bottom:12px}}

/* ===== WO-COOKIEFIX-0827 — consent must NEVER cover navigation. PLACEMENT ONLY. =====
   The copy, the buttons, the cookie writes and every line of the script are untouched. The
   only properties this block sets are inset, width, margin and z-index.

   MEASURED on fsmc-s2, 2026-08-27, both themes, 360 -> 1440 (harness/geometry.js):
     .sidebar-left    x 0..56    (<=820)          x 1..65    (>=821)
     .sidebar-right   x 65..293  fixed  z=60      (821-1099, opens on hover)
                      x 65..293  static           (>=1100, ships open)
     .page-wrapper    starts at x=298 on desktop  -> 309 clears the whole nav column
     .mvn-fab         72px at right:22px z=120,   display:none !important below 821px
     header.fslh z=1100 · .mvn-panel z=1150 · .fsmr-bk z=49 · .fsmr-restore z=75 · .mc-railx z=35

   BEFORE this block .fscc-card sat at left:20px/bottom:20px with z-index 2147483000 and took
   the hit test away from 5 rail icons at EVERY width, 7 at desktop, and 9 (incl. four flyout
   rows) with the sub-menu open — in both themes. Found by WO-NAVRAIL-0827.

   Everything here is scoped to body[data-mc-rail] — the shell's own marker. Pages without the
   Mission Control chrome (fs_auth_page(), the sign-in surfaces) match nothing and are
   byte-identical in behaviour and in appearance. */

body[data-mc-rail]{
  --fscc-gutter:68px;   /* left inset: clears the 56px phone rail + a 12px gap */
  --fscc-fab:12px;      /* right inset: no Maven launcher below 821px */
}
@media (min-width:821px){
  /* 293 = right edge of the rail flyout, + 16 gap. 110 = 72 FAB + 22 inset + 16 gap. */
  body[data-mc-rail]{--fscc-gutter:309px;--fscc-fab:110px}
}
/* The app's web view hides the whole rail (WO-APPCHROME-0818, style#mc-appchrome), so there
   is no nav to clear there and nothing should be reserved. A browser without :has() simply
   drops this one rule and keeps the (merely narrower) default — it never re-creates overlap. */
html:has(#mc-appchrome) body[data-mc-rail]{--fscc-gutter:12px;--fscc-fab:12px}

/* Bottom-CENTRE of the content band: clear of the rail + flyout gutter on one side and of the
   Maven launcher on the other, at every width. `html body[data-mc-rail]` (0,2,2) is required
   to outrank the shell's own `html[dir="rtl"] .fscc-card` (0,2,1); logical insets then keep
   RTL mirrored for free, so the RTL estate gets the same clearance without a shell edit. */
html body[data-mc-rail] .fscc-card{
  inset-inline-start:var(--fscc-gutter);inset-inline-end:var(--fscc-fab);
  width:auto;max-width:340px;margin-inline:auto}
html body[data-mc-rail] .fscc-reopen{
  inset-inline-start:var(--fscc-gutter);inset-inline-end:auto}

/* The phone off-canvas drawer (body.mc-mobnav) and the phone sub-menu (body.fsmr-open) are
   fixed overlays that land inside that band and cannot be cleared geometrically on a 360px
   screen. While one of them is open the consent UI stands down, and it is back the instant the
   member closes it. Presentation only: nothing is dismissed, nothing is written, no choice is
   recorded or assumed. */
body.fsmr-open .fscc-card,body.mc-mobnav .fscc-card,
body.fsmr-open .fscc-reopen,body.mc-mobnav .fscc-reopen{display:none !important}

/* Consent leaves the top of the z axis. It still paints above ALL page content, but now below
   the fixed top bar (1100) and the Maven panel (1150), and it can no longer out-stack any nav
   layer. Geometry is the real fix; this is the second lock. */
.fscc-card{z-index:1090}
.fscc-reopen{z-index:1080}
/* ===== end WO-COOKIEFIX-0827 ===== */
