/* ============================================================================
   PLUGG LIFE — FLIGHT MODE
   1) #flightvid  — the activation cinematic (globe + flight arcs + agent pass)
   2) .fm-hud     — the running countdown pill (top of the device)
   3) .fm-panel   — the live flight status sheet (earnings · orders · add time)
   Theme mirrors the maps + the Settlement Channel: void substrate, violet mesh,
   IBM Plex Mono telemetry, gold authority accents.
   ========================================================================== */

/* ===================================================== 1 · ACTIVATION VIDEO = */
#flightvid{ position:absolute; inset:0; z-index:300; overflow:hidden; background:#06060c;
  opacity:0; transition:opacity .45s ease; }
#flightvid.show{ opacity:1; }
#flightvid.done{ opacity:0; transition:opacity .5s ease; }
#fv-canvas{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.fv-scan{ position:absolute; inset:0; pointer-events:none; opacity:0.5; mix-blend-mode:overlay;
  background:repeating-linear-gradient(to bottom,
    rgba(255,255,255,0.05) 0px, rgba(255,255,255,0.05) 1px, transparent 2px, transparent 3px); }
.fv-vig{ position:absolute; inset:0; pointer-events:none;
  box-shadow:inset 0 0 180px 36px rgba(0,0,0,0.6);
  background:linear-gradient(180deg, rgba(6,6,12,0.55), transparent 16%, transparent 78%, rgba(6,6,12,0.65)); }

/* top HUD line of the clip */
.fv-top{ position:absolute; top:18px; left:18px; right:18px; z-index:4; display:flex;
  align-items:center; justify-content:space-between; pointer-events:none;
  font-family:var(--font-mono); font-size:9.5px; letter-spacing:0.14em; text-transform:uppercase; }
.fv-top .l{ display:flex; align-items:center; gap:8px; color:var(--ink); }
.fv-top .l b{ width:9px; height:9px; background:var(--gold); display:inline-block; }
.fv-top .r{ display:flex; align-items:center; gap:7px; color:var(--ink-3); }
.fv-top .r i{ width:6px; height:6px; border-radius:99px; background:var(--state-clear);
  box-shadow:0 0 8px var(--state-clear); animation:fvblink 1.3s infinite; }
@keyframes fvblink{ 0%,100%{opacity:1} 50%{opacity:.25} }

/* terminal feed — typed line by line */
.fv-term{ position:absolute; left:18px; right:18px; bottom:204px; height:150px; z-index:4; pointer-events:none;
  overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; gap:3px;
  font-family:var(--font-mono); font-size:11px; line-height:1.5;
  -webkit-mask-image:linear-gradient(180deg, transparent, #000 22%); mask-image:linear-gradient(180deg, transparent, #000 22%); }
.fv-line{ color:var(--violet-ink); opacity:0; transform:translateY(4px);
  transition:opacity .22s ease, transform .22s ease; white-space:nowrap; overflow:hidden; }
.fv-line.in{ opacity:1; transform:none; }
.fv-line .pfx{ color:var(--ink-4); }
.fv-line.ok{ color:var(--state-clear); }
.fv-line.gold{ color:var(--gold-bright); }
.fv-line.warn{ color:var(--state-caution); }
.fv-line .cur{ display:inline-block; width:7px; height:12px; vertical-align:-1px; margin-left:2px;
  background:var(--ultraviolet); animation:fvcur .8s steps(1) infinite; }
@keyframes fvcur{ 0%,100%{opacity:1} 50%{opacity:0} }

/* agent boarding pass */
.fv-pass{ position:absolute; left:18px; right:18px; bottom:34px; z-index:5; pointer-events:none;
  display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:stretch; padding:13px;
  border-radius:14px; background:linear-gradient(180deg, rgba(20,17,30,0.94), rgba(11,10,19,0.96));
  border:1px solid rgba(212,176,98,0.42); box-shadow:0 22px 50px rgba(0,0,0,0.6), inset 0 0 0 1px rgba(212,176,98,0.08);
  opacity:0; transform:translateY(26px) scale(0.97); transition:opacity .5s var(--ease-out), transform .5s var(--ease-out); }
.fv-pass.in{ opacity:1; transform:none; }
.fvp-av{ position:relative; width:74px; align-self:stretch; border-radius:10px; overflow:hidden; flex:none;
  background:#13111d; border:1px solid var(--hairline-2); }
.fvp-av img{ width:100%; height:100%; object-fit:cover; display:block; filter:saturate(1.05) contrast(1.02); }
.fvp-av::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(6,6,12,0.55)); }
.fvp-mid{ min-width:0; display:flex; flex-direction:column; gap:2px; justify-content:center; }
.fvp-elabel{ font-family:var(--font-mono); font-size:8px; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold); }
.fvp-name{ font-family:var(--font-display); font-weight:700; font-size:20px; color:var(--ink); line-height:1.05; letter-spacing:0.01em; }
.fvp-role{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-3); }
.fvp-route{ display:flex; align-items:center; gap:8px; margin-top:6px; }
.fvp-code{ font-family:var(--font-display); font-weight:700; font-size:15px; color:var(--ink); }
.fvp-dash{ flex:1; height:1px; background:repeating-linear-gradient(90deg, var(--gold) 0 4px, transparent 4px 8px); opacity:0.7; position:relative; }
.fvp-dash::after{ content:"\2708"; position:absolute; left:50%; top:50%; transform:translate(-50%,-55%); font-size:11px; color:var(--gold-bright); }
.fvp-meta{ display:flex; gap:14px; margin-top:5px; }
.fvp-meta div{ display:flex; flex-direction:column; }
.fvp-meta .k{ font-family:var(--font-mono); font-size:7.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-4); }
.fvp-meta .v{ font-family:var(--font-mono); font-size:11px; color:var(--violet-ink); font-weight:600; }
.fvp-stub{ width:30px; align-self:stretch; border-left:1px dashed rgba(212,176,98,0.5); padding-left:10px;
  display:flex; flex-direction:column; align-items:center; justify-content:space-between; }
.fvp-bars{ flex:1; width:100%; background:repeating-linear-gradient(0deg, var(--ink) 0 2px, transparent 2px 4px, var(--ink) 4px 5px, transparent 5px 9px);
  opacity:0.7; border-radius:2px; }
.fvp-fno{ font-family:var(--font-mono); font-size:8px; letter-spacing:0.1em; color:var(--gold); writing-mode:vertical-rl; transform:rotate(180deg); margin-top:6px; }

/* ACTIVE stamp */
.fv-stamp{ position:absolute; left:50%; top:46%; transform:translate(-50%,-50%) scale(0.6) rotate(-9deg); z-index:6;
  pointer-events:none; opacity:0; padding:10px 22px; border-radius:8px;
  font-family:var(--font-mono); font-size:18px; font-weight:700; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--state-clear); border:2.5px solid var(--state-clear); text-shadow:0 0 18px rgba(47,224,161,0.6);
  box-shadow:0 0 30px -4px rgba(47,224,161,0.5), inset 0 0 18px rgba(47,224,161,0.12); }
.fv-stamp.in{ opacity:1; transform:translate(-50%,-50%) scale(1) rotate(-9deg);
  transition:opacity .3s ease, transform .45s cubic-bezier(.2,1.5,.4,1); }

.fv-skip{ position:absolute; bottom:34px; right:18px; z-index:7; pointer-events:auto;
  padding:9px 16px; border-radius:99px; cursor:pointer; font-family:var(--font-mono);
  font-size:11px; letter-spacing:0.12em; font-weight:600; color:rgba(236,234,246,0.85);
  background:rgba(11,10,19,0.78); border:1px solid rgba(176,148,255,0.28); backdrop-filter:blur(4px);
  opacity:0; transition:opacity .3s ease; }
.fv-skip.show{ opacity:1; }
.fv-skip:active{ color:#fff; background:rgba(11,10,19,0.95); border-color:rgba(212,176,98,0.5); }

/* ============================================================ 2 · HUD PILL = */
.fm-hud{ position:absolute; top:38px; left:50%; transform:translate(-50%,-8px); z-index:168;
  display:inline-flex; align-items:center; gap:10px; padding:7px 8px 7px 13px; cursor:pointer;
  border-radius:var(--r-pill); border:1px solid rgba(168,85,247,0.5);
  background:linear-gradient(180deg, rgba(38,24,58,0.92), rgba(16,14,25,0.94)); backdrop-filter:blur(14px);
  box-shadow:0 12px 30px rgba(0,0,0,0.5), 0 0 22px -8px var(--violet-bright);
  opacity:0; pointer-events:none; transition:opacity .35s var(--ease-out), transform .35s var(--ease-out); }
.fm-hud.show{ opacity:1; transform:translate(-50%,0); pointer-events:auto; }
.fm-hud:active{ transform:translate(-50%,0) scale(0.97); }
.fm-hud-ic{ display:grid; place-items:center; width:22px; height:22px; border-radius:7px; flex:none;
  color:#E4CBFF; font-size:13px; background:rgba(168,85,247,0.2); border:1px solid rgba(168,85,247,0.4); }
.fm-hud-ic.spin{ animation:fmspin 3.4s linear infinite; }
@keyframes fmspin{ to{ transform:rotate(360deg); } }
.fm-hud-tx{ display:flex; flex-direction:column; line-height:1; gap:2px; }
.fm-hud-k{ font-family:var(--font-mono); font-size:7.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ultraviolet); }
.fm-hud-t{ font-family:var(--font-mono); font-weight:600; font-size:14px; color:var(--ink); font-variant-numeric:tabular-nums; letter-spacing:0.02em; }
.fm-hud-chev{ width:24px; height:24px; flex:none; display:grid; place-items:center; border-radius:50%;
  background:rgba(176,148,255,0.12); color:var(--violet-ink); font-size:11px; }
.fm-hud.done{ border-color:rgba(47,224,161,0.6); box-shadow:0 12px 30px rgba(0,0,0,0.5), 0 0 22px -6px var(--state-clear); }
.fm-hud.done .fm-hud-ic{ color:#0c1a12; background:var(--state-clear); border-color:var(--state-clear); }
.fm-hud.done .fm-hud-k{ color:var(--state-clear); }

/* ===================================================== 3 · STATUS PANEL ==== */
.fm-panel-scrim{ position:absolute; inset:0; z-index:184; background:rgba(4,3,9,0.6); backdrop-filter:blur(2px);
  opacity:0; pointer-events:none; transition:opacity .3s ease; }
.fm-panel-scrim.show{ opacity:1; pointer-events:auto; }
.fm-panel{ position:absolute; left:0; right:0; bottom:0; z-index:185; max-height:90%;
  display:flex; flex-direction:column; transform:translateY(101%); transition:transform .42s var(--ease-out);
  background:linear-gradient(180deg, #15121f, #0c0b14); border-top:1px solid var(--hairline-3);
  border-radius:22px 22px 0 0; box-shadow:0 -24px 60px rgba(0,0,0,0.6); }
.fm-panel.show{ transform:translateY(0); }
.fm-panel-grip{ display:flex; justify-content:center; padding:9px 0 3px; flex:none; }
.fm-panel-grip span{ width:38px; height:4px; border-radius:99px; background:var(--hairline-3); }

.fm-phead{ display:grid; grid-template-columns:auto 1fr auto; gap:13px; align-items:center; padding:8px 18px 14px; flex:none;
  border-bottom:1px solid var(--hairline); }
.fm-pav{ position:relative; width:52px; height:52px; border-radius:13px; overflow:hidden; flex:none;
  border:1px solid rgba(168,85,247,0.4); background:#13111d; }
.fm-pav img{ width:100%; height:100%; object-fit:cover; }
.fm-pid{ min-width:0; }
.fm-pelabel{ font-family:var(--font-mono); font-size:8px; letter-spacing:0.16em; text-transform:uppercase; color:var(--violet-bright); }
.fm-pname{ font-family:var(--font-display); font-weight:700; font-size:18px; color:var(--ink); line-height:1.1; }
.fm-prole{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:0.04em; color:var(--ink-3); text-transform:uppercase; }
.fm-pclose{ width:32px; height:32px; flex:none; border-radius:50%; cursor:pointer; border:1px solid var(--hairline-2);
  background:rgba(16,14,25,0.6); color:var(--ink-2); font-size:14px; display:grid; place-items:center; }
.fm-pclose:active{ color:var(--ink); background:var(--panel-3); }

.fm-pbody{ flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:16px 18px 22px;
  display:flex; flex-direction:column; gap:16px; }

/* big timer block */
.fm-timer{ display:flex; flex-direction:column; align-items:center; gap:6px; padding:16px 12px;
  border-radius:var(--r-lg); background:rgba(8,7,14,0.55); border:1px solid var(--hairline-2);
  background-image:radial-gradient(120% 90% at 50% -20%, rgba(168,85,247,0.16), transparent 60%); }
.fm-timer .lab{ font-family:var(--font-mono); font-size:8.5px; letter-spacing:0.2em; text-transform:uppercase; color:var(--ultraviolet); }
.fm-timer .big{ font-family:var(--font-display); font-weight:700; font-size:46px; letter-spacing:0.02em;
  color:var(--ink); font-variant-numeric:tabular-nums; line-height:1; text-shadow:0 0 24px rgba(168,85,247,0.4); }
.fm-timer.done .big{ color:var(--state-clear); text-shadow:0 0 24px rgba(47,224,161,0.45); }
.fm-timer .sub{ font-family:var(--font-mono); font-size:10px; color:var(--ink-3); letter-spacing:0.04em; }

/* stat trio */
.fm-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.fm-stat{ display:flex; flex-direction:column; gap:3px; padding:12px 10px; border-radius:var(--r-md);
  background:rgba(16,14,25,0.55); border:1px solid var(--hairline-2); text-align:center; }
.fm-stat .v{ font-family:var(--font-display); font-weight:700; font-size:20px; color:var(--ink); font-variant-numeric:tabular-nums; }
.fm-stat .v.earn{ color:var(--state-clear); }
.fm-stat .k{ font-family:var(--font-mono); font-size:8px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-4); }

/* power burn bar */
.fm-power{ display:flex; flex-direction:column; gap:8px; padding:13px; border-radius:var(--r-md);
  background:rgba(16,14,25,0.55); border:1px solid var(--hairline-2); }
.fm-power-top{ display:flex; align-items:center; justify-content:space-between; }
.fm-power-k{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-3); display:flex; align-items:center; gap:6px; }
.fm-power-v{ font-family:var(--font-mono); font-weight:600; font-size:13px; color:#E4CBFF; font-variant-numeric:tabular-nums; }
.fm-power-track{ height:7px; border-radius:99px; background:rgba(176,148,255,0.12); overflow:hidden; }
.fm-power-fill{ height:100%; border-radius:99px; background:linear-gradient(90deg, var(--violet), var(--ultraviolet));
  box-shadow:0 0 12px -2px var(--violet-bright); transition:width .5s linear; }
.fm-power-note{ font-family:var(--font-mono); font-size:8.5px; letter-spacing:0.04em; color:var(--ink-4); }

/* orders list */
.fm-sect-h{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:9px; }
.fm-sect-h .t{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-3); }
.fm-sect-h .n{ font-family:var(--font-mono); font-size:9.5px; color:var(--violet-ink); }
.fm-orders{ display:flex; flex-direction:column; gap:7px; }
.fm-order{ display:grid; grid-template-columns:auto 1fr auto; gap:11px; align-items:center; padding:10px 11px;
  border-radius:var(--r-md); background:rgba(16,14,25,0.5); border:1px solid color-mix(in oklab, var(--oc,#A855F7) 20%, var(--hairline-2)); }
.fm-order.fresh{ animation:fmfresh .6s var(--ease-out); }
@keyframes fmfresh{ 0%{ opacity:0; transform:translateY(-7px); border-color:var(--oc,#A855F7); } 100%{ opacity:1; transform:none; } }
.fm-o-dot{ width:9px; height:9px; border-radius:3px; flex:none; background:var(--oc,#A855F7); box-shadow:0 0 9px -1px var(--oc,#A855F7); }
.fm-o-id{ min-width:0; }
.fm-o-nm{ font-size:12.5px; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fm-o-mut{ font-family:var(--font-mono); font-size:9px; color:var(--ink-4); letter-spacing:0.02em; }
.fm-o-val{ font-family:var(--font-mono); font-size:12.5px; font-weight:600; color:var(--state-clear); font-variant-numeric:tabular-nums; }
.fm-empty{ font-family:var(--font-mono); font-size:10.5px; color:var(--ink-4); text-align:center; padding:18px 0; letter-spacing:0.04em; }

/* add-time + end */
.fm-addrow{ display:flex; flex-direction:column; gap:8px; }
.fm-addtime{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.fm-add{ display:flex; align-items:center; justify-content:space-between; gap:6px; padding:12px 13px; cursor:pointer;
  border-radius:var(--r-md); background:rgba(16,14,25,0.55); border:1px solid var(--hairline-2);
  font-family:var(--font-mono); transition:all var(--dur-fast); text-align:left; }
.fm-add:active{ transform:scale(0.98); border-color:rgba(168,85,247,0.5); background:color-mix(in oklab, #A855F7 12%, transparent); }
.fm-add[disabled]{ opacity:0.4; cursor:not-allowed; }
.fm-add .al{ font-size:13px; color:var(--ink); letter-spacing:0.02em; }
.fm-add .ap{ font-size:11px; color:#E4CBFF; }
.fm-end{ width:100%; padding:14px; cursor:pointer; border-radius:var(--r-md); margin-top:2px;
  font-family:var(--font-mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; font-weight:600;
  color:var(--ink-2); border:1px solid var(--hairline-2); background:rgba(16,14,25,0.5); transition:all var(--dur-fast); }
.fm-end:active{ color:var(--ink); background:var(--panel-3); }
.fm-end.collect{ color:#0c1a12; border-color:var(--state-clear); background:linear-gradient(180deg, #3DF0A1, #2FE0A1);
  box-shadow:0 0 20px -6px var(--state-clear); }

/* ============================================ 4 · LOCKED WHILE FLYING ====== */
/* During an active flight, the agent owns order-taking: lock the manual
   create-order entry points, the Spain fly-home control, and the War Room
   "Make a sale" task so they can't conflict with the autopilot run. */
body.fm-flying [data-create-order],
body.fm-flying .sp-zb.fly,
body.fm-flying [data-fix="sale"],
body.fm-flying [data-task="sale"]{
  opacity:0.38 !important; pointer-events:none !important; cursor:not-allowed !important;
  filter:grayscale(0.35) !important; }
