/* Call surface only. The bar sits above everything and never moves the desk. */
.fc{position:fixed;left:0;right:0;bottom:0;z-index:9999;display:flex;align-items:center;
    gap:14px;flex-wrap:wrap;padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    background:rgba(4,10,18,.92);backdrop-filter:blur(10px);
    border-top:1px solid rgba(120,200,235,.28);
    font:12px/1.2 ui-monospace,Menlo,monospace;letter-spacing:.06em;color:#bcd6e8}
.fc__grp{display:flex;align-items:center;gap:10px;flex:1 1 260px;min-width:0}
.fc__lbl{opacity:.65;white-space:nowrap}
.fc__sel{flex:1 1 120px;min-width:0;background:#0b1622;color:#dceaf6;
    border:1px solid rgba(120,200,235,.30);border-radius:8px;padding:7px 8px;
    font:12px ui-monospace,Menlo,monospace}
.fc__meter{flex:0 0 130px;height:10px;border-radius:6px;background:#0b1622;
    border:1px solid rgba(120,200,235,.30);overflow:hidden}
.fc__fill{display:block;height:100%;width:0;background:linear-gradient(90deg,#39d6c0,#7ee8ff);
    transition:width .06s linear}
.fc__btn{flex:0 0 auto;border:0;border-radius:10px;padding:11px 16px;cursor:pointer;
    font:600 12px/1 ui-monospace,Menlo,monospace;letter-spacing:.08em}
.fc__btn.is-muted{background:#2a3644;color:#cfe0ee}
.fc__btn.is-live{background:#39d6c0;color:#06231f}
.fc__note{flex:1 1 100%;opacity:.7;font-size:11px;min-height:13px}
@media (max-width:520px){.fc__meter{flex:0 0 80px}}

/* a dropped line must not look like ordinary silence */
.fc--dropped{border-top-color:#ff6b5a;box-shadow:0 -1px 0 #ff6b5a}
.fc--dropped .fc__note{color:#ff9d90;font-weight:600}

/* ── LIVENESS, per POSTMORTEM-20260925-001 §5 ─────────────────────────────
   Today's session died silently on a phone and nobody could tell. The pip
   beats only while the socket is open. Still and red means gone. */
.fc__pip{flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:#ff6b5a;
    box-shadow:0 0 0 0 rgba(255,107,90,.55)}
.fc--live .fc__pip{background:#39d6c0;animation:fc-beat 1.6s ease-out infinite}
@keyframes fc-beat{
  0%  {box-shadow:0 0 0 0 rgba(57,214,192,.55); transform:scale(1)}
  60% {box-shadow:0 0 0 7px rgba(57,214,192,0); transform:scale(1.18)}
  100%{box-shadow:0 0 0 0 rgba(57,214,192,0);   transform:scale(1)}
}
@media (prefers-reduced-motion:reduce){
  .fc--live .fc__pip{animation:none;background:#39d6c0}
}
.fc--dropped .fc__pip{background:#ff6b5a;animation:none}

/* [ORION 2026-10-08] @DEE: the fixed bottom bar is gone. What survives is the
   level meter, sitting directly under the tap bar so the thing that answers
   "is she hearing me" is beside the control that decides it.

   The stage is `container-type:size` and every child of it is absolutely
   placed in cqh/cqw, so a static element lands at the top of the stage instead
   of under anything. This is placed the same way the tap bar is placed, and
   derived FROM it: .tap is top:82cqh height:6.4cqh, .dash starts around
   90.2cqh, so the meter lives in the band between them. One named gap rather
   than a number inlined twice. */
:root{ --fc-gap: 6px; }
/* Position is PINNED TO THE TAP BAR IN JS, not written here: .tap is placed at
   82cqh on desktop and 34.4cqh under @media(max-width:767px) so it sits on the
   orb, and a hardcoded offset can only ever be correct at one breakpoint.
   floor.js derives top/left/width from the tap bar's measured box and re-pins
   on resize. These are only the fallbacks for the instant before that runs. */
.fc{position:absolute;
    top:0;left:7cqw;right:auto;bottom:auto;z-index:3;visibility:hidden;
    display:flex;justify-content:center;align-items:center;gap:2cqw;
    margin:0;padding:0;width:auto;
    background:none;border:0;box-shadow:none;pointer-events:none}
.fc__grp{flex:0 1 auto;justify-content:center;align-items:center;gap:2cqw;min-width:0}
.fc__lbl,.fc__sel,.fc__btn{display:none !important}
.fc__meter{flex:0 0 26cqw;height:5px;border-radius:3px;background:rgba(11,22,34,.72)}
.fc__fill{border-radius:3px}
/* a drop message must stay readable even though it now sits over the dash */
.fc__note{position:absolute;top:calc(100% + var(--fc-gap));left:0;right:0;
          flex:0 0 auto;text-align:center;margin:0;font-size:10px;
          text-shadow:0 1px 3px #000,0 0 8px #000}
.fc--dropped{border-top:0;box-shadow:none}
