/* ============================================================
   ORION · THE CONN — real prototype front-end (flag-gated)
   Namespaced under #conn-ui. Built/populated by conn-ui.js from window.M.
   Theme: #conn-ui (cockpit) / #conn-ui.day (daylight, follows system).
   ============================================================ */
#conn-ui, #conn-nav, #conn-set, #conn-thesis, #conn-pos, #conn-acct{
  --void:#07090e; --space:#0b0e15; --panel:#0e121b; --line:#1c2230; --line2:#262d3c;
  --ink:#f4f6f8; --mut:#7a8698; --dim:#566175;
  --red:#e31937; --redg:#ff4259; --up:#16b981; --dn:#e31937; --star:#dfe8f2;
  --disp:'Space Grotesk',sans-serif; --mono:'JetBrains Mono',monospace;
}
#conn-ui.day, #conn-nav.day, #conn-set.day, #conn-thesis.day, #conn-pos.day, #conn-acct.day{ --void:#ffffff; --space:#f5f6f8; --panel:#f7f8fa; --ink:#0a0a0b; --mut:#6b7480; --dim:#9aa3b0; --line:#e6e8ec; --line2:#d7dbe2; --star:#2d3c49; }
/* Suppress the native focus ring for touch/pointer focus (which lingered as a ghost box
   over the tab bar after a form closed). Keyboard focus keeps its ring via :focus-visible. */
#conn-ui :focus:not(:focus-visible), #conn-nav :focus:not(:focus-visible), #conn-set :focus:not(:focus-visible), #conn-thesis :focus:not(:focus-visible), #conn-pos :focus:not(:focus-visible), #conn-acct :focus:not(:focus-visible){ outline:none; }
/* On TOUCH devices the :focus-visible heuristic is unreliable — WebKit/iOS often matches it
   after a plain tap on a <button> (.cc-approve/.qa/.bs/.thtab/.send/nav close…), so the rule
   above spared the ring and it lingered as a transient frame all over the app. On a coarse
   pointer NO focus outline is ever wanted (the caret is the only editing affordance), so kill
   it outright — not gated by :focus-visible. Keyboard/desktop (fine pointer) keep the ring. */
@media (pointer: coarse) {
  #conn-ui :focus, #conn-nav :focus, #conn-set :focus, #conn-thesis :focus, #conn-pos :focus,
  #conn-ui :focus-visible, #conn-nav :focus-visible, #conn-set :focus-visible, #conn-thesis :focus-visible, #conn-pos :focus-visible { outline: none !important; }
}

#conn-ui{position:fixed;inset:0;z-index:9000;background:var(--void);color:var(--ink);
  font-family:var(--disp);overflow-y:auto;-webkit-overflow-scrolling:touch;
  -webkit-font-smoothing:antialiased;}
#conn-ui *{margin:0;padding:0;box-sizing:border-box;}
#conn-ui .shell{max-width:520px;margin:0 auto;min-height:100%;position:relative;padding-bottom:88px;}
/* HELM: fill the viewport region so the "on course" review card settles just above
   the tab bar (breathing room lands under the constellation, not as a dead gap). */
#conn-ui .helm{display:flex;flex-direction:column;min-height:calc(100dvh - var(--conn-top-h,58px) - 88px);}
#conn-ui .helm .dec{margin-top:auto;}

/* top star button (opens Navigator) */
#conn-ui .topbtns{display:flex;align-items:center;gap:12px;}
#conn-ui .starbtn{width:34px;height:34px;border-radius:50%;border:1px solid var(--red);display:flex;align-items:center;justify-content:center;color:var(--red);font-size:16px;cursor:pointer;box-shadow:0 0 14px rgba(227,25,55,.3);}

/* Navigator peek bar */
#conn-ui .peekbar{position:fixed;bottom:74px;left:0;right:0;max-width:520px;margin:0 auto;border-top:1px solid var(--line);background:var(--void);display:flex;align-items:center;gap:12px;padding:14px 22px;cursor:pointer;z-index:9001;}
#conn-ui .peekbar .s{color:var(--red);font-size:15px;}
#conn-ui .peekbar .t{font-family:var(--mono);font-size:12px;letter-spacing:1px;color:var(--mut);}
#conn-ui .peekbar .up{margin-left:auto;color:var(--mut);}

/* ===== Navigator drawer (#conn-nav) ===== */
/* Navigator = bottom drawer over the app (app stays full-screen behind).
   dvh excludes the iOS toolbar so the input bar isn't clipped. */
#conn-nav{position:fixed;left:0;right:0;top:0;height:100dvh;z-index:9700;font-family:var(--disp);}
#conn-nav .scrim{position:absolute;inset:0;background:rgba(5,7,12,.5);}
#conn-nav.day .scrim{background:rgba(20,28,40,.32);}
#conn-nav .sheet{position:absolute;left:0;right:0;bottom:0;max-width:520px;margin:0 auto;height:90dvh;background:var(--space);border-top:1px solid var(--line2);border-radius:20px 20px 0 0;display:flex;flex-direction:column;box-shadow:0 -20px 60px rgba(0,0,0,.45);transform:translateY(100%);transition:height .26s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1);}
#conn-nav.in .sheet{transform:translateY(0);}
#conn-nav.full .sheet{height:96dvh;}
#conn-nav.day .sheet{background:#fff;box-shadow:0 -16px 50px rgba(20,30,45,.18);}
#conn-nav .grab{width:38px;height:4px;border-radius:2px;background:var(--line2);margin:10px auto 2px;flex:0 0 auto;cursor:grab;}
#conn-nav .chead{display:flex;align-items:center;gap:12px;padding:12px 22px 12px;flex:0 0 auto;border-bottom:1px solid var(--line);}
#conn-nav .av{width:30px;height:30px;border:1px solid var(--line2);display:flex;align-items:center;justify-content:center;color:var(--red);font-size:16px;flex:0 0 auto;}
#conn-nav .chead .t{font-family:var(--disp);font-weight:700;font-size:15px;letter-spacing:1px;}
#conn-nav .chead .s{font-family:var(--mono);font-size:9px;letter-spacing:2px;color:var(--mut);margin-top:2px;}
#conn-nav .seg2{margin-left:auto;display:flex;border:1px solid var(--line2);}
#conn-nav .seg2 b{font-family:var(--mono);font-size:9px;letter-spacing:1px;padding:7px 11px;color:var(--mut);cursor:pointer;}
#conn-nav .seg2 b.on{background:var(--ink);color:var(--void);}
#conn-nav .x{margin-left:12px;color:var(--mut);font-size:18px;cursor:pointer;background:none;border:none;flex:0 0 auto;}
#conn-nav .msgs{flex:1;overflow-y:auto;padding:10px 22px 6px;-webkit-overflow-scrolling:touch;}
#conn-nav .m{margin:12px 0;font-size:14.5px;line-height:1.52;max-width:88%;}
#conn-nav .m.u{margin-left:auto;width:fit-content;color:var(--ink);background:var(--panel);border:1px solid var(--line);padding:10px 14px;border-radius:14px 14px 4px 14px;}
#conn-nav .m.a .who{font-family:var(--mono);font-size:9px;letter-spacing:2px;color:var(--red);margin-bottom:5px;display:flex;align-items:center;gap:6px;}
#conn-nav .m.a .tx{color:var(--ink);}
#conn-nav .m.a .tx .txt{white-space:pre-wrap;}
#conn-nav .m.a .tx .work:not(:empty){display:block;margin-top:9px;}
/* thinking state — pulsing star + live step (Option 1): the ✦ twinkles and the
   mono label shows the real streamed backend step */
#conn-nav .think{display:flex;align-items:center;gap:12px;color:var(--ink);}
#conn-nav .think .star{color:var(--red);font-size:18px;line-height:1;display:inline-block;animation:cstar 1.1s ease-in-out infinite;}
@keyframes cstar{0%,100%{opacity:.35;transform:scale(.8) rotate(0deg);}50%{opacity:1;transform:scale(1.18) rotate(45deg);}}
#conn-nav .think .lab{font-family:var(--mono);font-size:13px;letter-spacing:.5px;color:var(--mut);transition:opacity .18s;}
/* reasoning trace — the actual steps accumulate (live list while thinking, then a
   tap-to-expand summary above the answer) instead of one overwriting status line */
#conn-nav .tstep{display:flex;align-items:flex-start;gap:9px;font-family:var(--mono);font-size:12px;letter-spacing:.3px;line-height:1.45;padding:2px 0;}
#conn-nav .tstep .star{flex:0 0 auto;font-size:13px;line-height:1.3;}
#conn-nav .tstep .lab{color:var(--mut);}
#conn-nav .tstep.done .star{color:var(--dim);opacity:.7;}
#conn-nav .tstep.done .lab{color:var(--dim);}
#conn-nav .tstep.live .star{color:var(--red);display:inline-block;animation:cstar 1.1s ease-in-out infinite;}
#conn-nav .tstep.live .lab{color:var(--ink);}
#conn-nav .m.a .tx .trace{margin-bottom:9px;border-left:1px solid var(--line2);padding-left:11px;}
#conn-nav .trace .thead{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;color:var(--dim);cursor:pointer;display:flex;align-items:center;gap:7px;text-transform:uppercase;}
#conn-nav .trace .thead .caret{transition:transform .18s;display:inline-block;}
#conn-nav .trace.collapsed .thead .caret{transform:rotate(-90deg);}
#conn-nav .trace.collapsed .tbody{display:none;}
#conn-nav .trace .tbody{margin-top:6px;}
#conn-nav .chips{display:flex;gap:8px;padding:6px 22px 2px;flex-wrap:wrap;flex:0 0 auto;}
#conn-nav .chips b{font-family:var(--mono);font-size:10.5px;border:1px solid var(--line2);padding:7px 12px;border-radius:100px;color:var(--mut);cursor:pointer;}
#conn-nav .inbar{display:flex;align-items:center;gap:12px;padding:12px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);flex:0 0 auto;}
#conn-nav .inbar input{flex:1;background:transparent;border:none;outline:none;font-family:var(--disp);font-size:15px;color:var(--ink);}
#conn-nav .inbar input::placeholder{color:var(--mut);}
#conn-nav .inbar .send{width:36px;height:36px;border-radius:50%;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;flex:0 0 auto;}
/* LOG mode — comms log instead of prose bubbles */
#conn-nav.logmode .m{font-family:var(--mono);font-size:12px;line-height:1.5;max-width:100%;margin:9px 0;}
#conn-nav.logmode .m.u{margin-left:0;width:auto;background:none;border:none;padding:0;border-radius:0;color:var(--mut);}
#conn-nav.logmode .m.u:before{content:'› YOU   ';color:var(--dim);letter-spacing:1px;}
#conn-nav.logmode .m.a .who{display:none;}
#conn-nav.logmode .m.a .tx{white-space:pre-wrap;}
#conn-nav.logmode .m.a .tx:before{content:'✦ ORION   ';color:var(--red);letter-spacing:1px;}

/* top gear button */
#conn-ui .gear{width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:var(--mut);cursor:pointer;}

/* ===== Settings sheet (#conn-set) ===== */
#conn-set{position:fixed;inset:0;z-index:9700;font-family:var(--disp);}
#conn-set .scrim{position:absolute;inset:0;background:rgba(5,7,12,.6);}
#conn-set.day .scrim{background:rgba(20,28,40,.32);}
#conn-set .sheet{position:absolute;left:0;right:0;bottom:0;max-width:520px;margin:0 auto;background:var(--space);border-top:1px solid var(--line2);border-radius:20px 20px 0 0;box-shadow:0 -20px 60px rgba(0,0,0,.6);padding-bottom:calc(18px + env(safe-area-inset-bottom));transform:translateY(100%);transition:transform .32s cubic-bezier(.22,1,.36,1);}
#conn-set.in .sheet{transform:translateY(0);}
#conn-set.day .sheet{background:#fff;box-shadow:0 -16px 50px rgba(20,30,45,.18);}
/* Account switch sheet reuses the settings-sheet chrome. */
#conn-acct{position:fixed;inset:0;z-index:9750;font-family:var(--disp);}
#conn-acct .scrim{position:absolute;inset:0;background:rgba(5,7,12,.6);}
#conn-acct .sheet{position:absolute;left:0;right:0;bottom:0;max-width:520px;margin:0 auto;background:var(--space);border-top:1px solid var(--line2);border-radius:20px 20px 0 0;box-shadow:0 -20px 60px rgba(0,0,0,.6);padding-bottom:calc(18px + env(safe-area-inset-bottom));transform:translateY(100%);transition:transform .32s cubic-bezier(.22,1,.36,1);}
#conn-acct.in .sheet{transform:translateY(0);}
#conn-acct .grab{width:38px;height:4px;border-radius:2px;background:var(--line2);margin:10px auto 4px;}
#conn-acct .sh{font-family:var(--mono);font-size:10px;letter-spacing:2px;color:var(--mut);text-transform:uppercase;padding:18px 24px 9px;}
#conn-acct .row{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-top:1px solid var(--line);font-family:var(--disp);font-size:15px;color:var(--ink);cursor:pointer;}
#conn-acct .row .a{font-family:var(--mono);font-size:11px;color:var(--mut);letter-spacing:1px;}
#conn-acct .acrow{display:flex;align-items:center;gap:12px;padding:14px 24px;border-top:1px solid var(--line);cursor:pointer;}
#conn-acct .acrow.on{background:rgba(227,25,55,.05);}
#conn-acct .acmeta b{display:block;font-size:15px;color:var(--ink);}
#conn-acct .acsub,#conn-set .acsub{display:block;font-family:var(--mono);font-size:10px;color:var(--mut);letter-spacing:.4px;margin-top:2px;}
#conn-acct .acok{margin-left:auto;color:var(--up);font-size:15px;}
#conn-acct .acdot,.bkhero .acdot{width:8px;height:8px;border-radius:50%;background:var(--mut);flex-shrink:0;}
#conn-acct .acdot.trade{background:var(--up);}
/* Book hero account chip */
.bkhero{position:relative;}
/* Chip shares the "unrealized" line, right-justified — no dedicated row above
   the chart, and it lines up with the P&L label on the left. */
.bkhero .bkdrow{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.bkhero .acctchip{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border:1px solid var(--line2);border-radius:20px;font-family:var(--mono);font-size:11px;letter-spacing:.5px;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;flex-shrink:0;}
.bkhero .acctchip:active{background:rgba(127,127,127,.08);}
.bkhero .acctchip .acflag{font-size:8.5px;letter-spacing:1px;padding:2px 6px;border-radius:10px;}
.bkhero .acctchip .acflag.trade{color:var(--up);background:rgba(22,185,129,.12);}
.bkhero .acctchip .acflag.ro{color:var(--mut);background:rgba(127,127,127,.12);}
.bkhero .acctchip .accv{color:var(--mut);}
/* Settings account rows */
#conn-set .acctrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 24px;border-top:1px solid var(--line);}
#conn-set .acctrow .acmeta b{font-size:14px;color:var(--ink);}
#conn-set .acctacts{display:flex;gap:6px;flex-shrink:0;}
#conn-set .acctacts button{font-family:var(--mono);font-size:9.5px;letter-spacing:.5px;color:var(--mut);background:transparent;border:1px solid var(--line2);border-radius:7px;padding:6px 8px;cursor:pointer;}
#conn-set .acctacts button.danger{color:var(--red);border-color:rgba(227,25,55,.3);}
#conn-set .brokerform{padding:4px 24px 10px;}
#conn-set .brokerform input{width:100%;box-sizing:border-box;font-family:var(--mono);font-size:12px;color:var(--ink);background:transparent;border:1px solid var(--line2);border-radius:8px;padding:11px 12px;margin-bottom:8px;}
#conn-set .brknote{font-family:var(--mono);font-size:9.5px;line-height:1.5;color:var(--mut);margin:2px 0 9px;}
#conn-set .brkgo{display:block;text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:1px;color:#fff;background:var(--red);border-radius:9px;padding:12px;cursor:pointer;}
#conn-set .brkerr{font-family:var(--mono);font-size:10px;color:var(--red);padding:8px 0 0;min-height:12px;}
#conn-set .grab{width:38px;height:4px;border-radius:2px;background:var(--line2);margin:10px auto 4px;}
#conn-set .sh{font-family:var(--mono);font-size:10px;letter-spacing:2px;color:var(--mut);text-transform:uppercase;padding:18px 24px 9px;}
#conn-set .seg{display:flex;border:1px solid var(--line2);margin:0 24px;}
#conn-set .seg b{flex:1;text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:1px;padding:12px 0;color:var(--mut);border-right:1px solid var(--line2);cursor:pointer;}
#conn-set .seg b:last-child{border-right:none;}
#conn-set .seg b.on{background:var(--ink);color:var(--void);}
#conn-set .ladder{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:4px;}
#conn-set .ladder b{font-family:var(--mono);font-size:8.5px;letter-spacing:.5px;text-align:center;padding:14px 2px;color:var(--mut);border-right:1px solid var(--line);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .12s,color .12s;}
#conn-set .ladder b:last-child{border-right:none;}
#conn-set .ladder b.on{color:#fff;background:var(--red);}
#conn-set .ladder b.dis{opacity:.35;pointer-events:none;cursor:default;}
#conn-set .bandnote{font-family:var(--mono);font-size:10px;line-height:1.55;color:var(--mut);padding:11px 24px 4px;}
#conn-set .brokerform{padding:12px 24px 4px;}
#conn-set .brokerform input{width:100%;box-sizing:border-box;font-family:var(--mono);font-size:12px;color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:9px;padding:11px 12px;margin-bottom:8px;outline:none;}
#conn-set .brokerform input:focus{border-color:var(--red);}
#conn-set .brknote{font-family:var(--mono);font-size:10px;line-height:1.55;color:var(--mut);padding:2px 0 10px;}
#conn-set .brkgo{display:block;text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:1px;color:#fff;background:var(--red);border-radius:9px;padding:12px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
#conn-set .brkerr{font-family:var(--mono);font-size:10px;color:var(--red);padding:8px 0 0;min-height:12px;}
#conn-set .row{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-top:1px solid var(--line);font-family:var(--disp);font-size:15px;color:var(--ink);cursor:pointer;}
#conn-set .row .a{font-family:var(--mono);font-size:11px;color:var(--mut);letter-spacing:1px;}
#conn-set .row.danger{color:var(--red);}

/* top bar — pinned (sticky) so it never scrolls away, like legacy Orion */
#conn-ui .top{display:flex;align-items:center;justify-content:space-between;padding:max(14px,env(safe-area-inset-top)) 24px 14px;
  position:sticky;top:0;z-index:50;background:var(--void);border-bottom:1px solid var(--line);}
#conn-ui .wm{font-family:var(--disp);font-weight:700;font-size:19px;letter-spacing:3px;display:flex;align-items:center;}
#conn-ui .wm .o{color:var(--red);} #conn-ui .wm .s{font-size:10px;margin-left:4px;transform:translateY(-7px);}
#conn-ui .ctx{font-family:var(--mono);font-size:10px;letter-spacing:2px;color:var(--mut);text-transform:uppercase;display:flex;align-items:center;gap:7px;cursor:pointer;}
#conn-ui .dot{width:7px;height:7px;border-radius:50%;background:var(--red);box-shadow:0 0 8px var(--red);display:inline-block;}
#conn-ui .up{color:var(--up);} #conn-ui .dn{color:var(--dn);}

/* sky band — always night sky in cockpit; daybreak in day */
#conn-ui .sky{position:relative;background:#07090e;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;}
#conn-ui.day .sky{background:#eaf0f7;}
#conn-ui .sky .cap{position:absolute;left:22px;top:14px;font-family:var(--mono);font-size:9.5px;letter-spacing:2px;color:#566175;z-index:2;}
#conn-ui.day .sky .cap{color:#9aa3b0;}
#conn-ui .ovbar{position:absolute;left:0;right:0;bottom:0;height:62px;border-top:1px solid #1c2230;background:#07090e;display:flex;flex-direction:column;justify-content:center;padding:0 22px;}
#conn-ui.day .ovbar{background:transparent;border-top-color:rgba(40,60,90,.12);}
#conn-ui .ovbar .k{font-family:var(--mono);font-size:9px;letter-spacing:2px;color:#566175;}
#conn-ui .ovbar .h{font-family:var(--disp);font-weight:700;font-size:24px;color:#fff;letter-spacing:-.3px;margin-top:2px;}
#conn-ui.day .ovbar .h{color:#1a2230;} #conn-ui.day .ovbar .k{color:#8a93a0;}
#conn-ui .ovbar .h .r{color:var(--red);}
#conn-ui .lab{position:absolute;font-family:var(--mono);font-size:9px;letter-spacing:.5px;color:#7a8698;z-index:2;}
#conn-ui.day .lab{color:#2d3c49;}
/* star glyph classes */
#conn-ui .st-guide{fill:#e31937;} #conn-ui .st-bright{fill:#ffffff;} #conn-ui .st-mid{fill:#9fb0c4;} #conn-ui .st-dim{fill:#8a99ad;} #conn-ui .st-dust{fill:#222a38;}
#conn-ui.day .st-bright{fill:#1a2230;} #conn-ui.day .st-mid{fill:#5d6c7b;} #conn-ui.day .st-dim{fill:#9aa6b4;} #conn-ui.day .st-dust{fill:rgba(40,70,120,.10);}

/* lead */
#conn-ui .lead{padding:22px 24px 4px;}
#conn-ui .lead .k{font-family:var(--mono);font-size:11px;letter-spacing:3px;color:var(--mut);text-transform:uppercase;}
#conn-ui .lead .h{font-family:var(--disp);font-weight:700;font-size:32px;letter-spacing:-.6px;margin:8px 0 6px;line-height:1.02;}
#conn-ui .lead .h .r{color:var(--red);}
#conn-ui .lead .p{font-family:var(--disp);font-size:15px;color:var(--mut);line-height:1.45;max-width:360px;}

/* digest */
/* Metric tiles are STARS shortcuts — framed cards + corner ↗ say "tappable". */
#conn-ui .dg{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:0 4px;margin-top:20px;}
#conn-ui .dg .c{padding:16px 24px;border:1px solid var(--line);border-radius:13px;position:relative;background:rgba(127,127,127,.03);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .1s;}
#conn-ui .dg .c::after{content:'↗';position:absolute;top:9px;right:11px;font-family:var(--mono);font-size:11px;color:var(--red);opacity:.55;}
#conn-ui .dg .c:active{background:rgba(127,127,127,.1);transform:scale(.97);}
#conn-ui .dg .v{font-family:var(--mono);font-weight:700;font-size:22px;letter-spacing:-.5px;}
#conn-ui .dg .k{font-family:var(--mono);font-size:9px;letter-spacing:1.5px;color:var(--mut);text-transform:uppercase;margin-top:3px;}

/* decision */
#conn-ui .dec{margin:22px 24px 0;border:1px solid var(--line2);padding:20px;}
#conn-ui .dec .k{font-family:var(--mono);font-size:10px;letter-spacing:2px;color:var(--red);}
#conn-ui .dec .t{font-family:var(--disp);font-weight:700;font-size:20px;margin:7px 0 5px;}
#conn-ui .dec .d{font-family:var(--mono);font-size:11px;color:var(--mut);line-height:1.55;}
/* The Watch — ambient rotating intel inside the on-course card */
#conn-ui .watch{margin-top:2px;}
#conn-ui .watch .wline{display:flex;align-items:flex-start;gap:9px;min-height:36px;}
#conn-ui .watch .wg{color:var(--red);font-size:12px;line-height:1.55;flex:0 0 auto;}
#conn-ui .watch .wtx{font-family:var(--mono);font-size:11px;color:var(--mut);line-height:1.55;transition:opacity .18s ease;}
#conn-ui .watch .wdots{display:flex;gap:5px;margin-top:11px;}
#conn-ui .watch .wdots i{width:5px;height:5px;border-radius:50%;background:var(--line2);transition:background .2s ease;}
#conn-ui .watch .wdots i.on{background:var(--red);}
#conn-ui .dec .a{margin-top:16px;display:flex;gap:10px;}
#conn-ui .dec .a b{flex:1;text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:2px;padding:13px;cursor:pointer;}
#conn-ui .dec .a .y{background:var(--ink);color:var(--void);} #conn-ui .dec .a .n{border:1px solid var(--line2);color:var(--ink);}
#conn-ui .dec .a .s{border:1px solid var(--line2);color:var(--mut);flex:0 0 auto;padding-left:14px;padding-right:14px;}
/* auto-trader approve card — the real propose-&-approve loop */
#conn-ui .dec.atrade{border-color:var(--red);}
#conn-ui .dec.atrade .plns{margin-top:14px;display:flex;flex-direction:column;gap:8px;}
#conn-ui .dec.atrade .pln{display:flex;align-items:baseline;gap:8px;font-family:var(--mono);font-size:11px;border-top:1px solid var(--line2);padding-top:8px;}
#conn-ui .dec.atrade .pln b{min-width:54px;color:var(--ink);font-weight:700;}
#conn-ui .dec.atrade .pln .q{color:var(--ink);}
#conn-ui .dec.atrade .pln .sl{margin-left:auto;color:var(--mut);}
#conn-ui .dec.atrade .d.err{color:var(--red);margin-top:12px;}
#conn-ui .dec.atrade .d.rep{margin-top:10px;line-height:1.7;}

/* sticky per-screen header (section title + filters) — pins under the top bar.
   --conn-top-h is measured in JS so it respects the notch/safe-area height. */
#conn-ui .shead{position:sticky;top:var(--conn-top-h,58px);z-index:40;background:var(--void);}
/* section label + filters */
#conn-ui .sec{display:flex;align-items:center;justify-content:space-between;padding:24px 24px 10px;}
#conn-ui .sec h3{font-family:var(--mono);font-size:11px;letter-spacing:3px;color:var(--mut);text-transform:uppercase;font-weight:500;}
#conn-ui .sec a{font-family:var(--mono);font-size:10px;color:var(--ink);letter-spacing:1px;cursor:pointer;}
#conn-ui .filt{display:flex;gap:22px;padding:2px 24px 0;border-bottom:1px solid var(--line);overflow-x:auto;}
#conn-ui .filt b{font-family:var(--mono);font-size:12px;letter-spacing:1.5px;color:var(--mut);padding:12px 0;border-bottom:2px solid transparent;white-space:nowrap;cursor:pointer;}
#conn-ui .filt b.on{color:var(--ink);border-bottom-color:var(--red);}
#conn-ui .filt b.fheld.on{color:#d9a441;border-bottom-color:#d9a441;}
/* STARS search + sort (lives in the sticky shead, between the title and the tabs) */
#conn-ui .skyhead .sec{padding:11px 24px 3px;}
#conn-ui .skyhead .filt b{padding:9px 0;}
#conn-ui .skybar{display:flex;align-items:center;gap:9px;margin:2px 18px 0;padding:8px 13px;background:var(--panel);border:1px solid var(--line);border-radius:11px;}
#conn-ui .skybar .mg{color:var(--mut);font-size:16px;line-height:1;}
#conn-ui .skybar input{flex:1;min-width:0;background:transparent;border:none;outline:none;color:var(--ink);font-family:var(--mono);font-size:13px;letter-spacing:.3px;-webkit-appearance:none;appearance:none;}
#conn-ui .skybar input::-webkit-search-cancel-button{display:none;}
#conn-ui .skybar input::placeholder{color:var(--dim);font-size:10.5px;letter-spacing:.4px;}
#conn-ui .skybar .skyclr{color:var(--mut);font-size:13px;font-weight:400;padding:3px 7px;cursor:pointer;}
/* floating suggestion card under the search bar */
#conn-ui .skybar{position:relative;}
#conn-ui .skysugg{position:absolute;top:calc(100% + 7px);left:-1px;right:-1px;background:var(--space);border:1px solid var(--line2);border-radius:13px;box-shadow:0 18px 44px rgba(0,0,0,.5);z-index:70;overflow:hidden;padding:5px 0 7px;}
#conn-ui.day .skysugg{box-shadow:0 16px 38px rgba(20,28,40,.22);}
#conn-ui .skysugg .sgl{font-family:var(--mono);font-size:8.5px;letter-spacing:1.6px;color:var(--dim);padding:8px 15px 4px;text-transform:uppercase;}
#conn-ui .skysugg .sgr{display:flex;align-items:center;gap:10px;padding:9px 15px;cursor:pointer;}
#conn-ui .skysugg .sgr:active{background:var(--panel);}
#conn-ui .skysugg .sgr b{font-family:var(--mono);font-size:13.5px;font-weight:600;color:var(--ink);}
#conn-ui .skysugg .sgr span{flex:1;font-size:12.5px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#conn-ui .skysugg .sgr .sig{font-family:var(--mono);font-size:9px;font-style:normal;letter-spacing:.8px;flex-shrink:0;}
#conn-ui .skysugg .sig.mut{color:var(--mut);}
#conn-ui .skysugg .sgtoks{display:flex;flex-wrap:wrap;gap:7px;padding:5px 15px 4px;}
#conn-ui .skysugg .sgtoks b{font-family:var(--mono);font-size:10.5px;font-weight:600;color:var(--mut);border:1px solid var(--line);border-radius:12px;padding:6px 12px;cursor:pointer;white-space:nowrap;}
#conn-ui .skysugg .sgtoks b:active{color:var(--ink);border-color:var(--line2);background:var(--panel);}
#conn-ui .skychips{display:flex;gap:6px;margin:7px 18px 1px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
#conn-ui .skychips::-webkit-scrollbar{display:none;}
#conn-ui .skychips b{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:1.1px;color:var(--mut);border:1px solid var(--line);border-radius:12px;padding:5px 12px;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;}
#conn-ui .skychips b.on{color:var(--ink);border-color:var(--line2);background:var(--panel);}
/* Active Δ% pill is a CYCLER, not a plain sort — a filled accent pill + a ↻ glyph
   (that spins on tap) tells users each tap advances the period. */
#conn-ui .skychips b[data-skysort="chg"].on{color:#fff;background:var(--red);border-color:var(--red);box-shadow:0 2px 8px rgba(227,25,55,.28);padding-right:9px;}
#conn-ui .skychips b[data-skysort="chg"].on::after{content:'↻';margin-left:5px;font-size:11px;display:inline-block;opacity:.92;transition:transform .35s cubic-bezier(.34,1.4,.5,1);}
#conn-ui .skychips b[data-skysort="chg"].on:active::after{transform:rotate(-180deg);}

/* star row (STARS) */
/* STARS row = card combining AIS/signal + coin + ticker/sector + 30d spark + price/change.
   WATCH was consolidated into here; it survives only as the ALL/BUY/WATCH/HOLD filter. */
#conn-ui .srow{position:relative;display:flex;align-items:stretch;margin:8px 14px;border-radius:8px;background:var(--panel);border:1px solid var(--line);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:pan-y;will-change:transform;transition:transform .14s cubic-bezier(.34,1.45,.5,1),background .14s ease,border-color .14s ease,box-shadow .14s ease;}
#conn-ui .srow.pressing{transform:scale(.972);background:var(--space);border-color:var(--line2);box-shadow:0 3px 12px rgba(0,0,0,.30);}
#conn-ui.day .srow.pressing{box-shadow:0 3px 12px rgba(20,30,55,.13);}
#conn-ui .srow.pressing .ais{background:var(--line2);}
/* "You were here" afterglow — replaces the old persistent red .focused underline
   (red = brand/warning/active-tab in this app; a lasting bar misread as an alert).
   On returning from a sheet the originating card brightens softly and self-erases. */
#conn-ui .srow.afterglow{animation:connAfterglow 1.8s ease-out forwards;}
@keyframes connAfterglow{
  0%{border-color:rgba(139,149,163,.95);box-shadow:0 0 16px rgba(139,149,163,.28);}
  100%{border-color:var(--line);box-shadow:none;}
}
#conn-ui .srow .ais{flex-shrink:0;width:81px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--line);border-radius:7px 0 0 7px;}
#conn-ui .srow .rest{flex:1;min-width:0;display:flex;align-items:center;gap:9px;padding:7px 12px;}
#conn-ui .srow .ais .v{font-family:var(--mono);font-weight:700;font-size:21px;line-height:1;color:var(--ink);}
#conn-ui .srow .ais .k{font-family:var(--mono);font-size:8px;letter-spacing:1px;color:var(--mut);margin-top:4px;}
#conn-ui .srow .ais .sg{font-family:var(--mono);font-weight:700;font-size:11px;letter-spacing:1px;margin-top:6px;color:var(--mut);}
#conn-ui .srow .ais.up{background:rgba(22,185,129,.12);}
#conn-ui .srow .ais.up .v,#conn-ui .srow .ais.up .sg{color:#16b981;}
#conn-ui .srow .ais.dn{background:rgba(227,25,55,.12);}
#conn-ui .srow .ais.dn .v,#conn-ui .srow .ais.dn .sg{color:var(--red);}
/* BUY quality tag: MOMENTUM (below autopilot line, "your call") vs CONVICTION (auto-grade). */
#conn-ui .srow .tag{align-self:center;flex-shrink:0;font-family:var(--mono);font-weight:700;font-size:8px;letter-spacing:.6px;text-transform:uppercase;padding:2px 6px;border-radius:4px;white-space:nowrap;}
#conn-ui .srow .tag.momo{color:var(--mut);background:var(--line2);}
#conn-ui .srow .tag.conv{color:#16b981;background:rgba(22,185,129,.16);}
/* A BUY reads GREEN regardless of conviction — the MOMENTUM/CONVICTION tag carries the
   distinction, not a muted AIS block (which wrongly greyed out the "BUY" signal word). */
/* corporate logo coin: circular chip + signal-colored ring, white field, contained logo */
#conn-ui .lchip, #conn-thesis .lchip, #conn-pos .lchip{position:relative;flex-shrink:0;border-radius:50%;overflow:hidden;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px rgba(0,0,0,.18);}
#conn-ui .lchip-img, #conn-thesis .lchip-img, #conn-pos .lchip-img{width:100%;height:100%;object-fit:contain;padding:3px;box-sizing:border-box;display:block;}
#conn-ui .lchip-fb, #conn-thesis .lchip-fb, #conn-pos .lchip-fb{display:none;align-items:center;justify-content:center;width:100%;height:100%;font-family:var(--mono);font-weight:700;color:#5a6573;letter-spacing:.5px;}
#conn-thesis .lchip-th .lchip-fb{font-size:14px;}
/* STARS: show the bare logo, no badge/coin behind it (transparent, no shadow). */
#conn-ui .lchip-star{border-radius:0;background:transparent;box-shadow:none;}
#conn-ui .lchip-star .lchip-fb{font-size:12px;}
#conn-ui .lchip-watch .lchip-fb{font-size:9px;}
#conn-ui .srow .mid2{flex:1;min-width:0;}
#conn-ui .srow .mid2 .hd{display:flex;align-items:center;gap:10px;overflow:hidden;}
#conn-ui .srow .mid2 .hd .tx{display:flex;align-items:baseline;gap:10px;min-width:0;overflow:hidden;}
#conn-ui .srow .mid2 .hd .t{font-family:var(--disp);font-weight:700;font-size:16px;letter-spacing:.5px;flex-shrink:0;}
#conn-ui .srow .mid2 .hd .sec{display:inline-block;padding:0;font-family:var(--mono);font-size:9px;letter-spacing:.5px;color:var(--mut);text-transform:uppercase;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#conn-ui .srow .mid2 .spk{margin-top:6px;}
#conn-ui .srow .mid2 .spk .tick{width:158px;max-width:100%;height:30px;gap:2px;min-width:0;}
#conn-ui .srow .px2{flex-shrink:0;text-align:right;min-width:72px;}
#conn-ui .srow .px2 .p{font-family:var(--mono);font-weight:700;font-size:14px;}
#conn-ui .srow .px2 .c{font-family:var(--mono);font-weight:700;font-size:11px;margin-top:4px;}
#conn-ui .srow .px2 .c.up{color:var(--up);}
/* ── Δ% Performance-Heat Leaderboard — the STARS list when the Δ% pill drives
   the sort. Ranked board: heat rail (green→red by move) + #rank + Δ% headline. ── */
#conn-ui .heatban{font-family:var(--mono);font-size:10px;letter-spacing:1px;color:var(--mut);
  margin:0 16px 9px;padding:2px 0 7px;border-bottom:1px solid var(--line);}
#conn-ui .heatban b{color:var(--ink);font-weight:700;letter-spacing:1.4px;}
#conn-ui .srow.heat .ais.heat{background:var(--heatw);position:relative;}
#conn-ui .srow.heat .ais.heat::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;
  background:var(--heat);border-radius:7px 0 0 7px;}
#conn-ui .srow.heat .ais.heat .v{color:var(--ink);}
#conn-ui .srow.heat .ais.heat .v::before{content:'#';font-size:12px;color:var(--mut);vertical-align:9%;margin-right:1px;font-weight:700;}
#conn-ui .srow.heat .ais.heat .k,#conn-ui .srow.heat .ais.heat .sg{color:var(--mut);}
#conn-ui .srow.heat .px2.heat{min-width:76px;}
#conn-ui .srow.heat .px2.heat .c{font-size:17px;margin-top:0;line-height:1;}
#conn-ui .srow.heat .px2.heat .c.up{color:var(--up);}
#conn-ui .srow.heat .px2.heat .c.dn{color:var(--red);}
#conn-ui .srow.heat .px2.heat .p{font-family:var(--mono);font-size:10px;font-weight:400;color:var(--mut);margin-top:4px;}
/* Performance-read (heat mode): sparkline (bar chart) + a tappable 2×2 grid of
   α · RSI · HI · σ. Colour carries meaning; tapping the grid opens the read sheet. */
/* Heat mode mirrors the normal card: the chart lives in .mid2 (below the
   ticker), and the 2×2 grid is a direct .rest child — so it's vertically
   centred like the M/Q/T pills and sits over toward the delta%. */
/* Heat mode is denser (3×2 signal grid): the ticker steps down a touch and the
   row tightens its gaps/padding so the extra column doesn't clip long names
   (GOOGL, CRWD) — every reclaimed px goes to the flexible name/chart column. */
#conn-ui .srow.heat .mid2 .hd .t{font-size:14px;}
#conn-ui .srow.heat .rest{gap:6px;padding:7px 9px;}
#conn-ui .srow.heat .mid2 .hspk{margin-top:6px;}
#conn-ui .srow.heat .mid2 .hspk .tick{width:100%;height:26px;}
#conn-ui .srow.heat .perfgrid{margin-right:6px;}
/* Signal cluster = 6 distinct badges (α RSI HI / σ TRD VOL) in a 3×2 tappable group.
   3 columns keeps the card at its normal 2-row height; the pills are tightened just
   enough (min-width/padding/gap) that the extra column doesn't steal the ticker's
   room — full tickers (INTU, CRWD…) still fit rather than clipping. */
#conn-ui .srow .perfgrid{display:grid;grid-template-columns:auto auto auto;gap:2px;flex-shrink:0;cursor:pointer;transition:transform .13s cubic-bezier(.34,1.45,.5,1);will-change:transform;}
#conn-ui .srow .perfgrid:active{transform:scale(.95);}
/* Same standard as the M/Q/T pills: label stacked on top of the number. Keeps
   the perf labels and their colour-coding; just the font + stack. */
#conn-ui .srow .perfgrid .pl{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:15px;font-size:9.5px;line-height:1;background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:2px 2px;gap:2px;}
#conn-ui .srow .perfgrid .pl i{font-size:7px;letter-spacing:.3px;font-style:normal;}
#conn-ui .srow .perfgrid .pl.plup{color:var(--up);border-color:rgba(22,185,129,.4);}
#conn-ui .srow .perfgrid .pl.pldn{color:var(--red);border-color:rgba(227,25,55,.35);}
#conn-ui .srow .perfgrid .pl.plhot{color:var(--red);background:rgba(227,25,55,.1);border-color:rgba(227,25,55,.45);}
#conn-ui .srow .perfgrid .pl.plcool{color:#2f7ef2;background:rgba(47,126,242,.1);border-color:rgba(47,126,242,.45);}
#conn-ui .srow .perfgrid .pl.plbig{background:rgba(217,164,65,.14);border-color:rgba(217,164,65,.45);}
#conn-ui .srow .perfgrid .pl.plwarm{color:#c2871a;background:rgba(217,164,65,.14);border-color:rgba(217,164,65,.5);}
/* ── Time machine (historical / point-in-time mode) ───────────────────────── */
#conn-ui .tmach{display:flex;align-items:center;gap:8px;margin:8px 14px 2px;padding:6px 10px;
  border:1px solid var(--line);border-radius:8px;font-family:var(--mono);font-size:10px;
  letter-spacing:.3px;color:var(--mut);background:var(--panel);}
#conn-ui .tmach .tmi{font-size:13px;line-height:1;flex-shrink:0;}
#conn-ui .tmach .tml{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
#conn-ui .tmach .tmd{margin-left:auto;flex-shrink:0;font-family:var(--mono);font-size:10px;
  background:var(--void,#fff);border:1px solid var(--line);border-radius:5px;color:var(--ink);padding:2px 5px;}
#conn-ui .tmach.on{border-color:var(--red);background:rgba(227,25,55,.06);color:var(--ink);}
#conn-ui .tmach.on .tml b{color:var(--red);font-weight:700;}
#conn-ui .tmach .tmnow{cursor:pointer;color:var(--red);font-weight:700;letter-spacing:.5px;
  padding:2px 7px;border:1px solid var(--red);border-radius:5px;flex-shrink:0;}
#conn-set .tmsetrow{display:flex;align-items:center;gap:10px;}
#conn-set .tmsetrow input[type=date]{margin-left:auto;flex-shrink:0;font-family:var(--mono);font-size:11px;
  background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--ink);padding:4px 7px;}
/* Greyed reconstruction: fundamentals we can't rebuild point-in-time dim out; the six
   price/volume badges (perfgrid) and the heat rank rail stay full-strength. */
#conn-ui.pastmode .srow .ais:not(.heat) .v,
#conn-ui.pastmode .srow .ais:not(.heat) .k,
#conn-ui.pastmode .srow .pills{opacity:.24;filter:grayscale(1);}
/* ── HISTORY MODE · "faded starlight" ─────────────────────────────────────────
   You're looking at old light, not the present: shift the base palette cool +
   dimmed and drop a vignette over the surface. The signal ACCENT colours
   (--up/--dn/--red + the badge ambers/blues) are left untouched so the
   reconstructed reads stay legible. */
#conn-ui.pastmode.day{
  --void:#e7ebf2; --space:#dfe4ee; --panel:#e6ebf3; --ink:#39434f;
  --mut:#77839a; --dim:#98a4b7; --line:#cfd8e4; --line2:#c0cad9; --star:#3a4a5e;
}
#conn-ui.pastmode:not(.day){
  --void:#080b12; --space:#0a0e18; --panel:#0c111d; --ink:#c4cedd;
  --mut:#5f6c82; --dim:#48546a; --line:#161d2b; --line2:#1f2735; --star:#aeb9cc;
}
#conn-ui.pastmode{transition:background-color .45s ease;}
/* cool wash + edge vignette — pointer-events:none so taps pass straight through;
   sit below the sheets/nav (z 9600) but over the scrolling surface. */
#conn-ui.pastmode::before{content:'';position:fixed;inset:0;z-index:9400;pointer-events:none;
  background:radial-gradient(135% 105% at 50% -12%,rgba(96,124,166,.05),rgba(34,48,74,.13) 100%);
  animation:pastfade .5s ease;}
#conn-ui.pastmode::after{content:'';position:fixed;inset:0;z-index:9401;pointer-events:none;
  box-shadow:inset 0 0 140px 26px rgba(22,32,52,.17);animation:pastfade .5s ease;}
@keyframes pastfade{from{opacity:0}to{opacity:1}}
/* Forward-outcome selector (4 auction-pair windows) + per-card outcome pill. */
#conn-ui .fwdbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:4px 14px 2px;font-family:var(--mono);}
#conn-ui .fwdbar .fwdlab{font-size:9px;letter-spacing:1px;color:var(--mut);}
#conn-ui .fwdbar b[data-fwd]{font-size:9px;letter-spacing:.5px;padding:3px 8px;border:1px solid var(--line);
  border-radius:12px;color:var(--mut);cursor:pointer;background:var(--panel);}
#conn-ui .fwdbar b[data-fwd].on{color:#fff;background:var(--red);border-color:var(--red);}
#conn-ui .fwdbar .fwdsum{margin-left:auto;font-size:10px;color:var(--mut);letter-spacing:.3px;}
#conn-ui .fwdbar .fwdsum b.up{color:var(--up);}#conn-ui .fwdbar .fwdsum b.dn{color:var(--red);}
#conn-ui .srow .px2 .fwdpill{margin-top:4px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.3px;}
#conn-ui .srow .px2 .fwdpill.up{color:var(--up);}
#conn-ui .srow .px2 .fwdpill.dn{color:var(--red);}
#conn-ui .srow .px2 .fwdpill.na{color:var(--mut);font-weight:400;}
#conn-ui .pasttoast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);z-index:60;
  background:rgba(20,22,30,.94);color:#fff;font-family:var(--mono);font-size:11px;letter-spacing:.3px;
  padding:8px 14px;border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.32);white-space:nowrap;
  animation:pfade .25s ease;}
@keyframes pfade{from{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%,0)}}
/* ── Per-signal glossary card — a collapsible dropped into the advisor thread
   (#conn-nav) below the streamed read. ── */
#conn-nav .glosscard{background:var(--panel);border:1px solid var(--line2);border-radius:12px;padding:2px 12px;margin:2px 0 6px;}
#conn-nav .glosscard .pfexp{display:flex;align-items:center;justify-content:space-between;padding:11px 2px;font-family:var(--mono);font-size:11px;letter-spacing:1px;color:var(--mut);text-transform:uppercase;cursor:pointer;}
#conn-nav .glosscard .pfexp .chev{transition:transform .2s ease;}
#conn-nav .glosscard .pfexp.open .chev{transform:rotate(90deg);}
#conn-nav .glosscard .pfgloss{padding-bottom:4px;}
#conn-nav .glosscard .pfgrow{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--line2);}
#conn-nav .glosscard .pfgv{flex-shrink:0;width:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--void,rgba(255,255,255,.03));border:1px solid var(--line2);border-radius:9px;padding:8px 0;}
#conn-nav .glosscard .pfgv i{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--mut);}
#conn-nav .glosscard .pfgv b{font-family:var(--mono);font-size:16px;font-weight:700;color:var(--ink);margin-top:3px;}
#conn-nav .glosscard .pfgv.up b{color:var(--up);}#conn-nav .glosscard .pfgv.dn b{color:var(--red);}#conn-nav .glosscard .pfgv.cool b{color:#2f7ef2;}
/* Amber "notable" state — mirrors the card's plbig badge (σ≥2 outlier, RV≥1.5 heavy);
   size/participation aren't good/bad, so they highlight amber not green/red. */
#conn-nav .glosscard .pfgv.big{border-color:rgba(217,164,65,.5);background:rgba(217,164,65,.10);}
#conn-nav .glosscard .pfgv.big b{color:#c2871a;}
#conn-nav .glosscard .pfgt{flex:1;font-size:12.5px;line-height:1.5;color:var(--ink);}
#conn-nav .glosscard .pfgk{font-family:var(--mono);font-size:9px;letter-spacing:1px;color:var(--mut);text-transform:uppercase;margin-bottom:4px;}
/* Stock-specific read of the live value — set apart from the generic definition,
   left-bordered in the signal's colour, with the ticker as a mono chip. */
#conn-nav .glosscard .pfmean{margin-top:7px;padding:6px 0 2px 9px;border-left:2px solid var(--line2);font-size:12.5px;line-height:1.45;font-weight:600;color:var(--ink);}
#conn-nav .glosscard .pfmean i{font-style:normal;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:1px;color:var(--mut);display:block;margin-bottom:2px;text-transform:uppercase;}
#conn-nav .glosscard .pfmean.up{border-left-color:var(--up);}
#conn-nav .glosscard .pfmean.dn{border-left-color:var(--red);}
#conn-nav .glosscard .pfmean.cool{border-left-color:#2f7ef2;}
#conn-nav .glosscard .pfmean.big{border-left-color:#d9a441;}
/* Verdict-tagged "what it means": the left border + chip both carry the verdict
   (tailwind/headwind/caution/steady) so good-vs-bad reads at a glance. */
#conn-nav .glosscard .pfmean.tw{border-left-color:var(--up);}
#conn-nav .glosscard .pfmean.hw{border-left-color:var(--red);}
#conn-nav .glosscard .pfmean.cau{border-left-color:#d9a441;}
#conn-nav .glosscard .pfmean.st{border-left-color:var(--line2);}
#conn-nav .glosscard .pfvd{display:inline-block;font-family:var(--mono);font-size:8.5px;font-weight:700;letter-spacing:.8px;padding:2px 7px;border-radius:4px;text-transform:uppercase;}
#conn-nav .glosscard .pfvd.tw{color:var(--up);background:rgba(22,185,129,.12);}
#conn-nav .glosscard .pfvd.hw{color:var(--red);background:rgba(227,25,55,.10);}
#conn-nav .glosscard .pfvd.cau{color:#c2871a;background:rgba(217,164,65,.14);}
#conn-nav .glosscard .pfvd.st{color:var(--mut);background:rgba(122,134,152,.12);}
#conn-nav .glosscard .pfvt{display:block;margin-top:5px;}
#conn-nav .glosscard .pfcons{margin:2px 0 8px;padding:11px 12px;border-top:1px solid var(--line2);font-family:var(--mono);font-size:11px;letter-spacing:.6px;color:var(--red);cursor:pointer;text-align:center;}
#conn-nav .glosscard .pfcons:active{opacity:.6;}
/* The Sky Report (CLIMATE) — verdict + shift line + signal ledger + overnight tape */
#conn-ui .cl-verdict{font-family:var(--disp);font-size:14.5px;font-weight:700;line-height:1.5;padding:2px 18px 0;color:var(--ink);}
#conn-ui .cl-verdict .r{color:var(--red);} #conn-ui .cl-verdict .up{color:var(--up);} #conn-ui .cl-verdict .amb{color:#d9a441;}
#conn-ui .cl-dist{font-family:var(--mono);font-size:9.5px;letter-spacing:.8px;color:var(--mut);padding:10px 18px 0;}
#conn-ui .cl-shift{padding:14px 18px 4px;}
#conn-ui .cl-shift .bar{height:6px;background:var(--line);border-radius:3px;position:relative;}
#conn-ui .cl-shift .fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--up) 72%,#d9a441);border-radius:3px;}
#conn-ui .cl-shift .mark{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--red);}
#conn-ui .cl-shift .cap{display:flex;justify-content:space-between;font-family:var(--mono);font-size:8.5px;letter-spacing:.6px;color:var(--mut);margin-top:6px;}
#conn-ui .cl-shift .cap .r{color:var(--red);}
#conn-ui .cl-ledger{padding:0 18px;}
#conn-ui .cl-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);}
#conn-ui .cl-row .g{font-family:var(--mono);font-size:9.5px;letter-spacing:1px;color:var(--mut);width:52px;flex-shrink:0;}
#conn-ui .cl-row .tx{flex:1;min-width:0;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#conn-ui .cl-row .tx b{font-family:var(--mono);font-size:11.5px;}
#conn-ui .cl-row .tx .vd{color:var(--mut);font-size:11px;margin-left:6px;}
#conn-ui .cl-row .st{flex-shrink:0;font-size:10px;}
#conn-ui .cl-row .st.up{color:var(--up);} #conn-ui .cl-row .st.dn{color:var(--dn);} #conn-ui .cl-row .st.amb{color:#d9a441;}
#conn-ui .cl-stale{background:rgba(217,164,65,.14);color:#d9a441;font-family:var(--mono);font-size:8px;border-radius:4px;padding:2px 5px;margin-left:6px;letter-spacing:.5px;vertical-align:1px;}
#conn-ui .cl-tape{padding:0 18px;}
#conn-ui .cl-orow{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);}
#conn-ui .cl-orow .nm{flex:1;min-width:0;font-size:12.5px;font-weight:600;}
#conn-ui .cl-orow .nm .why{display:block;font-size:9.5px;color:var(--mut);font-weight:400;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#conn-ui .cl-orow .pc{font-family:var(--mono);font-size:12.5px;font-weight:800;flex-shrink:0;}
#conn-ui .cl-orow .pc.mut{color:var(--mut);}
#conn-ui .cl-orow .tg{flex-shrink:0;width:74px;text-align:right;}
#conn-ui .cl-orow .tg .cl-tag{font-family:var(--mono);font-size:8px;background:rgba(217,164,65,.14);color:#d9a441;border-radius:4px;padding:3px 5px;letter-spacing:.5px;font-weight:700;}
/* Karaoke narration — the sentence being spoken gets a soft wash; the word
   being spoken gets weight. Transitions keep the follow smooth, never blinky. */
#conn-nav .ttsSent{background:linear-gradient(180deg,rgba(227,25,55,.07),rgba(227,25,55,.11));border-radius:4px;box-shadow:0 0 0 2px rgba(227,25,55,.07);transition:background .3s ease;}
#conn-nav .ttsW{color:var(--red);font-weight:650;}
/* soft breathing cursor at the stream edge */
#conn-nav .scur{display:inline-block;width:2px;height:1em;vertical-align:-0.15em;margin-left:2px;background:var(--red);border-radius:1px;animation:scur 1.1s ease-in-out infinite;}
@keyframes scur{0%,100%{opacity:.15}50%{opacity:.85}}
#conn-nav .contchip{display:inline-block;margin-top:8px;padding:5px 12px;border:1px solid var(--line2);border-radius:14px;font-family:var(--mono);font-size:10.5px;letter-spacing:.5px;color:var(--red);cursor:pointer;}
/* reaction row — graded feedback under each finished answer */
#conn-nav .rrow{display:flex;gap:6px;margin:7px 0 2px;align-items:center;}
#conn-nav .rrow b{font-family:var(--mono);font-size:9px;letter-spacing:.5px;padding:4px 10px;border:1px solid var(--line);border-radius:11px;color:var(--mut);cursor:pointer;font-weight:600;}
#conn-nav .rrow b:active{transform:scale(.94);}
#conn-nav .rrow i{font-style:normal;font-family:var(--mono);font-size:9px;color:var(--up);}
/* model provenance — tiny; turns amber on the fallback provider */
#conn-nav .mdl{font-family:var(--mono);font-size:7.5px;letter-spacing:.6px;color:var(--mut);opacity:.8;margin-top:2px;}
/* Navigator model picker — Proxima Helm virtuals */
#conn-nav .mdl{cursor:pointer;-webkit-tap-highlight-color:transparent;}
#conn-nav .mdlrow{display:none;gap:5px;flex-wrap:wrap;margin-top:5px;}
#conn-nav .mdlrow.on{display:flex;}
#conn-nav .mdlrow b{font-family:var(--mono);font-size:8px;letter-spacing:.8px;padding:3px 8px;border:1px solid var(--line);border-radius:8px;color:var(--mut);cursor:pointer;-webkit-tap-highlight-color:transparent;}
#conn-nav .mdlrow b.on{color:#e31937;border-color:rgba(227,25,55,.45);}
#conn-nav .mdl.fb{color:#d9a441;opacity:1;font-weight:700;}
/* Navigator voice pill — one control: tap toggles, hold changes voice */
#conn-nav .voxpill{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:9.5px;letter-spacing:.6px;padding:6px 11px;border:1px solid var(--line2);border-radius:14px;color:var(--ink);cursor:pointer;margin-left:auto;margin-right:8px;white-space:nowrap;font-weight:700;user-select:none;-webkit-user-select:none;}
#conn-nav .voxpill i{font-style:normal;font-size:12px;line-height:1;}
#conn-nav .voxpill.mute{opacity:.5;filter:grayscale(1);}
/* Navigator voice toggle */

/* Thinking state — the SAME mark the Navigator uses while thinking (cstar:
   red star pulse-rotating), reused wherever Orion is loading/deciding. */
/* motion NOT gated by reduced-motion — owner policy, see Living Sky note below */
#conn-ui .cstar{color:var(--red);display:inline-block;line-height:1;animation:cstar 1.1s ease-in-out infinite;}
/* Market state chip — always-on honesty about whether the exchange is trading */
#conn-ui .mktchip{display:flex;align-items:center;gap:7px;margin:2px 18px 10px;padding:7px 11px;border-radius:8px;font-family:var(--mono);font-size:9.5px;letter-spacing:1px;font-weight:700;}
#conn-ui .mktchip i{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
#conn-ui .mktchip.open{color:var(--up);background:rgba(22,185,129,.08);border:1px solid rgba(22,185,129,.25);}
#conn-ui .mktchip.open i{background:var(--up);}
#conn-ui .mktchip.closed{color:#d9a441;background:rgba(217,164,65,.08);border:1px solid rgba(217,164,65,.3);}
#conn-ui .mktchip.closed i{background:#d9a441;}
#conn-ui .mktchip.ah{color:#fbbf24;background:rgba(251,191,36,.09);border:1px solid rgba(251,191,36,.35);}
#conn-ui .mktchip.ah i{background:#fbbf24;animation:lvpulse 1.6s ease-out infinite;}
/* Held-position marks — amber rail + live stake line: the book stays visible
   while scanning the sky (amber = ownership; green/red stay signal colors). */
#conn-ui .srow.held::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#d9a441;border-radius:8px 0 0 8px;z-index:1;}
#conn-ui .srow .px2 .stk{font-family:var(--mono);font-size:9px;letter-spacing:.4px;color:#d9a441;margin-top:3px;white-space:nowrap;}
#conn-ui .srow .px2 .stk b{font-weight:700;}
#conn-ui .srow .px2 .stk b.up{color:var(--up);} #conn-ui .srow .px2 .stk b.dn{color:var(--dn);}
/* Three-pillar strip (Momentum / Quality / Trade-structure) — the orthogonal breakdown
   behind the conviction headline, so a pop and a balanced setup don't look alike. */
#conn-ui .srow .pills{flex-shrink:0;display:flex;gap:4px;align-items:center;}
#conn-ui .srow .pills .pl{font-family:var(--mono);font-size:10px;line-height:1;color:var(--ink);background:var(--line);border-radius:4px;padding:3px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:20px;}
#conn-ui .srow .pills .pl i{font-style:normal;font-size:7px;letter-spacing:.5px;color:var(--mut);}
@media (max-width:380px){#conn-ui .srow .mid2 .spk{display:none;}}
#conn-ui .srow .px2 .c.dn{color:var(--dn);}

/* watch row */
#conn-ui .wrow{display:flex;align-items:center;gap:14px;padding:15px 24px;border-top:1px solid var(--line);cursor:pointer;}
#conn-ui .wrow .tk{width:74px;font-family:var(--disp);font-weight:700;font-size:15px;}
#conn-ui .wrow .px{font-family:var(--mono);font-weight:700;font-size:14px;text-align:right;width:84px;margin-left:auto;}
#conn-ui .wrow .chg{font-family:var(--mono);font-weight:700;font-size:11px;width:66px;text-align:right;}
#conn-ui .wrow .chg.wk{color:var(--mut);}
#conn-ui .wrow .pl{font-family:var(--mono);font-weight:700;font-size:12px;width:74px;text-align:right;}
#conn-ui .poshead{display:flex;align-items:center;gap:12px;padding:8px 24px 4px;font-family:var(--mono);font-size:8.5px;letter-spacing:1.4px;color:var(--dim);text-transform:uppercase;}
#conn-ui .poshead span:first-child{width:74px;margin-left:39px;}
#conn-ui .poshead .ph2{width:84px;text-align:right;margin-left:auto;}
#conn-ui .poshead b{width:74px;text-align:right;color:var(--mut);cursor:pointer;font-weight:700;-webkit-tap-highlight-color:transparent;}
#conn-ui .poshead .ph4{width:66px;text-align:right;}
#conn-ui .wrow.ord{cursor:default;}
#conn-ui .wrow .od{flex:1;font-size:11px;color:var(--mut);line-height:1.35;}
#conn-ui .wrow .od b{font-family:var(--mono);font-size:12px;}
/* BOOK rows sit inside .cols — tighten the vertical rhythm so the chip (not
   whitespace) sets the row height. WATCH (.wrows) keeps its roomier padding. */
#conn-ui .cols .wrow{padding:9px 24px;gap:12px;}
#conn-ui .cols .wrow .lchip{width:24px!important;height:24px!important;}
#conn-ui .asof{padding:9px 24px 2px;font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--mut);text-transform:uppercase;}
#conn-ui .tick{flex:1;display:flex;align-items:flex-end;gap:3px;height:28px;min-width:60px;}
#conn-ui .tick i{flex:1;display:block;}

/* big readout (CLIMATE) */
#conn-ui .read{padding:24px 24px 4px;}
#conn-ui .read .lab2{font-family:var(--mono);font-size:11px;letter-spacing:3px;color:var(--mut);text-transform:uppercase;}
#conn-ui .read .big{font-family:var(--disp);font-weight:700;font-size:46px;line-height:.95;letter-spacing:-1.5px;margin:8px 0 4px;}
#conn-ui .read .big .r{color:var(--red);}
#conn-ui .read .sub2{font-family:var(--mono);font-size:11px;color:var(--mut);letter-spacing:.5px;}
#conn-ui .meter{padding:14px 24px;border-top:1px solid var(--line);}
#conn-ui .meter .row{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;letter-spacing:.5px;color:var(--mut);margin-bottom:8px;}
#conn-ui .meter .row b{color:var(--ink);}
#conn-ui .barm{height:2px;background:var(--line2);position:relative;}
#conn-ui .barm i{position:absolute;left:0;top:0;height:2px;background:var(--star);}

/* big number (BOOK) */
#conn-ui .hero{padding:20px 24px 6px;}
#conn-ui .hero .k{font-family:var(--mono);font-size:11px;letter-spacing:3px;color:var(--mut);text-transform:uppercase;}
#conn-ui .hero .v{font-family:var(--mono);font-weight:700;font-size:42px;letter-spacing:-1.5px;margin:6px 0 4px;}
#conn-ui .hero .d{font-family:var(--mono);font-size:13px;letter-spacing:.5px;}

/* empty / loading */
#conn-ui .empt{padding:40px 24px;font-family:var(--mono);font-size:12px;color:var(--mut);letter-spacing:.5px;text-align:center;}

/* bottom nav */
#conn-ui .nav{position:fixed;bottom:0;left:0;right:0;max-width:520px;margin:0 auto;height:74px;border-top:1px solid var(--line);display:flex;background:var(--void);padding-bottom:max(10px,env(safe-area-inset-bottom));}
#conn-ui .nav b{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-family:var(--mono);font-size:9px;letter-spacing:1.5px;color:var(--dim);cursor:pointer;}
#conn-ui .nav b.on{color:var(--ink);}
#conn-ui .nav b .pip{width:5px;height:5px;border-radius:50%;background:transparent;}
#conn-ui .nav b.on .pip{background:var(--red);}

/* refresh affordance */
#conn-ui .rfx{font-family:var(--mono);font-size:9px;letter-spacing:1.5px;color:var(--mut);}

/* The legacy detail drawer is fully retired — the Conn overlay no longer falls back
   to it (2026-07-17), so hard-hide it: display:none !important beats the legacy inline
   style.display=flex, guaranteeing the classic drawer can NEVER surface again. */
html.conn-live #signalDrawer{display:none !important;}
html.conn-live #settings-panel,
html.conn-live .settings-panel{display:none !important;}

/* When THE CONN is live, fully retire the classic app instead of just painting
   over it. The Conn overlay (#conn-ui) reads window.M and only ever clicks the
   hidden #refreshBtn — it never needs the legacy DOM visible. Leaving it rendered
   underneath let the old screen bleed through the gap iOS opens above the keyboard
   (fixed-layer displacement) in the Navigator and any input flow. display:none
   removes it from paint entirely, so nothing legacy can ever show through.
   NOTE (2026-07-17): .app-container alone was NOT enough — the legacy .marquee-ticker
   (and #cursorFocusBox) are BODY-LEVEL SIBLINGS outside .app-container, so they leaked
   through the bottom gap and — since each marquee item calls the legacy openDrawerByTicker
   — a tap there reopened the classic drawer. Hide every legacy body-level chrome, not just
   the container. (#signalDrawer stays — the Conn overlay reuses it as a detail fallback.) */
html.conn-live .app-container,
html.conn-live .marquee-ticker,
html.conn-live #cursorFocusBox{display:none !important;}

/* ============================================================
   DESKTOP — widen the app canvas + 2-up where it helps.
   Mobile (< 760px) is untouched: .cols/.wrows are plain blocks,
   so the column stays a pixel-identical phone layout.
   ============================================================ */
@media (min-width: 760px) {
  /* widen every centered surface to a comfortable reading app width */
  #conn-ui .shell,
  #conn-ui .peekbar,
  #conn-ui .nav,
  #conn-nav .sheet,
  #conn-set .sheet { max-width: 720px; }

  /* BOOK: Positions | Open orders side-by-side under the full-width hero */
  #conn-ui .cols { display: grid; grid-template-columns: 1fr 1fr; }
  #conn-ui .cols .col { min-width: 0; }
  /* each column's sticky header pins independently */
  #conn-ui .cols .col + .col { border-left: 1px solid var(--line); }
  /* no open orders → positions span the full canvas instead of a stranded half */
  #conn-ui .cols:has(.col:only-child) { grid-template-columns: 1fr; }

  /* WATCH: long list flows into two columns (every .wrow already has a top rule;
     even rows = right column get a left rule for a center divider) */
  #conn-ui .wrows { display: grid; grid-template-columns: 1fr 1fr; }
  #conn-ui .wrows .wrow:nth-child(even) { border-left: 1px solid var(--line); }
}

/* Hover affordances — only on real pointer devices (never touch). */
@media (hover: hover) and (pointer: fine) {
  #conn-ui .srow:hover,
  #conn-ui .wrow:not(.ord):hover { background: var(--space); }
  #conn-ui .nav b:not(.on):hover { color: var(--mut); }
  #conn-ui .starbtn:hover { box-shadow: 0 0 18px rgba(227,25,55,.5); }
  #conn-ui .peekbar:hover .t { color: var(--ink); }
  #conn-ui .gear:hover,
  #conn-ui .ctx:hover { color: var(--ink); }
  #conn-nav .seg2 b:not(.on):hover,
  #conn-nav .x:hover { color: var(--ink); }
  #conn-nav [data-chip]:hover { border-color: var(--line2); color: var(--ink); }
  #conn-ui .nav b, #conn-ui .gear, #conn-ui .ctx, #conn-ui .starbtn,
  #conn-ui .srow, #conn-ui .wrow,
  #conn-nav .seg2 b, #conn-nav .x, #conn-nav [data-chip] { transition: color .14s, background .14s, box-shadow .14s, border-color .14s; }
}

/* ---- Living Sky — ambient constellation animation (Helm hero).
   Motion is now driven by SMIL (<animate>/<animateTransform>) inside the SVG
   itself (see skySVG() in conn-ui.js), NOT CSS. Rationale: (1) SMIL lets the
   connecting course-line endpoints track each star's sway exactly; (2) it is
   not gated by prefers-reduced-motion — the old CSS @media gate silently
   disabled all motion on Windows boxes that have "Show animations" off; (3) it
   dies with the SVG on screen-swap, so there are no orphaned loops or rebuild
   flashes. Intentional: ambient motion always plays (owner request). ---- */

/* ===== Thesis drawer (#conn-thesis) — native BRIEF bottom-sheet ===========
   Tapping a body opens this over the dimmed app. Replaces the legacy white
   desktop drawer; matches the conn-ui design system (red brand, theming). */
#conn-thesis{position:fixed;inset:0;z-index:9650;font-family:var(--disp);}
#conn-thesis .scrim{position:absolute;inset:0;background:rgba(3,5,11,.62);opacity:0;transition:opacity .26s ease;}
#conn-thesis.day .scrim{background:rgba(20,28,40,.34);}
#conn-thesis.in .scrim{opacity:1;}
#conn-thesis .sheet{position:absolute;left:0;right:0;bottom:0;max-width:520px;margin:0 auto;height:100dvh;padding-top:env(safe-area-inset-top,0px);
  background:var(--space);border-top:1px solid var(--line2);border-radius:0;
  display:flex;flex-direction:column;overflow:hidden;box-shadow:0 -22px 64px rgba(0,0,0,.55);
  color:var(--ink);transform:translateY(100%);transition:transform .3s cubic-bezier(.22,1,.36,1);}
#conn-thesis.day .sheet{box-shadow:0 -16px 50px rgba(20,30,45,.18);}
#conn-thesis.in .sheet{transform:translateY(0);}
#conn-thesis .grab{width:38px;height:4px;border-radius:2px;background:var(--line2);margin:11px auto 0;flex:0 0 auto;cursor:grab;touch-action:none;}
#conn-thesis .thscroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 20px 22px;}
/* header */
#conn-thesis .thead{display:flex;align-items:center;gap:12px;padding:16px 0 0;}
#conn-thesis .thead .lchip-th{border-radius:11px;flex:0 0 auto;}
#conn-thesis .id{flex:1;min-width:0;}
#conn-thesis .id .r1{display:flex;align-items:center;gap:9px;}

#conn-thesis .id .tk{font-family:var(--disp);font-weight:700;font-size:23px;letter-spacing:.5px;line-height:1;}
#conn-thesis .id .co{font-family:var(--mono);font-size:10px;letter-spacing:.5px;color:var(--mut);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#conn-thesis .id .co .up{color:var(--up);} #conn-thesis .id .co .dn{color:var(--dn);}
#conn-thesis .lay,#conn-thesis .sig{font-family:var(--mono);font-weight:700;font-size:9px;letter-spacing:1px;padding:3px 8px;border-radius:5px;text-transform:uppercase;white-space:nowrap;}

#conn-thesis .sig.buy{color:var(--up);background:rgba(22,185,129,.13);border:1px solid rgba(22,185,129,.32);}
#conn-thesis .sig.watch{color:#fbbf24;background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.3);}
#conn-thesis .sig.hold{color:var(--mut);background:rgba(122,134,152,.12);border:1px solid var(--line2);}
#conn-thesis .sig.warn{color:var(--red);background:rgba(227,25,55,.12);border:1px solid rgba(227,25,55,.34);}
#conn-thesis .lay{color:#aebfd6;background:var(--panel);border:1px solid var(--line2);}
#conn-thesis .lay-SEMIS{color:#c084fc;background:rgba(168,85,247,.13);border:1px solid rgba(168,85,247,.32);}
#conn-thesis .lay-CLOUD{color:#22d3ee;background:rgba(6,182,212,.12);border:1px solid rgba(6,182,212,.3);}
#conn-thesis .lay-APP_SAAS{color:#4ade80;background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.3);}
#conn-thesis .lay-INFRA{color:#fbbf24;background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.3);}
#conn-thesis .lay-DEVICES{color:#60a5fa;background:rgba(59,130,246,.12);border:1px solid rgba(59,130,246,.3);}
/* AIS hero */
#conn-thesis .hero{display:flex;align-items:flex-end;gap:14px;margin:22px 0 6px;}
#conn-thesis .hero .big{font-family:var(--disp);font-weight:700;font-size:52px;line-height:.85;letter-spacing:-1px;}
#conn-thesis .hero .meta{padding-bottom:5px;}
#conn-thesis .hero .o{font-family:var(--mono);font-size:10px;color:var(--mut);letter-spacing:1px;}
#conn-thesis .hero .conf{font-family:var(--mono);font-size:9px;letter-spacing:1px;margin-top:4px;}
#conn-thesis .aisbar{height:5px;border-radius:3px;background:var(--line);overflow:hidden;margin-bottom:26px;}
#conn-thesis .aisbar i{display:block;height:100%;background:linear-gradient(90deg,var(--up),#5fe0b4);}
/* section label */
#conn-thesis .seclab{display:flex;align-items:center;gap:10px;margin-bottom:11px;font-family:var(--mono);font-size:9px;letter-spacing:2px;color:var(--mut);text-transform:uppercase;}
#conn-thesis .seclab .rl{width:14px;height:2px;background:var(--red);flex:0 0 auto;}
#conn-thesis .thesis{font-size:15.5px;line-height:1.62;color:var(--ink);opacity:.9;margin-bottom:26px;}
/* checks */
#conn-thesis .checks{margin-bottom:24px;}
#conn-thesis .tk-chk{display:flex;align-items:center;gap:13px;padding:13px 0;}
#conn-thesis .tk-chk.bt{border-top:1px solid var(--line);}
#conn-thesis .tk-chk .dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;}
#conn-thesis .tk-chk .n{font-size:14px;font-weight:600;color:var(--ink);}
#conn-thesis .tk-chk .v{font-family:var(--mono);font-size:10px;color:var(--mut);margin-top:2px;}
#conn-thesis .tk-empty{font-family:var(--mono);font-size:11px;color:var(--mut);padding:8px 0 24px;}
/* metrics */
#conn-thesis .mgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;}
#conn-thesis .mgrid .m{background:var(--panel);padding:15px 12px;}
#conn-thesis .mgrid .m .v{font-family:var(--mono);font-weight:700;font-size:16px;color:var(--ink);}
#conn-thesis .mgrid .m .k{font-family:var(--mono);font-size:8px;letter-spacing:1px;color:var(--mut);margin-top:3px;text-transform:uppercase;}
/* CTA bar */
#conn-thesis .thcta{flex:0 0 auto;border-top:1px solid var(--line);background:var(--void);display:flex;gap:10px;padding:13px 20px calc(13px + env(safe-area-inset-bottom));}
#conn-thesis .navbtn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;height:46px;border-radius:12px;background:linear-gradient(180deg,rgba(227,25,55,.16),rgba(227,25,55,.06));border:1px solid rgba(227,25,55,.5);color:#ff6f82;font-family:var(--mono);font-weight:700;font-size:11px;letter-spacing:1.5px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
#conn-thesis .altbtn{width:46px;height:46px;border-radius:12px;background:var(--panel);border:1px solid var(--line2);display:flex;align-items:center;justify-content:center;color:var(--mut);font-size:17px;flex:0 0 auto;cursor:pointer;-webkit-tap-highlight-color:transparent;}

/* ===== Tabbed full-scope sheet (ecliptic-strip hero) ====================== */
/* pinned top region: header + magnitude strip + verdict + tab bar */
#conn-thesis .thtop{flex:0 0 auto;padding:0 20px;border-bottom:1px solid var(--line);}
#conn-thesis .thtop .thead{padding:14px 0 0;}
/* ecliptic strip hero */
#conn-thesis .strip{margin:6px 0 2px;}
#conn-thesis .strip svg{display:block;width:100%;height:auto;overflow:visible;}
/* verdict line */
#conn-thesis .verdict{display:flex;align-items:center;gap:8px;margin:2px 0 12px;}
#conn-thesis .verdict .vstar{color:var(--red);font-size:12px;line-height:1;}
#conn-thesis .verdict .vlab{font-family:var(--mono);font-weight:700;font-size:10px;letter-spacing:1.5px;}
#conn-thesis .verdict .vtail{font-family:var(--mono);font-size:9px;letter-spacing:.4px;color:var(--mut);}
/* tab bar */
#conn-thesis .thtabs{display:flex;gap:4px;padding:0 0 8px;border-bottom:1px solid var(--line);margin-bottom:2px;}
#conn-thesis .thtab{flex:1;height:30px;border:none;background:transparent;color:var(--mut);font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:1px;cursor:pointer;-webkit-tap-highlight-color:transparent;border-bottom:2px solid transparent;border-radius:0;text-transform:uppercase;}
#conn-thesis .thtab.on{color:var(--ink);border-bottom-color:var(--red);font-weight:700;}
/* panels (only the active one shows) */
#conn-thesis .thpanel{display:none;padding-top:10px;}
#conn-thesis .thpanel.on{display:block;}
/* CURRENT: locked instrument panel + scrolling tape. When the Current tab is
   active the outer sheet scroller freezes; chart/pressure/metrics pin in place
   and ONLY the tape feed scrolls beneath them (user: "lock the area above"). */
#conn-thesis .thscroll:has(.thpanel[data-panel="current"].on){overflow:hidden;display:flex;flex-direction:column;padding-bottom:8px;}
#conn-thesis .thpanel[data-panel="current"].on{display:flex;flex-direction:column;flex:1;min-height:0;padding-top:4px;}
#conn-thesis .thpanel[data-panel="current"].on .daychart,
#conn-thesis .thpanel[data-panel="current"].on .curpress,
#conn-thesis .thpanel[data-panel="current"].on .curmets4{flex:0 0 auto;}
#conn-thesis .thpanel[data-panel="current"].on .curfeed{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;}
#conn-thesis .thpanel[data-panel="current"].on .curfeed .fhd{position:sticky;top:0;background:var(--space);z-index:2;}
#conn-thesis .thpanel[data-panel="current"].on .curfoot{flex:0 0 auto;}
/* tighten the TODAY header band */
#conn-thesis .daychart .pchd{margin-bottom:2px;}
/* CURRENT-tab range selector (LIVE · 1D … ALL) */
#conn-thesis .rngbar{display:flex;gap:4px;margin:2px 0 9px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
#conn-thesis .rngbar::-webkit-scrollbar{display:none;}
#conn-thesis .rngbar b{flex:1;text-align:center;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.8px;color:var(--mut);padding:6px 2px;border-radius:8px;border:1px solid transparent;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;}
#conn-thesis .rngbar b.on{color:var(--ink);border-color:var(--line2);background:var(--panel);}
/* Signal strip — miniature constellation (ring + ecliptic + bodies) + verdict */

#conn-thesis .sigverdict{display:flex;align-items:center;gap:7px;margin:4px 0 8px;}
#conn-thesis .sigverdict .vstar{color:var(--red);font-size:11px;line-height:1;}
#conn-thesis .sigverdict .vlab{font-family:var(--mono);font-weight:700;font-size:9.5px;letter-spacing:1.4px;}
#conn-thesis .sigverdict .vtail{font-family:var(--mono);font-size:8.5px;letter-spacing:.4px;color:var(--mut);}
/* CURRENT tab — Full Desk tape reader (pressure, metrics, feed, footnote) */
#conn-thesis .curpress{margin-top:4px;}
#conn-thesis .curpress .pr1{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--mono);font-size:9.5px;letter-spacing:1px;color:var(--mut);}
#conn-thesis .curpress .pr1 b{font-size:11px;letter-spacing:1.5px;}
#conn-thesis .curpress .pr1 b.up{color:var(--up);} #conn-thesis .curpress .pr1 b.dn{color:var(--dn);} #conn-thesis .curpress .pr1 b.amb{color:#d9a441;}
#conn-thesis .pbarc{display:flex;height:8px;border-radius:5px;overflow:hidden;background:rgba(227,25,55,.45);margin-top:6px;}
#conn-thesis .pbarc i{background:var(--up);transition:width .4s ease;}
#conn-thesis .curpress .pr2{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;margin-top:4px;}
#conn-thesis .curpress .pr2 .up{color:var(--up);} #conn-thesis .curpress .pr2 .dn{color:var(--dn);} #conn-thesis .curpress .pr2 .mutc{color:var(--mut);font-size:9px;}

#conn-thesis .curmets4{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px;padding:8px 11px;background:var(--panel);border:1px solid var(--line);border-radius:8px;align-items:stretch;}
#conn-thesis .curmets4 .cmleft{display:flex;flex-direction:column;justify-content:space-between;gap:3px;min-width:0;border-right:1px solid var(--line);padding-right:12px;}
#conn-thesis .curmets4 .cmrow{display:flex;justify-content:space-between;align-items:baseline;gap:8px;min-width:0;}
#conn-thesis .curmets4 i{font-style:normal;font-family:var(--mono);font-size:7.5px;letter-spacing:.9px;color:var(--mut);}
#conn-thesis .curmets4 b{font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--ink);white-space:nowrap;}
#conn-thesis .curmets4 b.up{color:var(--up);} #conn-thesis .curmets4 b.dn{color:var(--dn);} #conn-thesis .curmets4 b.amb{color:#d9a441;}
#conn-thesis .curmets4 .cmflow{display:flex;flex-direction:column;gap:4px;min-width:0;}
#conn-thesis .nfspark2{display:block;width:100%;height:26px;}
/* Floating page arrows — whisper-transparent (98%), hairline outline, faint
   silver starlight breath: present when you look for them, invisible when
   you're reading the tape */
#conn-thesis .thtabs{position:relative;}
#conn-thesis .tnav{position:absolute;top:50%;width:30px;height:30px;margin-top:-17px;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:30;cursor:pointer;
  background:rgba(255,255,255,.02);color:rgba(255,255,255,.6);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 0 7px rgba(200,210,225,.16);
  transition:transform .12s ease,opacity .15s;}
#conn-thesis .tnav svg{width:8px;height:13px;}
#conn-thesis .tnav.prev{left:-14px;} #conn-thesis .tnav.next{right:-14px;}
#conn-thesis .tnav:active{transform:scale(.9);background:rgba(255,255,255,.10);}
#conn-thesis .tnav.off{display:none;}
#conn-thesis.day .tnav{background:rgba(40,48,60,.02);color:rgba(40,48,60,.45);border-color:rgba(40,48,60,.14);
  box-shadow:0 0 6px rgba(100,116,139,.10);}
  #conn-thesis .tnav{animation:tnavGlow 3.2s ease-in-out infinite;}
  @keyframes tnavGlow{0%,100%{box-shadow:0 0 5px rgba(200,210,225,.10);}
    50%{box-shadow:0 0 11px rgba(200,210,225,.30);}}
  #conn-thesis.day .tnav{animation:tnavGlowDay 3.2s ease-in-out infinite;}
  @keyframes tnavGlowDay{0%,100%{box-shadow:0 0 5px rgba(100,116,139,.11);}
    50%{box-shadow:0 0 11px rgba(100,116,139,.30);}}
}
/* §6.3 market-context strip — macro eyes above the chart */
#conn-thesis .ctxstrip{display:flex;gap:11px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:5px 2px 7px;border-bottom:1px solid var(--line);margin-bottom:4px;}
#conn-thesis .ctxstrip::-webkit-scrollbar{display:none;}
#conn-thesis .ctxstrip .cx{display:flex;align-items:baseline;gap:4px;flex-shrink:0;font-family:var(--mono);}
#conn-thesis .ctxstrip .cx i{font-style:normal;font-size:8px;letter-spacing:.8px;color:var(--mut);}
#conn-thesis .ctxstrip .cx b{font-size:10.5px;font-weight:700;color:var(--ink);}
#conn-thesis .ctxstrip .cx b.up{color:var(--up);} #conn-thesis .ctxstrip .cx b.dn{color:var(--dn);}
#conn-thesis .ctxstrip .cx.ev i{color:#d9a441;} #conn-thesis .ctxstrip .cx.ev.hot b{color:var(--dn);}
#conn-thesis .cspark{width:34px;height:12px;align-self:center;}
/* §6.4 sentiment badges — near the verdict, cite-only-if-badged */
#conn-thesis .sentbadges{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;}
#conn-thesis .sentbadges .sb{font-family:var(--mono);font-size:8.5px;letter-spacing:.5px;padding:3px 8px;border:1px solid var(--line);border-radius:10px;color:var(--ink);}
#conn-thesis .sentbadges .sb i{font-style:normal;color:var(--mut);margin-right:4px;font-size:7.5px;letter-spacing:.9px;}
#conn-thesis .sentbadges .sb.up{color:var(--up);border-color:rgba(22,185,129,.35);}
#conn-thesis .sentbadges .sb.dn{color:var(--dn);border-color:rgba(227,25,55,.3);}
#conn-thesis .sentbadges .sb.amb{color:#d9a441;border-color:rgba(217,164,65,.4);}
#conn-thesis .thpanel[data-panel="current"].on .ctxstrip,
#conn-thesis .thpanel[data-panel="current"].on .sentbadges{flex:0 0 auto;}
/* Non-Alpaca bodies: ◈ PRIVATE (purple) + ◇ NAV FUND (teal) */
#conn-ui .srow.pvt .ais{background:rgba(124,92,191,.08);} #conn-ui .srow.fnd .ais{background:rgba(26,127,156,.08);}
#conn-ui .sg.sgpvt{color:#7c5cbf;} #conn-ui .sg.sgfnd{color:#1a7f9c;}
#conn-ui .pvdesc{font-size:9.5px;color:var(--mut);line-height:1.35;margin-top:2px;}
#conn-ui .pvtag{font-family:var(--mono);font-size:9px;font-weight:800;letter-spacing:1px;color:#7c5cbf;}
#conn-ui .pvsub,#conn-thesis .pvsub{font-family:var(--mono);font-size:9px;color:var(--mut);line-height:1.5;}
#conn-thesis .pbadge{font-family:var(--mono);font-size:8.5px;font-weight:800;letter-spacing:1.2px;color:#7c5cbf;border:1px solid rgba(124,92,191,.4);background:rgba(124,92,191,.08);padding:4px 10px;border-radius:10px;margin-left:auto;white-space:nowrap;}
#conn-thesis .fbadge{font-family:var(--mono);font-size:8.5px;font-weight:800;letter-spacing:1.2px;color:#1a7f9c;border:1px solid rgba(26,127,156,.4);background:rgba(26,127,156,.08);padding:4px 10px;border-radius:10px;margin-left:auto;white-space:nowrap;}
#conn-thesis .pvline{display:flex;align-items:center;gap:8px;margin:9px 0 0;font-family:var(--mono);font-size:9.5px;color:var(--mut);}
#conn-thesis .pvline b{color:var(--ink);letter-spacing:1px;font-size:9.5px;}
#conn-thesis .ptagc{font-size:8.5px;font-weight:800;letter-spacing:1px;color:#7c5cbf;border:1px solid rgba(124,92,191,.35);border-radius:5px;padding:3px 8px;background:rgba(124,92,191,.06);}
#conn-thesis .ptagc.fndc{color:#1a7f9c;border-color:rgba(26,127,156,.35);background:rgba(26,127,156,.06);}
#conn-thesis .tabex{font-size:12.5px;line-height:1.55;color:var(--mut);padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:9px;margin:10px 0 2px;}
#conn-thesis .pvstory{font-size:14.5px;line-height:1.65;color:var(--ink);}
#conn-thesis .obrow2{display:flex;align-items:baseline;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line);}
#conn-thesis .obrow2 b{font-family:var(--mono);font-size:12px;width:52px;color:var(--ink);flex-shrink:0;}
#conn-thesis .obrow2 span{flex:1;font-size:12.5px;line-height:1.45;color:var(--ink);}
#conn-thesis .obrow2 u{text-decoration:none;font-family:var(--mono);font-size:10px;flex-shrink:0;}
#conn-thesis .obrow2 u.mut{color:var(--mut);}
#conn-thesis .pnrow a{color:var(--ink);text-decoration:none;}
#conn-thesis .pvwarn{color:#d9a441;font-size:8px;letter-spacing:1px;}
#conn-thesis .pvfact{display:flex;justify-content:space-between;gap:12px;font-size:12.5px;color:var(--ink);padding:6px 0;border-bottom:1px dashed var(--line);}
#conn-thesis .pvfact i{font-style:normal;font-family:var(--mono);font-size:9.5px;color:var(--mut);flex-shrink:0;padding-top:1px;}
#conn-thesis .pvfact span{text-align:right;line-height:1.45;}
#conn-thesis .obrow{display:flex;align-items:center;gap:8px;padding:6px 0;}
#conn-thesis .obrow b{font-family:var(--mono);font-size:9.5px;width:78px;color:var(--ink);}
#conn-thesis .obrow .m{flex:1;height:7px;background:var(--line);border-radius:4px;overflow:hidden;}
#conn-thesis .obrow .m i{display:block;height:100%;background:#7c5cbf;}
#conn-thesis .obrow s{text-decoration:none;font-family:var(--mono);font-size:9.5px;color:var(--ink);width:32px;text-align:right;font-weight:700;}
#conn-thesis .obrow u{text-decoration:none;font-family:var(--mono);font-size:7.5px;color:#7c5cbf;width:52px;text-align:right;}
#conn-thesis .pnrow{display:flex;gap:9px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink);line-height:1.45;}
#conn-thesis .pnrow i{font-style:normal;font-family:var(--mono);font-size:8px;color:var(--mut);flex-shrink:0;padding-top:2px;}
#conn-thesis .pnrow u{text-decoration:none;color:var(--mut);font-size:9px;}
#conn-thesis .askc{display:inline-block;font-family:var(--mono);font-size:9px;color:var(--red);border:1px solid rgba(227,25,55,.35);border-radius:12px;padding:5px 11px;margin:10px 6px 0 0;cursor:pointer;}
#conn-thesis .lnk{color:#7c5cbf;cursor:pointer;font-weight:700;}
#conn-thesis .navslot{min-height:60px;}
/* ── ALT-SHEET (private/fund) reading typography — a dossier is read, not
   scanned: one type scale for the whole sheet (15px body / 11px mono labels),
   real air between the header's three ideas, tall rows, wide section breaks ── */
#conn-thesis.altsheet .thead{padding-top:16px;gap:14px;}
#conn-thesis.altsheet .thead .co{white-space:normal;line-height:1.35;font-size:12px;margin-top:5px;}
#conn-thesis.altsheet .pvline{font-size:12px;margin:13px 0 0;gap:11px;flex-wrap:wrap;}
#conn-thesis.altsheet .pvline b{font-size:12px;letter-spacing:1.4px;}
#conn-thesis.altsheet .pvline2{font-family:var(--mono);font-size:11.5px;color:var(--mut);margin:6px 0 3px;letter-spacing:.4px;line-height:1.4;}
#conn-thesis.altsheet .ptagc{font-size:10px;padding:4px 11px;}
#conn-thesis.altsheet .pbadge,#conn-thesis.altsheet .fbadge{font-size:10px;padding:5px 13px;}
#conn-thesis.altsheet .thtabs{margin-top:11px;padding-bottom:8px;}
#conn-thesis.altsheet .thtab{font-size:12.5px;height:32px;letter-spacing:1.2px;}
#conn-thesis.altsheet .tabex{font-size:14.5px;line-height:1.45;padding:11px 14px;margin:10px 0 2px;border-left:3px solid var(--red);border-radius:6px 10px 10px 6px;}
#conn-thesis.altsheet .seclab{font-size:11px;letter-spacing:2.2px;margin:17px 0 7px;}
#conn-thesis.altsheet .pvfact{font-size:15px;padding:7px 0;gap:16px;}
#conn-thesis.altsheet .pvfact i{font-size:11px;letter-spacing:1px;padding-top:3px;}
#conn-thesis.altsheet .pvfact span{line-height:1.35;}
#conn-thesis.altsheet .pvstory{font-size:16px;line-height:1.5;}
#conn-thesis.altsheet .pvsub{font-size:11.5px;line-height:1.45;display:block;margin:6px 0 0;}
#conn-thesis.altsheet .pvwarn{font-size:10px;}
#conn-thesis.altsheet .pvfact .pvwarn{font-size:inherit;font-family:var(--disp);letter-spacing:0;}
#conn-thesis.altsheet .obrow{padding:7px 0;gap:11px;}
#conn-thesis.altsheet .obrow b{font-size:12px;width:96px;}
#conn-thesis.altsheet .obrow .m{height:10px;}
#conn-thesis.altsheet .obrow s{font-size:12.5px;width:42px;}
#conn-thesis.altsheet .obrow u{font-size:10px;width:64px;}
#conn-thesis.altsheet .obrow2{padding:8px 0;gap:13px;}
#conn-thesis.altsheet .obrow2 b{font-size:15px;width:66px;}
#conn-thesis.altsheet .obrow2 span{font-size:15px;line-height:1.4;}
#conn-thesis.altsheet .obrow2 u{font-size:12px;}
#conn-thesis.altsheet .pnrow{font-size:15px;padding:9px 0;gap:12px;line-height:1.4;}
#conn-thesis.altsheet .pnrow i{font-size:10.5px;padding-top:4px;}
#conn-thesis.altsheet .pnrow u{font-size:11px;}
#conn-thesis.altsheet .askc{font-size:12px;padding:9px 16px;margin:12px 8px 2px 0;border-radius:17px;}
#conn-thesis.altsheet .thpanel{padding-top:2px;}
#conn-thesis.altsheet .navslot{min-height:120px;}
/* LIVE heartbeat — the dot breathes only while the exchange is open */
@keyframes lvpulse{0%{box-shadow:0 0 0 0 rgba(22,185,129,.5);opacity:1;}70%{box-shadow:0 0 0 5px rgba(22,185,129,0);opacity:.75;}100%{box-shadow:0 0 0 0 rgba(22,185,129,0);opacity:1;}}
#conn-ui .lvdot,#conn-thesis .lvdot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--up);margin-right:5px;vertical-align:1px;}
#conn-ui .lvdot.pulse,#conn-thesis .lvdot.pulse{animation:lvpulse 1.6s ease-out infinite;}
#conn-ui .lvdot.off,#conn-thesis .lvdot.off{background:var(--dim);}
#conn-ui .lvdot.ah,#conn-thesis .lvdot.ah{background:#fbbf24;}
/* HELM · sea-state strip (market tape under the heading) */
#conn-ui .seastate{padding:9px 24px 2px;border-bottom:1px solid var(--line);}
#conn-ui .seastate .ctxstrip{display:flex;gap:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 0 8px;}
#conn-ui .seastate .ctxstrip::-webkit-scrollbar{display:none;}
#conn-ui .seastate .cx{display:flex;align-items:baseline;gap:4px;flex-shrink:0;font-family:var(--mono);}
#conn-ui .seastate .cx i{font-style:normal;font-size:8px;letter-spacing:.8px;color:var(--mut);}
#conn-ui .seastate .cx b{font-size:10.5px;font-weight:700;color:var(--ink);}
#conn-ui .seastate .cx b.up{color:var(--up);} #conn-ui .seastate .cx b.dn{color:var(--dn);}
#conn-ui .seastate .cx.ev i{color:#d9a441;} #conn-ui .seastate .cx.ev.hot b{color:var(--dn);}
#conn-ui .seastate .cspark{width:34px;height:12px;align-self:center;}
/* BOOK · portfolio equity chart (LIVE…ALL) — compact: the lists below are the point */
#conn-ui .bkhero{padding:12px 24px 0;}
#conn-ui .bkhero .k{display:flex;align-items:baseline;justify-content:space-between;}
#conn-ui .bkhero .k .asf{font-size:9px;letter-spacing:1px;color:var(--dim);}
#conn-ui .bkhero .v{font-size:30px;margin:3px 0 2px;letter-spacing:-1px;}
#conn-ui .bkhero .d{font-size:11.5px;}
#conn-ui .bkchart{padding:6px 18px 0;}
#conn-ui .bkchart .rngbar{display:flex;gap:4px;margin:0 0 7px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
#conn-ui .bkchart .rngbar::-webkit-scrollbar{display:none;}
#conn-ui .bkchart .rngbar b{flex:1;text-align:center;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.8px;color:var(--mut);padding:6px 2px;border-radius:8px;border:1px solid transparent;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;}
#conn-ui .bkchart .rngbar b.on{color:var(--ink);border-color:var(--line2);background:var(--panel);}
#conn-ui .bkchart .pchd{font-family:var(--mono);font-size:9.5px;letter-spacing:.6px;color:var(--mut);text-transform:uppercase;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#conn-ui .bkchart .pchd .mutx{color:var(--dim);text-transform:none;letter-spacing:.4px;}
#conn-ui .bkchart .pchartbox{position:relative;}
#conn-ui .bkchart .pchart{display:block;width:100%;height:auto;overflow:visible;}
#conn-ui .bkchart .pchlabels{display:flex;gap:16px;justify-content:center;margin:6px 0 2px;font-family:var(--mono);font-size:9.5px;color:var(--mut);}
#conn-ui .bkchart .pchlabels .lb{display:flex;align-items:center;gap:5px;}
#conn-ui .bkchart .pchlabels .d{width:7px;height:7px;border-radius:50%;background:var(--dim);}
#conn-ui .bkchart .pchlabels .d.up{background:var(--up);}
#conn-ui .bkchart .pchlabels .d.dn{background:var(--dn);}
#conn-ui .bkchart .pchlabels .d.dim{background:var(--dim);}
#conn-ui .bkchart .pchart-ph{height:118px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10.5px;color:var(--mut);letter-spacing:.5px;border:1px dashed var(--line2);border-radius:10px;}
#conn-ui.day .bkchart [data-scrub] .scrublab{box-shadow:0 3px 10px rgba(20,30,55,.18);}
/* swap leg inside the pending-approval card */
#conn-ui .pln.swp .q{color:#d9a441;font-size:10px;letter-spacing:.3px;}
/* BOOK · risk ladder — the whole portfolio between its stops and targets */
#conn-ui .rlwrap{padding:2px 0 8px;}
#conn-ui .rlhead{display:flex;justify-content:space-between;margin:4px 24px 6px;font-family:var(--mono);font-size:8.5px;letter-spacing:1.2px;color:var(--dim);}
#conn-ui .rlrow{display:flex;align-items:center;gap:12px;padding:8px 24px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
#conn-ui .rlrow .rt{font-family:var(--disp);font-weight:700;font-size:15px;width:64px;color:var(--ink);flex-shrink:0;}
#conn-ui .rlrow.hot .rt{color:#d9a441;}
#conn-ui .rlt{position:relative;flex:1;height:16px;}
#conn-ui .rlt:before{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line2);}
#conn-ui .rlt .w{position:absolute;top:1px;bottom:1px;width:2px;background:var(--dn);border-radius:1px;}
#conn-ui .rlt .wl{left:0;}
#conn-ui .rlt .wr{right:0;background:var(--up);}
#conn-ui .rlt .wr.inf{background:none;width:auto;top:-2px;bottom:auto;color:var(--mut);font-style:normal;font-size:11px;line-height:16px;}
#conn-ui .rlt .et{position:absolute;top:3px;bottom:3px;width:1px;background:var(--mut);opacity:.8;}
#conn-ui .rlt .nd{position:absolute;top:50%;width:9px;height:9px;border-radius:50%;transform:translate(-50%,-50%);}
#conn-ui .rlt .nd.up{background:var(--up);box-shadow:0 0 7px rgba(22,185,129,.5);}
#conn-ui .rlt .nd.dn{background:var(--dn);box-shadow:0 0 7px rgba(227,25,55,.4);}
@keyframes ndBeat{0%,100%{box-shadow:0 0 6px 0 currentColor;}50%{box-shadow:0 0 11px 2px currentColor;}}
#conn-ui .rlt .nd.beat{animation:ndBeat 1.8s ease-in-out infinite;}
#conn-ui .rlt .nd.up.beat{color:rgba(22,185,129,.45);}
#conn-ui .rlt .nd.dn.beat{color:rgba(227,25,55,.4);}
#conn-ui .rlrow .rp{font-family:var(--mono);font-weight:700;font-size:11px;width:66px;text-align:right;flex-shrink:0;}
/* day chart pinned inside a narration answer bubble */
#conn-nav .msgchart{margin:2px 0 10px;padding:8px 10px 4px;background:var(--panel);border:1px solid var(--line);border-radius:10px;}
#conn-nav .msgchart .mch{font-family:var(--mono);font-size:8.5px;letter-spacing:1.4px;color:var(--mut);margin-bottom:4px;}
#conn-nav .msgchart svg{display:block;width:100%;height:auto;}
/* narrate-the-day icon under the NEXT label */
@keyframes narrPulse{0%{box-shadow:0 0 0 0 rgba(227,25,55,.35);}70%{box-shadow:0 0 0 7px rgba(227,25,55,0);}100%{box-shadow:0 0 0 0 rgba(227,25,55,0);}}
#conn-thesis .stancecard{cursor:pointer;border-radius:9px;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:transform .13s cubic-bezier(.34,1.45,.5,1),box-shadow .13s ease;will-change:transform;
    /* marquee treatment: this is THE actionable card on the tab — it floats above
       the flat panel field (layered elevation + brand hairline) so the eye lands
       here first; the .pressing dip/ring below stays the interaction animation */
    box-shadow:0 1px 2px rgba(16,24,40,.05),0 2px 6px rgba(16,24,40,.06),0 7px 22px rgba(227,25,55,.11);}
#conn-thesis .stancecard .stanceln,
#conn-thesis .stancecard .nextplain,#conn-thesis .stancecard .nextln{border-color:rgba(227,25,55,.26);}
#conn-thesis .stancecard .nextplain,#conn-thesis .stancecard .nextln{border-top-color:var(--line);}
#conn-thesis .stancecard.pressing{transform:scale(.982);box-shadow:0 0 0 1.5px rgba(227,25,55,.3),0 6px 20px rgba(227,25,55,.12);}
#conn-thesis .nextln,#conn-thesis .nextplain{position:relative;}
#conn-thesis .nextln span,#conn-thesis .nextplain span{padding-right:38px;display:block;}
#conn-thesis .narrbtn{position:absolute;right:11px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:21px;height:21px;border-radius:50%;border:1px solid var(--red);color:var(--red);font-size:10px;font-style:normal;font-weight:400;line-height:1;cursor:pointer;background:var(--void);animation:narrPulse 2.2s ease-out infinite;-webkit-tap-highlight-color:transparent;}
#conn-thesis.day .narrbtn{background:#fff;}
#conn-thesis .narrbtn:active{transform:translateY(-50%) scale(1.12);background:rgba(227,25,55,.08);}
/* tape-chart vertical resize grab */
#conn-thesis .chgrab{display:flex;justify-content:center;padding:6px 0 4px;cursor:ns-resize;touch-action:none;-webkit-tap-highlight-color:transparent;}
#conn-thesis .chgrab i{width:46px;height:4px;border-radius:2px;background:var(--line2);transition:background .15s;}
#conn-thesis .chgrab:active i{background:var(--mut);width:60px;}
/* CLIMATE · prediction-market odds */
#conn-ui .cl-odds{display:flex;flex-direction:column;gap:7px;padding:2px 18px 4px;}
#conn-ui .odrow{display:flex;align-items:baseline;justify-content:space-between;gap:12px;}
#conn-ui .odrow .oq{font-size:11.5px;color:var(--ink);line-height:1.35;min-width:0;}
#conn-ui .odrow b{font-family:var(--mono);font-size:11px;white-space:nowrap;}
#conn-ui .odsrc{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:9.5px;letter-spacing:.7px;color:#8a6a1f;background:rgba(217,164,65,.10);border:1px solid rgba(217,164,65,.38);border-radius:8px;padding:7px 11px;margin-top:6px;}
#conn-ui .odsrc i{font-style:normal;font-size:12px;line-height:1;}
#conn-ui .odsrc b{font-weight:800;color:#7a5a12;}
#conn-ui.day .odsrc{color:#8a6a1f;}
#conn-ui:not(.day) .odsrc{color:#d9a441;background:rgba(217,164,65,.08);}
#conn-ui:not(.day) .odsrc b{color:#e8b954;}
/* INSTRUMENTS fold — lower-priority signals collapse to one live-summary row */
#conn-thesis .instwrap{margin-top:7px;border:1px solid var(--line);border-radius:9px;flex:0 0 auto;}
#conn-thesis .instrow{display:flex;align-items:center;gap:8px;padding:8px 11px;cursor:pointer;font-family:var(--mono);}
#conn-thesis .instrow .caret{color:var(--mut);font-size:9px;width:10px;}
#conn-thesis .instrow .ilab{font-size:8.5px;letter-spacing:1.4px;color:var(--ink);font-weight:700;}
#conn-thesis .instrow .isum{font-size:9px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
#conn-thesis .instrow .isum b{color:var(--ink);font-weight:700;}
#conn-thesis .instrow .isum b.up{color:var(--up);} #conn-thesis .instrow .isum b.dn{color:var(--dn);}
#conn-thesis .instrow .isum i.ev{font-style:normal;color:#d9a441;}
#conn-thesis .instbody{display:none;padding:2px 11px 10px;border-top:1px solid var(--line);}
#conn-thesis .instwrap.open .instbody{display:block;}
#conn-thesis .instbody .ctxstrip{border-bottom:none;margin-bottom:0;}
#conn-thesis .thconst{margin:2px 0 0;}
/* §6.2 stance line + NEXT decision points — pinned above the tape */
#conn-thesis .stanceln{display:flex;gap:9px;align-items:baseline;margin-top:8px;padding:7px 10px;background:var(--panel);border:1px solid var(--line);border-radius:8px 8px 0 0;border-bottom:none;}
#conn-thesis .stanceln b{font-family:var(--mono);font-size:10px;font-weight:800;letter-spacing:1px;white-space:nowrap;}
#conn-thesis .stanceln b.up{color:var(--up);} #conn-thesis .stanceln b.dn{color:var(--dn);} #conn-thesis .stanceln b.amb{color:#d9a441;}
#conn-thesis .stanceln span{font-size:11px;color:var(--mut);line-height:1.4;min-width:0;}
#conn-thesis .stanceln span b.inv{color:var(--ink);font-family:var(--mono);font-size:10px;letter-spacing:.2px;}
#conn-thesis .nextln{display:flex;gap:8px;align-items:baseline;padding:6px 10px 7px;background:var(--panel);border:1px solid var(--line);border-top:1px dashed var(--line);border-radius:0 0 8px 8px;}
#conn-thesis .nextln i{font-style:normal;font-family:var(--mono);font-size:8px;letter-spacing:1.4px;color:#d9a441;padding-top:1px;}
#conn-thesis .nextln span{font-family:var(--mono);font-size:9.5px;color:var(--mut);line-height:1.5;min-width:0;}
/* plain-English translation of NEXT for novices (LLM-phrased, level-free) */
#conn-thesis .nextplain{display:flex;gap:8px;align-items:baseline;padding:7px 10px 8px;background:var(--panel);border:1px solid var(--line);border-top:1px dashed var(--line);border-radius:0 0 8px 8px;margin-top:-1px;}
#conn-thesis .nextplain i{font-style:normal;font-family:var(--mono);font-size:8px;letter-spacing:1.4px;color:var(--mut);padding-top:2px;flex-shrink:0;}
#conn-thesis .nextplain span{font-family:var(--disp);font-size:12.5px;color:var(--ink);line-height:1.5;min-width:0;}
#conn-thesis .thpanel[data-panel="current"].on .stanceln,
#conn-thesis .thpanel[data-panel="current"].on .nextln{flex:0 0 auto;}
#conn-thesis .curfeed{margin-top:6px;border-top:none;}
#conn-thesis .curfeed .fhd{font-family:var(--mono);font-size:9px;color:var(--mut);padding:4px 2px 3px;border-bottom:1px solid var(--line);}
#conn-thesis .curfeed .cur{color:var(--up);animation:connBlink 1.1s step-end infinite;}
@keyframes connBlink{0%,100%{opacity:1}50%{opacity:0}}
#conn-thesis .curfeed .fl{display:flex;gap:8px;padding:5px 7px 5px 8px;border-left:2.5px solid var(--mut);margin-top:5px;background:var(--panel);border-radius:0 6px 6px 0;}
#conn-thesis .curfeed .fl.up{border-left-color:var(--up);} #conn-thesis .curfeed .fl.dn{border-left-color:var(--dn);} #conn-thesis .curfeed .fl.amb{border-left-color:#d9a441;}
#conn-thesis .curfeed .ft{font-family:var(--mono);font-size:9.5px;color:var(--mut);white-space:nowrap;padding-top:2px;}
#conn-thesis .curfeed .fx{font-size:11.5px;line-height:1.42;color:var(--ink);}
#conn-thesis .curfoot{display:none;margin-top:6px;font-family:var(--mono);font-size:8px;color:var(--mut);opacity:.85;line-height:1.55;border-top:1px solid var(--line);padding-top:6px;}
#conn-thesis .curfoot.show{display:block;}
#conn-thesis .fnote-toggle{float:right;font-family:var(--mono);font-size:11px;color:var(--mut);cursor:pointer;padding:0 2px;font-weight:400;}
/* Day chart (Trade tab) — breathing room before the conn card below it */
#conn-thesis .daychart{margin-bottom:2px;}
/* Session pressure split — share of volume on rising bars (buy/sell-pressure proxy) */
#conn-thesis .pchpressure{display:flex;align-items:center;gap:9px;justify-content:center;margin-top:9px;}
#conn-thesis .pchpressure .k{font-family:var(--mono);font-size:9px;letter-spacing:.8px;color:var(--mut);}
#conn-thesis .pchpressure .pbar{width:96px;height:5px;border-radius:3px;background:rgba(227,25,55,.35);overflow:hidden;}
#conn-thesis .pchpressure .pbar i{display:block;height:100%;background:var(--up);border-radius:3px 0 0 3px;}
#conn-thesis .pchpressure b{font-family:var(--mono);font-size:10px;}
#conn-thesis .pchpressure b.up{color:var(--up);} #conn-thesis .pchpressure b.dn{color:var(--dn);}
/* Chart scrub — press-drag crosshair with a time · price readout. touch-action:none
   so the drag reads as a scrub, not a scroll (charts are short; scroll starts outside). */
[data-scrub]{touch-action:none;-webkit-user-select:none;user-select:none;}
[data-scrub] .scrubline{display:none;position:absolute;top:4px;bottom:22px;width:1px;background:var(--ink);opacity:.55;pointer-events:none;}
[data-scrub] .scrublab{display:none;position:absolute;top:-6px;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.4px;color:var(--ink);background:var(--panel);border:1px solid var(--line2);border-radius:6px;padding:3px 7px;white-space:nowrap;pointer-events:none;z-index:3;box-shadow:0 3px 10px rgba(0,0,0,.35);}
#conn-thesis.day [data-scrub] .scrublab,#conn-pos.day [data-scrub] .scrublab{box-shadow:0 3px 10px rgba(20,30,55,.18);}
/* Conviction block — three-pillar plain-talk breakdown at the top of the Thesis tab */
#conn-thesis .convb{margin-bottom:26px;padding:15px 16px 9px;background:var(--panel);border:1px solid var(--line);border-radius:10px;}
#conn-thesis .convb .cvhd{display:flex;align-items:baseline;gap:9px;margin-bottom:12px;}
#conn-thesis .convb .cvstar{color:var(--up);font-size:15px;}
#conn-thesis .convb .cvbig{font-family:var(--mono);font-weight:800;font-size:31px;line-height:1;color:var(--ink);}
#conn-thesis .convb .cvcap{font-family:var(--mono);font-size:9px;letter-spacing:1.6px;color:var(--mut);}
#conn-thesis .convb .cvrow{margin:0 0 13px;}
#conn-thesis .convb .cvr1{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--mono);font-size:10px;letter-spacing:1.2px;color:var(--mut);}
#conn-thesis .convb .cvr1 b{font-size:13px;color:var(--ink);}
#conn-thesis .convb .cvbar{height:4px;background:var(--line);border-radius:3px;margin:5px 0 4px;overflow:hidden;}
#conn-thesis .convb .cvbar i{display:block;height:100%;border-radius:3px;background:var(--ink);}
#conn-thesis .convb .cvbar i.hi{background:var(--up);}
#conn-thesis .convb .cvd{font-size:11.5px;line-height:1.5;color:var(--mut);}
/* risk flags */
#conn-thesis .rflags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px;}
#conn-thesis .rf{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.4px;padding:6px 10px;border-radius:20px;border:1px solid;}
/* sentiment + social */
#conn-thesis .sentbox{border:1px solid var(--line);border-radius:12px;padding:13px 14px;margin-bottom:26px;background:var(--panel);}
#conn-thesis .srow{display:flex;align-items:baseline;gap:10px;}
#conn-thesis .srow+.srow{margin-top:9px;}
#conn-thesis .sk{font-family:var(--mono);font-size:8px;letter-spacing:1.5px;color:var(--mut);width:46px;flex:0 0 auto;}
#conn-thesis .sv{font-family:var(--mono);font-size:12px;font-weight:600;}
#conn-thesis .snarr{font-size:12.5px;line-height:1.55;color:var(--ink);opacity:.78;margin-top:7px;}
/* moat */
#conn-thesis .seclab .oq{margin-left:auto;font-size:8px;letter-spacing:1px;color:var(--star);border:1px solid var(--line2);border-radius:5px;padding:3px 7px;}
#conn-thesis .moatbox{border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:26px;background:var(--panel);}
#conn-thesis .moatbox .mhead{display:flex;align-items:baseline;gap:11px;}
#conn-thesis .mscore{font-family:var(--disp);font-weight:700;font-size:26px;color:#c084fc;}
#conn-thesis .mscore i{font-style:normal;font-size:13px;color:var(--mut);font-weight:400;}
#conn-thesis .mdelta{font-family:var(--mono);font-size:11px;font-weight:700;}
#conn-thesis .mnote{font-family:var(--mono);font-size:9.5px;line-height:1.5;color:var(--mut);margin-top:9px;}
/* trajectory */
#conn-thesis .trajbox{display:flex;align-items:center;gap:11px;margin-bottom:26px;}
#conn-thesis .trajbox .tcur{position:static;margin:0;}
#conn-thesis .trajbox .tmeta{font-family:var(--mono);font-size:10px;color:var(--mut);}
/* sizer + ticket shared field styling */
#conn-thesis .srow3{display:flex;gap:10px;margin-bottom:11px;}
#conn-thesis .fld{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0;}
#conn-thesis .fld>span{font-family:var(--mono);font-size:8px;letter-spacing:1px;color:var(--mut);text-transform:uppercase;}
#conn-thesis .fld input,#conn-thesis .fld select{width:100%;box-sizing:border-box;height:42px;border-radius:10px;border:1px solid var(--line2);background:var(--void);color:var(--ink);font-family:var(--mono);font-size:14px;font-weight:600;padding:0 12px;-webkit-appearance:none;appearance:none;}
#conn-thesis .fld input:disabled{color:var(--mut);}
#conn-thesis .sizer{margin-bottom:26px;}
#conn-thesis .szout{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;}
#conn-thesis .szcell{background:var(--panel);padding:13px 12px;}
#conn-thesis .szcell .v{font-family:var(--mono);font-weight:700;font-size:16px;}
#conn-thesis .szcell .k{font-family:var(--mono);font-size:8px;letter-spacing:1px;color:var(--mut);margin-top:3px;text-transform:uppercase;}
/* order ticket */
#conn-thesis .ticket{margin-bottom:8px;}
#conn-thesis .qtyrow{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
#conn-thesis .stepper{display:flex;align-items:center;border:1px solid var(--line2);border-radius:10px;overflow:hidden;}
#conn-thesis .qa{width:42px;height:44px;border:none;background:var(--void);color:var(--mut);font-size:20px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
#conn-thesis .stepper input{width:60px;height:44px;border:none;border-left:1px solid var(--line2);border-right:1px solid var(--line2);background:var(--panel);text-align:center;font-family:var(--mono);font-weight:700;font-size:15px;color:var(--ink);}
#conn-thesis .qlbl{font-family:var(--mono);font-size:10px;color:var(--mut);}
#conn-thesis .bsrow{display:flex;gap:10px;margin-bottom:12px;}
#conn-thesis .bs{flex:1;height:46px;border-radius:11px;font-family:var(--mono);font-weight:700;font-size:13px;letter-spacing:1px;cursor:pointer;-webkit-tap-highlight-color:transparent;border:1px solid var(--line2);background:var(--panel);color:var(--mut);}
#conn-thesis .bs.buy.on{color:var(--up);background:rgba(22,185,129,.14);border-color:rgba(22,185,129,.5);}
#conn-thesis .bs.sell.on{color:var(--red);background:rgba(227,25,55,.12);border-color:rgba(227,25,55,.5);}
#conn-thesis .ctf{align-items:flex-end;}
#conn-thesis .ctstatus{font-family:var(--mono);font-size:11px;line-height:1.5;margin-top:4px;min-height:16px;}
#conn-thesis .ctstatus.ok{color:var(--up);} #conn-thesis .ctstatus.err{color:var(--red);}
#conn-thesis .orderbtn.busy{opacity:.6;pointer-events:none;}
#conn-thesis .advbtn{color:var(--ink);background:var(--panel);border:1px solid var(--line2);}
/* CONN approve surface — Trade tab (supervised autonomy: "Orion has the conn") */
#conn-thesis .conncard{border:1px solid var(--line2);border-radius:16px;padding:18px 16px;background:var(--panel);margin-bottom:18px;}
#conn-thesis .conncard.live{border-color:var(--red);box-shadow:0 0 0 1px rgba(227,25,55,.12),0 8px 30px rgba(227,25,55,.10);}
#conn-thesis .cc-k{font-family:var(--mono);font-size:9px;letter-spacing:2px;color:var(--red);font-weight:700;}
#conn-thesis .conncard.idle .cc-k{color:var(--star);letter-spacing:1.5px;font-size:11px;}
/* MANUAL-lead: human has the conn — expanded order ticket, star accent. */
#conn-thesis .conncard.manual{border-color:var(--star);}
#conn-thesis .conncard.manual .cc-k{color:var(--star);letter-spacing:1.5px;font-size:11px;}
#conn-thesis .conncard.manual .cc-ovbody{border-top:1px solid var(--line);margin-top:14px;}
#conn-thesis .cc-order{display:flex;align-items:baseline;gap:9px;margin-top:12px;}
#conn-thesis .cc-order b{font-family:var(--disp);font-weight:700;font-size:24px;color:var(--ink);letter-spacing:-.5px;}
#conn-thesis .cc-side{font-family:var(--mono);font-weight:700;font-size:10px;letter-spacing:1.5px;padding:5px 9px;border-radius:7px;}
#conn-thesis .cc-side.buy{color:var(--up);background:rgba(22,185,129,.14);}
#conn-thesis .cc-side.sell{color:var(--red);background:rgba(227,25,55,.12);}
#conn-thesis .cc-ty{font-family:var(--mono);font-size:11px;color:var(--mut);}
#conn-thesis .cc-lvls{font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--ink);margin-top:9px;}
#conn-thesis .cc-meta{font-family:var(--mono);font-size:10px;color:var(--mut);margin-top:6px;letter-spacing:.3px;}
#conn-thesis .cc-fire{font-size:12px;line-height:1.5;color:var(--mut);margin-top:12px;}
#conn-thesis .cc-act{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px;}
#conn-thesis .cc-approve{flex:1 1 100%;height:52px;border:none;border-radius:13px;background:var(--red);color:#fff;font-family:var(--mono);font-weight:700;font-size:12px;letter-spacing:1px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
#conn-thesis .cc-approve[data-busy]{opacity:.6;pointer-events:none;}
/* terminal "placed" state — order accepted; lock the control so it can't re-fire */
#conn-thesis .cc-approve.done,#conn-thesis .cc-approve:disabled{background:rgba(22,185,129,.14);color:var(--up);pointer-events:none;opacity:1;cursor:default;}
#conn-thesis .orderbtn.done{background:rgba(22,185,129,.10);border-color:rgba(22,185,129,.5);color:var(--up);pointer-events:none;}
#conn-thesis .cc-snooze,#conn-thesis .cc-decline{flex:1;height:44px;border-radius:11px;border:1px solid var(--line2);background:var(--void);font-family:var(--mono);font-weight:600;font-size:11px;letter-spacing:1px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
#conn-thesis .cc-snooze{color:var(--mut);} #conn-thesis .cc-decline{color:var(--ink);}
#conn-thesis .cc-snooze:disabled,#conn-thesis .cc-decline:disabled{opacity:.5;pointer-events:none;}
#conn-thesis .cc-status{font-family:var(--mono);font-size:11px;line-height:1.5;margin-top:10px;min-height:14px;color:var(--mut);}
#conn-thesis .cc-status.ok{color:var(--up);} #conn-thesis .cc-status.err{color:var(--red);}
#conn-thesis .cc-hold{font-size:13px;line-height:1.6;color:var(--ink);opacity:.85;margin-top:10px;}
#conn-thesis .cc-would{margin-top:16px;padding-top:14px;border-top:1px solid var(--line2);}
#conn-thesis .cc-would-k{font-family:var(--mono);font-size:8px;letter-spacing:1.5px;color:var(--mut);}
#conn-thesis .cc-would .cc-order{margin-top:9px;}
#conn-thesis .cc-hint{font-family:var(--mono);font-size:10px;line-height:1.5;color:var(--star);margin-top:14px;opacity:.85;}
#conn-thesis .cc-override{margin-top:4px;border-top:1px solid var(--line);padding-top:12px;}
#conn-thesis .cc-override summary{font-family:var(--mono);font-size:10px;letter-spacing:.8px;color:var(--mut);cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent;padding:6px 0;}
#conn-thesis .cc-override summary::-webkit-details-marker{display:none;}
#conn-thesis .cc-override summary::before{content:'⌄ ';color:var(--star);}
#conn-thesis .cc-override[open] summary::before{content:'⌃ ';}
#conn-thesis .cc-ovbody{padding-top:16px;}
#conn-thesis .cc-ovbody .orderbtn{margin-top:6px;}

/* ===== "The Log" — position-detail sheet (#conn-pos) ====================== */
#conn-pos{position:fixed;inset:0;z-index:9660;font-family:var(--disp);}
#conn-pos .scrim{position:absolute;inset:0;background:rgba(3,5,11,.62);opacity:0;transition:opacity .26s ease;}
#conn-pos.day .scrim{background:rgba(20,28,40,.34);}
#conn-pos.in .scrim{opacity:1;}
#conn-pos .sheet{position:absolute;left:0;right:0;bottom:0;max-width:520px;margin:0 auto;height:92dvh;
  background:var(--void);border-top:1px solid var(--line2);border-radius:20px 20px 0 0;
  display:flex;flex-direction:column;transform:translateY(100%);transition:transform .3s cubic-bezier(.22,1,.36,1);
  box-shadow:0 -20px 60px rgba(0,0,0,.45);}
#conn-pos.day .sheet{box-shadow:0 -16px 50px rgba(20,30,45,.18);}
#conn-pos.in .sheet{transform:translateY(0);}
#conn-pos .grab{width:38px;height:4px;border-radius:2px;background:var(--line2);margin:11px auto 0;flex:0 0 auto;cursor:grab;touch-action:none;}
#conn-pos .posscroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 0 24px;}
#conn-pos .phr{height:1px;background:var(--line);}
#conn-pos .psec{padding:20px 22px;}
/* header */
#conn-pos .ptop{display:flex;align-items:flex-start;gap:12px;padding:16px 22px 16px;}
#conn-pos .ptop .lchip-pos{border-radius:10px;flex:0 0 auto;margin-top:1px;}
#conn-pos .pid{flex:1;min-width:0;}
#conn-pos .ptk{font-family:var(--disp);font-weight:700;font-size:23px;letter-spacing:.5px;color:var(--ink);line-height:1;}
#conn-pos .pco{font-family:var(--mono);font-size:10px;letter-spacing:.5px;color:var(--mut);margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#conn-pos .pright{text-align:right;flex:0 0 auto;}
#conn-pos .ppx{font-family:var(--disp);font-weight:500;font-size:19px;color:var(--ink);}
#conn-pos .ppxd{font-family:var(--mono);font-size:11px;margin-top:4px;}
#conn-pos .px-close{color:var(--dim);font-size:19px;line-height:1;flex:0 0 auto;cursor:pointer;padding:0 2px;}
/* labels */
#conn-pos .plab,#conn-pos .pseclab{font-family:var(--mono);font-size:9.5px;letter-spacing:2px;color:var(--mut);text-transform:uppercase;}
#conn-pos .pseclab{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
#conn-pos .pseclab .rl{width:5px;height:5px;background:var(--red);border-radius:50%;flex:0 0 auto;}
#conn-pos .up{color:var(--up);} #conn-pos .dn{color:var(--dn);} #conn-pos .pmut{color:var(--mut)!important;}
/* P&L */
#conn-pos .ppnl{display:flex;align-items:baseline;gap:16px;margin:10px 0 4px;}
#conn-pos .pbig{font-family:var(--disp);font-weight:700;font-size:30px;letter-spacing:-.5px;}
#conn-pos .pm{font-family:var(--mono);font-size:14px;font-weight:500;}
#conn-pos .psince{font-family:var(--mono);font-size:10px;letter-spacing:.5px;color:var(--mut);}
#conn-pos .psince.top{padding-top:8px;}
/* gauge */
#conn-pos .pgauge{position:relative;height:6px;background:var(--line);border-radius:3px;margin:26px 4px 34px;}
#conn-pos .gfill{position:absolute;top:0;bottom:0;border-radius:3px;background:rgba(22,185,129,.22);}
#conn-pos .gmark{position:absolute;top:50%;transform:translate(-50%,-50%);}
#conn-pos .gdot{width:11px;height:11px;border-radius:50%;border:2.5px solid var(--void);}
#conn-pos .gdot.dn{background:var(--dn);} #conn-pos .gdot.up{background:var(--up);} #conn-pos .gdot.dim{background:var(--dim);}
#conn-pos .gtag{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;font-family:var(--mono);font-size:8.5px;letter-spacing:.5px;color:var(--mut);text-align:center;}
#conn-pos .gtag.above{top:-30px;} #conn-pos .gtag.below{top:14px;}
#conn-pos .gtag b{display:block;font-size:10.5px;color:var(--ink);font-weight:500;margin-top:1px;}
#conn-pos .pcushion{text-align:center;font-family:var(--mono);font-size:10.5px;margin-top:6px;}
/* since-entry price chart (replaces the linear gauge) */
#conn-pos .pchartwrap{margin:14px 0 6px;}
#conn-pos .pchd,#conn-thesis .pchd{font-family:var(--mono);font-size:10px;letter-spacing:.8px;color:var(--mut);text-transform:uppercase;margin-bottom:8px;}
#conn-pos .pchd b,#conn-thesis .pchd b{font-weight:700;}
#conn-pos .pchd b.up,#conn-thesis .pchd b.up,#conn-pos .pchd .cush,#conn-thesis .pchd .cush{color:var(--up);} #conn-pos .pchd b.dn,#conn-thesis .pchd b.dn{color:var(--dn);}
#conn-pos .pchd .cush,#conn-thesis .pchd .cush{color:var(--mut);}
#conn-pos .pchartbox,#conn-thesis .pchartbox{position:relative;}
#conn-pos .pchart,#conn-thesis .pchart{display:block;width:100%;height:auto;overflow:visible;}
#conn-pos .pchart-ph,#conn-thesis .pchart-ph{height:118px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10.5px;color:var(--mut);letter-spacing:.5px;border:1px dashed var(--line2);border-radius:10px;}
#conn-pos .pchlabels,#conn-thesis .pchlabels{display:flex;gap:12px;justify-content:center;margin-top:2px;flex-wrap:wrap;}
#conn-pos .pchlabels .lb,#conn-thesis .pchlabels .lb{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:9px;letter-spacing:.5px;color:var(--mut);text-transform:uppercase;}
#conn-pos .pchlabels .lb b,#conn-thesis .pchlabels .lb b{color:var(--ink);font-weight:500;}
#conn-pos .pchlabels .d,#conn-thesis .pchlabels .d{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
#conn-pos .pchlabels .d.up,#conn-thesis .pchlabels .d.up{background:var(--up);} #conn-pos .pchlabels .d.dn,#conn-thesis .pchlabels .d.dn{background:var(--dn);} #conn-pos .pchlabels .d.dim,#conn-thesis .pchlabels .d.dim{background:var(--dim);}
/* The Log: decision context — risk math line + what's-changed rows */
#conn-pos .prisk{margin-top:10px;font-family:var(--mono);font-size:10.5px;line-height:1.6;color:var(--mut);letter-spacing:.3px;}
#conn-pos .prisk b{font-weight:700;} #conn-pos .prisk b.dn{color:var(--dn);} #conn-pos .prisk b.up{color:var(--up);}
#conn-pos .pctx{display:flex;gap:10px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--line);}
#conn-pos .pctx:last-child{border-bottom:none;}
#conn-pos .pctx .k{font-family:var(--mono);font-size:8.5px;letter-spacing:1.2px;color:var(--mut);width:46px;flex-shrink:0;}
#conn-pos .pctx .tx{font-size:12px;line-height:1.5;color:var(--ink);min-width:0;}
#conn-pos .pctx .tx b.up{color:var(--up);} #conn-pos .pctx .tx b.dn{color:var(--dn);}
/* plan / thesis body */
#conn-pos .pbody{font-family:var(--disp);font-size:13.5px;line-height:1.5;color:var(--ink);}
#conn-pos.day .pbody{color:#2b2f37;}
#conn-pos .pbody.sm{font-size:13px;}
#conn-pos .pok{font-family:var(--mono);font-size:10.5px;letter-spacing:.5px;color:var(--up);margin-top:11px;}
#conn-pos .pwarn{font-family:var(--mono);font-size:10.5px;letter-spacing:.5px;color:var(--red);margin-top:11px;}
/* activity log */
#conn-pos .evt{display:flex;gap:11px;padding:5px 0;}
/* activity grouped by day — header folds the day's rows */
#conn-pos .evday{margin:0 0 2px;}
#conn-pos .evdhd{display:flex;align-items:center;gap:8px;padding:8px 0 5px;cursor:pointer;-webkit-tap-highlight-color:transparent;border-top:1px dashed var(--line);}
#conn-pos .evday:first-child .evdhd{border-top:none;}
#conn-pos .evdhd .caret{font-size:10px;color:var(--mut);width:12px;}
#conn-pos .evdhd span{font-family:var(--mono);font-size:9.5px;letter-spacing:1.6px;color:var(--mut);text-transform:uppercase;}
#conn-pos .evdhd i{font-style:normal;font-family:var(--mono);font-size:9px;color:var(--dim);margin-left:auto;}
#conn-pos .evday .evdbody{display:none;}
#conn-pos .evday.open .evdbody{display:block;}
#conn-pos .evt .rail{display:flex;flex-direction:column;align-items:center;flex:0 0 auto;padding-top:3px;width:10px;}
#conn-pos .evt .dot{width:9px;height:9px;border-radius:50%;background:var(--red);flex:0 0 auto;}
#conn-pos .evt .dot.now{background:var(--up);box-shadow:0 0 0 4px rgba(22,185,129,.16);}
#conn-pos .evt .line{width:1.5px;flex:1;background:var(--line);margin-top:3px;min-height:14px;}
#conn-pos .evt .et{font-family:var(--mono);font-size:9px;letter-spacing:1px;color:var(--dim);text-transform:uppercase;}
#conn-pos .evt .eh{font-family:var(--disp);font-size:13.5px;font-weight:500;color:var(--ink);margin:0 0 1px;}
#conn-pos .evt .es{font-family:var(--mono);font-size:10.5px;color:var(--mut);line-height:1.45;}
/* chips */
#conn-pos .pchips{display:flex;flex-wrap:wrap;gap:7px;}
#conn-pos .pchip{font-family:var(--mono);font-size:10px;letter-spacing:.5px;border:1px solid var(--line2);border-radius:100px;padding:6px 11px;color:var(--mut);}
#conn-pos .pchip b{color:var(--ink);font-weight:600;}
#conn-pos .pchip.g{border-color:rgba(22,185,129,.4);color:var(--up);}
/* actions */
#conn-pos .pacts{display:flex;gap:11px;padding:18px 22px 24px;}
#conn-pos .pbtn{flex:1;text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;padding:14px;border-radius:13px;cursor:pointer;}
#conn-pos .pbtn.ghost{border:1px solid var(--line2);color:var(--ink);}
#conn-pos .pbtn.red{background:var(--red);color:#fff;}
#conn-pos .pbtn.busy{opacity:.5;pointer-events:none;}
#conn-pos .pactmsg{padding:0 22px;font-family:var(--mono);font-size:11px;letter-spacing:.3px;line-height:1.5;min-height:0;color:var(--mut);}
#conn-pos .pactmsg:empty{display:none;}
#conn-pos .pactmsg.ok{color:var(--up);}
#conn-pos .pactmsg.err{color:var(--red);}
/* CLIMATE sectors: engine stance sub-line — weather vs climate, stated in place */
#conn-ui .cl-erline{font-family:var(--mono);font-size:8.5px;letter-spacing:1px;margin:-4px 0 10px;color:var(--mut);}
#conn-ui .cl-erline.fav{color:var(--up);}
#conn-ui .cl-erline.ben{color:#b3841f;}
/* ── CLIMATE Regime Deck ────────────────────────────────────────────── */
#conn-ui .dialcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 14px 12px;margin:4px 0 16px;box-shadow:0 1px 2px rgba(16,24,40,.05),0 6px 18px rgba(227,25,55,.07);}
#conn-ui .dialcard .dk{font-family:var(--mono);font-size:8.5px;letter-spacing:1.6px;color:var(--mut);}
#conn-ui .dialcard .dv{display:flex;align-items:baseline;gap:10px;margin:6px 0 8px;}
#conn-ui .dialcard .dv b{font-size:34px;font-weight:800;color:var(--ink);letter-spacing:-.5px;}
#conn-ui .dialcard .dv span{font-family:var(--mono);font-size:9px;color:var(--mut);letter-spacing:.8px;}
#conn-ui .dialcard .dbar{position:relative;height:6px;border-radius:3px;background:var(--line);overflow:visible;}
#conn-ui .dialcard .dbar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#e31937,#d9a441 45%,#16b981 75%);}
#conn-ui .dialcard .dbar em{position:absolute;top:-3px;width:2px;height:12px;background:var(--ink);opacity:.65;}
#conn-ui .dialcard .dh{font-family:var(--mono);font-size:9px;color:var(--mut);margin-top:7px;letter-spacing:.5px;}
#conn-ui .lyhead,#conn-ui .lyrow{display:grid;grid-template-columns:1fr 62px 52px 76px;align-items:baseline;gap:6px;padding:7px 18px;}
#conn-ui .lyhead{font-family:var(--mono);font-size:9px;letter-spacing:1.2px;color:var(--mut);border-bottom:1px solid var(--line);padding-bottom:5px;}
#conn-ui .lyrow{border-bottom:1px solid var(--line);}
#conn-ui .lyrow .ly{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--ink);letter-spacing:.6px;}
#conn-ui .lyrow .ly i{font-style:normal;font-size:8.5px;color:var(--mut);margin-left:5px;font-weight:400;}
#conn-ui .lyrow .wx,#conn-ui .lyrow .er,#conn-ui .lyrow .wt{font-family:var(--mono);font-size:10.5px;text-align:right;}
#conn-ui .lyrow .wx.up{color:var(--up);} #conn-ui .lyrow .wx.dn{color:var(--dn);}
#conn-ui .lyrow .er{color:var(--ink);font-weight:700;}
#conn-ui .lyrow .wt{color:var(--mut);}
#conn-ui .lyrow.ben .er{color:#b3841f;}
#conn-ui .lyrow.ben .ly{opacity:.75;}
#conn-ui .twchip{font-family:var(--mono);font-size:9px;letter-spacing:.8px;color:var(--mut);padding:8px 18px 2px;}
#conn-ui .twchip.ok{color:var(--up);} #conn-ui .twchip.bad{color:var(--dn);}

/* ── CLIMATE Storm Orbit (v3): HELM sky surface + orbit hero + mission tiles ── */
#conn-ui .cl-skyband{position:relative;height:250px;background:#07090e;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;margin-bottom:14px;}
#conn-ui.day .cl-skyband{background:#eaf0f7;}
#conn-ui .cl-skyband svg{width:100%;height:auto;max-height:166px;display:block;margin:0 auto;}
#conn-ui .cl-skyband .cap{position:absolute;left:22px;top:14px;font-family:var(--mono);font-size:9.5px;letter-spacing:2px;color:#566175;z-index:2;}
#conn-ui.day .cl-skyband .cap{color:#9aa3b0;}
#conn-ui .cl-skyband .livecap{position:absolute;right:22px;top:14px;font-family:var(--mono);font-size:9px;letter-spacing:1px;color:var(--up);z-index:2;}
#conn-ui .cl-fk{font-family:var(--mono);font-size:8.5px;letter-spacing:1.8px;color:var(--mut);padding:0 18px;margin-bottom:2px;}
#conn-ui .cl-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 18px 4px;}
#conn-ui .clt{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:11px 12px;box-shadow:0 1px 2px rgba(16,24,40,.04);}
#conn-ui .clt.hotb{border-color:rgba(227,25,55,.28);}
#conn-ui .clt .tk{font-family:var(--mono);font-size:9px;letter-spacing:1.1px;color:var(--mut);margin-bottom:5px;}
#conn-ui .clt .tv{font-size:21px;font-weight:800;color:var(--ink);letter-spacing:-.4px;}
#conn-ui .clt .tv.dn{color:var(--dn);} #conn-ui .clt .tv.amb{color:#b3841f;} #conn-ui .clt .tv.up{color:var(--up);}
#conn-ui .clt .ts{font-family:var(--mono);font-size:8.5px;color:var(--mut);margin-top:3px;line-height:1.5;}
#conn-ui .clt .ts.amb{color:#b3841f;}
#conn-ui .clt .ts2{font-family:var(--mono);font-size:8.5px;color:var(--mut);margin-top:6px;}
#conn-ui .clt .ts2.amb{color:#b3841f;}
#conn-ui .clt .todds .tr{display:flex;justify-content:space-between;font-family:var(--mono);font-size:9px;color:var(--ink);padding:2px 0;}
#conn-ui .clt .todds .tr b{font-weight:700;}
#conn-ui .clt .tpanel{font-family:var(--mono);font-size:8.5px;line-height:2;color:var(--ink);}
#conn-ui .clt .tpanel .pd{white-space:nowrap;margin-right:4px;}
#conn-ui .clt .tpanel i{font-style:normal;}
#conn-ui .clt .tpanel i.up{color:var(--up);} #conn-ui .clt .tpanel i.dn{color:var(--dn);} #conn-ui .clt .tpanel i.amb{color:#d9a441;}

/* forecast narrative inside the sky band — anchored to the band's foot */
#conn-ui .cl-skyband .fcast{position:absolute;left:0;right:0;bottom:0;padding:9px 22px 12px;border-top:1px solid #1c2230;font-family:var(--disp);font-size:11.5px;font-weight:600;line-height:1.42;color:var(--ink);}
#conn-ui.day .cl-skyband .fcast{border-top-color:rgba(40,60,90,.12);}
#conn-ui .cl-skyband .fcast .fk{display:block;font-style:normal;font-family:var(--mono);font-size:9px;letter-spacing:2px;color:#566175;margin-bottom:4px;}
#conn-ui.day .cl-skyband .fcast .fk{color:#8a93a0;}
#conn-ui .cl-skyband .fcast b{font-weight:800;}
#conn-ui .cl-skyband .fcast b.up{color:var(--up);}
#conn-ui .cl-skyband .fcast b.amb{color:#b3841f;}
#conn-ui .cl-skyband .fcast .r{color:var(--dn);font-weight:800;}
/* CLIMATE layer expansion — stock makeup accordion */
#conn-ui .lyrow{cursor:pointer;-webkit-tap-highlight-color:transparent;}
#conn-ui .lyrow .ly .car{text-decoration:none;font-style:normal;color:var(--mut);font-size:9px;margin-right:6px;}
#conn-ui .lyrow.open{border-bottom:none;}
#conn-ui .lyexp{border-bottom:1px solid var(--line);padding:2px 18px 10px 30px;background:rgba(138,147,160,.05);}
#conn-ui .lyexp .lyx{display:grid;grid-template-columns:1fr 56px 64px 64px;gap:6px;align-items:baseline;padding:6px 0;border-bottom:1px dashed var(--line);font-family:var(--mono);font-size:10px;cursor:pointer;}
#conn-ui .lyexp .lyx:last-child{border-bottom:none;}
#conn-ui .lyexp .lyx b{color:var(--ink);font-weight:700;}
#conn-ui .lyexp .lyx b s{text-decoration:none;color:var(--up);font-size:8px;}
#conn-ui .lyexp .lyx .up{color:var(--up);} #conn-ui .lyexp .lyx .dn{color:var(--dn);}
#conn-ui .lyexp .lyx .cv{color:var(--mut);} #conn-ui .lyexp .lyx .sg{color:var(--mut);text-align:right;}
/* order-row placement stamp — when the order was submitted */
#conn-ui .wrow.ord .od .odt{font-style:normal;font-family:var(--mono);font-size:8px;color:var(--mut);letter-spacing:.5px;margin-left:7px;}

/* HEDGE tab */
#conn-ui .hgcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:13px;margin:12px 0;}
#conn-ui .hgcard.armed{border-color:rgba(227,25,55,.28);}
#conn-ui .hgk{font-family:var(--mono);font-size:8.5px;letter-spacing:1.6px;color:var(--mut);margin-bottom:8px;}
/* Hedge shield glyph — dormant until macro conditions arm it. CLEAR = greyed +
   faded (visually inactive); ARM = amber-lit; FULL = red-lit + pulse. */
#conn-ui .hgsh{display:inline-block;line-height:1;transition:filter .3s ease,opacity .3s ease;}
#conn-ui .hgsh-clear{filter:grayscale(1);opacity:.32;}
#conn-ui .hgsh-arm{opacity:1;filter:drop-shadow(0 0 3px rgba(217,164,65,.7));}
#conn-ui .hgsh-full{opacity:1;filter:drop-shadow(0 0 4px rgba(227,25,55,.85));animation:hgshFull 1.6s ease-in-out infinite;}
@keyframes hgshFull{0%,100%{transform:scale(1);}50%{transform:scale(1.14);}}
#conn-ui .hgrow{display:flex;gap:10px;align-items:baseline;font-family:var(--mono);font-size:10.5px;padding:5px 0;border-bottom:1px dashed var(--line);}
#conn-ui .hgrow b{color:var(--ink);} #conn-ui .hgrow .mut{color:var(--mut);margin-left:auto;}
#conn-ui .hgnone{font-size:12.5px;color:var(--mut);padding:4px 0 8px;}
#conn-ui .hgbud{font-family:var(--mono);font-size:9px;color:var(--mut);margin-top:8px;}
#conn-ui .hgch{font-family:var(--mono);font-size:8px;color:var(--mut);margin-top:6px;line-height:1.6;border-top:1px solid var(--line);padding-top:7px;}
/* BOOK chart ghost-tape sub-line: index returns + alpha for the window */
#conn-ui .bkchart .pchbench{font-family:var(--mono);font-size:8.5px;letter-spacing:.6px;color:var(--mut);padding:1px 2px 4px;}
#conn-ui .bkchart .pchbench i{font-style:normal;font-weight:700;}
#conn-ui .bkchart .pchbench b.up{color:var(--up);} #conn-ui .bkchart .pchbench b.dn{color:var(--dn);}
#conn-ui .flscreen .flrow b.amb{color:#b3841f;}
#conn-ui .flscreen .flrow b .up{color:var(--up);} #conn-ui .flscreen .flrow b .dn{color:var(--dn);}
