/* ════════════════════════════════════════════════════════════
   TraderIntel — Navegador de Análises
   drawer.css · v1 · 2026-05-23
   All styles scoped with .ti-* prefix to avoid collision
   ════════════════════════════════════════════════════════════ */

/* ─── DRAWER PANEL ─── */
.ti-drawer{position:fixed;top:56px;right:0;height:calc(100vh - 56px);width:min(900px, 75vw);
  background:#fafafa;color:#1f2937;
  transform:translateX(100%);
  transition:transform 280ms cubic-bezier(0.32,0.72,0,1),width 240ms ease;
  border-left:0.5px solid rgba(124,58,237,0.3);
  display:flex;flex-direction:column;
  z-index:100;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
.ti-drawer.peek{width:340px;transform:translateX(0);box-shadow:-12px 0 32px rgba(10,4,32,0.25)}
.ti-drawer.open{transform:translateX(0);box-shadow:-8px 0 28px rgba(10,4,32,0.2)}

/* ─── HANDLE ─── */
.ti-handle{position:absolute;left:-36px;top:50%;transform:translateY(-50%);
  width:36px;height:220px;
  background:linear-gradient(180deg,#7C3AED 0%,#5b21b6 100%);
  border-radius:18px 0 0 18px;
  box-shadow:-6px 0 22px rgba(124,58,237,0.42);
  cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:space-between;
  padding:18px 0 20px;
  user-select:none;
  z-index:101;
  transition:background 200ms ease}
.ti-handle:hover{background:linear-gradient(180deg,#8B5CF6 0%,#6d28d9 100%)}
.ti-handle-icon{color:#fff;display:flex}
.ti-handle-icon svg{width:18px;height:18px}
.ti-handle-label{writing-mode:vertical-rl;transform:rotate(180deg);
  color:#fff;font-size:11px;font-weight:500;letter-spacing:0.22em;text-transform:uppercase}
.ti-handle-badge{width:24px;height:24px;border-radius:12px;background:#fff;
  color:#5b21b6;font-size:12px;font-weight:600;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 6px rgba(0,0,0,0.15)}
.ti-handle.has-update::before{content:'';position:absolute;top:-4px;left:-4px;
  width:12px;height:12px;border-radius:50%;background:#BA7517;
  animation:ti-pulse 2.4s ease-in-out infinite;
  box-shadow:0 0 0 2px #0a0420}
@keyframes ti-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.45);opacity:0.55}}
@keyframes ti-spin{to{transform:rotate(360deg)}}

/* ─── PEEK VIEW ─── */
.ti-peek-view{display:none;flex-direction:column;flex:1;background:#fafafa;overflow:hidden}
.ti-drawer.peek .ti-peek-view{display:flex}
.ti-drawer.peek .ti-meta,.ti-drawer.peek .ti-body{display:none}

.ti-pv-header{padding:18px 18px 14px;border-bottom:0.5px solid #ede9fe;background:linear-gradient(180deg,#faf9ff 0%,#fff 100%);flex-shrink:0;display:flex;align-items:center;justify-content:space-between}
.ti-pv-title{font-size:11px;color:#5b21b6;letter-spacing:0.14em;text-transform:uppercase;font-weight:600}
.ti-pv-sync{font-size:10.5px;color:#1D9E75;display:flex;align-items:center;gap:5px}
.ti-pv-sync .dot{width:6px;height:6px;border-radius:50%;background:#1D9E75}
.ti-pv-actions{padding:12px 14px 6px;flex-shrink:0}
.ti-pv-list{flex:1;overflow-y:auto;padding:8px 14px 12px}
.ti-pv-empty{padding:40px 16px;text-align:center;color:#888780;font-size:12px}
.ti-pv-empty-icon{width:48px;height:48px;margin:0 auto 14px;border-radius:12px;background:#EEEDFE;color:#5b21b6;display:flex;align-items:center;justify-content:center}
.ti-pv-empty-icon svg{width:22px;height:22px}
.ti-pv-empty-title{font-size:13px;font-weight:500;color:#1e1b4b;margin-bottom:4px}
.ti-pv-item{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:10px;background:#fafafa;border:0.5px solid #eee;cursor:pointer;margin-bottom:6px;position:relative;transition:background 120ms ease}
.ti-pv-item:hover{background:#f3f3f3}
.ti-pv-item.active{background:#EEEDFE;border-color:#CECBF6}
.ti-pv-item.active::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;background:#7C3AED;border-radius:0 2px 2px 0}
.ti-pv-item-symbol{font-size:14px;font-weight:600;color:#1e1b4b}
.ti-pv-item-type{font-size:10.5px;color:#5b21b6;background:#EEEDFE;padding:2px 8px;border-radius:6px;font-weight:500}
.ti-pv-item.active .ti-pv-item-type{background:#CECBF6;color:#3C3489}
.ti-pv-item-score{font-size:14px;font-weight:600;color:#1D9E75;margin-left:auto}
.ti-pv-item-score.stale{color:#BA7517}
.ti-pv-item-spinner{margin-left:auto;width:14px;height:14px;border:1.5px solid #7C3AED;border-top-color:transparent;border-radius:50%;animation:ti-spin 0.9s linear infinite}
.ti-pv-footer{padding:12px 14px 14px;border-top:0.5px solid #ede9fe;background:#faf9ff;flex-shrink:0}
.ti-pv-cta{width:100%;background:#fff;color:#5b21b6;border:0.5px solid #CECBF6;padding:11px 12px;border-radius:9px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:6px;transition:background 120ms ease}
.ti-pv-cta:hover{background:#EEEDFE;border-color:#AFA9EC}
.ti-pv-cta svg{width:14px;height:14px}
.ti-pv-hint{text-align:center;font-size:11px;color:#888780;margin-top:10px}

/* ─── META + ACTIONS ─── */
.ti-meta{background:#fff;border-bottom:0.5px solid #e5e7eb;padding:9px 16px 0;flex-shrink:0}
.ti-meta-row{display:flex;align-items:center;gap:8px;padding-bottom:9px;border-bottom:0.5px solid #f3f4f6;flex-wrap:wrap}
.ti-grip{color:#9ca3af;display:flex}
.ti-grip svg{width:13px;height:13px}
.ti-meta-label{font-size:10.5px;font-weight:600;color:#5b21b6;letter-spacing:0.1em;text-transform:uppercase}
.ti-meta-pill{font-size:10px;color:#1D9E75;display:flex;align-items:center;gap:5px;padding:3px 9px;background:#EAF3DE;border-radius:9px}
.ti-meta-pill .dot{width:5px;height:5px;border-radius:50%;background:#1D9E75}
.ti-meta-pill.dev{color:#5F5E5A;background:#F1EFE8}
.ti-meta-pill.dev .dot{background:#888780}
.ti-meta-actions{margin-left:auto;display:flex;gap:2px}
.ti-icon-btn{border:none;background:transparent;padding:5px 7px;color:#5F5E5A;cursor:pointer;border-radius:6px;display:flex;align-items:center}
.ti-icon-btn:hover{background:#F1EFE8;color:#3C3489}
.ti-icon-btn svg{width:15px;height:15px}

/* ─── TICKER STRIP (3-zone: pin-scroll-pin) ─── */
.ti-strip{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:stretch;border-bottom:0.5px solid #f3f4f6;background:#fafafa;position:relative;overflow:visible}

.ti-gerar-pill{display:flex;align-items:center;gap:7px;padding:7px 14px;background:#7C3AED;color:#fff;font-size:13px;font-weight:500;cursor:pointer;border-radius:9px;margin:6px 8px 6px 6px;align-self:center;flex-shrink:0;transition:background 140ms ease,transform 140ms ease;white-space:nowrap;z-index:2;font-family:inherit;border:none}
.ti-gerar-pill:hover{background:#6d28d9;transform:translateY(-1px)}
.ti-gerar-pill svg{width:13px;height:13px}

.ti-scroll-wrap{position:relative;min-width:0;overflow:hidden}
.ti-scroll{display:flex;align-items:stretch;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none}
.ti-scroll::-webkit-scrollbar{display:none}
.ti-scroll-wrap::before,.ti-scroll-wrap::after{content:'';position:absolute;top:0;bottom:0;width:18px;pointer-events:none;z-index:1;opacity:0;transition:opacity 150ms ease}
.ti-scroll-wrap::before{left:0;background:linear-gradient(90deg,#fafafa 0%,transparent 100%)}
.ti-scroll-wrap::after{right:0;background:linear-gradient(270deg,#fafafa 0%,transparent 100%)}
.ti-scroll-wrap.has-l::before{opacity:1}
.ti-scroll-wrap.has-r::after{opacity:1}

.ti-tab{display:flex;flex-direction:column;padding:8px 14px 9px;min-width:130px;max-width:200px;cursor:pointer;border-bottom:2px solid transparent;background:#fafafa;flex-shrink:0}
.ti-tab:hover{background:#f5f5f5}
.ti-tab.active{background:#fff;border-bottom-color:#7C3AED}
.ti-tab-top{display:flex;align-items:center;gap:6px}
.ti-tab-status{width:6px;height:6px;border-radius:50%;background:#1D9E75;flex-shrink:0}
.ti-tab-status.stale{background:#BA7517}
.ti-tab-status.gen{border:1.5px solid #7C3AED;border-top-color:transparent;background:transparent;animation:ti-spin 0.9s linear infinite;width:9px;height:9px}
.ti-tab-symbol{font-size:13px;font-weight:600;color:#1e1b4b;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ti-tab.active .ti-tab-symbol{color:#3C3489}
.ti-tab-count{font-size:10px;color:#888780;background:#F1EFE8;padding:1px 6px;border-radius:8px;font-weight:500}
.ti-tab.active .ti-tab-count{background:#EEEDFE;color:#5b21b6}
.ti-tab-close{padding:2px;color:#B4B2A9;cursor:pointer;display:flex;border-radius:4px}
.ti-tab-close:hover{background:#F1EFE8;color:#993336}
.ti-tab-close svg{width:11px;height:11px}
.ti-tab-sub{font-size:10px;color:#888780;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ti-tab.update-available .ti-tab-sub{color:#854F0B}

.ti-reopen-wrap{position:relative}
/* "Minhas Análises" labelled pill (Option 1) */
.ti-reopen-btn{position:relative;display:inline-flex;align-items:center;gap:7px;padding:7px 9px 7px 12px;color:#5b21b6;cursor:pointer;border-radius:20px;margin:6px 6px 6px 4px;align-self:center;flex-shrink:0;background:#EEEDFE;border:0.5px solid #CECBF6;font-family:inherit;transition:background 140ms ease,transform .12s ease,box-shadow .15s ease;z-index:2;white-space:nowrap}
.ti-reopen-btn:hover{background:#e4ddfa;transform:translateY(-1px);box-shadow:0 4px 12px rgba(124,58,237,.16)}
.ti-reopen-btn svg{width:15px;height:15px}
.ti-reopen-dot{width:7px;height:7px;border-radius:50%;background:#7C3AED;flex-shrink:0;animation:ti-reopen-pulse 2s infinite}
@keyframes ti-reopen-pulse{0%,100%{box-shadow:0 0 0 0 rgba(124,58,237,.5)}50%{box-shadow:0 0 0 5px rgba(124,58,237,0)}}
.ti-reopen-text{font-size:12.5px;font-weight:700;letter-spacing:-.01em}
/* count chip lives INSIDE the pill (not floating) — caps at 999+ */
.ti-reopen-badge{position:static;background:#7C3AED;color:#fff;font-size:10.5px;font-weight:800;min-width:20px;height:19px;border-radius:20px;display:flex;align-items:center;justify-content:center;padding:0 6px;border:none;flex-shrink:0}
/* full count in the menu header */
.ti-reopen-headcount{display:inline-flex;align-items:center;justify-content:center;background:#EEEDFE;color:#5b21b6;font-size:11px;font-weight:800;padding:1px 8px;border-radius:20px;margin-left:8px;vertical-align:middle}

.ti-reopen-popup{position:absolute;top:calc(100% + 6px);right:6px;width:320px;background:#fff;border:0.5px solid #CECBF6;border-radius:12px;box-shadow:0 8px 28px rgba(10,4,32,0.12),0 2px 8px rgba(10,4,32,0.06);z-index:10;overflow:hidden;display:none}
.ti-reopen-popup.open{display:block;animation:ti-popup-in 180ms ease both}
@keyframes ti-popup-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.ti-reopen-head{padding:11px 14px;border-bottom:0.5px solid #ede9fe;background:linear-gradient(180deg,#faf9ff,#fff);display:flex;align-items:center;justify-content:space-between;gap:10px}
.ti-reopen-head-text{flex:1;min-width:0}
.ti-reopen-refresh{flex-shrink:0;background:transparent;border:1px solid #DDD6FE;border-radius:8px;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#7C3AED;transition:background .15s,border-color .15s,transform .12s;padding:0}
.ti-reopen-refresh:hover{background:#F5F3FF;border-color:#7C3AED;transform:translateY(-1px)}
.ti-reopen-refresh:active{transform:translateY(0)}
.ti-reopen-refresh svg{width:13px;height:13px;transform-origin:center;transform-box:fill-box;display:block}
.ti-reopen-refresh.ti-spinning svg{animation:ti-spin .8s linear infinite;transform-origin:center;transform-box:fill-box}
@keyframes ti-spin {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
.ti-reopen-eyebrow{font-size:10px;letter-spacing:0.12em;text-transform:uppercase;font-weight:600;color:#5b21b6}
.ti-reopen-title{font-size:13px;font-weight:500;color:#1e1b4b;margin-top:2px}
.ti-reopen-search{padding:8px 12px 4px;background:#fff}
.ti-reopen-input{width:100%;border:0.5px solid #ede9fe;background:#fafafa;padding:6px 10px;border-radius:7px;font-size:12px;color:#1e1b4b;outline:none;font-family:inherit}
.ti-reopen-input:focus{border-color:#AFA9EC;background:#fff}
.ti-reopen-list{max-height:min(520px,62vh);overflow-y:auto;padding:4px 0}
.ti-reopen-empty{padding:28px 16px;text-align:center;color:#888780;font-size:12px}
.ti-reopen-item{padding:8px 14px;cursor:pointer;display:flex;align-items:center;gap:9px;transition:background 120ms ease;position:relative}
.ti-reopen-item:hover{background:#faf9ff}
.ti-reopen-item-dot{width:6px;height:6px;border-radius:50%;background:#1D9E75;flex-shrink:0}
.ti-reopen-item-dot.stale{background:#BA7517}
.ti-reopen-item-info{flex:1;min-width:0}
.ti-reopen-item-sym{font-size:12.5px;font-weight:600;color:#1e1b4b}
.ti-reopen-item-meta{font-size:10.5px;color:#888780;margin-top:1px}
.ti-reopen-item-type{font-size:10px;color:#5b21b6;background:#EEEDFE;padding:1px 6px;border-radius:5px;font-weight:500;flex-shrink:0;transition:opacity .12s ease}
.ti-reopen-item:hover .ti-reopen-item-type{opacity:0}
.ti-reopen-open{position:absolute;right:14px;top:50%;transform:translateY(-50%) translateX(5px);opacity:0;pointer-events:none;background:#7C3AED;color:#fff;border:none;border-radius:6px;padding:4px 12px;font-size:10.5px;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .14s ease,transform .14s ease}
.ti-reopen-item:hover .ti-reopen-open{opacity:1;transform:translateY(-50%) translateX(0);pointer-events:auto}
.ti-reopen-open:hover{background:#6d28d9}
.ti-reopen-item-type.warm{color:#854F0B;background:#FAEEDA}
.ti-reopen-foot{padding:8px 14px;border-top:0.5px solid #ede9fe;background:#fafafa;font-size:10.5px;color:#888780;display:flex;align-items:center;justify-content:space-between}

/* ─── BODY ─── */
.ti-body{flex:1;overflow-y:auto;padding:14px 18px 20px;position:relative}
.ti-body-empty{padding:60px 24px;text-align:center}
.ti-body-empty-icon{width:72px;height:72px;margin:0 auto 18px;border-radius:18px;background:#EEEDFE;color:#5b21b6;display:flex;align-items:center;justify-content:center}
.ti-body-empty-icon svg{width:32px;height:32px}
.ti-body-empty-title{font-size:18px;font-weight:500;color:#1e1b4b;margin-bottom:6px}
.ti-body-empty-sub{font-size:13px;color:#5F5E5A;margin-bottom:20px;line-height:1.5}
.ti-body-empty-cta{background:#7C3AED;color:#fff;border:none;padding:10px 20px;border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:7px}
.ti-body-empty-cta:hover{background:#6d28d9}
.ti-body-empty-cta svg{width:13px;height:13px}

/* ═══════════════════════════════════════════════════════════
   GERAR MODAL
   ═══════════════════════════════════════════════════════════ */
.ti-modal{position:fixed;inset:0;background:rgba(10,4,32,0.45);z-index:200;display:none;align-items:center;justify-content:center;padding:24px;animation:ti-modal-fade 200ms ease both;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
.ti-modal.open{display:flex}
@keyframes ti-modal-fade{from{opacity:0}to{opacity:1}}
.ti-modal-card{width:100%;max-width:680px;background:#fafafa;border-radius:18px;overflow:hidden;border:0.5px solid #CECBF6;box-shadow:0 20px 60px rgba(10,4,32,0.4),0 4px 12px rgba(10,4,32,0.2);display:flex;flex-direction:column;max-height:calc(100vh - 80px);animation:ti-modal-slide 240ms cubic-bezier(0.32,0.72,0,1) both}
@keyframes ti-modal-slide{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}

.ti-gm-top{padding:14px 18px;border-bottom:0.5px solid #ede9fe;background:linear-gradient(180deg,#fff 0%,#faf9ff 100%);display:flex;align-items:center;gap:12px;flex-shrink:0}
.ti-gm-eyebrow{font-size:10px;color:#5b21b6;letter-spacing:0.16em;text-transform:uppercase;font-weight:600}
.ti-gm-title{font-size:15px;font-weight:500;color:#1e1b4b;margin:2px 0 0}
.ti-gm-close{margin-left:auto;border:none;background:#F1EFE8;color:#5F5E5A;width:28px;height:28px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.ti-gm-close:hover{background:#D3D1C7;color:#1f2937}
.ti-gm-close svg{width:13px;height:13px}

.ti-gm-search-wrap{padding:14px 18px 12px;background:#fafafa;flex-shrink:0}
.ti-gm-search{display:flex;align-items:center;background:#fff;border:0.5px solid #ede9fe;border-radius:14px;padding:6px 6px 6px 14px;gap:10px;transition:border-color 180ms ease,box-shadow 180ms ease}
.ti-gm-search:focus-within{border-color:#AFA9EC;box-shadow:0 0 0 3px rgba(124,58,237,0.08)}
.ti-gm-score-pill{display:inline-flex;align-items:center;gap:6px;background:#1a1040;padding:4px 9px 4px 7px;border-radius:11px;flex-shrink:0}
.ti-gm-score-dot{width:4px;height:4px;border-radius:50%;background:#7C3AED}
.ti-gm-score-ti{font-size:10px;color:#fff;font-weight:600}
.ti-gm-score-val{font-size:13px;font-weight:600;color:#FAC775;margin-left:5px}
.ti-gm-search-sep{width:1px;height:18px;background:#ede9fe;flex-shrink:0}
.ti-gm-search input{border:none;outline:none;flex:1;font-size:14px;font-weight:500;color:#1e1b4b;background:transparent;padding:6px 0;font-family:inherit;min-width:0}
.ti-gm-search input::placeholder{color:#B4B2A9;font-weight:400}
.ti-gm-search-go{background:#7C3AED;color:#fff;border:none;width:36px;height:36px;border-radius:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ti-gm-search-go:hover{background:#6d28d9}
.ti-gm-search-go svg{width:15px;height:15px}

.ti-gm-ticker{margin:0 18px 14px;background:#fff;border:0.5px solid #ede9fe;border-radius:13px;padding:13px 14px;display:flex;align-items:center;gap:12px;flex-shrink:0}
.ti-gm-logo{width:42px;height:42px;border-radius:9px;background:linear-gradient(135deg,#5b21b6 0%,#7C3AED 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:600;flex-shrink:0}
.ti-gm-tk-info{flex:1;min-width:0}
.ti-gm-tk-line1{display:flex;align-items:center;gap:8px;margin-bottom:3px;flex-wrap:wrap}
.ti-gm-tk-sym{font-size:16px;font-weight:600;color:#1e1b4b}
.ti-gm-tk-type{font-size:10px;font-weight:500;color:#854F0B;background:#FAEEDA;padding:2px 7px;border-radius:5px}
.ti-gm-tk-sector{font-size:10px;font-weight:500;color:#3C3489;background:#EEEDFE;padding:2px 7px;border-radius:5px}
.ti-gm-tk-line2{font-size:11.5px;color:#888780}
.ti-gm-tk-price{text-align:right;flex-shrink:0}
.ti-gm-tk-price-val{font-size:17px;font-weight:600;color:#1e1b4b;line-height:1.1}
.ti-gm-tk-price-chg{font-size:11.5px;font-weight:500;margin-top:2px}

.ti-gm-body{flex:1;overflow-y:auto;padding:8px 18px 18px}

.ti-gn-eyebrow{font-size:10px;color:#888780;letter-spacing:0.16em;text-transform:uppercase;font-weight:600;margin:14px 0 10px}
.ti-gn-eyebrow:first-child{margin-top:0}

.ti-gn-hero{position:relative;background:linear-gradient(135deg,#5b21b6 0%,#7C3AED 65%,#A78BFA 100%);border-radius:16px;padding:18px 20px;margin-bottom:14px;overflow:hidden;cursor:pointer;transition:transform 220ms cubic-bezier(0.32,0.72,0,1)}
.ti-gn-hero:hover{transform:translateY(-2px)}
.ti-gn-hero::before{content:'';position:absolute;right:-40px;top:-40px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,0.16),transparent 70%);pointer-events:none}
.ti-gn-hero-row{display:grid;grid-template-columns:70px 1fr auto;gap:14px;align-items:center;position:relative;z-index:1}
.ti-gn-hero-icon{width:70px;height:70px;border-radius:15px;background:rgba(255,255,255,0.18);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.ti-gn-hero-icon-stack{position:relative;width:40px;height:40px}
.ti-gn-hero-icon-stack svg{position:absolute;inset:0;width:40px;height:40px;color:#fff;opacity:0;animation:ti-gn-cycle 6s infinite}
.ti-gn-hero-icon-stack svg:nth-child(1){animation-delay:0s}
.ti-gn-hero-icon-stack svg:nth-child(2){animation-delay:1.5s}
.ti-gn-hero-icon-stack svg:nth-child(3){animation-delay:3s}
.ti-gn-hero-icon-stack svg:nth-child(4){animation-delay:4.5s}
@keyframes ti-gn-cycle{0%,4%{opacity:0;transform:translateY(8px) scale(0.9)}8%,22%{opacity:1;transform:translateY(0) scale(1)}26%,100%{opacity:0;transform:translateY(-8px) scale(0.9)}}
.ti-gn-hero-badge{display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,0.18);color:#fff;font-size:9.5px;font-weight:500;padding:2px 8px;border-radius:7px;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:5px}
.ti-gn-hero-badge .dot{width:4px;height:4px;border-radius:50%;background:#fff}
.ti-gn-hero h2{font-size:19px;font-weight:500;color:#fff;margin:0 0 3px}
.ti-gn-hero-sub{font-size:12px;color:rgba(255,255,255,0.82);line-height:1.4;margin:0}
.ti-gn-hero-price{background:#fff;color:#5b21b6;padding:7px 12px;border-radius:9px;font-size:12px;font-weight:500;white-space:nowrap}
.ti-gn-hero-price strong{font-size:13px}

.ti-gn-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ti-gn-cat{position:relative;background:#fff;border:0.5px solid #e5e7eb;border-radius:12px;cursor:pointer;overflow:hidden;transition:border-color 180ms ease}
.ti-gn-cat:hover{border-color:#AFA9EC}
.ti-gn-cat.expanded{border-color:#7C3AED;background:#faf9ff}
.ti-gn-cat-head{display:flex;align-items:center;gap:12px;padding:12px 14px}
.ti-gn-cat-icon{width:38px;height:38px;border-radius:10px;background:#EEEDFE;display:flex;align-items:center;justify-content:center;color:#5b21b6;flex-shrink:0;transition:background 180ms ease,color 180ms ease,transform 180ms ease}
.ti-gn-cat:hover .ti-gn-cat-icon{background:#CECBF6;transform:scale(1.04)}
.ti-gn-cat.expanded .ti-gn-cat-icon{background:#7C3AED;color:#fff}
.ti-gn-cat-icon.warm{background:#FAEEDA;color:#854F0B}
.ti-gn-cat:hover .ti-gn-cat-icon.warm{background:#FAC775}
.ti-gn-cat.expanded .ti-gn-cat-icon.warm{background:#BA7517;color:#fff}
.ti-gn-cat-icon.red{background:#FCEBEB;color:#A32D2D}
.ti-gn-cat:hover .ti-gn-cat-icon.red{background:#F7C1C1}
.ti-gn-cat.expanded .ti-gn-cat-icon.red{background:#A32D2D;color:#fff}
.ti-gn-cat-icon svg{width:20px;height:20px}
.ti-gn-cat-info{flex:1;min-width:0}
.ti-gn-cat-title{font-size:13px;font-weight:500;color:#1e1b4b;margin:0}
.ti-gn-cat-sub{font-size:10.5px;color:#888780;margin:2px 0 0}
.ti-gn-cat-chev{color:#B4B2A9;transition:transform 220ms ease,color 180ms ease}
.ti-gn-cat:hover .ti-gn-cat-chev{color:#5b21b6}
.ti-gn-cat.expanded .ti-gn-cat-chev{transform:rotate(180deg);color:#5b21b6}
.ti-gn-cat-chev svg{width:13px;height:13px}
.ti-gn-cat-price{font-size:10.5px;color:#5b21b6;font-weight:500;background:#EEEDFE;padding:2px 7px;border-radius:5px}
.ti-gn-cat:hover .ti-gn-cat-price{background:#CECBF6;color:#3C3489}

.ti-gn-options{max-height:0;overflow:hidden;transition:max-height 320ms cubic-bezier(0.32,0.72,0,1)}
.ti-gn-cat.expanded .ti-gn-options{max-height:400px}
.ti-gn-options-inner{padding:0 10px 10px;display:flex;flex-direction:column;gap:5px}
.ti-gn-opt{display:flex;align-items:center;gap:9px;padding:8px 10px;background:#fff;border:0.5px solid #ede9fe;border-radius:8px;cursor:pointer;transition:background 140ms ease,border-color 140ms ease,transform 140ms ease;opacity:0;transform:translateY(-6px)}
.ti-gn-cat.expanded .ti-gn-opt{opacity:1;transform:translateY(0);transition:opacity 240ms ease,transform 240ms ease,background 140ms ease,border-color 140ms ease}
.ti-gn-cat.expanded .ti-gn-opt:nth-child(1){transition-delay:60ms}
.ti-gn-cat.expanded .ti-gn-opt:nth-child(2){transition-delay:110ms}
.ti-gn-cat.expanded .ti-gn-opt:nth-child(3){transition-delay:160ms}
.ti-gn-cat.expanded .ti-gn-opt:nth-child(4){transition-delay:210ms}
.ti-gn-opt:hover{background:#EEEDFE;border-color:#AFA9EC;transform:translateX(2px)}
.ti-gn-opt-dot{width:6px;height:6px;border-radius:50%;background:#7C3AED;flex-shrink:0}
.ti-gn-opt-warm .ti-gn-opt-dot{background:#BA7517}
.ti-gn-opt-name{font-size:12px;font-weight:500;color:#1e1b4b;flex:1}
.ti-gn-opt-desc{font-size:10px;color:#888780;display:block;font-weight:400;margin-top:1px}
.ti-gn-opt-tok{font-size:10.5px;color:#5b21b6;font-weight:500;background:#EEEDFE;padding:2px 6px;border-radius:5px}
.ti-gn-opt-warm .ti-gn-opt-tok{color:#854F0B;background:#FAEEDA}
.ti-gn-opt-arrow{color:#CECBF6;font-size:13px;font-weight:500}
.ti-gn-opt:hover .ti-gn-opt-arrow{color:#5b21b6}

/* Per-icon hover animations */
.ti-gn-cat:hover .ti-i-clock .hand-h{transform-origin:12px 12px;animation:ti-clock-h 4s linear infinite}
.ti-gn-cat:hover .ti-i-clock .hand-m{transform-origin:12px 12px;animation:ti-clock-m 1.2s linear infinite}
@keyframes ti-clock-h{to{transform:rotate(360deg)}}
@keyframes ti-clock-m{to{transform:rotate(360deg)}}
.ti-gn-cat:hover .ti-i-chart .line-up{animation:ti-chart-pulse 1.4s ease-in-out infinite;transform-origin:center}
@keyframes ti-chart-pulse{0%,100%{transform:translateY(0)}25%{transform:translateY(-2px)}50%{transform:translateY(2px)}75%{transform:translateY(-1px)}}
.ti-gn-cat:hover .ti-i-bars .bar-1{transform-origin:6px 20px;animation:ti-bar-1 1.2s ease-in-out infinite}
.ti-gn-cat:hover .ti-i-bars .bar-2{transform-origin:12px 20px;animation:ti-bar-2 1.2s ease-in-out infinite}
.ti-gn-cat:hover .ti-i-bars .bar-3{transform-origin:18px 20px;animation:ti-bar-3 1.2s ease-in-out infinite}
@keyframes ti-bar-1{0%,100%{transform:scaleY(0.5)}50%{transform:scaleY(1)}}
@keyframes ti-bar-2{0%,100%{transform:scaleY(1)}50%{transform:scaleY(0.6)}}
@keyframes ti-bar-3{0%,100%{transform:scaleY(0.7)}50%{transform:scaleY(1)}}
.ti-gn-cat:hover .ti-i-target .ring-out{transform-origin:12px 12px;animation:ti-ring 1.6s ease-out infinite}
.ti-gn-cat:hover .ti-i-target .ring-mid{transform-origin:12px 12px;animation:ti-ring 1.6s ease-out infinite;animation-delay:0.5s}
@keyframes ti-ring{0%{transform:scale(0.6);opacity:1}100%{transform:scale(1.15);opacity:0.2}}
.ti-gn-cat:hover .ti-i-orbit{animation:ti-orbit 3s linear infinite;transform-origin:12px 12px}
@keyframes ti-orbit{to{transform:rotate(360deg)}}
.ti-gn-cat:hover .ti-i-warn{animation:ti-shake 0.4s ease-in-out infinite;transform-origin:12px 12px}
.ti-gn-cat:hover .ti-i-warn .blink{animation:ti-blink 0.6s ease-in-out infinite}
@keyframes ti-shake{0%,100%{transform:translateX(0) rotate(0)}25%{transform:translateX(-0.8px) rotate(-2deg)}75%{transform:translateX(0.8px) rotate(2deg)}}
@keyframes ti-blink{0%,100%{opacity:1}50%{opacity:0.25}}

.ti-gm-footer{border-top:0.5px solid #ede9fe;background:#fff;padding:12px 18px;display:flex;align-items:center;gap:12px;flex-shrink:0}
.ti-gm-foot-info{font-size:11.5px;color:#5F5E5A;flex:1;display:flex;align-items:center;gap:8px}
.ti-gm-foot-tok{font-size:11.5px;color:#5b21b6;font-weight:500;background:#EEEDFE;padding:3px 8px;border-radius:6px}
.ti-gm-foot-cancel{background:#F1EFE8;color:#1f2937;border:none;padding:9px 16px;border-radius:9px;font-size:12.5px;font-weight:500;cursor:pointer;font-family:inherit}
.ti-gm-foot-cancel:hover{background:#D3D1C7}

/* ─── Handle close button (open state only, sits above the purple handle) ─── */
.ti-handle-close{position:absolute;left:-30px;top:calc(50% - 138px);
  width:24px;height:24px;border-radius:50%;
  background:#1a1040;color:#fff;border:1.5px solid #fff;
  cursor:pointer;display:none;align-items:center;justify-content:center;
  z-index:102;padding:0;
  box-shadow:0 4px 10px rgba(10,4,32,0.35);
  transition:background 150ms ease,transform 150ms ease}
.ti-handle-close svg{width:11px;height:11px}
.ti-handle-close:hover{background:#993336;transform:scale(1.08)}
.ti-drawer.open .ti-handle-close{display:flex}

/* ─── Phase 1: suggestion dropdown inside modal ─── */
.ti-modal .ticker-suggestions{top:calc(100% + 6px);left:0;right:auto;width:100%;min-width:0}
.ti-modal .ticker-suggestions.hidden{display:none}

/* ─── Phase 4a: analysis sub-tabs inside ticker body ─── */
.ti-sub-strip{display:flex;flex-wrap:wrap;gap:4px;padding:12px 18px 0;border-bottom:0.5px solid #ede9fe;background:#faf9ff;align-items:center}
.ti-sub-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 19px 6px 11px;background:#fff;border:0.5px solid #ede9fe;border-radius:8px 8px 0 0;font-size:12px;font-weight:500;color:#5F5E5A;cursor:pointer;font-family:inherit;border-bottom:none;margin-bottom:-1px;transition:background 120ms ease,color 120ms ease;position:relative}
.ti-sub-tab:hover{background:#EEEDFE;color:#3C3489}
.ti-sub-tab.active{background:#fff;color:#3C3489;border-color:#CECBF6;font-weight:600}
.ti-sub-tab.active::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:#fff}
.ti-sub-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.ti-sub-dot.done{background:#1D9E75}
.ti-sub-dot.gen{border:1.5px solid #7C3AED;border-top-color:transparent;background:transparent;animation:ti-spin 0.9s linear infinite;width:9px;height:9px}
.ti-sub-dot.failed{background:#A32D2D}
/* per-analysis close (X) — reveal on hover/active, sits in reserved right pad, no reflow */
.ti-sub-close{position:absolute;top:50%;right:4px;transform:translateY(-50%);width:13px;height:13px;display:flex;align-items:center;justify-content:center;border-radius:3px;color:#B4B2A9;opacity:0;transition:opacity .12s ease,background .12s ease,color .12s ease;pointer-events:none}
.ti-sub-tab:hover .ti-sub-close,.ti-sub-tab.active .ti-sub-close{opacity:1;pointer-events:auto}
.ti-sub-close:hover{background:#F1EFE8;color:#993336}
.ti-sub-close svg{width:8px;height:8px}
.ti-drawer[data-ti-theme="noturno"] .ti-sub-close{color:#8b84a8}
.ti-drawer[data-ti-theme="noturno"] .ti-sub-close:hover{background:#322a4e;color:#fca5a5}

/* ─── Phase 4b: report content rendering ─── */
.ti-body{padding:0 !important}
#ti-analysis-body{padding:18px 22px 24px;font-size:var(--ti-body-font, 13.5px);line-height:1.6;color:#1f2937}
.ti-analysis-hero{margin-bottom:14px;padding:0}
.ti-analysis-hero h1{font-size:20px;font-weight:600;color:#3C3489;margin:0;letter-spacing:-0.01em;line-height:1.3}
.ti-analysis-preamble{background:#faf9ff;border:0.5px solid #ede9fe;border-radius:10px;padding:12px 16px;margin-bottom:14px;font-size:13px;line-height:1.6;color:#374151}
.ti-analysis-preamble p{margin:0 0 6px}
.ti-analysis-preamble p:last-child{margin-bottom:0}
.ti-analysis-preamble strong{color:#1e1b4b}

.ti-analysis-controls{display:flex;gap:8px;margin-bottom:10px}
.ti-acc-btn{font-size:11.5px;background:transparent;border:0.5px solid;padding:5px 11px;border-radius:7px;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:5px}
.ti-acc-btn.primary{color:#5b21b6;border-color:#CECBF6;font-weight:500}
.ti-acc-btn.primary:hover{background:#EEEDFE}
.ti-acc-btn.secondary{color:#5F5E5A;border-color:#D3D1C7}
.ti-acc-btn.secondary:hover{background:#F1EFE8}
.ti-acc-btn svg{width:12px;height:12px}

details.ti-section{background:#fff;border:0.5px solid #e5e7eb;border-radius:10px;margin-bottom:6px;overflow:hidden;transition:background 140ms ease,border-color 140ms ease}
details.ti-section:not([open]):hover{background:#EEEDFE;border-color:#CECBF6}
details.ti-section:not([open]):hover .ti-sec-num{background:#fff}
details.ti-section:not([open]):hover .ti-sec-chev{color:#5b21b6}
details.ti-section[open]{border-color:#CECBF6}
details.ti-section > summary{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;list-style:none;user-select:none}
details.ti-section > summary::-webkit-details-marker{display:none}
details.ti-section[open] > summary{background:#faf9ff;border-bottom:0.5px solid #f3f4f6}
.ti-sec-num{font-size:10.5px;font-weight:600;color:#5b21b6;background:#EEEDFE;padding:2px 7px;border-radius:5px;flex-shrink:0}
.ti-sec-title{font-size:13px;font-weight:500;color:#1f2937;flex:1;line-height:1.3}
.ti-sec-chev{color:#9ca3af;display:flex;transition:transform 200ms ease;flex-shrink:0}
details.ti-section[open] .ti-sec-chev{transform:rotate(180deg);color:#5b21b6}
.ti-sec-chev svg{width:14px;height:14px}
.ti-sec-body{padding:14px 18px 16px;font-size:var(--ti-body-font, 13px);line-height:1.55;color:#1f2937;background:#FBFBFE}
.ti-sec-body p{margin:0 0 12px;line-height:1.6}
.ti-sec-body p:last-child{margin-bottom:0}
.ti-sec-body p:empty{display:none}
/* markdown_to_html wraps <h2>/<h3>/<h4>/<ul>/<ol>/<table> inside <p>...</p> — strip the wrapper's vertical space */
.ti-sec-body p:has(> h2),
.ti-sec-body p:has(> h3),
.ti-sec-body p:has(> h4),
.ti-sec-body p:has(> ul),
.ti-sec-body p:has(> ol),
.ti-sec-body p:has(> table){margin:0;padding:0}
.ti-sec-body h2{font-size:13.5px;font-weight:600;color:#1e1b4b;margin:10px 0 5px;line-height:1.3}
.ti-sec-body h3{font-size:14.5px;font-weight:600;color:#3C3489;margin:18px 0 8px;line-height:1.35;letter-spacing:-0.005em}
.ti-sec-body h4{font-size:12.5px;font-weight:600;color:#3C3489;margin:8px 0 3px;line-height:1.3}
.ti-sec-body h3:first-of-type{margin-top:4px}
.ti-sec-body h2:first-child,.ti-sec-body h3:first-child,.ti-sec-body h4:first-child{margin-top:0}
.ti-sec-body ul,.ti-sec-body ol{padding-left:20px;margin:6px 0 14px}
.ti-sec-body li{margin-bottom:2px;line-height:1.5}
.ti-sec-body li p{margin:0}
.ti-sec-body li > p:first-child{display:inline}
.ti-sec-body strong{color:#1e1b4b}
.ti-sec-body table{border-collapse:collapse;margin:14px 0 18px;font-size:12px;width:100%;background:#fff;border-radius:6px;overflow:hidden}
.ti-sec-body th,.ti-sec-body td{border:0.5px solid #DCD8F5;padding:7px 10px;text-align:left}
.ti-sec-body th{background:#EEEDFE;color:#3C3489;font-weight:600}
.ti-sec-body tr:nth-child(even) td{background:#FAFAFD}
.ti-sec-body hr{border:none;border-top:0.5px solid #ede9fe;margin:10px 0}
.ti-sec-body code{background:#f4f4f5;padding:1px 5px;border-radius:4px;font-size:12px}
.ti-sec-body blockquote{border-left:3px solid #CECBF6;background:#faf9ff;padding:8px 12px;margin:8px 0;font-style:italic;color:#5F5E5A}

.ti-analysis-flat{padding:0}
.ti-analysis-flat p{margin-bottom:8px}
.ti-analysis-flat h2{font-size:14px;font-weight:600;color:#3C3489;margin:12px 0 6px}
.ti-analysis-flat h3{font-size:13px;font-weight:600;color:#1e1b4b;margin:10px 0 4px}


/* ════════════════════════════════════════════════════════════════
 * Hero block — brand-aligned (May 2026, Phase 4c)
 * Outer lavender frame + inner white card with gauge, verdict, PDF btn.
 * Brand tokens: #1a1040 (bg-dark), #F5F3FF (bg-light), #7C3AED (brand),
 * #A78BFA (lavender), #DDD6FE (border-light)
 * ════════════════════════════════════════════════════════════════ */
.ti-hero-outer {
  background: #F5F3FF;
  border: 1px solid #DDD6FE;
  border-radius: 14px;
  padding: 14px;
  margin: 0 0 18px;
}
.ti-hero-inner {
  background: #FFFFFF;
  border-radius: 11px;
  padding: 16px 20px;
  display: flex;
  align-items: center;
  gap: 20px;
  box-shadow: 0 2px 12px rgba(124, 58, 237, 0.06);
}
.ti-hero-gauge {
  flex-shrink: 0;
  background: #FBFAFF;
  border-radius: 10px;
  padding: 6px 10px;
  width: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ti-hero-middle {
  flex: 1;
  min-width: 0;
}
.ti-hero-label {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #7C3AED;
  margin-bottom: 4px;
  text-transform: uppercase;
}
.ti-hero-label::before {
  content: '●';
  color: #7C3AED;
  margin-right: 6px;
  font-size: 9px;
  vertical-align: middle;
}
.ti-hero-verdict {
  font-size: 28px;
  font-weight: 700;
  line-height: 1.15;
  margin-bottom: 6px;
}
.ti-hero-title {
  font-size: 14px;
  font-weight: 600;
  color: #1a1040;
  line-height: 1.3;
}
.ti-hero-title h1 {
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
  margin: 0;
  display: inline;
}

/* PDF button — base styles only. Hover/click animations added in Step 5. */
.ti-hero-pdf-btn {
  flex-shrink: 0;
  background: linear-gradient(135deg, #7C3AED 0%, #6D28D9 100%);
  color: #fff;
  padding: 12px 18px;
  border-radius: 11px;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 4px 14px rgba(124, 58, 237, 0.28);
  transition: all .2s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
}
.ti-hero-pdf-btn:hover {
  background: linear-gradient(135deg, #8B5CF6 0%, #7C3AED 100%);
  box-shadow: 0 6px 20px rgba(124, 58, 237, 0.42);
  transform: translateY(-1px);
}
.ti-hero-pdf-btn:active {
  transform: translateY(0);
}
.ti-hero-pdf-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
}
.ti-hero-pdf-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.2;
  white-space: nowrap;
}
.ti-hero-pdf-text strong {
  font-size: 13px;
  font-weight: 700;
}
.ti-hero-pdf-text span {
  font-size: 10.5px;
  opacity: 0.88;
}
.ti-hero-pdf-arrow {
  font-size: 16px;
  opacity: 0.85;
  margin-left: 2px;
}

/* Responsive — collapse PDF button to icon-only on narrow drawer */
@media (max-width: 720px) {
  .ti-hero-inner { gap: 14px; padding: 14px; }
  .ti-hero-pdf-text { display: none; }
  .ti-hero-pdf-arrow { display: none; }
  .ti-hero-pdf-btn { padding: 12px; }
}


/* ════════════════════════════════════════════════════════════════
 * PDF button animations (May 2026, Phase 4c)
 * Hover: page-flip (3D rotation of icon)
 * Click: "sucked into hole" — pages pulled toward center, vanishing
 * ════════════════════════════════════════════════════════════════ */

/* Container needs 3D perspective so child flip animates */
.ti-hero-pdf-btn .ti-hero-pdf-icon {
  perspective: 600px;
  perspective-origin: 50% 50%;
}
.ti-hero-pdf-btn .ti-hero-pdf-icon svg {
  transform-origin: 50% 50%;
  transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
  transform-style: preserve-3d;
}
/* Hover: page-flip 3D rotation, like turning a document page */
.ti-hero-pdf-btn:hover .ti-hero-pdf-icon svg {
  animation: ti-page-flip 1.2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes ti-page-flip {
  0%   { transform: rotateY(0deg); }
  45%  { transform: rotateY(180deg); }
  55%  { transform: rotateY(180deg); }
  100% { transform: rotateY(360deg); }
}
/* The arrow nudges down rhythmically on hover */
.ti-hero-pdf-btn .ti-hero-pdf-arrow {
  transition: transform 0.3s;
}
.ti-hero-pdf-btn:hover .ti-hero-pdf-arrow {
  animation: ti-arrow-bounce 1s ease-in-out infinite;
}
@keyframes ti-arrow-bounce {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(3px); }
}

/* ── Click: "sucked into hole" effect ── */
.ti-hero-pdf-btn.ti-sucking {
  pointer-events: none;
}
.ti-hero-pdf-btn.ti-sucking .ti-hero-pdf-icon,
.ti-hero-pdf-btn.ti-sucking .ti-hero-pdf-text,
.ti-hero-pdf-btn.ti-sucking .ti-hero-pdf-arrow {
  animation: ti-suck-in 0.7s cubic-bezier(0.55, 0, 0.55, 0.2) forwards;
}
@keyframes ti-suck-in {
  0%   { transform: scale(1) rotate(0deg); opacity: 1; }
  60%  { transform: scale(0.4) rotate(180deg) translateX(40px); opacity: 0.6; }
  100% { transform: scale(0) rotate(540deg) translateX(80px); opacity: 0; }
}
/* The "hole" appears in the center as the icon vanishes */
.ti-hero-pdf-btn.ti-sucking::before {
  content: '';
  position: absolute;
  top: 50%;
  right: 24px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: radial-gradient(circle, #1a1040 0%, #1a1040 30%, transparent 80%);
  transform: translateY(-50%) scale(0);
  animation: ti-hole-appear 0.7s ease-out forwards;
  z-index: 1;
  box-shadow: 0 0 20px 6px rgba(26, 16, 64, 0.5);
}
@keyframes ti-hole-appear {
  0%   { transform: translateY(-50%) scale(0); opacity: 0; }
  30%  { transform: translateY(-50%) scale(4); opacity: 1; }
  60%  { transform: translateY(-50%) scale(6); opacity: 1; }
  100% { transform: translateY(-50%) scale(8); opacity: 0; }
}

/* Success state after suck-in completes */
.ti-hero-pdf-btn.ti-success::after {
  content: '✓';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0);
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  animation: ti-success-pop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  animation-delay: 0.6s;
}
@keyframes ti-success-pop {
  0%   { transform: translate(-50%, -50%) scale(0); opacity: 0; }
  100% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
}


/* ════════════════════════════════════════════════════════════════
 * Tab strip — brand-aligned (May 2026, Phase 4c)
 * Outer ticker tabs + sub-tab strip with full report name + date.
 * Brand tokens only.
 * ════════════════════════════════════════════════════════════════ */

/* Override existing tab strip background — add subtle lavender tint */
.ti-tabs-bar {
  background: #F5F3FF !important;
  border-bottom: 1px solid #DDD6FE !important;
}

/* Outer ticker tab — pill style with lavender bg, brand purple when active */
.ti-tab {
  background: #FFFFFF !important;
  border: 1px solid #DDD6FE !important;
  border-bottom: none !important;
  border-radius: 9px 9px 0 0 !important;
  color: #6B7280 !important;
  padding: 9px 14px !important;
  position: relative !important;
  transition: all .15s !important;
  margin-bottom: -1px !important;
}
.ti-tab:hover {
  background: #FFFFFF !important;
  color: #1a1040 !important;
  border-color: #A78BFA !important;
}
.ti-tab.active {
  background: #F5F3FF !important;
  border-color: #7C3AED !important;
  color: #1a1040 !important;
  font-weight: 600 !important;
  z-index: 2 !important;
}
.ti-tab.active::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: -1px;
  right: -1px;
  height: 2px;
  background: #7C3AED;
  border-radius: 0 0 2px 2px;
}
.ti-tab .ti-tab-ticker {
  font-weight: 700 !important;
  color: #1a1040 !important;
}
.ti-tab .ti-tab-count {
  background: #F5F3FF !important;
  color: #7C3AED !important;
  font-weight: 700 !important;
  font-size: 10px !important;
  padding: 1px 7px !important;
  border-radius: 9px !important;
  border: none !important;
}
.ti-tab.active .ti-tab-count {
  background: #7C3AED !important;
  color: #FFFFFF !important;
}

/* "Gerar" button — brand purple */
.ti-gerar-btn {
  background: #7C3AED !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 8px 8px 0 0 !important;
}
.ti-gerar-btn:hover {
  background: #6D28D9 !important;
}

/* Sub-tab strip — below outer tabs when a ticker has multiple analyses */
.ti-subtabs {
  background: #FFFFFF;
  padding: 10px 16px;
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  border-bottom: 1px solid #DDD6FE;
}
.ti-subtab {
  background: #F5F3FF;
  border: 1px solid #DDD6FE;
  border-radius: 7px;
  padding: 6px 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: #1a1040;
  cursor: pointer;
  transition: all .15s;
  max-width: 280px;
}
.ti-subtab:hover {
  background: #EBE5FE;
  border-color: #A78BFA;
}
.ti-subtab.active {
  background: #7C3AED;
  border-color: #7C3AED;
  color: #FFFFFF;
  font-weight: 600;
}
.ti-subtab-name {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 180px;
  font-weight: 600;
}
.ti-subtab-date {
  color: #6B7280;
  font-size: 10px;
  flex-shrink: 0;
  font-weight: 400;
}
.ti-subtab.active .ti-subtab-date {
  color: rgba(255, 255, 255, 0.85);
}


/* ════════════════════════════════════════════════════════════════
 * Font size control buttons (Phase 4c, May 2026)
 * ════════════════════════════════════════════════════════════════ */
.ti-font-btn {
  font-family: -apple-system, BlinkMacSystemFont, 'Inter', sans-serif !important;
  color: #7C3AED !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  user-select: none;
}
.ti-font-btn:hover {
  background: #F5F3FF !important;
  color: #6D28D9 !important;
}
.ti-font-btn span {
  pointer-events: none;
}


/* ════════════════════════════════════════════════════════════════
 * Exchange status popup (May 2026, Phase 4d) — anchored to nav clock
 * Uses host theme variables (--bg2, --b, --t, etc.) for auto dark mode.
 * ════════════════════════════════════════════════════════════════ */
.ti-ex-popup {
  background: var(--bg2);
  border: 1px solid var(--b);
  border-radius: 14px;
  width: 380px;
  box-shadow: 0 12px 40px rgba(26, 16, 64, 0.18),
              0 2px 6px rgba(26, 16, 64, 0.06);
  overflow: hidden;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  color: var(--t);
  position: relative;
}
/* Slightly stronger shadow in dark mode for separation */
.dk .ti-ex-popup {
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5),
              0 2px 6px rgba(0, 0, 0, 0.3);
}
.ti-ex-popup::before {
  content: '';
  position: absolute;
  top: -7px;
  right: 24px;
  width: 12px;
  height: 12px;
  background: var(--pubg);
  border-top: 1px solid var(--b);
  border-left: 1px solid var(--b);
  transform: rotate(45deg);
}
.ti-ex-head {
  background: var(--pubg);
  padding: 12px 16px 11px;
  border-bottom: 1px solid var(--b);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.dk .ti-ex-head {
  background: var(--acbg);
}
.ti-ex-htitle {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--put);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.ti-ex-hnow {
  font-family: 'SF Mono', Menlo, monospace;
  font-size: 11px;
  color: var(--pu);
  font-weight: 600;
  background: var(--bg2);
  padding: 3px 10px;
  border-radius: 6px;
  border: 1px solid var(--b);
}
.ti-ex-list {
  /* No max-height — all exchanges visible without scroll */
}
.ti-ex-row {
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 11px;
  border-bottom: 1px solid var(--b);
  transition: background .12s;
}
.ti-ex-row:hover { background: var(--bg3); }
.ti-ex-row:last-child { border-bottom: none; }
.ti-ex-flag svg {
  width: 26px;
  height: 18px;
  display: block;
  border-radius: 3px;
  box-shadow: 0 0 0 0.5px rgba(0,0,0,0.08);
}
.dk .ti-ex-flag svg {
  box-shadow: 0 0 0 0.5px rgba(255,255,255,0.15);
}
.ti-ex-info {
  flex: 1;
  min-width: 0;
}
.ti-ex-name {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--t);
  line-height: 1.2;
}
.ti-ex-local {
  font-size: 10.5px;
  color: var(--t4);
  margin-top: 1px;
  font-family: 'SF Mono', Menlo, monospace;
  font-variant-numeric: tabular-nums;
}
.ti-ex-status {
  flex-shrink: 0;
  text-align: right;
}
.ti-ex-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 9.5px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 10px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.ti-ex-badge::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 0 2px rgba(255,255,255,0.5);
}
.dk .ti-ex-badge::before {
  box-shadow: 0 0 0 2px rgba(0,0,0,0.3);
}
.ti-exb-open    { background: var(--upbg); color: var(--up); }
.ti-exb-closed  { background: var(--rdbg); color: var(--rd); }
.ti-exb-weekend { background: var(--bg3);  color: var(--t4); }
.dk .ti-exb-open    { background: var(--upbg); color: var(--upt); }
.dk .ti-exb-closed  { background: var(--rdbg); color: var(--rdt); }
.dk .ti-exb-weekend { background: var(--bg3);  color: var(--t3); }
.ti-ex-time {
  font-size: 10px;
  color: var(--t4);
  margin-top: 3px;
  font-weight: 500;
}
.ti-ex-time.urgent {
  color: var(--am);
  font-weight: 600;
}
.dk .ti-ex-time.urgent {
  color: var(--amt);
}
.ti-ex-foot {
  background: var(--bg3);
  padding: 8px 14px;
  font-size: 10px;
  color: var(--t4);
  border-top: 1px solid var(--b);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ti-ex-lang {
  background: var(--bg2);
  padding: 2px 7px;
  border-radius: 4px;
  border: 1px solid var(--b);
  color: var(--pu);
  font-weight: 600;
  font-size: 9.5px;
}


/* ════════════════════════════════════════════════════════════════
 * Search help tooltip (Phase 4d, May 2026) — premium SVG redesign
 * Used by dashboard + intelligence search "?" buttons.
 * Uses host theme variables (--bg2, --b, --t, etc.) for auto dark mode.
 * ════════════════════════════════════════════════════════════════ */
.ti-search-help-tooltip {
  pointer-events: auto;
}
.ti-sh-card {
  width: 380px;
  background: var(--bg2);
  border: 1px solid var(--b);
  border-radius: 14px;
  box-shadow: 0 12px 40px rgba(26, 16, 64, 0.18),
              0 2px 6px rgba(26, 16, 64, 0.06);
  overflow: hidden;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  color: var(--t);
  position: relative;
}
.dk .ti-sh-card {
  box-shadow: 0 12px 40px rgba(0,0,0,0.5), 0 2px 6px rgba(0,0,0,0.3);
}
.ti-sh-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, #7C3AED 0%, #A78BFA 50%, #7C3AED 100%);
  z-index: 2;
}
.ti-sh-head {
  background: var(--pubg);
  padding: 13px 16px 11px;
  border-bottom: 1px solid var(--b);
  display: flex;
  align-items: center;
  gap: 10px;
}
.dk .ti-sh-head { background: var(--acbg); }
.ti-sh-head-icon {
  width: 30px; height: 30px;
  background: #7C3AED;
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(124, 58, 237, 0.3);
}
.ti-sh-head-text { flex: 1; }
.ti-sh-head-title {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--put);
  line-height: 1.2;
}
.ti-sh-head-sub {
  font-size: 10.5px;
  color: var(--t4);
  margin-top: 2px;
}
.ti-sh-examples {
  padding: 12px 16px;
  border-bottom: 1px solid var(--b);
}
.ti-sh-ex-list {
  background: var(--bg3);
  border: 1px solid var(--b);
  border-radius: 8px;
  padding: 8px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ti-sh-ex-item {
  font-size: 11px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.ti-sh-quote {
  color: var(--t4);
  font-style: italic;
}
.ti-sh-arrow {
  color: var(--pub);
  font-size: 10px;
}
.ti-sh-ticker {
  background: var(--pubg);
  color: var(--pu);
  padding: 1px 8px;
  border-radius: 4px;
  font-weight: 700;
  font-family: 'SF Mono', Menlo, monospace;
  font-size: 10.5px;
}
.ti-sh-filters {
  padding: 11px 16px;
  border-bottom: 1px solid var(--b);
}
.ti-sh-flt-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 5px;
  font-size: 10.5px;
}
.ti-sh-flt-row:last-child { margin-bottom: 0; }
.ti-sh-pill {
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  letter-spacing: 0.03em;
  flex-shrink: 0;
  min-width: 56px;
  justify-content: center;
}
.ti-sh-pill.br {
  background: var(--upbg);
  color: var(--up);
  border: 1px solid var(--upb);
}
.ti-sh-pill.global {
  background: var(--blbg);
  color: var(--bl);
  border: 1px solid var(--blb);
}
.ti-sh-pill.all {
  background: var(--pubg);
  color: var(--pu);
  border: 1px solid var(--pub);
}
.ti-sh-pill-flag svg {
  width: 11px;
  height: 8px;
  display: block;
}
.ti-sh-flt-desc {
  font-size: 10.5px;
  color: var(--t4);
}
.ti-sh-exchanges {
  padding: 11px 16px 13px;
}
.ti-sh-section-title {
  font-size: 9.5px;
  font-weight: 700;
  color: var(--t);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 9px 0 5px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.ti-sh-section-title::before {
  content: '';
  width: 3px;
  height: 11px;
  background: #7C3AED;
  border-radius: 2px;
}
.ti-sh-section-title:first-child { margin-top: 0; }
.ti-sh-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px 12px;
}
.ti-sh-line {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10.5px;
  line-height: 1.7;
  color: var(--t);
}
.ti-sh-flag svg {
  width: 15px;
  height: 10px;
  display: block;
  border-radius: 2px;
  box-shadow: 0 0 0 0.5px rgba(0,0,0,0.08);
}
.dk .ti-sh-flag svg {
  box-shadow: 0 0 0 0.5px rgba(255,255,255,0.15);
}
.ti-sh-name {
  font-weight: 500;
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ti-sh-name.ti-sh-accent {
  color: #7C3AED;
  font-weight: 700;
}
.dk .ti-sh-name.ti-sh-accent {
  color: #A78BFA;
}
.ti-sh-code {
  font-size: 9px;
  color: var(--t4);
  font-family: 'SF Mono', Menlo, monospace;
  flex-shrink: 0;
}
.ti-sh-foot {
  background: var(--bg3);
  padding: 9px 16px;
  border-top: 1px solid var(--b);
  font-size: 10px;
  color: var(--t4);
  text-align: center;
}
.ti-sh-foot b {
  color: #7C3AED;
  font-weight: 700;
}
.dk .ti-sh-foot b { color: #A78BFA; }


/* ════════════════════════════════════════════════════════════════
 * Full Report 7-phase loading animation (Phase 4d, May 2026)
 * Uses brand tokens directly (loading state is identical light/dark)
 * ════════════════════════════════════════════════════════════════ */
.ti-fl-card {
  background: var(--bg2);
  border: 1px solid var(--b);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 30px rgba(26, 16, 64, 0.08);
  margin: 24px;
  position: relative;
}
.ti-fl-bar-track {
  height: 4px;
  background: #F5F3FF;
  position: relative;
  overflow: hidden;
}
.dk .ti-fl-bar-track { background: var(--acbg); }
.ti-fl-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #7C3AED 0%, #A78BFA 50%, #7C3AED 100%);
  background-size: 200% 100%;
  width: 0%;
  transition: width 0.4s ease;
  position: relative;
  animation: ti-fl-bar-shimmer 2s linear infinite;
}
@keyframes ti-fl-bar-shimmer {
  0%   { background-position: 200% 0%; }
  100% { background-position: 0% 0%; }
}
.ti-fl-bar-glow {
  position: absolute;
  right: -2px; top: 50%; transform: translateY(-50%);
  width: 8px; height: 12px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 14px 3px rgba(124, 58, 237, 0.7);
  opacity: 0.95;
}
.ti-fl-body {
  padding: 24px 24px 28px;
  text-align: center;
  min-height: 380px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.ti-fl-report-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, #1a1040 0%, #2d1568 100%);
  color: #fff;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 4px;
  box-shadow: 0 4px 12px rgba(26, 16, 64, 0.18);
}
.ti-fl-report-pill-icon {
  width: 14px; height: 14px;
  background: #7C3AED;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  color: #fff;
  font-weight: 800;
}
.ti-fl-phase-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 700;
  color: #7C3AED;
  background: #F5F3FF;
  border: 1px solid #DDD6FE;
  padding: 4px 10px;
  border-radius: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.dk .ti-fl-phase-chip {
  background: var(--acbg);
  border-color: var(--acb);
  color: #A78BFA;
}
.ti-fl-phase-chip-dot {
  width: 5px; height: 5px;
  background: #7C3AED;
  border-radius: 50%;
  animation: ti-fl-pulse-dot 1.4s ease-in-out infinite;
}
.dk .ti-fl-phase-chip-dot { background: #A78BFA; }
@keyframes ti-fl-pulse-dot {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 1; }
}
.ti-fl-anim {
  width: 240px;
  height: 130px;
  position: relative;
  margin: 6px 0 4px;
}
.ti-fl-title {
  font-size: 16px;
  font-weight: 600;
  color: var(--t);
  line-height: 1.35;
  max-width: 460px;
}
.ti-fl-sub {
  font-size: 12px;
  color: var(--t4);
  line-height: 1.4;
}
.ti-fl-sub b {
  color: var(--t);
}
.ti-fl-timers {
  display: inline-flex;
  background: #F5F3FF;
  border: 1px solid #DDD6FE;
  border-radius: 10px;
  padding: 5px 14px;
  gap: 14px;
  font-size: 11px;
  color: #7C3AED;
  font-weight: 600;
  font-family: 'SF Mono', Menlo, monospace;
  margin-top: 4px;
}
.dk .ti-fl-timers {
  background: var(--acbg);
  border-color: var(--acb);
  color: #A78BFA;
}
.ti-fl-sep { color: #DDD6FE; }
.dk .ti-fl-sep { color: var(--acb); }

/* ───── Per-phase animations ───── */
.ti-p1-globe { transform-origin: center; animation: ti-fl-spin 18s linear infinite; }
.ti-p1-orbit { animation: ti-fl-spin 6s linear infinite; transform-origin: center; }
.ti-p1-orbit-r { animation: ti-fl-spin 9s linear infinite reverse; transform-origin: center; }
@keyframes ti-fl-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.ti-p1-data-dot { animation: ti-fl-data-pulse 1.5s ease-in-out infinite; }
@keyframes ti-fl-data-pulse {
  0%, 100% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.4); }
}

.ti-p2-dot { animation: ti-fl-dot-fan 2.5s ease-in-out infinite; transform-origin: center; }
@keyframes ti-fl-dot-fan {
  0% { opacity: 0; transform: scale(0.3); }
  30% { opacity: 1; transform: scale(1); }
  70% { opacity: 1; }
  100% { opacity: 0; transform: scale(0.3); }
}
.ti-p2-center { animation: ti-fl-pulse2 2s ease-in-out infinite; transform-origin: center; }
@keyframes ti-fl-pulse2 {
  0%, 100% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
}

.ti-p3-gear-a { animation: ti-fl-spin 4s linear infinite; transform-origin: 60px 65px; }
.ti-p3-gear-b { animation: ti-fl-spin 4s linear infinite reverse; transform-origin: 130px 50px; }
.ti-p3-gear-c { animation: ti-fl-spin 3s linear infinite; transform-origin: 180px 70px; }
.ti-p3-bolt { animation: ti-fl-pulse2 1.5s ease-in-out infinite; transform-origin: center; }

.ti-p4-particle { animation: ti-fl-digest 3s ease-in-out infinite; }
@keyframes ti-fl-digest {
  0% { opacity: 0; transform: translate(0, 0); }
  20% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 0; transform: translate(40px, -10px); }
}
.ti-p4-brain { animation: ti-fl-brain-pulse 2.4s ease-in-out infinite; transform-origin: center; }
@keyframes ti-fl-brain-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}

.ti-p5-line { stroke-dasharray: 300; stroke-dashoffset: 300; animation: ti-fl-draw 3s ease-out infinite; }
@keyframes ti-fl-draw {
  0% { stroke-dashoffset: 300; }
  50% { stroke-dashoffset: 0; }
  100% { stroke-dashoffset: -300; }
}
.ti-p5-candle { animation: ti-fl-candle-pop 2.5s ease-in-out infinite; transform-origin: center bottom; opacity: 0; }
@keyframes ti-fl-candle-pop {
  0% { opacity: 0; transform: scaleY(0); }
  40% { opacity: 1; transform: scaleY(1); }
  100% { opacity: 1; transform: scaleY(1); }
}
.ti-p5-scan { animation: ti-fl-scan-x 3s linear infinite; }
@keyframes ti-fl-scan-x {
  0% { transform: translateX(0); opacity: 0.3; }
  50% { opacity: 0.8; }
  100% { transform: translateX(200px); opacity: 0.3; }
}

.ti-p6-card { animation: ti-fl-card-stack 4s ease-in-out infinite; transform-origin: center; opacity: 0; }
@keyframes ti-fl-card-stack {
  0% { opacity: 0; transform: translateY(20px); }
  30% { opacity: 1; transform: translateY(0); }
  90% { opacity: 1; }
  100% { opacity: 0; }
}

.ti-p7-sweep {
  transform-origin: 120px 70px;
  animation: ti-fl-sweep-arc 1.8s ease-in-out infinite;
}
@keyframes ti-fl-sweep-arc {
  0%   { transform: rotate(-90deg); }
  50%  { transform: rotate(180deg); }
  100% { transform: rotate(-90deg); }
}
.ti-p7-spinning-dot {
  transform-origin: 120px 70px;
  animation: ti-fl-spin 1.4s linear infinite;
}
.ti-p7-sparkle { animation: ti-fl-sparkle 2s ease-in-out infinite; transform-origin: center; }
@keyframes ti-fl-sparkle {
  0%, 100% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
}


/* ════════════════════════════════════════════════════════════════
 * News Analysis loading animation (Phase 4d, May 2026)
 * Uses ti-fl-* shared structure; only animation classes are unique.
 * ════════════════════════════════════════════════════════════════ */
.ti-news-pages {
  animation: ti-news-flip 5s ease-in-out infinite;
  transform-origin: center top;
}
@keyframes ti-news-flip {
  0%, 30% { transform: rotateX(0deg); }
  60%     { transform: rotateX(-12deg); }
  100%    { transform: rotateX(0deg); }
}
.ti-news-mag {
  animation: ti-news-orbit 4s ease-in-out infinite;
  transform-origin: 110px 70px;
}
@keyframes ti-news-orbit {
  0%   { transform: translate(0, 0); }
  25%  { transform: translate(20px, -8px); }
  50%  { transform: translate(45px, 5px); }
  75%  { transform: translate(15px, 20px); }
  100% { transform: translate(0, 0); }
}
.ti-news-mag-shine {
  animation: ti-news-shine 2s ease-in-out infinite;
}
@keyframes ti-news-shine {
  0%, 100% { opacity: 0.3; }
  50%      { opacity: 0.85; }
}
.ti-news-dot {
  animation: ti-news-dot-blink 1.6s ease-in-out infinite;
}
@keyframes ti-news-dot-blink {
  0%, 100% { opacity: 0; }
  50%      { opacity: 1; }
}


/* ════════════════════════════════════════════════════════════════
 * Chart Analyze loading animation (Phase 4d, May 2026)
 * Bars rise from baseline, line draws across, magnifier scans.
 * ════════════════════════════════════════════════════════════════ */
.ti-ch-line {
  stroke-dasharray: 400;
  stroke-dashoffset: 400;
  animation: ti-ch-draw 3s ease-out infinite;
}
@keyframes ti-ch-draw {
  0% { stroke-dashoffset: 400; }
  60% { stroke-dashoffset: 0; }
  100% { stroke-dashoffset: 0; }
}
.ti-ch-candle {
  animation: ti-ch-candle-pop 3s ease-in-out infinite;
  transform-origin: center bottom;
  opacity: 0;
}
@keyframes ti-ch-candle-pop {
  0%   { opacity: 0; transform: scaleY(0); }
  30%  { opacity: 1; transform: scaleY(1); }
  100% { opacity: 1; transform: scaleY(1); }
}
.ti-ch-scan {
  animation: ti-ch-scan-x 3s linear infinite;
}
@keyframes ti-ch-scan-x {
  0%   { transform: translateX(0); opacity: 0.4; }
  50%  { opacity: 0.8; }
  100% { transform: translateX(204px); opacity: 0.4; }
}
.ti-ch-mag {
  animation: ti-ch-mag-glide 4s ease-in-out infinite;
}
@keyframes ti-ch-mag-glide {
  0%   { transform: translate(0, 0); }
  25%  { transform: translate(60px, 10px); }
  50%  { transform: translate(120px, -10px); }
  75%  { transform: translate(80px, 20px); }
  100% { transform: translate(0, 0); }
}
.ti-ch-mag-dot {
  animation: ti-ch-mag-pulse 1.2s ease-in-out infinite;
  transform-origin: center;
}
@keyframes ti-ch-mag-pulse {
  0%, 100% { opacity: 0.4; r: 2.5; }
  50%      { opacity: 1; r: 4; }
}


/* ════════════════════════════════════════════════════════════════
 * Events Radar loading animation (Phase 4d, May 2026)
 * Sweep speed varies per time window (12h calm, 6h medium, 1h urgent).
 * ════════════════════════════════════════════════════════════════ */
.ti-ev-sweep-12 { animation: ti-ev-rotate 6s linear infinite; transform-origin: 110px 90px; }
.ti-ev-sweep-6  { animation: ti-ev-rotate 4s linear infinite; transform-origin: 110px 90px; }
.ti-ev-sweep-1  { animation: ti-ev-rotate 1.5s linear infinite; transform-origin: 110px 90px; }
@keyframes ti-ev-rotate {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.ti-ev-blip {
  animation: ti-ev-blip-pulse 2s ease-in-out infinite;
  transform-origin: center;
}
@keyframes ti-ev-blip-pulse {
  0%, 100% { opacity: 0.4; r: 3; }
  50%      { opacity: 1; r: 4.5; }
}

.ti-ev-ring {
  animation: ti-ev-ring-expand 3s ease-out infinite;
  transform-origin: 110px 90px;
  opacity: 0;
}
@keyframes ti-ev-ring-expand {
  0%   { transform: scale(0.3); opacity: 0; }
  20%  { opacity: 0.6; }
  100% { transform: scale(1.2); opacity: 0; }
}

.ti-ev-urgent-1 {
  animation: ti-ev-urgent-pulse 1s ease-out infinite;
  transform-origin: 110px 90px;
  opacity: 0;
}
.ti-ev-urgent-2 {
  animation: ti-ev-urgent-pulse 1s ease-out infinite 0.5s;
  transform-origin: 110px 90px;
  opacity: 0;
}
@keyframes ti-ev-urgent-pulse {
  0%   { transform: scale(0.2); opacity: 0.8; }
  100% { transform: scale(1.5); opacity: 0; }
}

.ti-ev-count-12 { animation: ti-ev-countdown 4s ease-in-out infinite; transform-origin: 184px 141px; }
.ti-ev-count-6  { animation: ti-ev-countdown 2.5s ease-in-out infinite; transform-origin: 184px 141px; }
.ti-ev-count-1  { animation: ti-ev-countdown 1s ease-in-out infinite; transform-origin: 184px 141px; }
@keyframes ti-ev-countdown {
  0%, 100% { opacity: 0.7; transform: scale(1); }
  50%      { opacity: 1; transform: scale(1.06); }
}


/* ════════════════════════════════════════════════════════════════
 * Per-report-type heroes (Phase 4d, May 2026)
 * Only `full` keeps the original ti-hero-outer (TI Score gauge).
 * Variants below: news, chart, events, simple.
 * All include top-right PDF button.
 * ════════════════════════════════════════════════════════════════ */

/* ── News hero ── */
.ti-hero-news {
  background: var(--bg2, #fff);
  border: 0.5px solid var(--b, #DDD6FE);
  border-radius: 14px;
  padding: 14px 16px;
  margin-bottom: 14px;
}
.ti-hero-news-row {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 8px;
}
.ti-hero-news-pill {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--bg-dark, #1a1040);
  color: #fff;
  font-size: 10px; font-weight: 700; letter-spacing: 0.06em;
  padding: 4px 10px; border-radius: 20px;
}
.ti-hero-news-source {
  font-size: 11px; color: var(--t4, #6B7280); font-weight: 500;
}
.ti-hero-news-title {
  font-size: 15px; font-weight: 600; line-height: 1.35; margin: 4px 0;
  color: var(--t, #1a1040);
}
.ti-hero-news-title a {
  color: inherit; text-decoration: none;
}
.ti-hero-news-title a:hover { color: var(--ac, #7C3AED); text-decoration: underline; }
.ti-hero-news-sub {
  font-size: 11.5px; color: var(--t4, #6B7280);
}
.ti-hero-news-sub b { color: var(--t, #1a1040); }

/* ── Chart hero ── */
.ti-hero-chart {
  background: var(--bg2, #fff);
  border: 0.5px solid var(--b, #DDD6FE);
  border-radius: 14px;
  padding: 14px 16px;
  margin-bottom: 14px;
}
.ti-hero-chart-row {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 10px;
}
.ti-hero-chart-pill {
  display: inline-flex; align-items: center; gap: 6px;
  background: linear-gradient(135deg, #1a1040 0%, #2d1568 100%);
  color: #fff;
  font-size: 10px; font-weight: 700; letter-spacing: 0.06em;
  padding: 4px 10px; border-radius: 20px;
}
.ti-hero-chart-badge {
  font-family: 'SF Mono', Menlo, monospace;
  font-size: 10px; font-weight: 600;
  background: var(--acbg, #F5F3FF);
  border: 0.5px solid var(--b, #DDD6FE);
  color: var(--ac, #7C3AED);
  padding: 3px 9px; border-radius: 6px;
}
.ti-hero-chart-ticker {
  font-size: 18px; font-weight: 700; color: var(--t, #1a1040);
  margin-bottom: 2px;
}
.ti-hero-chart-ticker b { color: var(--ac, #7C3AED); }
.ti-hero-chart-sub {
  font-size: 12px; color: var(--t4, #6B7280); font-weight: 500;
}

/* ── Events hero ── */
.ti-hero-events {
  border: 0.5px solid;
  border-radius: 14px;
  padding: 14px 16px;
  margin-bottom: 14px;
}
.ti-hero-events-row {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 10px;
}
.ti-hero-events-pill {
  display: inline-flex; align-items: center; gap: 6px;
  color: #fff;
  font-size: 10px; font-weight: 700; letter-spacing: 0.06em;
  padding: 4px 10px; border-radius: 20px;
}
.ti-hero-events-title {
  font-size: 16px; font-weight: 700; color: var(--t, #1a1040);
  margin-bottom: 2px;
}
.ti-hero-events-sub {
  font-size: 12px; color: var(--t4, #6B7280);
}
.ti-hero-events-sub b { color: var(--t, #1a1040); }

/* ── Simple fallback hero ── */
.ti-hero-simple {
  background: var(--bg2, #fff);
  border: 0.5px solid var(--b, #DDD6FE);
  border-radius: 14px;
  padding: 14px 16px;
  margin-bottom: 14px;
}
.ti-hero-simple-row {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 8px;
}
.ti-hero-simple-pill {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--bg-dark, #1a1040);
  color: #fff;
  font-size: 10px; font-weight: 700; letter-spacing: 0.06em;
  padding: 4px 10px; border-radius: 20px;
}
.ti-hero-simple-title {
  font-size: 15px; font-weight: 600; line-height: 1.35; margin: 4px 0;
  color: var(--t, #1a1040);
}
.ti-hero-simple-sub {
  font-size: 11.5px; color: var(--t4, #6B7280);
}
.ti-hero-simple-sub b { color: var(--t, #1a1040); }


/* ════════════════════════════════════════════════════════════════
 * Hero type pill (Phase 4d) — used by news, chart, events, simple
 * Sits in place of the gauge column's TRADERINTEL SCORE label.
 * Maintains the same flex layout as Full Report hero.
 * ════════════════════════════════════════════════════════════════ */
.ti-hero-type-pill {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--bg-dark, #1a1040);
  color: #fff;
  font-size: 10px; font-weight: 700; letter-spacing: 0.08em;
  padding: 4px 10px; border-radius: 20px;
  text-transform: uppercase;
}
.ti-hero-type-pill.ti-hp-news {
  background: linear-gradient(135deg, #1a1040 0%, #2d1568 100%);
}
.ti-hero-type-pill.ti-hp-chart {
  background: linear-gradient(135deg, #1a1040 0%, #2d1568 100%);
}
.ti-hero-news-source {
  font-size: 11px; color: var(--t4, #6B7280); font-weight: 500;
}
.ti-hero-chart-badge {
  font-family: 'SF Mono', Menlo, monospace;
  font-size: 10px; font-weight: 600;
  background: var(--acbg, #F5F3FF);
  border: 0.5px solid var(--b, #DDD6FE);
  color: var(--ac, #7C3AED);
  padding: 3px 9px; border-radius: 6px;
  vertical-align: middle;
}
.ti-hero-verdict-sub {
  font-size: 12px; color: var(--t4, #6B7280);
  margin-top: 6px;
}
.ti-hero-verdict-sub b { color: var(--t, #1a1040); }


/* ════════════════════════════════════════════════════════════════
 * Generate Modal — wallet + favorites quick-picks section headers
 * (Phase 4d, May 2026)
 * ════════════════════════════════════════════════════════════════ */
.ti-gm-sug-section-head {
  font-size: 10px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--t4, #6B7280);
  background: var(--bg, #f7f5fb);
  padding: 6px 12px;
  border-bottom: 0.5px solid var(--b, #DDD6FE);
}
.ti-gm-sug-section-head:not(:first-child) {
  border-top: 0.5px solid var(--b, #DDD6FE);
}


/* ════════════════════════════════════════════════════════════════
 * Intel loading animation (Phase 4d, May 2026)
 * Globe → TI box → User flow, with sparkles and rising insights.
 * Single visual; phase text + sub-category label change per request.
 * ════════════════════════════════════════════════════════════════ */
.ti-in-globe { animation: ti-in-globe-rotate 10s linear infinite; transform-origin: 40px 75px; }
@keyframes ti-in-globe-rotate {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
.ti-in-globe-ring-1 { animation: ti-in-ring-pulse 3s ease-in-out infinite; transform-origin: 40px 75px; opacity: 0; }
.ti-in-globe-ring-2 { animation: ti-in-ring-pulse 3s ease-in-out infinite -1s; transform-origin: 40px 75px; opacity: 0; }
@keyframes ti-in-ring-pulse {
  0%   { transform: scale(0.7); opacity: 0; }
  50%  { opacity: 0.4; }
  100% { transform: scale(1.6); opacity: 0; }
}

.ti-in-flow-line {
  stroke-dasharray: 4 4;
  animation: ti-in-dash 1s linear infinite;
}
.ti-in-flow-line-rev {
  stroke-dasharray: 4 4;
  animation: ti-in-dash 1s linear infinite reverse;
}
@keyframes ti-in-dash {
  0%   { stroke-dashoffset: 16; }
  100% { stroke-dashoffset: 0; }
}

.ti-in-packet-1 { animation: ti-in-packet-flow 2.5s linear infinite; opacity: 0; }
.ti-in-packet-2 { animation: ti-in-packet-flow 2.5s linear infinite -0.8s; opacity: 0; }
.ti-in-packet-3 { animation: ti-in-packet-flow 2.5s linear infinite -1.6s; opacity: 0; }
@keyframes ti-in-packet-flow {
  0%   { transform: translateX(0); opacity: 0; }
  10%  { opacity: 1; }
  40%  { transform: translateX(50px); opacity: 1; }
  45%  { opacity: 0; }
  55%  { transform: translateX(50px); opacity: 1; }
  100% { transform: translateX(110px); opacity: 0; }
}

.ti-in-ti-box {
  animation: ti-in-box-pulse 2s ease-in-out infinite;
  transform-origin: center;
}
@keyframes ti-in-box-pulse {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.05); }
}
.ti-in-spark {
  animation: ti-in-spark-twinkle 1s ease-in-out infinite;
  transform-origin: center;
}
@keyframes ti-in-spark-twinkle {
  0%, 100% { opacity: 0.2; transform: scale(0.6); }
  50%      { opacity: 1; transform: scale(1.2); }
}

.ti-in-user {
  animation: ti-in-user-receive 2s ease-in-out infinite;
  transform-origin: 220px 90px;
}
@keyframes ti-in-user-receive {
  0%, 40% { opacity: 0.5; }
  70%, 100% { opacity: 1; }
}

.ti-in-insight {
  animation: ti-in-insight-rise 2s ease-out infinite;
  opacity: 0;
}
@keyframes ti-in-insight-rise {
  0%   { transform: translateY(0); opacity: 0; }
  30%  { opacity: 1; }
  100% { transform: translateY(-12px); opacity: 0; }
}


/* ════════════════════════════════════════════════════════════════
 * Tier limit modal (Phase 4d, May 2026)
 * Opens from the Reabrir popup's "Mostrando X de Y →" clickable footer.
 * ════════════════════════════════════════════════════════════════ */
.ti-reopen-foot-cta {
  background: none; border: none;
  color: #7C3AED; font-size: 11.5px; font-weight: 600;
  cursor: pointer; padding: 0;
  display: inline-flex; align-items: center; gap: 4px;
  font-family: inherit;
  transition: opacity .15s;
}
.ti-reopen-foot-cta:hover { opacity: 0.7; }
.ti-reopen-foot-cta-icon { font-size: 13px; line-height: 1; }

.ti-tlm-overlay {
  position: fixed; inset: 0; z-index: 10000;
  background: rgba(26, 16, 64, 0.55);
  backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
  animation: ti-tlm-overlay-in .2s ease-out;
}
@keyframes ti-tlm-overlay-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.ti-tlm-frame {
  background: #fff; border-radius: 18px; overflow: hidden;
  box-shadow: 0 14px 50px rgba(0, 0, 0, 0.35);
  max-width: 440px; width: 100%;
  animation: ti-tlm-frame-in .25s ease-out;
}
@keyframes ti-tlm-frame-in {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

.ti-tlm-hdr {
  background: radial-gradient(ellipse at top right, #4c1d95 0%, #1a1040 100%);
  padding: 26px 26px 56px;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.ti-tlm-hdr-pattern {
  position: absolute; inset: 0; opacity: 0.15;
  background-image:
    radial-gradient(circle at 20% 20%, #A78BFA 0%, transparent 25%),
    radial-gradient(circle at 80% 60%, #7C3AED 0%, transparent 25%);
  pointer-events: none;
}
.ti-tlm-hdr-content { position: relative; }
.ti-tlm-eyebrow {
  font-size: 10px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: #A78BFA;
  margin-bottom: 8px;
}
.ti-tlm-title {
  font-size: 20px; font-weight: 700; line-height: 1.25;
  margin-bottom: 8px;
}
.ti-tlm-sub {
  font-size: 12px; color: rgba(255,255,255,0.78); line-height: 1.55;
  max-width: 340px;
}
.ti-tlm-close {
  position: absolute; top: 14px; right: 16px; z-index: 2;
  background: rgba(255,255,255,0.12); border: none;
  width: 28px; height: 28px; border-radius: 50%;
  color: #fff; font-size: 18px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .15s;
  line-height: 1;
}
.ti-tlm-close:hover { background: rgba(255,255,255,0.22); }

.ti-tlm-current-pill {
  position: absolute; bottom: -22px; left: 24px; right: 24px;
  background: #fff;
  border-radius: 12px;
  padding: 14px 18px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
  display: flex; align-items: center; gap: 14px;
}
.ti-tlm-current-icon {
  width: 38px; height: 38px; border-radius: 9px;
  background: #F5F3FF;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; font-size: 18px;
}
.ti-tlm-current-stack {
  flex: 1; min-width: 0;
  display: flex; flex-direction: column; gap: 4px;  /* fixes "free" being cut against eyebrow */
}
.ti-tlm-current-label {
  font-size: 9px; font-weight: 700; letter-spacing: 0.08em;
  color: #6B7280; text-transform: uppercase;
  line-height: 1.2;
}
.ti-tlm-current-value {
  font-size: 13px; font-weight: 700; color: #1a1040;
  line-height: 1.2;
}
.ti-tlm-current-count {
  font-family: 'SF Mono', Menlo, Consolas, monospace;
  font-size: 17px; font-weight: 800;
  color: #7C3AED;
  flex-shrink: 0;
}

.ti-tlm-body { padding: 38px 24px 18px; }
.ti-tlm-tiers { display: flex; flex-direction: column; gap: 8px; }
.ti-tlm-tier {
  display: flex; align-items: center; gap: 12px;
  padding: 13px 14px;
  border: 1px solid #DDD6FE;
  border-radius: 10px;
  transition: border-color .15s, transform .12s;
  background: #fff;
}
.ti-tlm-tier:not(.disabled):hover {
  border-color: #7C3AED;
  transform: translateY(-1px);
}
.ti-tlm-tier.disabled {
  opacity: 0.55;
  background: #F5F3FF;
}
.ti-tlm-tier.pro {
  background: linear-gradient(135deg, rgba(124,58,237,0.05) 0%, rgba(167,139,250,0.02) 100%);
  border-color: #7C3AED;
}
.ti-tlm-tier-glyph {
  width: 34px; height: 34px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  font-size: 15px;
  background: #F5F3FF;
  color: #7C3AED;
}
.ti-tlm-tier-glyph.intel { background: linear-gradient(135deg, #4c1d95, #7C3AED); color: #fff; }
.ti-tlm-tier-glyph.pro { background: linear-gradient(135deg, #7C3AED, #A78BFA); color: #fff; }
.ti-tlm-tier-info { flex: 1; min-width: 0; }
.ti-tlm-tier-name {
  font-size: 12.5px; font-weight: 700; color: #1a1040;
  display: flex; align-items: center; gap: 6px;
  line-height: 1.3;
}
.ti-tlm-badge {
  background: #7C3AED; color: #fff; font-size: 8px;
  padding: 2px 6px; border-radius: 10px; font-weight: 700;
  letter-spacing: 0.04em; text-transform: uppercase;
}
.ti-tlm-tier-sub {
  font-size: 10.5px; color: #6B7280; margin-top: 3px;
  line-height: 1.3;
}
.ti-tlm-tier-count {
  font-family: 'SF Mono', Menlo, Consolas, monospace;
  font-size: 17px; font-weight: 800;
  color: #7C3AED;
  padding: 5px 10px;
  background: rgba(124,58,237,0.08);
  border-radius: 7px;
  min-width: 54px; text-align: center;
}
.ti-tlm-tier.pro .ti-tlm-tier-count { background: #7C3AED; color: #fff; }
.ti-tlm-tier.disabled .ti-tlm-tier-count { background: #F5F3FF; color: #6B7280; }

.ti-tlm-cta-row {
  display: flex; gap: 8px;
  padding: 4px 24px 22px;
}
.ti-tlm-cta-secondary {
  flex: 1;
  background: #F5F3FF;
  color: #1a1040; border: 1px solid #DDD6FE;
  padding: 12px 14px;
  border-radius: 10px;
  font-size: 12.5px; font-weight: 600;
  cursor: pointer; font-family: inherit;
}
.ti-tlm-cta-primary {
  flex: 2;
  background: linear-gradient(135deg, #7C3AED, #6d28d9);
  color: #fff; border: none;
  padding: 12px 14px;
  border-radius: 10px;
  font-size: 12.5px; font-weight: 700;
  cursor: pointer; font-family: inherit;
  letter-spacing: 0.02em;
  transition: transform .1s, box-shadow .15s;
}
.ti-tlm-cta-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(124, 58, 237, 0.3);
}


/* ════════════════════════════════════════════════════════════════
 * Events calendar animation (Phase 4d, May 2026)
 * Used by events_week / events_month / events_quarter loading visual.
 * Two-stage fill: empty → light purple → deep purple → reset.
 * Number text flips color in sync with cell fill so it stays legible.
 * ════════════════════════════════════════════════════════════════ */
.ti-cal-cell {
  fill: #F5F3FF;
  stroke: #DDD6FE;
  stroke-width: 0.5;
  animation: ti-cal-cell-fill var(--ti-cal-cycle, 6s) ease-in-out infinite;
  animation-delay: var(--ti-cal-delay, 0s);
}
@keyframes ti-cal-cell-fill {
  0%   { fill: #F5F3FF; }
  20%  { fill: #A78BFA; }
  40%  { fill: #7C3AED; }
  85%  { fill: #7C3AED; }
  100% { fill: #F5F3FF; }
}

.ti-cal-num {
  fill: #6B7280;
  font-size: 7px;
  font-weight: 700;
  text-anchor: middle;
  dominant-baseline: central;
  animation: ti-cal-num-flip var(--ti-cal-cycle, 6s) ease-in-out infinite;
  animation-delay: var(--ti-cal-delay, 0s);
}
.ti-cal-num-sm { font-size: 6px; }
@keyframes ti-cal-num-flip {
  0%, 19%   { fill: #6B7280; }
  20%, 39%  { fill: #1a1040; }
  40%, 85%  { fill: #ffffff; }
  100%      { fill: #6B7280; }
}

.ti-cal-day-label {
  font-size: 7px;
  fill: #6B7280;
  font-weight: 700;
  text-anchor: middle;
}

.ti-reopen-refresh.ti-cooldown-shake {
  animation: ti-cooldown-shake 0.4s ease-in-out;
  border-color: #f59e0b;
  color: #f59e0b;
}
@keyframes ti-cooldown-shake {
  0%, 100% { transform: translateX(0); }
  20%      { transform: translateX(-3px); }
  40%      { transform: translateX(3px); }
  60%      { transform: translateX(-2px); }
  80%      { transform: translateX(2px); }
}


/* ════════════════════════════════════════════════════════════════
   READING SETTINGS (gear) — themes + collapsed-tab transparency
   Phase 4e · 2026-06-11.  Padrão = default (no attr). Brand-aligned.
   ════════════════════════════════════════════════════════════════ */

/* ── collapsed-tab transparency toggle ── */
.ti-drawer.ti-tab-translucent .ti-handle{transition:opacity .25s ease}
.ti-drawer.ti-tab-translucent:not(.open):not(.peek) .ti-handle{opacity:.1}
.ti-drawer.ti-tab-translucent:not(.open):not(.peek) .ti-handle:hover{opacity:1}

/* ── settings popover ── */
.ti-settings-pop{position:absolute;top:44px;right:12px;width:244px;background:#fff;border:1px solid #e5e7eb;
  border-radius:13px;box-shadow:0 18px 44px rgba(26,16,64,.20);z-index:130;padding:12px 13px;display:none}
.ti-settings-pop.open{display:block;animation:tiSetIn .14s ease}
@keyframes tiSetIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.ti-set-h{font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#7C3AED;margin-bottom:9px}
.ti-set-label{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#888780;margin:2px 0 7px}
.ti-theme-opts{display:flex;flex-direction:column;gap:5px}
.ti-theme-opt{display:flex;align-items:center;gap:10px;padding:7px 9px;border:1px solid #e5e7eb;border-radius:9px;background:transparent;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;color:#1f2937;text-align:left;width:100%;transition:all .12s}
.ti-theme-opt:hover{border-color:#CECBF6;background:#faf9ff}
.ti-theme-opt.active{border-color:#7C3AED;background:#F5F3FF;color:#5b21b6}
.ti-theme-sw{width:22px;height:22px;border-radius:6px;flex-shrink:0;border:1px solid rgba(0,0,0,.12);box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.ti-set-sep{height:1px;background:#ede9fe;margin:11px 0}
.ti-set-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;font-weight:600;color:#3C3489;cursor:pointer}
.ti-switch{position:relative;flex-shrink:0;width:34px;height:19px}
.ti-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:2}
.ti-switch-track{position:absolute;inset:0;background:#D3D1C7;border-radius:19px;transition:background .18s}
.ti-switch-track::after{content:'';position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;transition:transform .18s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.ti-switch input:checked + .ti-switch-track{background:#7C3AED}
.ti-switch input:checked + .ti-switch-track::after{transform:translateX(15px)}

/* ════════ THEME · LAVANDA (medium) ════════ */
.ti-drawer[data-ti-theme="lavanda"]{background:#E9E5F5}
.ti-drawer[data-ti-theme="lavanda"] .ti-meta{background:#EFEBF9;border-bottom-color:#DCD3F0}
.ti-drawer[data-ti-theme="lavanda"] .ti-meta-row{border-bottom-color:#E0D9F3}
.ti-drawer[data-ti-theme="lavanda"] .ti-strip{background:#E9E5F5;border-bottom-color:#DCD3F0}
.ti-drawer[data-ti-theme="lavanda"] .ti-tab{background:#E9E5F5}
.ti-drawer[data-ti-theme="lavanda"] .ti-tab:hover{background:#E3DEF2}
.ti-drawer[data-ti-theme="lavanda"] .ti-tab.active{background:#F4F1FB}
.ti-drawer[data-ti-theme="lavanda"] #ti-analysis-body{color:#3a3357}
.ti-drawer[data-ti-theme="lavanda"] .ti-analysis-hero h1{color:#2e2856}
.ti-drawer[data-ti-theme="lavanda"] .ti-analysis-preamble{background:#EFEBF9;border-color:#DCD3F0;color:#44406a}
.ti-drawer[data-ti-theme="lavanda"] .ti-analysis-preamble strong{color:#241f4d}
.ti-drawer[data-ti-theme="lavanda"] details.ti-section{background:#F4F1FB;border-color:#DBD3F0}
.ti-drawer[data-ti-theme="lavanda"] details.ti-section[open] > summary{background:#EBE6F8;border-bottom-color:#E0D9F3}
.ti-drawer[data-ti-theme="lavanda"] details.ti-section:not([open]):hover{background:#EBE6F8;border-color:#CEC3EE}
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-num{background:#E0D9F3;color:#5b21b6}
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-title{color:#2e2856}
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body{background:#F1EDFA;color:#3a3357}
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body h2{color:#241f4d}
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body h3,.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body h4{color:#3C3489}
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body strong{color:#241f4d}
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body table{background:#F6F4FC}
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body th{background:#E0D9F3;color:#3C3489}
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body th,.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body td{border-color:#D3CAEE}
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body tr:nth-child(even) td{background:#EEEAF8}
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body code{background:#E4DEF6}
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body blockquote{background:#EFEBF9;border-left-color:#B7A8E6;color:#5b5580}
.ti-drawer[data-ti-theme="lavanda"] .ti-hero-outer{background:#E1DAF2;border-color:#CEC3EE}
.ti-drawer[data-ti-theme="lavanda"] .ti-hero-inner{background:#F4F1FB}
.ti-drawer[data-ti-theme="lavanda"] .ti-hero-gauge{background:#ECE8F8}
.ti-drawer[data-ti-theme="lavanda"] .ti-sub-strip{background:#EBE6F8;border-bottom-color:#DCD3F0}
.ti-drawer[data-ti-theme="lavanda"] .ti-sub-tab{background:#F4F1FB;border-color:#DCD3F0;color:#5b5580}
.ti-drawer[data-ti-theme="lavanda"] .ti-sub-tab.active{background:#F4F1FB;color:#3C3489;border-color:#CEC3EE}

/* ════════ THEME · NOTURNO (dark) ════════ */
.ti-drawer[data-ti-theme="noturno"]{background:#15111f;color:#d2cde4;border-left-color:rgba(167,139,250,.28)}
.ti-drawer[data-ti-theme="noturno"] .ti-meta{background:#1b1630;border-bottom-color:rgba(167,139,250,.15)}
.ti-drawer[data-ti-theme="noturno"] .ti-meta-row{border-bottom-color:rgba(167,139,250,.12)}
.ti-drawer[data-ti-theme="noturno"] .ti-meta-label{color:#c4b5fd}
.ti-drawer[data-ti-theme="noturno"] .ti-icon-btn{color:#b8b2cf}
.ti-drawer[data-ti-theme="noturno"] .ti-icon-btn:hover{background:#2a2342;color:#e6e1f5}
.ti-drawer[data-ti-theme="noturno"] .ti-strip{background:#15111f;border-bottom-color:rgba(167,139,250,.12)}
.ti-drawer[data-ti-theme="noturno"] .ti-tab{background:#15111f}
.ti-drawer[data-ti-theme="noturno"] .ti-tab:hover{background:#221c38}
.ti-drawer[data-ti-theme="noturno"] .ti-tab.active{background:#241d3a;border-bottom-color:#a78bfa}
.ti-drawer[data-ti-theme="noturno"] .ti-tab-symbol{color:#e6e1f5}
.ti-drawer[data-ti-theme="noturno"] .ti-tab.active .ti-tab-symbol{color:#c4b5fd}
.ti-drawer[data-ti-theme="noturno"] .ti-tab-count{background:#2a2342;color:#c4b5fd}
.ti-drawer[data-ti-theme="noturno"] .ti-tab.active .ti-tab-count{background:#322a4e;color:#ddd6fe}
.ti-drawer[data-ti-theme="noturno"] .ti-tab-sub{color:#9a93b5}
.ti-drawer[data-ti-theme="noturno"] #ti-analysis-body{color:#d2cde4}
.ti-drawer[data-ti-theme="noturno"] .ti-analysis-hero h1{color:#c4b5fd}
.ti-drawer[data-ti-theme="noturno"] .ti-analysis-preamble{background:#1b1630;border-color:rgba(167,139,250,.18);color:#c3bdd8}
.ti-drawer[data-ti-theme="noturno"] .ti-analysis-preamble strong{color:#e6e1f5}
.ti-drawer[data-ti-theme="noturno"] details.ti-section{background:#1b1630;border-color:rgba(167,139,250,.16)}
.ti-drawer[data-ti-theme="noturno"] details.ti-section[open]{border-color:rgba(167,139,250,.3)}
.ti-drawer[data-ti-theme="noturno"] details.ti-section[open] > summary{background:#221c38;border-bottom-color:rgba(255,255,255,.05)}
.ti-drawer[data-ti-theme="noturno"] details.ti-section:not([open]):hover{background:#221c38;border-color:rgba(167,139,250,.3)}
.ti-drawer[data-ti-theme="noturno"] details.ti-section:not([open]):hover .ti-sec-num{background:#322a4e}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-num{background:#2a2342;color:#c4b5fd}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-title{color:#d8d4e8}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-chev{color:#8b84a8}
.ti-drawer[data-ti-theme="noturno"] details.ti-section[open] .ti-sec-chev{color:#a78bfa}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body{background:#17132a;color:#cdc8e0}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body h2{color:#e6e1f5}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body h3,.ti-drawer[data-ti-theme="noturno"] .ti-sec-body h4{color:#c4b5fd}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body strong{color:#f1eefb}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body table{background:#1b1630}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body th{background:#2a2342;color:#c4b5fd}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body th,.ti-drawer[data-ti-theme="noturno"] .ti-sec-body td{border-color:rgba(167,139,250,.18)}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body tr:nth-child(even) td{background:#201a35}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body code{background:#2a2342;color:#d8d4e8}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body blockquote{background:#1b1630;border-left-color:#7C3AED;color:#b3acce}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body hr{border-top-color:rgba(167,139,250,.15)}
.ti-drawer[data-ti-theme="noturno"] .ti-hero-outer{background:#1b1630;border-color:rgba(167,139,250,.22)}
.ti-drawer[data-ti-theme="noturno"] .ti-hero-inner{background:#221c3a;box-shadow:0 2px 12px rgba(0,0,0,.3)}
.ti-drawer[data-ti-theme="noturno"] .ti-hero-gauge{background:#1b1630}
.ti-drawer[data-ti-theme="noturno"] .ti-hero-title,.ti-drawer[data-ti-theme="noturno"] .ti-hero-title h1{color:#e6e1f5}
.ti-drawer[data-ti-theme="noturno"] .ti-sub-strip{background:#1b1630;border-bottom-color:rgba(167,139,250,.15)}
.ti-drawer[data-ti-theme="noturno"] .ti-sub-tab{background:#221c38;border-color:rgba(167,139,250,.18);color:#b8b2cf}
.ti-drawer[data-ti-theme="noturno"] .ti-sub-tab:hover{background:#2a2342;color:#ddd6fe}
.ti-drawer[data-ti-theme="noturno"] .ti-sub-tab.active{background:#241d3a;color:#c4b5fd;border-color:rgba(167,139,250,.3)}
.ti-drawer[data-ti-theme="noturno"] .ti-sub-tab.active::after{background:#241d3a}
.ti-drawer[data-ti-theme="noturno"] .ti-acc-btn.primary{color:#c4b5fd;border-color:rgba(167,139,250,.3)}
.ti-drawer[data-ti-theme="noturno"] .ti-acc-btn.primary:hover{background:#2a2342}
.ti-drawer[data-ti-theme="noturno"] .ti-acc-btn.secondary{color:#9a93b5;border-color:rgba(255,255,255,.14)}
.ti-drawer[data-ti-theme="noturno"] .ti-body-empty-title{color:#e6e1f5}
.ti-drawer[data-ti-theme="noturno"] .ti-body-empty-sub{color:#9a93b5}
.ti-drawer[data-ti-theme="noturno"] .ti-body-empty-icon{background:#2a2342;color:#c4b5fd}
/* popover, dark */
.ti-drawer[data-ti-theme="noturno"] .ti-settings-pop{background:#1b1630;border-color:rgba(167,139,250,.25);color:#d8d4e8}
.ti-drawer[data-ti-theme="noturno"] .ti-set-label{color:#9a93b5}
.ti-drawer[data-ti-theme="noturno"] .ti-theme-opt{border-color:rgba(167,139,250,.18);color:#d8d4e8}
.ti-drawer[data-ti-theme="noturno"] .ti-theme-opt:hover{background:#221c38;border-color:rgba(167,139,250,.35)}
.ti-drawer[data-ti-theme="noturno"] .ti-theme-opt.active{background:#241d3a;border-color:#a78bfa;color:#ddd6fe}
.ti-drawer[data-ti-theme="noturno"] .ti-set-sep{background:rgba(167,139,250,.15)}
.ti-drawer[data-ti-theme="noturno"] .ti-set-toggle{color:#c4b5fd}
.ti-drawer[data-ti-theme="noturno"] .ti-switch-track{background:#3a3357}


/* ════════ NOTURNO · refinements (banners, hero, tabs) — 2026-06-11 ════════ */
/* inline-styled banners — !important to override element style attrs */
.ti-drawer[data-ti-theme="noturno"] .ti-report-meta{background:#1b1630 !important;border-color:rgba(167,139,250,.2) !important;color:#b3acce !important}
.ti-drawer[data-ti-theme="noturno"] .ti-report-meta b,
.ti-drawer[data-ti-theme="noturno"] .ti-report-meta strong{color:#e6e1f5 !important}
.ti-drawer[data-ti-theme="noturno"] .ti-cov-banner{background:#1f1838 !important;border-color:rgba(167,139,250,.3) !important;color:#cbb9f7 !important}
.ti-drawer[data-ti-theme="noturno"] .ti-cov-banner span[style*="background:#EDE9FE"]{background:#322a4e !important}
.ti-drawer[data-ti-theme="noturno"] .ti-cov-banner.ti-cov-green{background:#11241a !important;border-color:rgba(74,222,128,.32) !important;color:#86efac !important}
.ti-drawer[data-ti-theme="noturno"] .ti-cov-banner.ti-cov-green span[style*="background:#BBF7D0"]{background:#16432b !important}
.ti-drawer[data-ti-theme="noturno"] .ti-ver-banner{background:linear-gradient(135deg,#2b2410,#201b0f) !important;border-color:rgba(253,230,138,.32) !important;color:#fcd34d !important}
.ti-drawer[data-ti-theme="noturno"] .ti-ver-banner span[style*="background:#FDE68A"]{background:#4a3c10 !important}
.ti-drawer[data-ti-theme="noturno"] .ti-disclaimer{background:#1b1630 !important;border-color:rgba(167,139,250,.2) !important;color:#9a93b5 !important}
/* the small white "Adicionar" button inside the upsell banner → dark pill */
.ti-drawer[data-ti-theme="noturno"] .ti-cov-upsell button[style*="background:#fff"]{background:#2a2342 !important;color:#c4b5fd !important;border-color:#7C3AED !important}

/* hero (TI Score panel) — brighten on dark */
.ti-drawer[data-ti-theme="noturno"] .ti-hero-inner{border:1px solid rgba(167,139,250,.16)}
.ti-drawer[data-ti-theme="noturno"] .ti-hero-label{color:#a78bfa}
.ti-drawer[data-ti-theme="noturno"] .ti-hero-label::before{color:#a78bfa}
.ti-drawer[data-ti-theme="noturno"] .ti-hero-verdict-sub{color:#9a93b5}

/* tabs — clearer separation + active pop on dark */
.ti-drawer[data-ti-theme="noturno"] .ti-strip{background:#1b1630}
.ti-drawer[data-ti-theme="noturno"] .ti-tab{background:transparent;border-right:1px solid rgba(167,139,250,.09)}
.ti-drawer[data-ti-theme="noturno"] .ti-tab:hover{background:#221c38}
.ti-drawer[data-ti-theme="noturno"] .ti-tab.active{background:#2a2342;border-bottom-color:#a78bfa}
.ti-drawer[data-ti-theme="noturno"] .ti-tab.active .ti-tab-symbol{color:#ede9fe}
.ti-drawer[data-ti-theme="noturno"] .ti-tab-close{color:#7d769a}
.ti-drawer[data-ti-theme="noturno"] .ti-tab-close:hover{background:#322a4e;color:#fca5a5}


/* ════════ PEEK VIEW (hover-extend state) — themed ════════ */
/* LAVANDA */
.ti-drawer[data-ti-theme="lavanda"] .ti-peek-view{background:#E9E5F5}
.ti-drawer[data-ti-theme="lavanda"] .ti-pv-header{background:linear-gradient(180deg,#EFEBF9,#F4F1FB);border-bottom-color:#DCD3F0}
.ti-drawer[data-ti-theme="lavanda"] .ti-pv-empty-icon{background:#E0D9F3}
.ti-drawer[data-ti-theme="lavanda"] .ti-pv-empty-title{color:#2e2856}
.ti-drawer[data-ti-theme="lavanda"] .ti-pv-item{background:#F1EDFA;border-color:#DBD3F0}
.ti-drawer[data-ti-theme="lavanda"] .ti-pv-item:hover{background:#EBE6F8}
.ti-drawer[data-ti-theme="lavanda"] .ti-pv-item.active{background:#E3DDF4;border-color:#CEC3EE}
.ti-drawer[data-ti-theme="lavanda"] .ti-pv-item-symbol{color:#2e2856}
.ti-drawer[data-ti-theme="lavanda"] .ti-pv-item-type{background:#E0D9F3}
.ti-drawer[data-ti-theme="lavanda"] .ti-pv-footer{background:#EBE6F8;border-top-color:#DCD3F0}
.ti-drawer[data-ti-theme="lavanda"] .ti-pv-cta{background:#F4F1FB;border-color:#CEC3EE}
.ti-drawer[data-ti-theme="lavanda"] .ti-pv-cta:hover{background:#E4DEF6}
/* NOTURNO */
.ti-drawer[data-ti-theme="noturno"] .ti-peek-view{background:#15111f}
.ti-drawer[data-ti-theme="noturno"] .ti-pv-header{background:linear-gradient(180deg,#1b1630,#171327);border-bottom-color:rgba(167,139,250,.15)}
.ti-drawer[data-ti-theme="noturno"] .ti-pv-title{color:#c4b5fd}
.ti-drawer[data-ti-theme="noturno"] .ti-pv-empty{color:#9a93b5}
.ti-drawer[data-ti-theme="noturno"] .ti-pv-empty-icon{background:#2a2342;color:#c4b5fd}
.ti-drawer[data-ti-theme="noturno"] .ti-pv-empty-title{color:#e6e1f5}
.ti-drawer[data-ti-theme="noturno"] .ti-pv-item{background:#1b1630;border-color:rgba(167,139,250,.14)}
.ti-drawer[data-ti-theme="noturno"] .ti-pv-item:hover{background:#221c38}
.ti-drawer[data-ti-theme="noturno"] .ti-pv-item.active{background:#241d3a;border-color:rgba(167,139,250,.32)}
.ti-drawer[data-ti-theme="noturno"] .ti-pv-item-symbol{color:#e6e1f5}
.ti-drawer[data-ti-theme="noturno"] .ti-pv-item-type{background:#2a2342;color:#c4b5fd}
.ti-drawer[data-ti-theme="noturno"] .ti-pv-item.active .ti-pv-item-type{background:#322a4e;color:#ddd6fe}
.ti-drawer[data-ti-theme="noturno"] .ti-pv-footer{background:#1b1630;border-top-color:rgba(167,139,250,.15)}
.ti-drawer[data-ti-theme="noturno"] .ti-pv-cta{background:#221c38;color:#c4b5fd;border-color:rgba(167,139,250,.3)}
.ti-drawer[data-ti-theme="noturno"] .ti-pv-cta:hover{background:#2a2342;border-color:rgba(167,139,250,.5)}
.ti-drawer[data-ti-theme="noturno"] .ti-pv-hint{color:#8b84a8}


/* ════════ TAB COLORS — override the global "pill" !important block (#646) ════════ */
/* LAVANDA */
.ti-drawer[data-ti-theme="lavanda"] .ti-tab{background:#F4F1FB !important;border-color:#DBD3F0 !important;color:#5b5580 !important}
.ti-drawer[data-ti-theme="lavanda"] .ti-tab:hover{background:#EBE6F8 !important;border-color:#CEC3EE !important;color:#2e2856 !important}
.ti-drawer[data-ti-theme="lavanda"] .ti-tab.active{background:#FFFFFF !important;border-color:#7C3AED !important;color:#2e2856 !important}
.ti-drawer[data-ti-theme="lavanda"] .ti-tab .ti-tab-ticker,
.ti-drawer[data-ti-theme="lavanda"] .ti-tab .ti-tab-symbol{color:#2e2856 !important}
.ti-drawer[data-ti-theme="lavanda"] .ti-tab .ti-tab-count{background:#E0D9F3 !important;color:#5b21b6 !important}
.ti-drawer[data-ti-theme="lavanda"] .ti-tab.active .ti-tab-count{background:#7C3AED !important;color:#fff !important}
.ti-drawer[data-ti-theme="lavanda"] .ti-tab .ti-tab-sub{color:#6b6589 !important}
/* NOTURNO */
.ti-drawer[data-ti-theme="noturno"] .ti-tab{background:#1b1630 !important;border-color:rgba(167,139,250,.18) !important;color:#b8b2cf !important}
.ti-drawer[data-ti-theme="noturno"] .ti-tab:hover{background:#241d3a !important;border-color:rgba(167,139,250,.42) !important;color:#e6e1f5 !important}
.ti-drawer[data-ti-theme="noturno"] .ti-tab.active{background:#2a2342 !important;border-color:#a78bfa !important;color:#ede9fe !important}
.ti-drawer[data-ti-theme="noturno"] .ti-tab.active::after{background:#a78bfa}
.ti-drawer[data-ti-theme="noturno"] .ti-tab .ti-tab-ticker,
.ti-drawer[data-ti-theme="noturno"] .ti-tab .ti-tab-symbol{color:#e6e1f5 !important}
.ti-drawer[data-ti-theme="noturno"] .ti-tab.active .ti-tab-ticker,
.ti-drawer[data-ti-theme="noturno"] .ti-tab.active .ti-tab-symbol{color:#ede9fe !important}
.ti-drawer[data-ti-theme="noturno"] .ti-tab .ti-tab-count{background:#322a4e !important;color:#c4b5fd !important}
.ti-drawer[data-ti-theme="noturno"] .ti-tab.active .ti-tab-count{background:#7C3AED !important;color:#fff !important}
.ti-drawer[data-ti-theme="noturno"] .ti-tab .ti-tab-sub{color:#9a93b5 !important}
.ti-drawer[data-ti-theme="noturno"] .ti-tab-close{color:#8b84a8 !important}


/* ════════ CHART CARD frame/header/footer — themed (was white) ════════ */
/* LAVANDA */
.ti-drawer[data-ti-theme="lavanda"] .ti-chart-card{border-color:#D3CAEE !important}
.ti-drawer[data-ti-theme="lavanda"] .ti-chart-head{background:#EAE5F8 !important;color:#5b5580 !important}
.ti-drawer[data-ti-theme="lavanda"] .ti-chart-asof{background:#EFEBF9 !important;border-top-color:#DCD3F0 !important;color:#5b5580 !important}
/* NOTURNO */
.ti-drawer[data-ti-theme="noturno"] .ti-chart-card{border-color:rgba(167,139,250,.3) !important}
.ti-drawer[data-ti-theme="noturno"] .ti-chart-head{background:#1f1838 !important;color:#c4b5fd !important}
.ti-drawer[data-ti-theme="noturno"] .ti-chart-asof{background:#1b1630 !important;border-top-color:rgba(167,139,250,.2) !important;color:#9a93b5 !important}

/* peek-view hint is clickable → expand */
.ti-pv-hint{cursor:pointer;transition:color .12s}
.ti-pv-hint:hover{color:#7C3AED}
.ti-drawer[data-ti-theme="noturno"] .ti-pv-hint:hover{color:#c4b5fd}


/* ════════ REOPEN popup — themed to match drawer ════════ */
/* LAVANDA */
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-btn{background:#E0D9F3;border-color:#CEC3EE;color:#5b21b6}
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-btn:hover{background:#D6CCEF}
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-popup{background:#F4F1FB;border-color:#CEC3EE}
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-head{background:linear-gradient(180deg,#EFEBF9,#F4F1FB);border-bottom-color:#DCD3F0}
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-title{color:#2e2856}
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-search{background:transparent}
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-input{background:#EFEBF9;border-color:#DCD3F0;color:#2e2856}
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-input:focus{background:#fff;border-color:#AFA9EC}
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-item:hover{background:#EBE6F8}
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-item-sym{color:#2e2856}
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-item-meta{color:#6b6589}
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-item-type{background:#E0D9F3;color:#5b21b6}
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-headcount{background:#E0D9F3;color:#5b21b6}
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-empty{color:#6b6589}
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-foot{background:#EBE6F8;border-top-color:#DCD3F0;color:#6b6589}
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-refresh{border-color:#CEC3EE;color:#5b21b6}
.ti-drawer[data-ti-theme="lavanda"] .ti-reopen-refresh:hover{background:#E4DEF6;border-color:#7C3AED}
/* NOTURNO */
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-btn{background:#2a2342;border-color:rgba(167,139,250,.3);color:#c4b5fd}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-btn:hover{background:#322a4e}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-badge{border-color:#1b1630}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-popup{background:#1b1630;border-color:rgba(167,139,250,.3);box-shadow:0 16px 40px rgba(0,0,0,.5)}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-head{background:linear-gradient(180deg,#221c38,#1b1630);border-bottom-color:rgba(167,139,250,.15)}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-eyebrow{color:#a78bfa}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-title{color:#e6e1f5}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-search{background:transparent}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-input{background:#221c38;border-color:rgba(167,139,250,.2);color:#e6e1f5}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-input::placeholder{color:#7d769a}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-input:focus{background:#2a2342;border-color:#a78bfa}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-item:hover{background:#221c38}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-item-sym{color:#e6e1f5}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-item-meta{color:#9a93b5}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-item-type{background:#2a2342;color:#c4b5fd}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-dot{background:#a78bfa}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-dot{animation:ti-reopen-pulse-n 2s infinite}
@keyframes ti-reopen-pulse-n{0%,100%{box-shadow:0 0 0 0 rgba(167,139,250,.55)}50%{box-shadow:0 0 0 5px rgba(167,139,250,0)}}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-badge{background:#7C3AED;color:#fff}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-headcount{background:#2a2342;color:#c4b5fd}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-open{background:#7C3AED;color:#fff}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-open:hover{background:#8b5cf6}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-empty{color:#9a93b5}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-foot{background:#1b1630;border-top-color:rgba(167,139,250,.15);color:#9a93b5}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-refresh{border-color:rgba(167,139,250,.3);color:#c4b5fd}
.ti-drawer[data-ti-theme="noturno"] .ti-reopen-refresh:hover{background:#2a2342;border-color:#a78bfa}


/* ══════════════════════════════════════════════════════════════════
   EARNINGS RAIL  (.ti-er-*)  — additive; nothing above is modified.
   Tokens reused verbatim from the .ti-gn-* system so it belongs.
   ══════════════════════════════════════════════════════════════════ */
.ti-er{background:linear-gradient(180deg,#F7F5FF 0%,#FDFCFF 100%);border:1px solid #DDD9FB;border-left:3px solid #7C3AED;border-radius:13px;padding:13px 16px 12px;margin-bottom:14px}
.ti-er[hidden]{display:none}
.ti-er-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;gap:12px}
.ti-er-hd .t{font-size:13px;font-weight:600;line-height:1.25;color:#1e1b4b}
.ti-er-hd .s{font-size:11px;color:#888780;margin-top:2px}
.ti-er-chip{font-size:10px;letter-spacing:0.08em;text-transform:uppercase;font-weight:600;padding:4px 9px;border-radius:6px;background:#EEEDFE;color:#5b21b6;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;flex-shrink:0}
.ti-er-chip .live{width:5px;height:5px;border-radius:50%;background:#7C3AED;animation:ti-er-pulse 1.8s ease-in-out infinite}
@keyframes ti-er-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.5)}}
.ti-er-rail{position:relative;height:74px;margin:2px 30px 0}
.ti-er-line{position:absolute;left:0;right:0;top:33px;height:2px;background:#E2DEFB;border-radius:2px;overflow:hidden}
.ti-er-line i{position:absolute;inset:0;border-radius:2px;background:linear-gradient(90deg,#CECBF6,#7C3AED)}
.ti-er-line i::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.85),transparent);animation:ti-er-sheen 2.8s linear infinite}
@keyframes ti-er-sheen{0%{transform:translateX(-100%)}100%{transform:translateX(220%)}}
.ti-er-node{position:absolute;top:0;transform:translateX(-50%);text-align:center;cursor:pointer;width:104px;background:none;border:none;padding:0;font-family:inherit;display:flex;flex-direction:column;align-items:center}
.ti-er-node .lbl{font-size:12px;font-weight:600;color:#1e1b4b;letter-spacing:0.02em;white-space:nowrap;line-height:1;margin-bottom:7px;transition:color .18s}
.ti-er-node .dot{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;background:#fff;border:2px solid #d6d3d1;color:#fff;transition:transform 200ms cubic-bezier(0.32,0.72,0,1),box-shadow .2s,border-color .18s,background .18s}
.ti-er-node .dot svg{width:12px;height:12px;position:relative;z-index:2;overflow:visible}
.ti-er-node .sub{font-size:10.5px;color:#888780;margin-top:8px;white-space:nowrap;line-height:1.15}
.ti-er-node.owned .dot{background:#5b21b6;border-color:#5b21b6}
.ti-er-node.avail .dot{background:#EEEDFE;border-color:#7C3AED;color:#5b21b6}
.ti-er-node.ready .dot{background:#fff;border-color:#A78BFA;color:#7C3AED}
.ti-er-node.soon  .dot{background:#fff;border-color:#d6d3d1;border-style:dashed;color:#B4B2A9}
.ti-er-node:hover .dot,.ti-er-node.on .dot{transform:scale(1.18)}
.ti-er-node:hover .dot{box-shadow:0 0 0 6px rgba(124,58,237,0.13)}
.ti-er-node:hover .lbl,.ti-er-node.on .lbl{color:#5b21b6}
/* price tag — the chosen "available" mark */
.ti-i-tag{transform-origin:5px 5px}
.ti-er-node:hover .ti-i-tag{animation:ti-er-tag 1.4s ease-in-out infinite}
@keyframes ti-er-tag{0%,60%,100%{transform:rotate(0)}72%{transform:rotate(-9deg)}84%{transform:rotate(5deg)}}
/* quarter + trend — the chosen card icon */
.ti-i-qtrend .trend{stroke-dasharray:22;stroke-dashoffset:22;animation:ti-er-draw 3.4s ease-in-out infinite}
.ti-er-act:hover .ti-i-qtrend .trend{animation:ti-er-draw 1.6s ease-in-out infinite}
@keyframes ti-er-draw{0%,10%{stroke-dashoffset:22}55%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:22}}
.ti-i-qtrend .pin{transform-origin:center;transform-box:fill-box;animation:ti-er-pin 3.4s ease-in-out infinite}
@keyframes ti-er-pin{0%,55%,100%{transform:scale(1)}70%{transform:scale(1.5)}}
.ti-er-act{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;background:#fff;border:1px solid #DDD9FB;border-left:3px solid #CECBF6;border-radius:11px;padding:11px 13px;margin-top:8px;cursor:pointer;transition:border-color .18s,transform 200ms cubic-bezier(0.32,0.72,0,1),box-shadow .2s}
.ti-er-act:hover{transform:translateY(-1px);border-color:#7C3AED;border-left-color:#5b21b6;box-shadow:0 6px 18px rgba(91,33,182,0.14)}
.ti-er-act .ic{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:#EEEDFE;color:#5b21b6;transition:background .18s,transform .18s}
.ti-er-act:hover .ic{transform:scale(1.05);background:#CECBF6}
.ti-er-act .ic svg{width:22px;height:22px;overflow:visible}
.ti-er-act .t{font-size:13.5px;font-weight:500;margin:0;color:#1e1b4b}
.ti-er-act .s{font-size:11.5px;color:#888780;margin:3px 0 0;line-height:1.35}
.ti-er-act .go{font-size:12.5px;font-weight:500;padding:7px 13px;border-radius:9px;white-space:nowrap;background:#EEEDFE;color:#5b21b6;transition:background .16s,color .16s}
.ti-er-act:hover .go{background:#5b21b6;color:#fff}
.ti-er-act .go .was{text-decoration:line-through;opacity:.5;font-size:11px;margin-right:5px}
.ti-er-fade{animation:ti-er-in 260ms cubic-bezier(0.32,0.72,0,1)}
@keyframes ti-er-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.ti-er-legend{display:flex;flex-wrap:wrap;gap:9px 16px;margin-top:11px;padding-top:10px;border-top:1px solid #E6E2FC}
.ti-er-legend i{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;color:#7d7b74;font-style:normal}
.ti-er-legend b{width:11px;height:11px;border-radius:50%;display:inline-block;flex-shrink:0}
.ti-er-legend .l1{background:#5b21b6}
.ti-er-legend .l2{background:#EEEDFE;box-shadow:inset 0 0 0 2px #7C3AED}
.ti-er-legend .l3{background:#fff;box-shadow:inset 0 0 0 2px #A78BFA}
.ti-er-legend .l4{background:#fff;box-shadow:inset 0 0 0 2px #d6d3d1}

/* ── Branded quote card (earnings §6/§7) ─────────────────────────────────
   Three voices, three treatments: the company speaks (quote), who said it (caption),
   and what TraderIntel makes of it (the note panel below). They used to share one
   colour and one rhythm, which is why the sections read as an undifferentiated wall. */
.ti-sec-body .ti-quote{
  position:relative; margin:20px 0 6px; padding:16px 18px 14px 58px;
  background:linear-gradient(180deg,#F6F3FF,#FDFCFF);
  border-left:3px solid #7C3AED; border-radius:0 10px 10px 0;
  box-shadow:0 1px 2px rgba(124,58,237,.06);
  transition:box-shadow .22s ease, transform .22s ease, border-color .22s ease;
}
.ti-sec-body .ti-quote:hover{
  box-shadow:0 4px 14px rgba(124,58,237,.16);
  transform:translateX(2px); border-left-color:#6D28D9;
}
.ti-sec-body .ti-quote .ti-quote-mark{
  position:absolute; left:16px; top:15px;
  fill:#7C3AED; opacity:.30;
  transition:opacity .22s ease, transform .22s ease;
}
.ti-sec-body .ti-quote:hover .ti-quote-mark{ opacity:.55; transform:scale(1.06); }
.ti-sec-body .ti-quote .ti-quote-text{
  font-size:14.5px; line-height:1.68; color:#4C1D95; font-style:italic;
  letter-spacing:.002em;
}
.ti-sec-body .ti-quote .ti-quote-by{
  margin-top:11px; font-size:10.5px; font-style:normal; font-weight:700;
  letter-spacing:.07em; text-transform:uppercase; color:#7C3AED; opacity:.85;
}
.ti-sec-body .ti-quote .ti-quote-by::before{ content:"— "; opacity:.6; }

/* Our commentary. Directly follows a quote in §6, so bind it visually to the quote it
   answers while keeping it clearly a separate voice. */
.ti-sec-body .ti-quote + p{
  margin:0 0 22px; padding:12px 16px;
  background:#FBFAFF; border-left:2px solid #C4B5FD;
  border-radius:0 8px 8px 0; line-height:1.62;
}
/* The "TraderIntel:" label itself — tagged server-side in markdown_to_html, because CSS
   cannot select an element by its text. */
.ti-sec-body .ti-note-label{
  color:#5B21B6; font-weight:700; letter-spacing:.01em;
}
/* §7 states it inside list items rather than after a quote. */
.ti-sec-body li > .ti-note-label{ display:inline-block; margin-top:2px; }

.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body .ti-quote{
  background:linear-gradient(180deg,#EFEBF9,#F6F3FC); border-left-color:#8B6FD4;
}
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body .ti-quote .ti-quote-text{ color:#4a4470; }
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body .ti-quote .ti-quote-by{ color:#7357c4; }
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body .ti-quote .ti-quote-mark{ fill:#8B6FD4; }
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body .ti-quote + p{
  background:#F3F0FB; border-left-color:#B7A8E6;
}
.ti-drawer[data-ti-theme="lavanda"] .ti-sec-body .ti-note-label{ color:#6D4FC0; }

.ti-drawer[data-ti-theme="noturno"] .ti-sec-body .ti-quote{
  background:linear-gradient(180deg,#1e1836,#191428); border-left-color:#7C3AED;
  box-shadow:0 1px 2px rgba(0,0,0,.3);
}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body .ti-quote:hover{
  box-shadow:0 4px 16px rgba(124,58,237,.28);
}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body .ti-quote .ti-quote-text{ color:#cfc7ec; }
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body .ti-quote .ti-quote-by{ color:#a78bfa; }
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body .ti-quote .ti-quote-mark{ fill:#a78bfa; opacity:.36; }
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body .ti-quote + p{
  background:#171226; border-left-color:#5B21B6;
}
.ti-drawer[data-ti-theme="noturno"] .ti-sec-body .ti-note-label{ color:#c4b5fd; }

/* ── Locked PDF button (Free tier) ──────────────────────────────────────────
   Same footprint and layout as the live button so the drawer does not reflow
   between tiers -- only the treatment changes: muted surface, lock in place of
   the download arrow, no hover lift. Clicking opens the upgrade modal.
   The button keeps `overflow:hidden`, so the lock sits INLINE where the arrow
   was rather than as an absolutely-positioned corner badge (which would clip). */
.ti-hero-pdf-btn.locked {
  background: linear-gradient(135deg, #EFEDF5 0%, #E4E0EE 100%);
  color: #6B6480;
  box-shadow: 0 2px 8px rgba(24, 20, 40, 0.10);
  cursor: pointer;
}
.ti-hero-pdf-btn.locked:hover {
  background: linear-gradient(135deg, #E9E5F3 0%, #DCD6EC 100%);
  box-shadow: 0 4px 14px rgba(124, 58, 237, 0.18);
  transform: none;
}
.ti-hero-pdf-btn.locked .ti-hero-pdf-icon svg { opacity: .62; }
.ti-hero-pdf-btn.locked:hover .ti-hero-pdf-icon svg { transform: none; }
.ti-hero-pdf-btn.locked .ti-hero-pdf-text strong { color: #4A4360; }
.ti-hero-pdf-btn.locked .ti-hero-pdf-text span   { color: #7C3AED; font-weight: 600; }
.ti-hero-pdf-lock {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  color: #7C3AED;
}
.ti-hero-pdf-lock svg { width: 15px; height: 15px; }

.dk .ti-hero-pdf-btn.locked {
  background: linear-gradient(135deg, #2A2440 0%, #221D36 100%);
  color: #B8B0CC;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.32);
}
.dk .ti-hero-pdf-btn.locked:hover {
  background: linear-gradient(135deg, #322A4C 0%, #2A2440 100%);
  box-shadow: 0 4px 16px rgba(124, 58, 237, 0.26);
}
.dk .ti-hero-pdf-btn.locked .ti-hero-pdf-text strong { color: #DAD4E8; }
.dk .ti-hero-pdf-btn.locked .ti-hero-pdf-text span   { color: #A78BFA; }
.dk .ti-hero-pdf-lock { color: #A78BFA; }
