@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap');

/* ══════════════════════════════════════════════════════════════
   SPLASH / BOOT SCREEN
══════════════════════════════════════════════════════════════ */
#splashScreen {
  position: fixed; inset: 0; z-index: 99999;
  background: #020407;
  display: flex; align-items: center; justify-content: center;
  transition: opacity 0.7s ease;
}
#splashScreen.splash-hiding { opacity: 0; pointer-events: none; }

.splash-inner {
  display: flex; flex-direction: column; align-items: center;
  gap: 0; width: 440px; max-width: 90vw;
}

.splash-logo {
  font-family: 'JetBrains Mono', monospace;
  font-size: 52px; font-weight: 800; letter-spacing: 6px;
  color: #00ff88;
  text-shadow: 0 0 40px rgba(0,255,136,0.5), 0 0 80px rgba(0,255,136,0.2);
  margin-bottom: 6px;
  animation: splash-pulse 2s ease-in-out infinite;
}
@keyframes splash-pulse {
  0%,100% { text-shadow: 0 0 30px rgba(0,255,136,0.4), 0 0 60px rgba(0,255,136,0.15); }
  50% { text-shadow: 0 0 50px rgba(0,255,136,0.7), 0 0 100px rgba(0,255,136,0.3); }
}

.splash-tagline {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; letter-spacing: 3px; color: #2d4a3e;
  margin-bottom: 40px;
}

.splash-lines {
  width: 100%; display: flex; flex-direction: column; gap: 8px;
  margin-bottom: 28px;
}

.spl-line {
  display: flex; align-items: center; gap: 10px;
  font-family: 'JetBrains Mono', monospace; font-size: 11px;
  opacity: 0.3; transition: opacity 0.4s;
}
.spl-line.spl-active { opacity: 1; }
.spl-line.spl-done { opacity: 0.55; }

.spl-prefix {
  color: #1e4d35; font-weight: 600; flex-shrink: 0;
  transition: color 0.4s;
}
.spl-line.spl-active .spl-prefix { color: #00ff88; }
.spl-line.spl-done   .spl-prefix { color: #2a6644; }

.spl-msg {
  color: #3a5a4a; transition: color 0.4s;
}
.spl-line.spl-active .spl-msg { color: #b0ffd8; }
.spl-line.spl-done   .spl-msg { color: #2d4a3e; }

/* progress bar */
.splash-bar-wrap {
  width: 100%; height: 2px; background: #0d1f1a;
  border-radius: 2px; overflow: hidden; margin-bottom: 14px;
}
.splash-bar-fill {
  height: 100%; width: 0%; background: #00ff88;
  border-radius: 2px;
  transition: width 0.6s cubic-bezier(0.4,0,0.2,1);
  box-shadow: 0 0 10px rgba(0,255,136,0.6);
}

.splash-hint {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; color: #1e3a2e; letter-spacing: 1px;
  transition: color 0.4s;
}
.splash-hint.ready { color: #00ff88; }

/* ══════════════════════════════════════════════════════════════
   INTRO / WELCOME EXPERIENCE
══════════════════════════════════════════════════════════════ */
#introExperience {
  position: fixed;
  inset: 0;
  z-index: 65000;
  display: none;
  overflow-y: auto;
  padding: 24px clamp(14px, 3vw, 40px) 38px;
  background:
    radial-gradient(1400px 620px at 6% -14%, rgba(37, 99, 235, 0.28), transparent 60%),
    radial-gradient(900px 460px at 98% 0%, rgba(245, 158, 11, 0.18), transparent 60%),
    linear-gradient(160deg, #020407 0%, #081122 52%, #050b17 100%);
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity 0.36s ease, transform 0.36s ease;
}

#introExperience.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

#introExperience.intro-leaving {
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px);
}

body.intro-open {
  overflow: hidden;
}

.intro-shell {
  max-width: 1140px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.intro-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.intro-brand-wrap {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.intro-brand {
  font-family: 'JetBrains Mono', monospace;
  font-size: 28px;
  font-weight: 800;
  letter-spacing: 3px;
  color: #9dd3ff;
  text-shadow: 0 0 28px rgba(59, 130, 246, 0.35);
}

.intro-brand-sub {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 1.8px;
  color: #6f8fb3;
}

.intro-cta-btn {
  border: 1px solid rgba(157, 211, 255, 0.35);
  background: rgba(13, 27, 45, 0.9);
  color: #d8ecff;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  border-radius: 7px;
  padding: 11px 14px;
  cursor: pointer;
  transition: all 0.18s ease;
}

.intro-cta-btn:hover {
  transform: translateY(-1px);
  border-color: rgba(157, 211, 255, 0.7);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
}

.intro-cta-btn-solid {
  background: linear-gradient(135deg, #1f4fa8 0%, #2d66d9 100%);
  border-color: rgba(155, 208, 255, 0.8);
}

.intro-hero {
  background: linear-gradient(140deg, rgba(7, 16, 30, 0.96) 0%, rgba(8, 20, 37, 0.9) 100%);
  border: 1px solid rgba(77, 112, 153, 0.45);
  border-radius: 12px;
  padding: clamp(18px, 3vw, 30px);
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.35);
}

.intro-hero-chip {
  display: inline-flex;
  align-items: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.9px;
  text-transform: uppercase;
  padding: 5px 10px;
  border-radius: 999px;
  color: #8dc2f5;
  border: 1px solid rgba(141, 194, 245, 0.35);
  background: rgba(31, 79, 168, 0.18);
  margin-bottom: 12px;
}

.intro-hero h1 {
  font-size: clamp(24px, 3.3vw, 40px);
  line-height: 1.14;
  font-weight: 900;
  color: #eef6ff;
  max-width: 760px;
}

.intro-hero p {
  margin-top: 12px;
  color: #9ab4cf;
  font-size: 14px;
  line-height: 1.68;
  max-width: 770px;
}

.intro-kpi-grid {
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.intro-kpi-card {
  background: rgba(12, 25, 44, 0.86);
  border: 1px solid rgba(110, 149, 194, 0.32);
  border-radius: 10px;
  padding: 12px 10px;
}

.intro-kpi-value {
  font-family: 'JetBrains Mono', monospace;
  font-size: 23px;
  font-weight: 800;
  color: #f4b64a;
}

.intro-kpi-label {
  margin-top: 6px;
  font-size: 11px;
  color: #88a4c4;
  line-height: 1.35;
}

.intro-about-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

.intro-about-card {
  background: rgba(9, 20, 36, 0.92);
  border: 1px solid rgba(74, 106, 146, 0.45);
  border-radius: 10px;
  padding: 15px 14px;
}

.intro-about-card h2 {
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  letter-spacing: 0.4px;
  color: #cbe4ff;
  margin-bottom: 8px;
}

.intro-about-card p {
  font-size: 12.5px;
  line-height: 1.6;
  color: #8ea9c7;
}

.intro-contact-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 12px;
}

.intro-contact-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 11px;
  border-radius: 8px;
  text-decoration: none;
  background: rgba(14, 28, 47, 0.86);
  border: 1px solid rgba(91, 133, 179, 0.35);
  transition: var(--transition);
}

.intro-contact-link:hover {
  border-color: rgba(244, 182, 74, 0.55);
  transform: translateY(-1px);
}

.intro-contact-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #86a7ca;
}

.intro-contact-value {
  font-size: 12px;
  font-weight: 700;
  color: #f4f8ff;
  text-align: right;
}

.intro-shots-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.intro-shot-card {
  background: rgba(9, 19, 34, 0.92);
  border: 1px solid rgba(63, 97, 137, 0.45);
  border-radius: 10px;
  padding: 12px;
}

.intro-shot-head {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: #9ec8f1;
  letter-spacing: 0.7px;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.intro-shot-body {
  border-radius: 8px;
  min-height: 170px;
  border: 1px solid rgba(88, 127, 172, 0.36);
  background: linear-gradient(180deg, rgba(10, 26, 46, 0.92) 0%, rgba(7, 19, 34, 0.85) 100%);
  padding: 12px;
}

.intro-shot-row {
  height: 12px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(70, 122, 180, 0.55), rgba(70, 122, 180, 0.12));
  margin-bottom: 8px;
}

.intro-shot-row-lg {
  height: 20px;
  margin-bottom: 12px;
  background: linear-gradient(90deg, rgba(245, 158, 11, 0.5), rgba(245, 158, 11, 0.12));
}

.intro-shot-mini-grid {
  margin-top: 11px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
}

.intro-shot-mini-grid span {
  display: block;
  height: 42px;
  border-radius: 7px;
  background: linear-gradient(180deg, rgba(29, 66, 106, 0.9) 0%, rgba(13, 30, 50, 0.85) 100%);
  border: 1px solid rgba(95, 128, 165, 0.28);
}

.intro-shot-flow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  align-items: stretch;
}

.intro-flow-col {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.intro-flow-pill {
  border-radius: 999px;
  padding: 7px 10px;
  font-size: 10px;
  font-family: 'JetBrains Mono', monospace;
  letter-spacing: 0.5px;
  border: 1px solid transparent;
}

.intro-flow-pill.up {
  color: #5cffbf;
  background: rgba(0, 217, 126, 0.12);
  border-color: rgba(0, 217, 126, 0.3);
}

.intro-flow-pill.dn {
  color: #ff9ead;
  background: rgba(255, 61, 87, 0.12);
  border-color: rgba(255, 61, 87, 0.28);
}

.intro-flow-pill.nw {
  color: #ffd591;
  background: rgba(245, 158, 11, 0.12);
  border-color: rgba(245, 158, 11, 0.28);
}

.intro-flow-line {
  height: 12px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(117, 154, 197, 0.5), rgba(117, 154, 197, 0.08));
}

.intro-flow-line.short {
  width: 70%;
}

.intro-comments {
  background: rgba(8, 18, 33, 0.9);
  border: 1px solid rgba(67, 101, 142, 0.4);
  border-radius: 10px;
  padding: 14px;
}

.intro-comments-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 11px;
}

.intro-comments-head h2 {
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  color: #c6e3ff;
}

.intro-comments-head span {
  font-size: 10px;
  letter-spacing: 0.7px;
  text-transform: uppercase;
  color: #6b90b8;
}

.intro-comments-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.intro-comment {
  padding: 10px;
  border-radius: 8px;
  border: 1px solid rgba(76, 110, 151, 0.34);
  background: rgba(10, 24, 42, 0.85);
}

.intro-comment p {
  font-size: 11px;
  line-height: 1.5;
  color: #9eb5cc;
  margin-bottom: 8px;
}

.intro-comment strong {
  font-size: 11px;
  color: #d7e9ff;
  font-weight: 600;
}

.intro-bottom-cta {
  margin-top: 2px;
  border: 1px solid rgba(88, 126, 171, 0.45);
  background: linear-gradient(130deg, rgba(11, 26, 46, 0.95) 0%, rgba(13, 31, 53, 0.92) 100%);
  border-radius: 10px;
  padding: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.intro-bottom-cta h3 {
  font-size: 17px;
  color: #ecf5ff;
  margin-bottom: 5px;
}

.intro-bottom-cta p {
  font-size: 12px;
  color: #90abc8;
}

@media (max-width: 1080px) {
  .intro-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .intro-about-grid {
    grid-template-columns: 1fr;
  }
  .intro-comments-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  #introExperience {
    padding: 18px 12px 24px;
  }
  .intro-shots-grid,
  .intro-comments-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .intro-bottom-cta {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 600px) {
  .intro-top {
    flex-direction: column;
    align-items: flex-start;
  }
  .intro-hero h1 {
    font-size: 24px;
  }
  .intro-kpi-grid,
  .intro-shots-grid,
  .intro-comments-grid {
    grid-template-columns: 1fr;
  }
  .intro-cta-btn {
    width: 100%;
  }
}

:root {
    /* ── Bloomberg-style Dark Terminal Palette ── */
    --bg-void: #020407;
    --bg-primary: #060d18;
    --bg-secondary: #0a1524;
    --bg-card: #0b1220;
    --bg-card-hover: #0f1a2e;
    --bg-elevated: #0d1a2e;
    --bg-panel-header: #091020;
    --bg-row-hover: #0f1e32;

    --border-color: rgba(26, 40, 64, 0.9);
    --border-panel: #1a2840;
    --border-accent: rgba(245, 158, 11, 0.35);

    --text-primary: #dce7f3;
    --text-secondary: #7a9ab8;
    --text-muted: #3d5570;

    /* ── Bloomberg Amber (signature) ── */
    --amber: #f59e0b;
    --amber-dim: #b8760a;
    --amber-glow: rgba(245, 158, 11, 0.12);

    /* ── Brand Blue (OZCx) ── */
    --accent-primary: #2563eb;
    --accent-secondary: #3b82f6;
    --accent-glow: rgba(37, 99, 235, 0.12);

    /* ── Signal Colors (Bloomberg bright) ── */
    --long-color: #00d97e;
    --long-bg: rgba(0, 217, 126, 0.08);
    --long-border: rgba(0, 217, 126, 0.25);
    --short-color: #ff3d57;
    --short-bg: rgba(251, 72, 96, 0.08);
    --short-border: rgba(255, 61, 87, 0.25);
    --wait-color: #f59e0b;
    --wait-bg: rgba(245, 158, 11, 0.08);
    --wait-border: rgba(245, 158, 11, 0.25);

    --glass-bg: rgba(6, 13, 24, 0.85);
    --glass-border: rgba(26, 40, 64, 0.6);

    /* ── Compact corners (Bloomberg is angular) ── */
    --radius-sm: 3px;
    --radius-md: 5px;
    --radius-lg: 7px;
    --radius-xl: 9px;

    --shadow-sm: 0 1px 6px rgba(0, 0, 0, 0.4);
    --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.5);
    --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.6);
    --transition: all 0.18s cubic-bezier(0.4, 0, 0.2, 1);

    /* ── Aliases (used throughout by legacy/mobile CSS) ── */
    --accent:      #00d97e;
    --accent-bg:   rgba(0, 217, 126, 0.08);
    --border:      #1a2840;
    --bg-panel:    #0b1220;
    --bg-terminal: #060d18;
    --bg-tertiary: #0a1524;
    --panel-bg:    #0b1220;
}

body.light-mode {
    --bg: #F8F9FA;
    --bg-elevated: #FFFFFF;
    --text-primary: #0A0A0F;
    --text-secondary: #4A4A6A;
    --border: rgba(0, 0, 0, 0.08);

    --bg-void: #F6F7FB;
    --bg-primary: #F8F9FA;
    --bg-secondary: #FFFFFF;
    --bg-card: #FFFFFF;
    --bg-card-hover: #F2F5FC;
    --bg-panel-header: #EEF2FA;
    --bg-row-hover: #E9EEF8;
    --bg-panel: #FFFFFF;
    --bg-terminal: #F8F9FA;
    --bg-tertiary: #EFF3FA;
    --panel-bg: #FFFFFF;

    --border-color: rgba(0, 0, 0, 0.08);
    --border-panel: rgba(0, 0, 0, 0.1);
    --text-muted: #6A6A86;

    --amber: #C77800;
    --amber-dim: #9D6205;
    --amber-glow: rgba(199, 120, 0, 0.14);
    --accent-primary: #6C63FF;
    --accent-secondary: #7D75FF;
    --accent-glow: rgba(108, 99, 255, 0.18);
    --glass-bg: rgba(255, 255, 255, 0.9);
    --glass-border: rgba(0, 0, 0, 0.08);
}

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: 13px;
    scroll-behavior: smooth;
    scrollbar-width: thin;
    scrollbar-color: #1a2840 #020407;
}

::-webkit-scrollbar {
    width: 5px;
    height: 5px;
}

::-webkit-scrollbar-track {
    background: #020407;
}

::-webkit-scrollbar-thumb {
    background: #1a2840;
    border-radius: 2px;
}

::-webkit-scrollbar-thumb:hover {
    background: #f59e0b44;
}

body {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--bg-void);
    color: var(--text-primary);
    min-height: 100vh;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    letter-spacing: 0.01em;
}

/* Subtle scan-line effect for terminal feel */
body::after {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: repeating-linear-gradient(0deg,
            transparent,
            transparent 2px,
            rgba(0, 0, 0, 0.03) 2px,
            rgba(0, 0, 0, 0.03) 4px);
    pointer-events: none;
    z-index: 9999;
}

body.light-mode::after {
    background: repeating-linear-gradient(0deg,
            transparent,
            transparent 2px,
            rgba(255, 255, 255, 0.12) 2px,
            rgba(255, 255, 255, 0.12) 4px);
}

/* ─── SIDEBAR (Bloomberg Terminal Nav) ─── */
.sidebar {
    position: fixed;
    left: 0;
    top: 28px;
    /* ticker tape height */
    bottom: 28px;
    /* status bar height */
    width: 56px;
    background: var(--bg-secondary);
    border-right: 1px solid var(--border-panel);
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 12px 0;
    z-index: 100;
    transition: var(--transition);
}

.sidebar-logo {
    width: 38px;
    height: 38px;
    background: linear-gradient(135deg, var(--accent-primary), #1d4ed8);
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 11px;
    color: #fff;
    margin-bottom: 20px;
    letter-spacing: 0px;
    box-shadow: 0 0 12px rgba(37, 99, 235, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.1);
    cursor: pointer;
    border: 1px solid rgba(37, 99, 235, 0.5);
}

.sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
}

.nav-item {
    width: 40px;
    height: 36px;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    cursor: pointer;
    transition: var(--transition);
    position: relative;
    border: none;
    background: none;
    font-size: 16px;
}

.nav-item:hover {
    background: rgba(245, 158, 11, 0.06);
    color: var(--text-secondary);
}

.nav-item.active {
    background: rgba(245, 158, 11, 0.10);
    color: var(--amber);
}

.nav-item.active::before {
    content: '';
    position: absolute;
    left: -1px;
    top: 4px;
    bottom: 4px;
    width: 2px;
    border-radius: 0 2px 2px 0;
    background: var(--amber);
}

/* Tooltip */
.nav-item[data-tip]::after {
    content: attr(data-tip);
    position: absolute;
    left: calc(100% + 10px);
    top: 50%;
    transform: translateY(-50%);
    background: #0d1a2e;
    border: 1px solid var(--border-panel);
    color: var(--text-primary);
    font-size: 11px;
    font-weight: 500;
    padding: 4px 8px;
    border-radius: var(--radius-sm);
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s;
    z-index: 999;
}

.nav-item[data-tip]:hover::after {
    opacity: 1;
}

.sidebar-bottom {
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: center;
}

.sidebar-avatar {
    width: 30px;
    height: 30px;
    border-radius: var(--radius-sm);
    background: linear-gradient(135deg, var(--accent-primary), #1d4ed8);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    color: #fff;
    cursor: pointer;
    border: 1px solid rgba(37, 99, 235, 0.4);
    transition: var(--transition);
}

.sidebar-avatar:hover {
    border-color: var(--amber);
}

.sidebar-avatar.active {
    border-color: var(--amber);
    box-shadow: 0 0 0 1px rgba(245, 158, 11, 0.25);
}

/* ─── MAIN LAYOUT ─── */
.main-content {
    margin-left: 56px;
    margin-top: 28px;
    /* ticker tape */
    margin-bottom: 28px;
    /* status bar */
    min-height: calc(100vh - 56px);
    position: relative;
    z-index: 1;
}

/* ─── TOP BAR ─── */
.topbar {
    position: sticky;
    top: 0;
    height: 44px;
    background: var(--bg-secondary);
    border-bottom: 1px solid var(--border-panel);
    display: flex;
    align-items: center;
    padding: 0 16px;
    z-index: 50;
    gap: 12px;
}

.topbar-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: 6px;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    min-width: 180px;
}

.topbar-title span {
    color: var(--amber);
}

.search-box {
    flex: 1;
    max-width: 360px;
    position: relative;
}

.search-box input {
    width: 100%;
    height: 30px;
    background: var(--bg-card);
    border: 1px solid var(--border-panel);
    border-radius: var(--radius-sm);
    padding: 0 10px 0 30px;
    color: var(--text-primary);
    font-size: 12px;
    font-family: 'JetBrains Mono', monospace;
    transition: var(--transition);
    outline: none;
}

.search-box input:focus {
    border-color: var(--amber);
    box-shadow: 0 0 0 2px var(--amber-glow);
}

.search-box input::placeholder {
    color: var(--text-muted);
    font-family: 'Inter', sans-serif;
}

.search-box .search-icon {
    position: absolute;
    left: 9px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted);
    font-size: 12px;
}

.topbar-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.topbar-btn {
    height: 28px;
    padding: 0 8px;
    border-radius: var(--radius-sm);
    background: transparent;
    border: 1px solid var(--border-panel);
    color: var(--text-secondary);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    transition: var(--transition);
    position: relative;
    gap: 4px;
}

.topbar-btn:hover {
    background: var(--bg-row-hover);
    border-color: var(--amber-dim);
    color: var(--amber);
}

.topbar-btn .badge {
    position: absolute;
    top: -3px;
    right: -3px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--short-color);
    font-size: 9px;
    font-weight: 700;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ── Market Status Badges ── */
.market-status-badges {
    display: flex;
    align-items: center;
    gap: 6px;
}

.market-badge {
    font-size: 10px;
    font-weight: 700;
    font-family: 'JetBrains Mono', monospace;
    padding: 2px 7px;
    border-radius: var(--radius-sm);
    border: 1px solid;
    letter-spacing: 0.04em;
}

.market-badge.open {
    color: var(--long-color);
    border-color: var(--long-border);
    background: var(--long-bg);
}

.market-badge.closed {
    color: var(--text-muted);
    border-color: #1a2840;
    background: transparent;
}

/* ── Clock ── */
.bb-clock {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    color: var(--amber);
    font-weight: 600;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.live-indicator {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    color: var(--long-color);
    font-weight: 600;
    letter-spacing: 0.04em;
}

.live-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--long-color);
    animation: pulse-live 2s infinite;
}

@keyframes pulse-live {

    0%,
    100% {
        opacity: 1;
        box-shadow: 0 0 0 0 rgba(0, 217, 126, 0.5);
    }

    50% {
        opacity: 0.7;
        box-shadow: 0 0 0 5px rgba(0, 217, 126, 0);
    }
}

/* ─── TICKER TAPE ─── */
.ticker-tape-wrap {
    position: fixed;
    top: 0;
    left: 56px;
    right: 0;
    height: 28px;
    background: var(--bg-void);
    border-bottom: 1px solid var(--border-panel);
    overflow: hidden;
    z-index: 200;
    display: flex;
    align-items: center;
}

.ticker-tape-wrap::before,
.ticker-tape-wrap::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 40px;
    z-index: 1;
}

.ticker-tape-wrap::before {
    left: 0;
    background: linear-gradient(90deg, var(--bg-void), transparent);
}

.ticker-tape-wrap::after {
    right: 0;
    background: linear-gradient(-90deg, var(--bg-void), transparent);
}

.ticker-tape-inner {
    display: flex;
    gap: 0;
    animation: tape-scroll 80s linear infinite;
    white-space: nowrap;
}

@keyframes tape-scroll {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

.tape-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0 16px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    border-right: 1px solid var(--border-panel);
    height: 28px;
}

.tape-sym {
    color: var(--text-primary);
    font-weight: 600;
}

.tape-price {
    color: var(--text-secondary);
}

.tape-chg.up {
    color: var(--long-color);
}

.tape-chg.dn {
    color: var(--short-color);
}

/* ─── STATUS BAR ─── */
.bb-statusbar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 28px;
    background: var(--bg-secondary);
    border-top: 1px solid var(--border-panel);
    display: flex;
    align-items: center;
    padding: 0 8px;
    gap: 0;
    z-index: 200;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    color: var(--text-muted);
}

.bb-status-item {
    padding: 0 10px;
    border-right: 1px solid var(--border-panel);
    height: 100%;
    display: flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
}

.bb-status-item:first-child {
    border-left: 1px solid var(--border-panel);
}

.bb-status-item.bb-status-brand {
    color: var(--amber);
    font-weight: 700;
}

.bb-status-item.bb-status-live {
    color: var(--long-color);
}

.bb-status-spacer {
    flex: 1;
}

.bb-status-keys {
    color: var(--text-muted);
    font-size: 10px;
    opacity: 0.7;
}

.bb-status-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--long-color);
    animation: pulse-live 2s infinite;
}

/* ─── BLOOMBERG PANEL SYSTEM ─── */
.bb-panel {
    background: var(--bg-card);
    border: 1px solid var(--border-panel);
    border-top: 2px solid var(--amber);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.bb-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 7px 12px;
    background: var(--bg-panel-header);
    border-bottom: 1px solid var(--border-panel);
    min-height: 32px;
}

.bb-panel-title {
    font-size: 11px;
    font-weight: 700;
    color: var(--amber);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    display: flex;
    align-items: center;
    gap: 6px;
}

.bb-panel-title svg {
    width: 13px;
    height: 13px;
    opacity: 0.8;
}

.bb-panel-badge {
    font-size: 10px;
    font-family: 'JetBrains Mono', monospace;
    color: var(--text-muted);
    background: rgba(26, 40, 64, 0.8);
    padding: 2px 7px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-panel);
    letter-spacing: 0.03em;
}

.bb-panel-badge.live {
    color: var(--long-color);
    border-color: var(--long-border);
}

.signals-tv-panel iframe { border-radius: 0 0 6px 6px; }
@media (max-width: 768px) { .signals-tv-panel iframe { height: 220px !important; } }

.bb-panel-content {
    padding: 10px 12px;
}

/* ─── PAGE CONTENT ─── */
.page-content {
    padding: 12px 16px;
}

/* ─── MARKET TICKER ─── */
.market-ticker {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 4px;
    margin-bottom: 12px;
    scrollbar-width: none;
}

.market-ticker::-webkit-scrollbar {
    display: none;
}

.ticker-item {
    min-width: 148px;
    padding: 8px 12px;
    background: var(--bg-card);
    border: 1px solid var(--border-panel);
    border-top: 2px solid var(--border-panel);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: var(--transition);
    flex-shrink: 0;
}

.ticker-item:hover {
    border-top-color: var(--amber);
    background: var(--bg-row-hover);
    box-shadow: 0 0 10px rgba(245, 158, 11, 0.08);
}

.ticker-item.active-chart {
    border-top-color: var(--amber);
    border-color: var(--border-accent);
}

.ticker-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 5px;
}

.ticker-symbol {
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.03em;
    font-family: 'JetBrains Mono', monospace;
}

.ticker-badge {
    font-size: 9px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 2px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-family: 'JetBrains Mono', monospace;
}

.ticker-badge.long {
    background: var(--long-bg);
    color: var(--long-color);
    border: 1px solid var(--long-border);
}

.ticker-badge.short {
    background: var(--short-bg);
    color: var(--short-color);
    border: 1px solid var(--short-border);
}

.ticker-badge.wait {
    background: var(--wait-bg);
    color: var(--wait-color);
    border: 1px solid var(--wait-border);
}

.ticker-price {
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px;
    font-weight: 600;
}

.ticker-change {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 600;
    margin-left: 6px;
}

.ticker-change.up {
    color: var(--long-color);
}

.ticker-change.down {
    color: var(--short-color);
}

.ticker-meta {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 3px;
    font-family: 'JetBrains Mono', monospace;
}

/* ─── SECTION HEADERS ─── */
.section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

.section-title {
    font-size: 12px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 6px;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--amber);
}

.tab-group {
    display: flex;
    gap: 0;
    background: var(--bg-void);
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-panel);
    overflow: hidden;
}

.tab-btn {
    padding: 4px 12px;
    font-size: 11px;
    font-weight: 600;
    background: transparent;
    border: none;
    border-right: 1px solid var(--border-panel);
    color: var(--text-muted);
    cursor: pointer;
    transition: var(--transition);
    font-family: 'JetBrains Mono', monospace;
    letter-spacing: 0.03em;
}

.tab-btn:last-child {
    border-right: none;
}

.tab-btn.active {
    background: var(--amber);
    color: #000;
    font-weight: 800;
}

.tab-btn:hover:not(.active) {
    color: var(--amber);
    background: var(--amber-glow);
}

/* ─── GRID LAYOUT ─── */
.dashboard-grid {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 10px;
    margin-bottom: 10px;
}

/* ─── SIGNAL TABLE ─── */
.signal-table-card {
    background: var(--bg-card);
    border: 1px solid var(--border-panel);
    border-top: 2px solid var(--amber);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.signal-table {
    width: 100%;
    border-collapse: collapse;
}

.signal-table thead th {
    padding: 7px 10px;
    font-size: 10px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-bottom: 1px solid var(--border-panel);
    text-align: left;
    background: var(--bg-panel-header);
    font-family: 'JetBrains Mono', monospace;
    white-space: nowrap;
}

.signal-table thead th:hover {
    color: var(--amber);
    cursor: pointer;
}

.signal-table tbody tr {
    border-bottom: 1px solid rgba(26, 40, 64, 0.6);
    cursor: pointer;
    transition: background 0.1s;
}

.signal-table tbody tr:hover {
    background: var(--bg-row-hover);
    border-left: 2px solid var(--amber);
}

.signal-table tbody tr:last-child {
    border-bottom: none;
}

.signal-table td {
    padding: 7px 10px;
    font-size: 12px;
    vertical-align: middle;
}

.asset-cell {
    display: flex;
    align-items: center;
    gap: 8px;
}

.asset-icon {
    width: 26px;
    height: 26px;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    color: #fff;
    flex-shrink: 0;
}

.asset-icon.btc {
    background: linear-gradient(135deg, #f7931a, #f2a900);
}

.asset-icon.eth {
    background: linear-gradient(135deg, #627eea, #3c3c3d);
}

.asset-icon.sol {
    background: linear-gradient(135deg, #9945ff, #14f195);
}

.asset-icon.bnb {
    background: linear-gradient(135deg, #f3ba2f, #e8a708);
}

.asset-icon.xrp {
    background: linear-gradient(135deg, #23292f, #00aae4);
}

.asset-icon.ada {
    background: linear-gradient(135deg, #0033ad, #0055ff);
}

.asset-icon.avax {
    background: linear-gradient(135deg, #e84142, #ff5e5e);
}

.asset-icon.dot {
    background: linear-gradient(135deg, #e6007a, #ff3399);
}

.asset-icon.link {
    background: linear-gradient(135deg, #2a5ada, #4a7aff);
}

.asset-icon.aapl {
    background: linear-gradient(135deg, #555, #999);
}

.asset-icon.tsla {
    background: linear-gradient(135deg, #cc0000, #ff3333);
}

.asset-icon.nvda {
    background: linear-gradient(135deg, #76b900, #9ed900);
}

.asset-name {
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.02em;
    font-family: 'JetBrains Mono', monospace;
}

.asset-pair {
    font-size: 10px;
    color: var(--text-muted);
    font-family: 'JetBrains Mono', monospace;
}

.price-cell {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 600;
    font-size: 12px;
}

.change-cell {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 11px;
}

.change-cell.up,
span.up,
.up {
    color: var(--long-color);
}

.change-cell.down,
span.dn,
.dn {
    color: var(--short-color);
}

.signal-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 7px;
    border-radius: 2px;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-family: 'JetBrains Mono', monospace;
}

.signal-badge.long {
    background: var(--long-bg);
    color: var(--long-color);
    border: 1px solid var(--long-border);
}

.signal-badge.short {
    background: var(--short-bg);
    color: var(--short-color);
    border: 1px solid var(--short-border);
}

.signal-badge.wait {
    background: var(--wait-bg);
    color: var(--wait-color);
    border: 1px solid var(--wait-border);
}

.signal-badge .dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
}

.signal-badge.long .dot {
    background: var(--long-color);
}

.signal-badge.short .dot {
    background: var(--short-color);
}

.signal-badge.wait .dot {
    background: var(--wait-color);
}

.rsi-cell {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 600;
}

.risk-cell {
    display: flex;
    align-items: center;
    gap: 5px;
}

.risk-bar {
    width: 48px;
    height: 3px;
    border-radius: 1px;
    background: rgba(26, 40, 64, 0.8);
    overflow: hidden;
}

.risk-fill {
    height: 100%;
    transition: width 0.4s ease;
}

.risk-fill.low {
    background: var(--long-color);
}

.risk-fill.mid {
    background: var(--wait-color);
}

.risk-fill.high {
    background: var(--short-color);
}

.risk-val {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: var(--text-secondary);
}

.action-btn {
    width: 24px;
    height: 22px;
    border-radius: var(--radius-sm);
    background: transparent;
    border: 1px solid var(--border-panel);
    color: var(--text-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    transition: var(--transition);
}

.action-btn:hover {
    background: var(--amber-glow);
    color: var(--amber);
    border-color: var(--amber-dim);
}

/* ─── RIGHT PANEL ─── */
.right-panel {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* ─── AI ANALYSIS CARD ─── */
.ai-card {
    background: var(--bg-card);
    border: 1px solid var(--border-panel);
    border-top: 2px solid var(--accent-secondary);
    border-radius: var(--radius-sm);
    padding: 12px;
    position: relative;
    overflow: hidden;
}

@keyframes shimmer {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

.ai-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

.ai-card-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--accent-secondary);
    display: flex;
    align-items: center;
    gap: 6px;
}

.ai-card-title .ai-icon {
    width: 22px;
    height: 22px;
    border-radius: var(--radius-sm);
    background: linear-gradient(135deg, var(--accent-primary), #1d4ed8);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}

.ai-model-tag {
    font-size: 10px;
    padding: 2px 7px;
    border-radius: 2px;
    background: rgba(37, 99, 235, 0.12);
    color: var(--accent-secondary);
    font-weight: 700;
    font-family: 'JetBrains Mono', monospace;
    border: 1px solid rgba(37, 99, 235, 0.25);
    letter-spacing: 0.03em;
}

.ai-summary {
    font-size: 12px;
    line-height: 1.6;
    color: var(--text-secondary);
    margin-bottom: 10px;
    padding: 8px 10px;
    border-radius: var(--radius-sm);
    background: rgba(37, 99, 235, 0.05);
    border-left: 2px solid var(--accent-primary);
}

.ai-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
    margin-bottom: 10px;
}

.ai-metric {
    padding: 7px 8px;
    border-radius: var(--radius-sm);
    background: var(--bg-panel-header);
    border: 1px solid var(--border-panel);
}

.ai-metric-label {
    font-size: 10px;
    color: var(--text-muted);
    margin-bottom: 3px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-family: 'JetBrains Mono', monospace;
}

.ai-metric-value {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 700;
}

.ai-btn {
    width: 100%;
    padding: 7px;
    background: var(--accent-primary);
    border: none;
    border-radius: var(--radius-sm);
    color: #fff;
    font-weight: 700;
    font-size: 11px;
    cursor: pointer;
    transition: var(--transition);
    font-family: 'JetBrains Mono', monospace;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ai-btn:hover {
    background: var(--accent-secondary);
    box-shadow: 0 2px 12px rgba(37, 99, 235, 0.4);
}

/* ─── SYSTEM OPS CARD ─── */
.ops-card {
    background: var(--bg-card);
    border: 1px solid var(--border-panel);
    border-top: 2px solid #0ea5e9;
    border-radius: var(--radius-sm);
    padding: 10px 12px;
    margin-bottom: 8px;
}

.ops-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}

.ops-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #38bdf8;
}

.ops-panel-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ops-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
}

.ops-kv {
    background: var(--bg-panel-header);
    border: 1px solid var(--border-panel);
    border-radius: var(--radius-sm);
    padding: 6px 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.ops-kv span {
    color: var(--text-muted);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-family: 'JetBrains Mono', monospace;
}

.ops-kv strong {
    color: var(--text-primary);
    font-size: 11px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
}

.ops-kv strong.ops-endpoint {
    font-size: 9px;
    max-width: 170px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ops-kv strong.up { color: var(--long-color); }
.ops-kv strong.dn { color: var(--short-color); }

.ops-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding-top: 3px;
}

.ops-meta {
    color: var(--text-muted);
    font-size: 10px;
    font-family: 'JetBrains Mono', monospace;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ops-refresh-btn {
    border: 1px solid rgba(56, 189, 248, 0.35);
    background: rgba(14, 165, 233, 0.12);
    color: #38bdf8;
    font-size: 10px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    border-radius: 4px;
    padding: 4px 8px;
    cursor: pointer;
    flex-shrink: 0;
}

.ops-refresh-btn:hover {
    background: rgba(14, 165, 233, 0.2);
}

/* ─── POLYMARKET WIDGET ─── */
.poly-card {
    background: var(--bg-card);
    border: 1px solid var(--border-panel);
    border-top: 2px solid var(--amber);
    border-radius: var(--radius-sm);
    padding: 10px 12px;
}

.poly-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}

.poly-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--amber);
    display: flex;
    align-items: center;
    gap: 5px;
}

.poly-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 8px;
    border-radius: var(--radius-sm);
    background: var(--bg-panel-header);
    margin-bottom: 4px;
    border: 1px solid var(--border-panel);
    transition: var(--transition);
}

.poly-item:hover {
    border-color: var(--amber-dim);
    background: var(--bg-row-hover);
}

.poly-question {
    font-size: 11px;
    font-weight: 500;
    flex: 1;
    margin-right: 8px;
    color: var(--text-secondary);
    line-height: 1.3;
}

.poly-odds {
    display: flex;
    gap: 4px;
}

.poly-yes,
.poly-no {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 800;
    padding: 2px 6px;
    border-radius: 2px;
}

.poly-yes {
    background: var(--long-bg);
    color: var(--long-color);
    border: 1px solid var(--long-border);
}

.poly-no {
    background: var(--short-bg);
    color: var(--short-color);
    border: 1px solid var(--short-border);
}

/* ─── NEWS CARD ─── */
.news-card {
    background: var(--bg-card);
    border: 1px solid var(--border-panel);
    border-top: 2px solid var(--amber);
    border-radius: var(--radius-sm);
    padding: 10px 12px;
}

.news-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 7px 0;
    border-bottom: 1px solid rgba(26, 40, 64, 0.5);
    cursor: pointer;
}

.news-item:hover {
    background: var(--bg-row-hover);
    margin: 0 -12px;
    padding-left: 12px;
    padding-right: 12px;
}

.news-item:last-child {
    border-bottom: none;
}

.news-sentiment {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    margin-top: 5px;
    flex-shrink: 0;
}

.news-sentiment.bullish {
    background: var(--long-color);
}

.news-sentiment.bearish {
    background: var(--short-color);
}

.news-sentiment.neutral {
    background: var(--wait-color);
}

.news-text {
    font-size: 11.5px;
    line-height: 1.4;
    flex: 1;
}

.news-text .news-title-text {
    font-weight: 600;
    display: block;
    margin-bottom: 2px;
    color: var(--text-primary);
}

.news-meta {
    font-size: 10px;
    color: var(--text-muted);
    font-family: 'JetBrains Mono', monospace;
}

.news-score {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 2px;
    flex-shrink: 0;
}

.news-score.bullish {
    background: var(--long-bg);
    color: var(--long-color);
}

.news-score.bearish {
    background: var(--short-bg);
    color: var(--short-color);
}

.news-score.neutral {
    background: var(--wait-bg);
    color: var(--wait-color);
}

/* ─── BOTTOM SECTION ─── */
.bottom-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 10px;
}

/* ─── PLAN CARDS ─── */
.plan-card {
    background: var(--bg-card);
    border: 1px solid var(--border-panel);
    border-top: 2px solid var(--border-panel);
    border-radius: var(--radius-sm);
    padding: 16px;
    text-align: center;
    transition: var(--transition);
    position: relative;
}

.plan-card:hover {
    border-top-color: var(--amber);
    box-shadow: var(--shadow-md);
}

.plan-card.featured {
    border-top-color: var(--amber);
    box-shadow: 0 0 20px var(--amber-glow);
}

.plan-card.featured::before {
    content: 'POPÜLER';
    position: absolute;
    top: -1px;
    right: 12px;
    padding: 2px 8px;
    border-radius: 0 0 3px 3px;
    background: var(--amber);
    font-size: 9px;
    font-weight: 800;
    color: #000;
    letter-spacing: 0.08em;
    font-family: 'JetBrains Mono', monospace;
}

.plan-name {
    font-size: 14px;
    font-weight: 800;
    margin-bottom: 3px;
    font-family: 'JetBrains Mono', monospace;
    letter-spacing: 0.05em;
    color: var(--amber);
}

.plan-price {
    font-family: 'JetBrains Mono', monospace;
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 3px;
}

.plan-price span {
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 400;
}

.plan-limit {
    font-size: 11px;
    color: var(--text-muted);
    margin-bottom: 12px;
    font-family: 'JetBrains Mono', monospace;
}

.plan-features {
    list-style: none;
    text-align: left;
    margin-bottom: 14px;
}

.plan-features li {
    font-size: 11.5px;
    color: var(--text-secondary);
    padding: 4px 0;
    display: flex;
    align-items: center;
    gap: 6px;
    border-bottom: 1px solid rgba(26, 40, 64, 0.4);
}

.plan-features li:last-child {
    border-bottom: none;
}

.plan-features li::before {
    content: '▸';
    color: var(--long-color);
    font-weight: 700;
    font-size: 10px;
}

.plan-btn {
    width: 100%;
    padding: 7px;
    border-radius: var(--radius-sm);
    font-weight: 700;
    font-size: 11px;
    cursor: pointer;
    transition: var(--transition);
    font-family: 'JetBrains Mono', monospace;
    border: none;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.plan-btn.primary {
    background: var(--amber);
    color: #000;
}

.plan-btn.primary:hover {
    box-shadow: 0 2px 12px var(--amber-glow);
    background: #fbbf24;
}

.plan-btn.outline {
    background: transparent;
    border: 1px solid var(--border-panel);
    color: var(--text-secondary);
}

.plan-btn.outline:hover {
    border-color: var(--amber-dim);
    color: var(--amber);
}

/* ─── INTERACTIVE CHART ─── */
.chart-area {
    background: var(--bg-card);
    border: 1px solid var(--border-panel);
    border-top: 2px solid var(--amber);
    border-radius: var(--radius-sm);
    padding: 0;
    margin-bottom: 10px;
    position: relative;
    overflow: hidden;
}

.chart-top-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 10px;
    background: var(--bg-panel-header);
    border-bottom: 1px solid var(--border-panel);
    gap: 6px;
    min-height: 42px;
}

/* ── Asset Tabs ── */
.chart-asset-tabs {
    display: flex;
    gap: 2px;
    overflow-x: auto;
    scrollbar-width: none;
    flex: 1;
}
.chart-asset-tabs::-webkit-scrollbar { display: none; }

.chart-asset-tab {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 5px 12px 5px 10px;
    border-radius: 4px;
    background: transparent;
    border: 1px solid transparent;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
    font-family: 'JetBrains Mono', monospace;
    transition: all 0.15s ease;
    white-space: nowrap;
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
}
.chart-asset-tab::before {
    content: '';
    position: absolute;
    left: 0; top: 20%; bottom: 20%;
    width: 2px;
    background: var(--tab-color, transparent);
    border-radius: 2px;
    opacity: 0;
    transition: opacity 0.15s;
}
.chart-asset-tab:hover {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.08);
    color: var(--text-primary);
}
.chart-asset-tab:hover::before { opacity: 0.6; }
.chart-asset-tab.active {
    background: color-mix(in srgb, var(--tab-color, var(--amber)) 12%, transparent);
    border-color: color-mix(in srgb, var(--tab-color, var(--amber)) 35%, transparent);
    color: var(--tab-color, var(--amber));
}
.chart-asset-tab.active::before { opacity: 1; }

.tab-logo {
    width: 16px; height: 16px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.tab-sym { letter-spacing: 0.5px; }
.tab-chg {
    font-size: 9px; font-weight: 600;
    margin-left: 2px; opacity: 0.85;
}
.tab-chg.up { color: var(--long-color); }
.tab-chg.dn { color: var(--short-color); }

/* ── Chart Info Strip (OHLCV) ── */
.chart-info-strip {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 0 16px;
    height: 48px;
    background: #060d18;
    border-bottom: 1px solid var(--border-panel);
    overflow-x: auto;
    scrollbar-width: none;
}
.chart-info-strip::-webkit-scrollbar { display: none; }

.cis-asset {
    display: flex; align-items: center; gap: 8px;
    flex-shrink: 0;
}
.cis-logo {
    width: 28px; height: 28px; border-radius: 50%;
    object-fit: cover; flex-shrink: 0;
}
.cis-name {
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px; font-weight: 700;
    color: var(--text-primary);
    line-height: 1;
}
.cis-pair {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px; color: var(--text-muted);
}
.cis-signal-badge {
    font-size: 8px; font-weight: 700; font-family: 'JetBrains Mono', monospace;
    padding: 1px 5px; border-radius: 3px; margin-top: 3px; display: inline-block;
    letter-spacing: 0.5px;
}
.cis-signal-badge.long  { background: rgba(16,185,129,0.15); color: #10b981; border: 1px solid rgba(16,185,129,0.3); }
.cis-signal-badge.short { background: rgba(239,68,68,0.15);  color: #ef4444; border: 1px solid rgba(239,68,68,0.3); }
.cis-signal-badge.wait  { background: rgba(245,158,11,0.15); color: #f59e0b; border: 1px solid rgba(245,158,11,0.3); }

.cis-divider {
    width: 1px; height: 28px;
    background: var(--border-panel);
    flex-shrink: 0;
    margin: 0 16px;
}

.cis-price-block {
    display: flex; flex-direction: column; gap: 1px; flex-shrink: 0;
}
.cis-price {
    font-family: 'JetBrains Mono', monospace;
    font-size: 22px; font-weight: 800; line-height: 1;
    letter-spacing: -0.5px;
}
.cis-change {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px; font-weight: 700; line-height: 1;
}
.cis-change.up  { color: var(--long-color); }
.cis-change.down { color: var(--short-color); }

.cis-stats {
    display: flex; align-items: center; gap: 16px;
    flex-shrink: 0;
}
.cis-stat {
    display: flex; flex-direction: column; gap: 1px;
}
.cis-stat-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px; font-weight: 600; letter-spacing: 0.8px;
    color: var(--text-muted); text-transform: uppercase; line-height: 1;
}
.cis-stat-val {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px; font-weight: 700; color: var(--text-primary); line-height: 1;
}
.cis-stat-val.up  { color: var(--long-color); }
.cis-stat-val.down { color: var(--short-color); }

.cis-live {
    margin-left: auto; flex-shrink: 0;
    display: flex; align-items: center; gap: 5px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px; font-weight: 700; letter-spacing: 1px;
}

/* ── Canvas Wrapper ── */
.chart-canvas-wrapper {
    position: relative;
    height: 360px;
    overflow: hidden;
    cursor: crosshair;
}

.chart-canvas-wrapper canvas {
    width: 100%;
    height: 100%;
    display: block;
}

.chart-crosshair-info {
    position: absolute;
    padding: 8px 14px;
    background: rgba(26, 31, 46, 0.92);
    backdrop-filter: blur(8px);
    border: 1px solid var(--border-accent);
    border-radius: var(--radius-sm);
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    color: var(--text-primary);
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.15s;
    z-index: 10;
    white-space: nowrap;
}

.chart-crosshair-info.visible {
    opacity: 1;
}

.chart-status-badge {
    position: absolute;
    top: 10px;
    right: 12px;
    z-index: 8;
    padding: 5px 9px;
    border-radius: 999px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.4px;
    background: rgba(15, 23, 42, 0.82);
    border: 1px solid rgba(148, 163, 184, 0.25);
    color: var(--text-muted);
    backdrop-filter: blur(6px);
    display: none;
}
.chart-status-badge.show { display: inline-flex; align-items: center; gap: 6px; }
.chart-status-badge.loading { color: #f59e0b; border-color: rgba(245, 158, 11, 0.35); }
.chart-status-badge.ok { color: #10b981; border-color: rgba(16, 185, 129, 0.35); }
.chart-status-badge.error { color: #ef4444; border-color: rgba(239, 68, 68, 0.35); }

.chart-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(26, 31, 46, 0.85);
    backdrop-filter: blur(8px);
    border: 1px solid var(--border-color);
    color: var(--text-secondary);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    transition: var(--transition);
    z-index: 5;
}

.chart-nav-btn:hover {
    background: var(--amber-glow);
    color: var(--amber);
    border-color: var(--amber-dim);
}

.chart-nav-btn.prev {
    left: 8px;
}

.chart-nav-btn.next {
    right: 8px;
}

.chart-live-dot {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    color: var(--long-color);
    font-weight: 600;
}

.chart-live-dot::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--long-color);
    animation: pulse-live 2s infinite;
}

/* ─── DETAIL MODAL ─── */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(2, 4, 7, 0.85);
    z-index: 500;
    display: none;
    align-items: center;
    justify-content: center;
}

.modal-overlay.active {
    display: flex;
}

.modal {
    width: 94%;
    max-width: 1100px;
    max-height: 90vh;
    background: var(--bg-secondary);
    border: 1px solid var(--border-panel);
    border-top: 2px solid var(--amber);
    border-radius: var(--radius-sm);
    overflow-y: auto;
    box-shadow: 0 0 60px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(245, 158, 11, 0.06);
    animation: modal-in 0.15s ease;
}

@keyframes modal-in {
    from {
        opacity: 0;
        transform: translateY(-16px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.modal-header {
    position: sticky;
    top: 0;
    padding: 12px 16px;
    background: var(--bg-panel-header);
    border-bottom: 1px solid var(--border-panel);
    display: flex;
    align-items: center;
    justify-content: space-between;
    z-index: 10;
}

.modal-close {
    width: 26px;
    height: 26px;
    border-radius: var(--radius-sm);
    background: transparent;
    border: 1px solid var(--border-panel);
    color: var(--text-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    transition: var(--transition);
}

.modal-close:hover {
    background: var(--short-bg);
    color: var(--short-color);
    border-color: var(--short-border);
}

.modal-body {
    padding: 12px;
}

/* ─── Bloomberg Detail Modal Layout ─── */
.bb-detail-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 10px;
    align-items: start;
}

.bb-detail-left {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.bb-detail-right {
    display: flex;
    flex-direction: column;
}

/* Technical stats grid */
.bb-detail-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: var(--border-panel);
}

.bb-dstat {
    padding: 8px 10px;
    background: var(--bg-panel);
}

.bb-dstat:hover {
    background: var(--bg-row-hover);
}

.bb-dstat-lbl {
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    margin-bottom: 4px;
}

.bb-dstat-val {
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
}

/* Levels grid */
.bb-level-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: var(--border-panel);
}

.bb-level {
    padding: 10px 12px;
    background: var(--bg-panel);
    text-align: center;
}

.bb-level-lbl {
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    margin-bottom: 5px;
}

.bb-level-val {
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
}

/* Related news list in detail modal */
.bb-detail-news-list {
    overflow-y: auto;
    max-height: 460px;
}

.bb-detail-news-row {
    padding: 9px 12px;
    border-bottom: 1px solid rgba(26, 40, 64, 0.6);
    cursor: default;
    transition: background 0.1s;
}

.bb-detail-news-row:hover {
    background: var(--bg-row-hover);
}

.bb-detail-news-row:last-child {
    border-bottom: none;
}

.bb-detail-news-top {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
}

.bb-detail-news-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.4;
    margin-bottom: 5px;
}

.bb-detail-news-impact {
    font-size: 10.5px;
    margin-bottom: 5px;
    padding: 3px 7px;
    border-radius: 2px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 600;
}

.bb-detail-news-impact.up {
    background: var(--long-bg);
    color: var(--long-color);
}

.bb-detail-news-impact.dn {
    background: var(--short-bg);
    color: var(--short-color);
}

.bb-detail-news-sentiment {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Legacy detail grid compat */
.detail-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: var(--border-panel);
    margin-bottom: 10px;
}

.detail-stat {
    padding: 8px 10px;
    background: var(--bg-panel);
}

.detail-stat:hover {
    background: var(--bg-row-hover);
}

.detail-stat-label {
    font-size: 9px;
    color: var(--text-muted);
    margin-bottom: 3px;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    font-family: 'JetBrains Mono', monospace;
}

.detail-stat-value {
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px;
    font-weight: 700;
}

/* ─── SCROLLBAR ─── */
::-webkit-scrollbar {
    width: 6px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: var(--bg-elevated);
    border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--text-muted);
}

/* ─── RESPONSIVE ─── */
@media(max-width:1200px) {
    .dashboard-grid {
        grid-template-columns: 1fr;
    }

    .bottom-grid {
        grid-template-columns: 1fr;
    }
}

@media(max-width:768px) {
    .sidebar {
        width: 56px;
    }

    .main-content {
        margin-left: 56px;
    }

    .page-content {
        padding: 16px;
    }

    .topbar {
        padding: 0 16px;
    }
}

/* ─── TOOLTIP ─── */
.tooltip {
    position: relative;
}

.tooltip::after {
    content: attr(data-tip);
    position: absolute;
    left: calc(100% + 10px);
    top: 50%;
    transform: translateY(-50%);
    padding: 6px 10px;
    border-radius: 6px;
    background: var(--bg-elevated);
    color: var(--text-primary);
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s;
    box-shadow: var(--shadow-md);
}

.tooltip:hover::after {
    opacity: 1;
}

/* ─── SPARKLINE ─── */
.sparkline-container {
    width: 80px;
    height: 30px;
}

.sparkline-container svg {
    width: 100%;
    height: 100%;
}

/* ─── SPA PAGES ─── */
.page {
    display: none;
}

.page.active {
    display: block;
}

/* ─── COIN LOGOS ─── */
.asset-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.asset-icon {
    overflow: hidden;
}

.chart-asset-tab img {
    width: 18px;
    height: 18px;
    border-radius: 50%;
}

/* ─── NEWS DETAIL MODAL ─── */
.news-detail-hero {
    margin-bottom: 14px;
}

.news-detail-title {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 8px;
}

.news-detail-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: var(--text-muted);
    margin-bottom: 12px;
    font-family: 'JetBrains Mono', monospace;
}

.news-detail-meta .source-badge {
    padding: 2px 7px;
    border-radius: var(--radius-sm);
    background: rgba(37, 99, 235, 0.12);
    color: var(--accent-secondary);
    font-weight: 700;
    font-size: 10px;
    border: 1px solid rgba(37, 99, 235, 0.25);
}

.news-detail-body {
    font-size: 13px;
    line-height: 1.7;
    color: var(--text-secondary);
    margin-bottom: 16px;
    padding: 10px 12px;
    background: var(--bg-panel-header);
    border-radius: var(--radius-sm);
    border-left: 2px solid var(--border-panel);
}

.news-detail-body p {
    margin-bottom: 10px;
}

.news-impact-section {
    margin-bottom: 16px;
}

.news-impact-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--amber);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.impact-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: var(--radius-sm);
    background: var(--bg-panel-header);
    border: 1px solid var(--border-panel);
    margin-bottom: 5px;
    transition: var(--transition);
}

.impact-card:hover {
    border-color: var(--amber-dim);
    background: var(--bg-row-hover);
}

.impact-card img {
    width: 22px;
    height: 22px;
    border-radius: var(--radius-sm);
}

.impact-card .impact-symbol {
    font-weight: 700;
    font-size: 12px;
    min-width: 50px;
    font-family: 'JetBrains Mono', monospace;
}

.impact-direction {
    padding: 2px 7px;
    border-radius: 2px;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    font-family: 'JetBrains Mono', monospace;
}

.impact-direction.up {
    background: var(--long-bg);
    color: var(--long-color);
    border: 1px solid var(--long-border);
}

.impact-direction.down {
    background: var(--short-bg);
    color: var(--short-color);
    border: 1px solid var(--short-border);
}

.impact-reason {
    font-size: 11.5px;
    color: var(--text-secondary);
    flex: 1;
}

.sentiment-bar-wrap {
    margin-bottom: 10px;
    width: 100%;
}

.sentiment-bar-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 10.5px;
    color: var(--text-muted);
    margin-bottom: 5px;
    font-family: 'JetBrains Mono', monospace;
    width: 100%;
}

.sentiment-bar {
    height: 6px;
    border-radius: 1px;
    background: rgba(26, 40, 64, 0.9);
    overflow: hidden;
    width: 100%;
    display: block;
}

.sentiment-fill {
    height: 100%;
    display: block;
    transition: width 0.6s ease;
}

.sentiment-fill.bullish {
    background: var(--long-color);
}

.sentiment-fill.bearish {
    background: var(--short-color);
}

.sentiment-fill.neutral {
    background: var(--wait-color);
}

.news-ai-analysis {
    padding: 10px 12px;
    border-radius: var(--radius-sm);
    background: rgba(37, 99, 235, 0.05);
    border-left: 2px solid var(--accent-primary);
    font-size: 12px;
    line-height: 1.6;
    color: var(--text-secondary);
}

.news-ai-analysis .ai-label {
    font-weight: 700;
    color: var(--accent-secondary);
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* ─── PAGE: SIGNALS — Bloomberg Terminal ─── */

/* Hero stat strip */
.bb-signal-hero {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--border-panel);
    border-top: 2px solid var(--amber);
    border-radius: var(--radius-sm);
    background: var(--bg-panel);
    margin-bottom: 8px;
    overflow: hidden;
}

.bb-stat-strip {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px 8px;
    border-right: 1px solid var(--border-panel);
    gap: 3px;
    min-width: 0;
}

.bb-stat-strip:last-child {
    border-right: none;
}

.bb-stat-strip:hover {
    background: var(--bg-row-hover);
}

.bb-stat-val {
    font-family: 'JetBrains Mono', monospace;
    font-size: 22px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1;
    white-space: nowrap;
}

.bb-stat-lbl {
    font-size: 9.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    white-space: nowrap;
}

.bb-stat-model {
    background: rgba(245, 158, 11, 0.04);
}

/* Filter bar */
.bb-filter-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
    gap: 12px;
}

.bb-filter-count {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    color: var(--amber);
    font-weight: 600;
    white-space: nowrap;
}

/* Bloomberg Dense Table */
.bb-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.bb-table thead th {
    padding: 6px 10px;
    font-size: 10px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    border-bottom: 1px solid var(--border-panel);
    background: var(--bg-panel-header);
    text-align: left;
    white-space: nowrap;
    user-select: none;
}

.bb-table thead th.sortable-th {
    cursor: pointer;
}

.bb-table thead th.sortable-th:hover {
    color: var(--amber);
    background: var(--bg-row-hover);
}

.bb-table thead th.sort-active {
    color: var(--amber);
}

.bb-table tbody td {
    padding: 7px 10px;
    border-bottom: 1px solid rgba(26, 40, 64, 0.6);
    vertical-align: middle;
    color: var(--text-primary);
    white-space: nowrap;
}

.bb-sig-row {
    cursor: pointer;
    transition: background 0.1s;
    border-left: 2px solid transparent;
}

.bb-sig-row:hover {
    background: var(--bg-row-hover);
    border-left-color: var(--amber);
}

.bb-sig-row.selected {
    background: var(--bg-row-hover);
    border-left-color: var(--amber);
}

.bb-sig-row:hover .price-cell {
    color: var(--amber);
}

.bb-sig-row.selected .price-cell {
    color: var(--amber);
}

.bb-sig-row:last-child td {
    border-bottom: none;
}

.bb-idx-cell {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    color: var(--text-muted);
    text-align: center;
    width: 28px;
}

.bb-num-cell {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    text-align: right;
}

.bb-macd-cell {
    font-size: 11px;
    color: var(--text-muted);
    max-width: 100px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bb-oi-cell {
    font-size: 11px;
    font-family: 'JetBrains Mono', monospace;
}

.bb-conf-wrap {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 90px;
}

.strength-bar {
    min-width: 118px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.strength-bar__track {
    height: 4px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    overflow: hidden;
}

.strength-bar__fill {
    height: 100%;
    border-radius: inherit;
    transition: width 0.35s ease;
}

.strength-bar__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    line-height: 1;
}

.strength-bar__blocks {
    letter-spacing: 0.04em;
    font-size: 10.5px;
}

.strength-bar__pct {
    color: var(--text-secondary);
    font-weight: 700;
    margin-left: 8px;
}

.strength-bar[data-dir="long"] .strength-bar__fill { background: var(--long-color); }
.strength-bar[data-dir="short"] .strength-bar__fill { background: var(--short-color); }
.strength-bar[data-dir="wait"] .strength-bar__fill { background: var(--wait-color); }

.strength-bar[data-dir="long"] .strength-bar__blocks { color: var(--long-color); }
.strength-bar[data-dir="short"] .strength-bar__blocks { color: var(--short-color); }
.strength-bar[data-dir="wait"] .strength-bar__blocks { color: var(--wait-color); }

/* ─── PAGE: PORTFOLIO — Bloomberg ─── */
.bb-portfolio-layout {
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 8px;
    align-items: start;
}

.bb-portfolio-main {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* ─── PAGE: EXPLORE — Bloomberg ─── */
.bb-explore-grid {
    display: grid;
    grid-template-columns: 1fr 260px;
    gap: 8px;
    margin-bottom: 8px;
}

.bb-search-input {
    flex: 1;
    background: var(--bg-panel);
    border: 1px solid var(--border-panel);
    border-radius: var(--radius-sm);
    padding: 6px 12px;
    color: var(--text-primary);
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    outline: none;
    transition: border-color 0.15s;
    width: 100%;
}

.bb-search-input:focus {
    border-color: var(--amber);
}

.bb-search-input::placeholder {
    color: var(--text-muted);
}

.bb-gl-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-bottom: 1px solid rgba(26, 40, 64, 0.6);
    cursor: pointer;
    transition: background 0.1s;
    font-size: 12px;
}

.bb-gl-row:hover {
    background: var(--bg-row-hover);
}

.bb-gl-row:last-child {
    border-bottom: none;
}

.gl-name {
    font-weight: 700;
    min-width: 36px;
    color: var(--text-primary);
}

.gl-price {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11.5px;
    flex: 1;
}

.gl-change {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11.5px;
    font-weight: 700;
    min-width: 48px;
    text-align: right;
}

/* ─── PAGE: NEWS — Bloomberg Two-Panel ─── */
.bb-news-layout {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 8px;
    min-height: 520px;
}

.bb-news-list-panel {
    display: flex;
    flex-direction: column;
}

.bb-news-detail-panel {
    display: flex;
    flex-direction: column;
}

.bb-news-list {
    flex: 1;
    overflow-y: auto;
    max-height: 520px;
}

.bb-news-row {
    padding: 8px 12px;
    border-bottom: 1px solid rgba(26, 40, 64, 0.7);
    cursor: pointer;
    transition: background 0.1s;
}

.bb-news-row:hover {
    background: var(--bg-row-hover);
}

.bb-news-row.selected {
    background: var(--bg-row-hover);
    border-left: 2px solid var(--amber);
}

.bb-news-row-top {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
}

.bb-news-source {
    font-size: 10px;
    font-weight: 700;
    color: var(--amber);
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.bb-news-time {
    font-size: 10px;
    color: var(--text-muted);
    font-family: 'JetBrains Mono', monospace;
    flex: 1;
}

.bb-news-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.4;
    margin-bottom: 5px;
}

.bb-news-tags {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
}

.bb-news-tag {
    font-size: 9.5px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 2px;
    font-family: 'JetBrains Mono', monospace;
}

.bb-news-tag.up {
    background: var(--long-bg);
    color: var(--long-color);
}

.bb-news-tag.dn {
    background: var(--short-bg);
    color: var(--short-color);
}

.bb-news-detail-content {
    padding: 14px;
    overflow-y: auto;
    max-height: 520px;
    flex: 1;
}

.bb-news-detail-source {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.bb-news-detail-title {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
    margin-bottom: 10px;
    color: var(--text-primary);
}

.bb-news-detail-text {
    font-size: 12.5px;
    color: var(--text-secondary);
    line-height: 1.8;
    margin-bottom: 14px;
}

.bb-news-impact-section {
    margin-bottom: 12px;
}

/* ─── PAGE: AI — Terminal Style ─── */
.bb-ai-layout {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 8px;
    height: calc(100vh - 180px);
    min-height: 480px;
}

.bb-ai-sidebar {
    display: flex;
    flex-direction: column;
    gap: 8px;
    overflow-y: auto;
}

.bb-ai-main {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.bb-model-card {
    padding: 8px 10px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-panel);
    cursor: pointer;
    transition: background 0.1s, border-color 0.1s;
    margin-bottom: 4px;
}

.bb-model-card:hover {
    background: var(--bg-row-hover);
}

.bb-model-card.active {
    border-color: var(--amber);
    background: rgba(245, 158, 11, 0.06);
}

.bb-model-name {
    font-size: 11.5px;
    font-weight: 700;
    color: var(--text-primary);
}

.bb-model-tier {
    font-size: 9px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 2px;
    font-family: 'JetBrains Mono', monospace;
}

.bb-model-tier.tier-free {
    background: rgba(0, 217, 126, 0.15);
    color: var(--long-color);
}

.bb-model-tier.tier-pro {
    background: rgba(245, 158, 11, 0.15);
    color: var(--amber);
}

.bb-model-tier.tier-elite {
    background: rgba(59, 130, 246, 0.15);
    color: var(--accent-secondary);
}

.bb-model-spec {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 2px;
}

.bb-quick-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    background: transparent;
    border: 1px solid var(--border-panel);
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    cursor: pointer;
    font-size: 11px;
    font-family: inherit;
    text-align: left;
    transition: background 0.1s, border-color 0.1s;
    width: 100%;
}

.bb-quick-btn:hover {
    background: var(--bg-row-hover);
    border-color: var(--amber-dim);
    color: var(--text-primary);
}

.bb-terminal-output {
    flex: 1;
    overflow-y: auto;
    padding: 12px 14px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    background: var(--bg-void);
    min-height: 0;
    max-height: calc(100vh - 280px);
}

.bb-term-line {
    line-height: 1.7;
    margin-bottom: 1px;
}

.bb-term-system {
    color: var(--amber);
    opacity: 0.75;
    font-size: 11px;
}

.bb-term-sep {
    color: var(--border-panel);
    font-size: 10px;
    margin: 4px 0;
}

.bb-term-prompt {
    color: var(--amber);
    font-weight: 700;
    margin-bottom: 3px;
}

.bb-term-thinking {
    color: var(--text-muted);
    animation: blink 1s step-end infinite;
}

@keyframes blink {
    50% {
        opacity: 0.3;
    }
}

.bb-term-block {
    margin: 6px 0;
}

.bb-term-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 5px;
}

.bb-model-tag-sm {
    font-size: 9.5px;
    padding: 1px 6px;
    border-radius: 2px;
    background: rgba(245, 158, 11, 0.15);
    color: var(--amber);
    font-weight: 700;
}

.bb-term-response {
    color: var(--text-secondary);
    font-size: 12px;
    line-height: 1.75;
    padding-left: 12px;
    border-left: 2px solid var(--border-panel);
}

.bb-terminal-input-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: var(--bg-panel-header);
    border-top: 1px solid var(--border-panel);
}

.bb-term-prompt-symbol {
    font-family: 'JetBrains Mono', monospace;
    color: var(--amber);
    font-size: 14px;
    font-weight: 700;
    flex-shrink: 0;
}

.bb-terminal-input {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    color: var(--text-primary);
    font-family: 'JetBrains Mono', monospace;
    font-size: 12.5px;
    caret-color: var(--amber);
}

.bb-terminal-input::placeholder {
    color: var(--text-muted);
}

.bb-term-send-btn {
    padding: 4px 12px;
    background: var(--amber);
    color: var(--bg-void);
    border: none;
    border-radius: var(--radius-sm);
    font-size: 10.5px;
    font-weight: 800;
    font-family: 'JetBrains Mono', monospace;
    cursor: pointer;
    letter-spacing: 0.06em;
    transition: opacity 0.15s;
}

.bb-term-send-btn:hover {
    opacity: 0.85;
}

.bb-term-send-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* section-tabs legacy compat */
.section-tabs {
    display: flex;
    gap: 6px;
    margin-bottom: 12px;
}

.section-tab {
    padding: 4px 12px;
    border-radius: var(--radius-sm);
    background: var(--bg-panel);
    border: 1px solid var(--border-panel);
    color: var(--text-muted);
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
    font-family: inherit;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    transition: background 0.1s;
}

.section-tab.active {
    background: rgba(245, 158, 11, 0.15);
    color: var(--amber);
    border-color: var(--amber-dim);
}

/* ─── PAGE: SETTINGS — Bloomberg ─── */
.bb-settings-grid {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 8px;
    align-items: start;
}

.bb-settings-sidebar {
    position: sticky;
    top: 0;
}

.bb-settings-menu {
    padding: 4px;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.bb-settings-item {
    padding: 8px 10px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.07em;
    color: var(--text-muted);
    cursor: pointer;
    border-radius: var(--radius-sm);
    border-left: 2px solid transparent;
    transition: background 0.1s;
}

.bb-settings-item:hover {
    background: var(--bg-row-hover);
    color: var(--text-secondary);
}

.bb-settings-item.active {
    color: var(--amber);
    border-left-color: var(--amber);
    background: rgba(245, 158, 11, 0.06);
}

.bb-settings-panel {
    display: flex;
    flex-direction: column;
}

.bb-settings-content {
    padding: 12px 14px;
}

/* Bloomberg flat input fields */
.bb-srow {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid rgba(26, 40, 64, 0.7);
}

.bb-srow:last-child {
    border-bottom: none;
}

.bb-slabel {
    font-size: 9.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    min-width: 120px;
    flex-shrink: 0;
}

.bb-sinput {
    flex: 1;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--border-panel);
    outline: none;
    color: var(--text-primary);
    font-family: inherit;
    font-size: 12.5px;
    padding: 3px 0;
    transition: border-color 0.15s;
}

.bb-sinput:focus {
    border-bottom-color: var(--amber);
}

.bb-sinput::placeholder {
    color: var(--text-muted);
}

select.bb-sinput {
    cursor: pointer;
}

select.bb-sinput option {
    background: var(--bg-panel);
}

.bb-sbtn {
    padding: 4px 10px;
    background: transparent;
    border: 1px solid var(--border-panel);
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    font-size: 10px;
    font-weight: 700;
    font-family: 'JetBrains Mono', monospace;
    cursor: pointer;
    letter-spacing: 0.05em;
    transition: background 0.1s;
    white-space: nowrap;
}

.bb-sbtn:hover {
    background: var(--bg-row-hover);
    border-color: var(--amber-dim);
    color: var(--amber);
}

.bb-sbtn-primary {
    border-color: var(--accent-primary);
    color: var(--accent-secondary);
}

.bb-sbtn-primary:hover {
    background: rgba(37, 99, 235, 0.15);
}

.bb-sbtn-amber {
    border-color: var(--amber);
    color: var(--amber);
    background: rgba(245, 158, 11, 0.08);
}

.bb-sbtn-amber:hover {
    background: rgba(245, 158, 11, 0.15);
}

/* Toggle rows */
.bb-stoggle-row {
    display: flex;
    align-items: center;
    padding: 9px 0;
    border-bottom: 1px solid rgba(26, 40, 64, 0.7);
    gap: 12px;
}

.bb-stoggle-row:last-child {
    border-bottom: none;
}

.bb-stoggle-label {
    flex: 1;
    font-size: 12px;
    color: var(--text-secondary);
}

.bb-stoggle-label small {
    display: block;
    font-size: 10.5px;
    color: var(--text-muted);
    margin-top: 1px;
}

/* Toggle switch — Bloomberg amber */
.toggle-switch {
    width: 36px;
    height: 18px;
    border-radius: 9px;
    background: var(--border-panel);
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
    transition: background 0.2s;
}

.toggle-switch.on {
    background: var(--amber);
}

.toggle-switch::after {
    content: '';
    position: absolute;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #fff;
    top: 3px;
    left: 3px;
    transition: left 0.2s;
}

.toggle-switch.on::after {
    left: 21px;
}

/* ─── GAINERS/LOSERS TABLE ─── */
.gainer-loser-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 24px;
}

.gl-card {
    padding: 20px;
    border-radius: var(--radius-lg);
    background: var(--bg-card);
    border: 1px solid var(--border-color);
}

.gl-card-title {
    font-size: 15px;
    font-weight: 700;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.gl-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid var(--border-color);
}

.gl-item:last-child {
    border-bottom: none;
}

.gl-item img {
    width: 24px;
    height: 24px;
    border-radius: 50%;
}

.gl-item .gl-name {
    font-weight: 600;
    font-size: 14px;
    min-width: 50px;
}

.gl-item .gl-price {
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px;
    flex: 1;
}

.gl-item .gl-change {
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px;
    font-weight: 600;
}

/* ═══════════════════════════════════════════════════
   OZCx EXTENDED STYLES — Bloomberg Terminal Layer
═══════════════════════════════════════════════════ */

/* ─── Global Stats Bar ─── */
.global-stats-bar {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 0;
    background: var(--bg-void);
    border-bottom: 1px solid var(--border-panel);
    overflow-x: auto;
    flex-wrap: nowrap;
    scrollbar-width: none;
    margin-bottom: 8px;
}

.global-stats-bar::-webkit-scrollbar {
    display: none;
}

.stat-chip {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-right: 1px solid var(--border-panel);
    white-space: nowrap;
    font-size: 11px;
    flex-shrink: 0;
    transition: var(--transition);
    height: 34px;
}

.stat-chip:hover {
    background: var(--bg-row-hover);
}

.stat-chip-label {
    color: var(--text-muted);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-family: 'JetBrains Mono', monospace;
}

.stat-chip-value {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    color: var(--text-primary);
    font-size: 12px;
}

.stat-chip-change {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 700;
}

.stat-chip-change.up {
    color: var(--long-color);
}

.stat-chip-change.down {
    color: var(--short-color);
}

.stat-chip-divider {
    display: none;
}

.fear-greed-chip {
    gap: 8px;
}

.fg-bar {
    width: 40px;
    height: 4px;
    border-radius: 1px;
    background: rgba(26, 40, 64, 0.8);
    overflow: hidden;
}

.fg-fill {
    height: 100%;
}

.market-mini-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 0 0 10px;
}

.market-mini-stats__card {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-lg);
    border: 1px solid rgba(255, 255, 255, 0.12);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.01)),
        var(--glass-bg);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10), 0 6px 18px rgba(0, 0, 0, 0.35);
    padding: 10px 12px;
    min-height: 68px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
}

.market-mini-stats__value {
    font-family: 'JetBrains Mono', monospace;
    font-size: 17px;
    font-weight: 800;
    color: var(--text-primary);
    letter-spacing: 0.01em;
}

.market-mini-stats__label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    font-family: 'JetBrains Mono', monospace;
}

@media (max-width: 1100px) {
    .market-mini-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .market-mini-stats {
        grid-template-columns: 1fr;
    }
}

/* ─── Whale Tracker ─── */
.whale-econ-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 10px;
}

.whale-tracker-card,
.econ-calendar-card {
    overflow: hidden;
}

.whale-list {
    max-height: 240px;
    overflow-y: auto;
}

.whale-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px;
    border-bottom: 1px solid rgba(26, 40, 64, 0.5);
    transition: background 0.1s;
    cursor: pointer;
}

.whale-item:last-child {
    border-bottom: none;
}

.whale-item:hover {
    background: var(--bg-row-hover);
}

.whale-icon {
    font-size: 14px;
    flex-shrink: 0;
}

.whale-info {
    flex: 1;
    min-width: 0;
}

.whale-desc {
    font-size: 10.5px;
    color: var(--text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-family: 'JetBrains Mono', monospace;
}

.whale-amount {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-primary);
}

.whale-usd {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: var(--amber);
}

.whale-time {
    font-size: 10px;
    color: var(--text-muted);
    flex-shrink: 0;
    font-family: 'JetBrains Mono', monospace;
}

.whale-type-badge {
    font-size: 9px;
    font-weight: 800;
    padding: 1px 5px;
    border-radius: 2px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    flex-shrink: 0;
    font-family: 'JetBrains Mono', monospace;
}

.whale-type-badge.outflow {
    background: var(--long-bg);
    color: var(--long-color);
    border: 1px solid var(--long-border);
}

.whale-type-badge.inflow {
    background: var(--short-bg);
    color: var(--short-color);
    border: 1px solid var(--short-border);
}

.whale-type-badge.mint,
.whale-type-badge.burn {
    background: var(--wait-bg);
    color: var(--wait-color);
    border: 1px solid var(--wait-border);
}

.whale-type-badge.transfer {
    background: rgba(37, 99, 235, 0.1);
    color: var(--accent-secondary);
    border: 1px solid rgba(37, 99, 235, 0.25);
}

/* ─── Economic Calendar ─── */
.econ-list {}

.econ-event {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px;
    border-bottom: 1px solid rgba(26, 40, 64, 0.5);
    transition: background 0.1s;
}

.econ-event:last-child {
    border-bottom: none;
}

.econ-event:hover {
    background: var(--bg-row-hover);
}

.econ-time {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: var(--amber);
    font-weight: 700;
    min-width: 40px;
    flex-shrink: 0;
}

.econ-impact-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

.econ-impact-dot.high {
    background: var(--short-color);
    box-shadow: 0 0 4px var(--short-color);
}

.econ-impact-dot.medium {
    background: var(--wait-color);
}

.econ-impact-dot.low {
    background: var(--text-muted);
}

.econ-name {
    font-size: 11.5px;
    color: var(--text-primary);
    font-weight: 500;
    flex: 1;
}

.econ-values {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-shrink: 0;
}

.econ-val {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
}

.econ-val-label {
    font-size: 9px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.econ-status-badge {
    font-size: 9px;
    font-weight: 800;
    padding: 1px 5px;
    border-radius: 2px;
    flex-shrink: 0;
    font-family: 'JetBrains Mono', monospace;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.econ-status-badge.published {
    background: var(--long-bg);
    color: var(--long-color);
    border: 1px solid var(--long-border);
}

.econ-status-badge.upcoming {
    background: rgba(26, 40, 64, 0.6);
    color: var(--text-muted);
    border: 1px solid var(--border-panel);
}

.econ-status-badge.live {
    background: rgba(255, 165, 0, 0.15);
    color: var(--amber);
    border: 1px solid var(--amber);
    animation: pulse-amber 1.2s ease-in-out infinite;
}

@keyframes pulse-amber {

    0%,
    100% {
        opacity: 1
    }

    50% {
        opacity: 0.55
    }
}

.econ-event-live {
    background: rgba(255, 165, 0, 0.05);
}

.econ-tab-btn {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 3px;
    border: 1px solid var(--border-panel);
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    letter-spacing: 0.05em;
    transition: all 0.15s;
}

.econ-tab-btn:hover {
    background: var(--bg-row-hover);
    color: var(--text-primary);
}

.econ-tab-btn.active {
    background: var(--accent-bg);
    color: var(--accent);
    border-color: var(--accent);
}

/* ─── On-Chain Panel ─── */
.onchain-panel-wrap {
    overflow: hidden;
}

.onchain-tabs {
    display: flex;
    gap: 0;
    border: none;
    padding: 0;
}

.onchain-tab {
    padding: 5px 14px;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    cursor: pointer;
    border-bottom: none;
    border-right: 1px solid var(--border-panel);
    transition: var(--transition);
    font-family: 'JetBrains Mono', monospace;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.onchain-tab.active {
    color: var(--amber);
    background: var(--amber-glow);
}

.onchain-tab:hover:not(.active) {
    color: var(--text-secondary);
}

.onchain-metrics-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 0;
}

.onchain-metric {
    padding: 10px 14px;
    border-right: 1px solid var(--border-panel);
    border-bottom: 1px solid var(--border-panel);
}

.onchain-metric:nth-child(n) {
    border-right: 1px solid var(--border-panel);
}

.onchain-metric:hover {
    background: var(--bg-row-hover);
}

.onchain-metric-label {
    font-size: 10px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 4px;
    font-family: 'JetBrains Mono', monospace;
}

.onchain-metric-value {
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
}

.onchain-metric-sub {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 2px;
}

.onchain-metric-up {
    color: var(--long-color) !important;
}

.onchain-metric-down {
    color: var(--short-color) !important;
}

/* ─── Signal Detail Cards (Signals Page) ─── */
.signals-detail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 14px;
    margin-top: 24px;
}

.signal-detail-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    padding: 16px;
    transition: var(--transition);
    cursor: pointer;
    position: relative;
    overflow: hidden;
}

.signal-detail-card::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
}

.signal-detail-card.long::before {
    background: var(--long-color);
}

.signal-detail-card.short::before {
    background: var(--short-color);
}

.signal-detail-card.wait::before {
    background: var(--wait-color);
}

.signal-detail-card:hover {
    background: var(--bg-card-hover);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.sdc-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.sdc-asset {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sdc-asset img {
    width: 28px;
    height: 28px;
    border-radius: 50%;
}

.sdc-symbol {
    font-weight: 700;
    font-size: 15px;
}

.sdc-pair {
    font-size: 11px;
    color: var(--text-muted);
}

.sdc-price {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 14px;
}

.sdc-levels {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin: 10px 0;
}

.sdc-level {
    background: var(--bg-elevated);
    border-radius: 6px;
    padding: 7px 10px;
}

.sdc-level-label {
    font-size: 10px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin-bottom: 2px;
}

.sdc-level-value {
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px;
    font-weight: 600;
}

.sdc-level.entry .sdc-level-value {
    color: var(--accent-secondary);
}

.sdc-level.tp1 .sdc-level-value,
.sdc-level.tp2 .sdc-level-value {
    color: var(--long-color);
}

.sdc-level.sl .sdc-level-value {
    color: var(--short-color);
}

.sdc-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 10px;
}

.rr-badge {
    font-size: 12px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 6px;
    background: rgba(99, 102, 241, 0.15);
    color: var(--accent-secondary);
    border: 1px solid var(--border-accent);
    font-family: 'JetBrains Mono', monospace;
}

.confidence-bar-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    margin-left: 10px;
}

.confidence-bar {
    flex: 1;
    height: 5px;
    border-radius: 3px;
    background: var(--bg-elevated);
    overflow: hidden;
}

.confidence-fill {
    height: 100%;
    border-radius: 3px;
    transition: width 0.8s ease;
}

.confidence-fill.high {
    background: var(--long-color);
}

.confidence-fill.medium {
    background: var(--wait-color);
}

.confidence-fill.low {
    background: var(--short-color);
}

.confidence-pct {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    min-width: 35px;
    text-align: right;
}

/* 5-block signal strength indicator */
.strength-blocks {
    display: flex;
    gap: 3px;
    align-items: center;
}
.strength-block {
    width: 8px;
    height: 14px;
    border-radius: 2px;
    background: rgba(255,255,255,0.08);
    transition: background 0.4s ease;
}
.strength-block.filled.high   { background: var(--long-color); box-shadow: 0 0 6px rgba(0,217,126,0.4); }
.strength-block.filled.medium { background: var(--wait-color); }
.strength-block.filled.low    { background: var(--short-color); }


/* ─── Portfolio Donut Chart ─── */
.portfolio-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 20px;
    margin-top: 20px;
}

.portfolio-stats-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 20px;
}

.pstat-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    padding: 16px;
}

.pstat-label {
    font-size: 11px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}

.pstat-value {
    font-family: 'JetBrains Mono', monospace;
    font-size: 18px;
    font-weight: 700;
    color: var(--text-primary);
}

.pstat-sub {
    font-size: 12px;
    margin-top: 3px;
}

.pstat-sub.up {
    color: var(--long-color);
}

.pstat-sub.down {
    color: var(--short-color);
}

.donut-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    padding: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.donut-title {
    font-weight: 700;
    font-size: 13px;
    margin-bottom: 16px;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.donut-svg-wrap {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.donut-center-text {
    position: absolute;
    text-align: center;
}

.donut-center-label {
    font-size: 11px;
    color: var(--text-muted);
}

.donut-center-value {
    font-family: 'JetBrains Mono', monospace;
    font-size: 15px;
    font-weight: 700;
    color: var(--text-primary);
}

.allocation-legend {
    width: 100%;
    margin-top: 16px;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.alloc-item {
    display: flex;
    align-items: center;
    gap: 8px;
}

.alloc-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.alloc-symbol {
    font-weight: 600;
    font-size: 13px;
    flex: 1;
}

.alloc-pct {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    color: var(--text-muted);
}

.alloc-value {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    color: var(--text-secondary);
}

/* ─── Risk Score Card ─── */
.risk-score-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    padding: 16px;
    margin-top: 16px;
}

.risk-score-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.risk-score-title {
    font-weight: 700;
    font-size: 13px;
}

.risk-score-gauge {
    display: flex;
    align-items: center;
    gap: 12px;
}

.risk-gauge-bar {
    flex: 1;
    height: 10px;
    border-radius: 5px;
    background: linear-gradient(to right, var(--long-color), var(--wait-color), var(--short-color));
    position: relative;
    overflow: visible;
}

.risk-gauge-marker {
    position: absolute;
    top: -4px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: white;
    border: 3px solid var(--bg-primary);
    transform: translateX(-50%);
    box-shadow: var(--shadow-sm);
    transition: left 0.5s ease;
}

.risk-score-number {
    font-family: 'JetBrains Mono', monospace;
    font-size: 22px;
    font-weight: 900;
}

/* ─── Market Heatmap (Explore) ─── */
.heatmap-section {
    margin-bottom: 24px;
}

.heatmap-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 4px;
    margin-top: 12px;
}

.heatmap-cell {
    padding: 14px 10px;
    border-radius: 8px;
    text-align: center;
    cursor: pointer;
    transition: var(--transition);
    position: relative;
    overflow: hidden;
}

.heatmap-cell:hover {
    filter: brightness(1.2);
    transform: scale(1.03);
    z-index: 1;
}

.heatmap-cell-symbol {
    font-weight: 700;
    font-size: 13px;
    color: #fff;
}

.heatmap-cell-change {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.9);
    margin-top: 3px;
}

.heatmap-cell-price {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: rgba(255, 255, 255, 0.7);
    margin-top: 2px;
}

/* ─── BIST Section ─── */
.bist-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 12px;
    margin-top: 12px;
}

.bist-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    padding: 14px 16px;
    transition: var(--transition);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 12px;
}

.bist-card:hover {
    background: var(--bg-card-hover);
    transform: translateY(-1px);
}

.bist-icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: var(--bg-elevated);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 900;
    color: var(--accent-secondary);
    flex-shrink: 0;
}

.bist-info {
    flex: 1;
    min-width: 0;
}

.bist-symbol {
    font-weight: 700;
    font-size: 14px;
}

.bist-name {
    font-size: 11px;
    color: var(--text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bist-sector {
    font-size: 10px;
    color: var(--accent-secondary);
    margin-top: 2px;
}

.bist-right {
    text-align: right;
    flex-shrink: 0;
}

.bist-price {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 14px;
}

.bist-volume {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 2px;
}

/* ─── Active Alerts ─── */
.alerts-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 12px;
}

.alert-item {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    padding: 12px 16px;
    transition: var(--transition);
}

.alert-item:hover {
    background: var(--bg-card-hover);
}

.alert-status {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.alert-status.pending {
    background: var(--wait-color);
    animation: pulse 1.5s infinite;
}

.alert-status.triggered {
    background: var(--long-color);
}

.alert-symbol {
    font-weight: 700;
    font-size: 14px;
    min-width: 50px;
}

.alert-condition {
    font-size: 12px;
    color: var(--text-secondary);
    flex: 1;
}

.alert-price-target {
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px;
    font-weight: 600;
}

.alert-note {
    font-size: 11px;
    color: var(--text-muted);
}

.alert-badge {
    font-size: 10px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
}

.alert-badge.pending {
    background: var(--wait-bg);
    color: var(--wait-color);
}

.alert-badge.triggered {
    background: var(--long-bg);
    color: var(--long-color);
}

.alert-del-btn {
    background: none;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 14px;
    padding: 4px;
    border-radius: 4px;
    transition: var(--transition);
}

.alert-del-btn:hover {
    color: var(--short-color);
    background: var(--short-bg);
}

/* ─── AI Quick Buttons ─── */
.ai-quick-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-bottom: 16px;
}

.ai-quick-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: var(--bg-elevated);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: var(--transition);
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 500;
    text-align: left;
}

.ai-quick-btn:hover {
    background: var(--bg-card-hover);
    border-color: var(--border-accent);
    color: var(--text-primary);
    transform: translateY(-1px);
}

.ai-quick-icon {
    font-size: 16px;
    flex-shrink: 0;
}

.ai-model-capabilities {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-bottom: 20px;
}

.model-cap-card {
    background: var(--bg-elevated);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    padding: 14px;
    transition: var(--transition);
}

.model-cap-card.active {
    border-color: var(--accent-primary);
    background: var(--accent-glow);
}

.model-cap-card:hover {
    border-color: var(--border-accent);
}

.model-cap-name {
    font-weight: 700;
    font-size: 13px;
    margin-bottom: 4px;
}

.model-cap-desc {
    font-size: 11px;
    color: var(--text-muted);
    line-height: 1.5;
}

.model-cap-tags {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    margin-top: 8px;
}

.model-cap-tag {
    font-size: 10px;
    padding: 2px 7px;
    border-radius: 4px;
    background: var(--bg-card);
    color: var(--text-muted);
}

/* ─── Settings Enhanced ─── */
.settings-input {
    width: 100%;
    background: var(--bg-elevated);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    padding: 10px 14px;
    color: var(--text-primary);
    font-size: 13px;
    font-family: inherit;
    transition: var(--transition);
    outline: none;
}

.settings-input:focus {
    border-color: var(--accent-primary);
    box-shadow: 0 0 0 3px var(--accent-glow);
}

.settings-input::placeholder {
    color: var(--text-muted);
}

.settings-form-row {
    margin-bottom: 14px;
}

.settings-form-label {
    font-size: 12px;
    color: var(--text-secondary);
    margin-bottom: 6px;
    font-weight: 500;
}

.settings-api-key {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    letter-spacing: 1px;
}

.settings-section-desc {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 16px;
    line-height: 1.5;
}

.api-endpoint-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 12px;
}

.api-endpoint-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: var(--bg-elevated);
    border-radius: var(--radius-sm);
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
}

.api-method {
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 700;
}

.api-method.get {
    background: rgba(16, 185, 129, 0.15);
    color: var(--long-color);
}

.api-method.post {
    background: rgba(99, 102, 241, 0.15);
    color: var(--accent-secondary);
}

.api-path {
    color: var(--text-secondary);
    flex: 1;
}

.api-desc {
    font-size: 11px;
    color: var(--text-muted);
    font-family: inherit;
}

/* ─── News Enhanced ─── */
.news-stats-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 16px;
}

.news-stat-chip {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    padding: 12px;
    text-align: center;
}

.news-stat-chip .count {
    font-family: 'JetBrains Mono', monospace;
    font-size: 22px;
    font-weight: 900;
}

.news-stat-chip .label {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 3px;
}

.news-stat-chip.bullish .count {
    color: var(--long-color);
}

.news-stat-chip.bearish .count {
    color: var(--short-color);
}

.news-stat-chip.neutral .count {
    color: var(--wait-color);
}

.news-stat-chip.total .count {
    color: var(--accent-secondary);
}

/* ─── Explore Enhanced ─── */
.explore-header-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.explore-search {
    flex: 1;
    background: var(--bg-elevated);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    padding: 9px 14px;
    color: var(--text-primary);
    font-size: 13px;
    outline: none;
    transition: var(--transition);
}

.explore-search:focus {
    border-color: var(--accent-primary);
}

/* ─── Portfolio AI Card ─── */
.portfolio-ai-card {
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.08), rgba(168, 85, 247, 0.08));
    border: 1px solid var(--border-accent);
    border-radius: var(--radius-md);
    padding: 16px;
    margin-top: 16px;
}

.portfolio-ai-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    font-weight: 700;
    font-size: 13px;
}

.portfolio-ai-text {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.6;
}

.portfolio-ai-actions {
    display: flex;
    gap: 8px;
    margin-top: 12px;
}

.pai-btn {
    padding: 7px 14px;
    border-radius: var(--radius-sm);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    border: none;
    transition: var(--transition);
}

.pai-btn.primary {
    background: var(--accent-primary);
    color: white;
}

.pai-btn.primary:hover {
    background: var(--accent-secondary);
}

.pai-btn.outline {
    background: transparent;
    border: 1px solid var(--border-accent);
    color: var(--accent-secondary);
}

.pai-btn.outline:hover {
    background: var(--accent-glow);
}

/* ─── Custom Scrollbar ─── */
* {
    scrollbar-width: thin;
    scrollbar-color: #1a2840 #020407;
}

::-webkit-scrollbar {
    width: 5px;
    height: 5px;
}

::-webkit-scrollbar-track {
    background: #020407;
}

::-webkit-scrollbar-thumb {
    background: #1a2840;
    border-radius: 2px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--amber-dim);
}

/* ─── Focus Ring ─── */
:focus-visible {
    outline: 1px solid var(--amber);
    outline-offset: 2px;
}

button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 1px solid var(--amber);
}

/* ─── Bloomberg panel glow on hover ─── */
.bb-panel:hover {
    box-shadow: 0 0 0 1px rgba(245, 158, 11, 0.08);
}

/* ─── Responsive Tweaks ─── */
@media (max-width: 1300px) {
    .bb-news-layout {
        grid-template-columns: 280px 1fr;
    }

    .bb-ai-layout {
        grid-template-columns: 180px 1fr;
    }

    .bb-portfolio-layout {
        grid-template-columns: 1fr 180px;
    }

    .bb-explore-grid {
        grid-template-columns: 1fr 220px;
    }

    .bb-settings-grid {
        grid-template-columns: 140px 1fr;
    }
}

@media (max-width: 1024px) {
    .bb-signal-hero {
        flex-wrap: wrap;
    }

    .bb-stat-strip {
        min-width: 80px;
    }

    .bb-news-layout {
        grid-template-columns: 1fr;
    }

    .bb-portfolio-layout {
        grid-template-columns: 1fr;
    }

    .bb-explore-grid {
        grid-template-columns: 1fr;
    }

    .bb-ai-layout {
        grid-template-columns: 1fr;
    }

    .bb-settings-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .onchain-metrics-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .heatmap-grid {
        grid-template-columns: repeat(auto-fill, minmax(75px, 1fr));
    }

    .bb-table {
        font-size: 11px;
    }

    .bb-table thead th {
        padding: 5px 7px;
    }

    .bb-table tbody td {
        padding: 6px 7px;
    }
}

/* ─── Print styles ─── */
@media print {

    .sidebar,
    .ticker-tape-wrap,
    .bb-statusbar,
    .topbar {
        display: none !important;
    }

    .main-content {
        margin: 0 !important;
    }

    .bb-panel {
        break-inside: avoid;
        border: 1px solid #ccc !important;
    }
}

/* ═══ DISCLAIMER / YASAL UYARI ═══ */
.bb-disclaimer {
    font-size: 9.5px;
    color: var(--text-muted);
    padding: 6px 12px;
    border-top: 1px solid var(--border-color);
    line-height: 1.5;
    letter-spacing: 0.2px;
    background: rgba(0, 0, 0, 0.15);
    margin-top: 4px;
}

.bb-disclaimer a {
    color: var(--text-muted);
    text-decoration: underline;
}

/* ═══ NEWS SENTIMENT BAR (right panel) ═══ */
.news-sentiment-summary {
    display: flex;
    border-radius: var(--radius-sm);
    overflow: hidden;
    height: 20px;
    margin-bottom: 8px;
    gap: 1px;
}

.nss-seg {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.3px;
    transition: var(--transition);
}

.nss-seg.bullish {
    background: rgba(0, 217, 126, 0.55);
    color: #00d97e;
}

.nss-seg.neutral {
    background: rgba(245, 158, 11, 0.40);
    color: #f59e0b;
}

.nss-seg.bearish {
    background: rgba(255, 61, 87, 0.50);
    color: #ff3d57;
}

/* ═══ SENTIMENT OVERVIEW CARD (right panel widget) ═══ */
.sentiment-card {
    background: var(--bg-card);
    border: 1px solid var(--border-panel);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.sentiment-card-header {
    padding: 8px 12px;
    background: var(--bg-panel-header);
    border-bottom: 1px solid var(--border-panel);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.sentiment-meter-wrap {
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sm-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sm-label {
    font-size: 10px;
    color: var(--text-muted);
    width: 70px;
    flex-shrink: 0;
    font-family: 'JetBrains Mono', monospace;
}

.sm-bar {
    flex: 1;
    height: 6px;
    background: var(--bg-elevated);
    border-radius: 3px;
    overflow: hidden;
}

.sm-fill {
    height: 100%;
    border-radius: 3px;
    transition: width 0.8s ease;
}

.sm-fill.bullish {
    background: var(--long-color);
}

.sm-fill.bearish {
    background: var(--short-color);
}

.sm-fill.neutral {
    background: var(--wait-color);
}

.sm-fill.social {
    background: var(--accent-secondary);
}

.sm-val {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    width: 36px;
    text-align: right;
    flex-shrink: 0;
}

/* ═══ ACTIVE ALERTS MINI (right panel) ═══ */
.alerts-mini-card {
    background: var(--bg-card);
    border: 1px solid var(--border-panel);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.alerts-mini-header {
    padding: 8px 12px;
    background: var(--bg-panel-header);
    border-bottom: 1px solid var(--border-panel);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.alert-mini-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px;
    border-bottom: 1px solid var(--border-color);
    transition: var(--transition);
    cursor: pointer;
}

.alert-mini-item:last-child {
    border-bottom: none;
}

.alert-mini-item:hover {
    background: var(--bg-row-hover);
}

.alert-mini-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

.alert-mini-dot.pending {
    background: var(--wait-color);
    animation: pulse 1.5s infinite;
}

.alert-mini-dot.triggered {
    background: var(--long-color);
}

.alert-mini-sym {
    font-weight: 700;
    font-size: 12px;
    min-width: 44px;
    font-family: 'JetBrains Mono', monospace;
}

.alert-mini-cond {
    font-size: 11px;
    color: var(--text-muted);
    flex: 1;
}

.alert-mini-price {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 600;
    color: var(--text-secondary);
}

.alert-mini-badge {
    font-size: 9px;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 3px;
    letter-spacing: 0.4px;
}

.alert-mini-badge.pending {
    background: var(--wait-bg);
    color: var(--wait-color);
}

.alert-mini-badge.triggered {
    background: var(--long-bg);
    color: var(--long-color);
}

/* ═══ HEATMAP FULL FILL ═══ */
.heatmap-grid-full {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
    gap: 3px;
    padding: 10px;
}

.heatmap-cell-full {
    padding: 10px 6px;
    border-radius: 4px;
    text-align: center;
    cursor: pointer;
    transition: all 0.15s;
    position: relative;
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.heatmap-cell-full:hover {
    filter: brightness(1.25);
    transform: scale(1.04);
    z-index: 2;
}

.hc-sym {
    font-weight: 700;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.95);
}

.hc-chg {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.85);
    margin-top: 2px;
}

.hc-cat {
    font-size: 9px;
    color: rgba(255, 255, 255, 0.5);
    margin-top: 1px;
    letter-spacing: 0.3px;
}

.heatmap-cat-label {
    grid-column: 1 / -1;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.5px;
    color: var(--text-muted);
    padding: 4px 2px 2px;
    border-bottom: 1px solid var(--border-color);
    margin-bottom: 2px;
}

/* ═══ NEWS CARD FULL HEIGHT ═══ */
.news-card {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

.news-items-wrap {
    flex: 1;
    overflow-y: auto;
    max-height: 340px;
}

.news-items-wrap::-webkit-scrollbar {
    width: 3px;
}

.news-items-wrap::-webkit-scrollbar-thumb {
    background: var(--border-panel);
    border-radius: 2px;
}

/* ═══════════════════════════════════════════════════════════
   OZCx — AUTH, i18n, NOTIFICATIONS, PAYWALL — v2.0
   ═══════════════════════════════════════════════════════════ */

/* ─── LOGO PLACEHOLDER ─── */
.ozcx-logo {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 17px;
    letter-spacing: 1.5px;
    color: var(--accent);
    text-transform: uppercase;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    cursor: default;
    user-select: none;
}

.ozcx-logo img {
    max-width: 80px;
    max-height: 36px;
    object-fit: contain;
}

/* ─── LANGUAGE SELECTOR ─── */
.lang-selector {
    display: flex;
    align-items: center;
    gap: 2px;
    background: var(--bg-panel-header);
    border: 1px solid var(--border-panel);
    border-radius: 4px;
    overflow: hidden;
    flex-shrink: 0;
}

.lang-btn {
    background: none;
    border: none;
    color: var(--text-muted);
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    padding: 4px 8px;
    cursor: pointer;
    transition: var(--transition);
    letter-spacing: 0.5px;
}

.lang-btn.active {
    background: var(--accent);
    color: #fff;
}

.lang-btn:hover:not(.active) {
    background: var(--bg-row-hover);
    color: var(--text-primary);
}

/* ─── AUTH MODAL ─── */
.auth-overlay {
    position: fixed;
    inset: 0;
    background: rgba(5, 8, 15, 0.92);
    backdrop-filter: blur(12px);
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s;
}

.auth-overlay.active {
    opacity: 1;
    pointer-events: all;
}

.auth-box {
    background: var(--bg-card);
    border: 1px solid var(--border-panel);
    border-radius: 12px;
    width: 100%;
    max-width: 420px;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.7);
    overflow: hidden;
    animation: authSlide 0.3s ease;
}

@keyframes authSlide {
    from {
        transform: translateY(-20px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.auth-header {
    background: var(--bg-panel-header);
    border-bottom: 1px solid var(--border-panel);
    padding: 16px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.auth-logo-wrap {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 900;
    font-size: 18px;
    color: var(--accent);
    letter-spacing: 1px;
}

.auth-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: 0.5px;
}

.auth-subtitle {
    font-size: 10.5px;
    color: var(--text-muted);
    margin-top: 1px;
}

.auth-tabs {
    display: flex;
    background: var(--bg-panel-header);
    border-bottom: 1px solid var(--border-panel);
}

.auth-tab {
    flex: 1;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--text-muted);
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    padding: 11px 0;
    cursor: pointer;
    transition: var(--transition);
}

.auth-tab.active {
    color: var(--accent);
    border-bottom-color: var(--accent);
    background: rgba(0, 197, 255, 0.04);
}

.auth-body {
    padding: 20px;
}

.auth-form-group {
    margin-bottom: 14px;
}

.auth-label {
    display: block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;
    color: var(--text-muted);
    margin-bottom: 5px;
    font-family: 'JetBrains Mono', monospace;
}

.auth-input {
    width: 100%;
    background: var(--bg-terminal);
    border: 1px solid var(--border-panel);
    border-radius: 6px;
    color: var(--text-primary);
    font-size: 13px;
    font-family: inherit;
    padding: 9px 12px;
    transition: var(--transition);
    box-sizing: border-box;
}

.auth-input:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(0, 197, 255, 0.12);
}

.auth-input.error {
    border-color: var(--short-color);
}

.auth-input.success {
    border-color: var(--long-color);
}

.auth-field-hint {
    font-size: 10px;
    color: var(--text-muted);
    margin-top: 4px;
}

.auth-field-hint.error {
    color: var(--short-color);
}

.auth-field-hint.success {
    color: var(--long-color);
}

.pw-strength-bar {
    height: 3px;
    background: var(--border-panel);
    border-radius: 2px;
    margin-top: 6px;
    overflow: hidden;
}

.pw-strength-fill {
    height: 100%;
    border-radius: 2px;
    transition: width 0.3s, background 0.3s;
}

.auth-btn {
    width: 100%;
    padding: 12px;
    background: var(--accent);
    color: #000;
    border: none;
    border-radius: 6px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1px;
    cursor: pointer;
    transition: var(--transition);
    margin-top: 4px;
}

.auth-btn:hover {
    background: var(--accent-secondary);
    transform: translateY(-1px);
}

.auth-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
}

.auth-captcha-wrap {
    margin: 12px 0 6px;
    padding: 12px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--border-panel);
    border-radius: 8px;
}

.auth-captcha-slot {
    min-height: 66px;
}

.auth-captcha-hint {
    margin-top: 8px;
    color: var(--text-muted);
    font-size: 11px;
    line-height: 1.4;
}

.auth-divider {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 14px 0;
    color: var(--text-muted);
    font-size: 10px;
}

.auth-divider::before,
.auth-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--border-panel);
}

.auth-social-btn {
    width: 100%;
    padding: 10px 12px;
    background: var(--bg-panel-header);
    border: 1px solid var(--border-panel);
    border-radius: 6px;
    color: var(--text-secondary);
    font-size: 12px;
    font-family: inherit;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: var(--transition);
    margin-bottom: 8px;
}

.auth-social-btn:hover {
    background: var(--bg-row-hover);
    border-color: var(--accent);
}

.auth-footer-links {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border-panel);
}

.auth-link {
    font-size: 10.5px;
    color: var(--accent);
    text-decoration: none;
    cursor: pointer;
}

.auth-link:hover {
    text-decoration: underline;
}

.auth-privacy-note {
    font-size: 10px;
    color: var(--text-muted);
    text-align: center;
    margin-top: 10px;
    line-height: 1.5;
}

.auth-privacy-note a {
    color: var(--accent);
    cursor: pointer;
}

.auth-plan-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: rgba(245, 158, 11, 0.12);
    border: 1px solid rgba(245, 158, 11, 0.3);
    color: var(--amber);
    font-size: 10px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 4px;
    margin-bottom: 12px;
    font-family: 'JetBrains Mono', monospace;
}

/* ─── NOTIFICATION PANEL ─── */
.notif-overlay {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 0;
    overflow: hidden;
    z-index: 1800;
    transition: width 0s 0.25s;
}

.notif-overlay.open {
    width: 100%;
    transition: width 0s;
}

.notif-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(5, 8, 15, 0.5);
    opacity: 0;
    transition: opacity 0.25s;
    pointer-events: none;
}

.notif-overlay.open .notif-backdrop {
    opacity: 1;
    pointer-events: all;
}

.notif-panel {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 340px;
    max-width: 100vw;
    background: var(--bg-card);
    border-left: 1px solid var(--border-panel);
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: -8px 0 40px rgba(0, 0, 0, 0.4);
}

.notif-overlay.open .notif-panel {
    transform: translateX(0);
}

.notif-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    background: var(--bg-panel-header);
    border-bottom: 1px solid var(--border-panel);
    flex-shrink: 0;
}

.notif-panel-title {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1px;
    color: var(--text-primary);
    font-family: 'JetBrains Mono', monospace;
    display: flex;
    align-items: center;
    gap: 8px;
}

.notif-count-chip {
    background: var(--accent);
    color: #000;
    font-size: 9px;
    font-weight: 800;
    padding: 1px 6px;
    border-radius: 10px;
}

.notif-close-btn {
    background: none;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
    padding: 4px;
    transition: var(--transition);
}

.notif-close-btn:hover {
    color: var(--text-primary);
}

.notif-tabs {
    display: flex;
    background: var(--bg-panel-header);
    border-bottom: 1px solid var(--border-panel);
    flex-shrink: 0;
}

.notif-tab {
    flex: 1;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--text-muted);
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    padding: 9px 0;
    cursor: pointer;
    transition: var(--transition);
    letter-spacing: 0.8px;
}

.notif-tab.active {
    color: var(--accent);
    border-bottom-color: var(--accent);
}

.notif-list {
    flex: 1;
    overflow-y: auto;
    padding: 4px 0;
}

.notif-item {
    display: flex;
    gap: 10px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--border-color);
    cursor: pointer;
    transition: var(--transition);
    position: relative;
}

.notif-item:hover {
    background: var(--bg-row-hover);
}

.notif-item.unread {
    background: rgba(0, 197, 255, 0.04);
}

.notif-item.unread::before {
    content: '';
    position: absolute;
    left: 5px;
    top: 50%;
    transform: translateY(-50%);
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--accent);
}

.notif-icon-wrap {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 14px;
}

.notif-icon-wrap.signal {
    background: rgba(0, 217, 126, 0.12);
}

.notif-icon-wrap.alert {
    background: rgba(255, 61, 87, 0.12);
}

.notif-icon-wrap.whale {
    background: rgba(245, 158, 11, 0.12);
}

.notif-icon-wrap.news {
    background: rgba(0, 197, 255, 0.12);
}

.notif-icon-wrap.system {
    background: rgba(148, 163, 184, 0.12);
}

.notif-content {
    flex: 1;
    min-width: 0;
}

.notif-title {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 2px;
    line-height: 1.3;
}

.notif-body {
    font-size: 10.5px;
    color: var(--text-secondary);
    line-height: 1.4;
}

.notif-time {
    font-size: 9.5px;
    color: var(--text-muted);
    margin-top: 3px;
    font-family: 'JetBrains Mono', monospace;
}

.notif-panel-footer {
    padding: 10px 14px;
    border-top: 1px solid var(--border-panel);
    display: flex;
    gap: 8px;
    flex-shrink: 0;
}

.notif-footer-btn {
    flex: 1;
    padding: 8px;
    background: var(--bg-panel-header);
    border: 1px solid var(--border-panel);
    border-radius: 5px;
    color: var(--text-secondary);
    font-size: 10px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: var(--transition);
}

.notif-footer-btn:hover {
    background: var(--bg-row-hover);
    color: var(--text-primary);
}

/* ─── PAYWALL / MEMBERSHIP MODAL ─── */
.paywall-overlay {
    position: fixed;
    inset: 0;
    background: rgba(5, 8, 15, 0.95);
    backdrop-filter: blur(16px);
    z-index: 1900;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s;
}

.paywall-overlay.active {
    opacity: 1;
    pointer-events: all;
}

.paywall-box {
    background: var(--bg-card);
    border: 1px solid var(--border-panel);
    border-radius: 16px;
    width: 100%;
    max-width: 820px;
    box-shadow: 0 32px 100px rgba(0, 0, 0, 0.8);
    overflow: hidden;
    animation: authSlide 0.35s ease;
}

.paywall-header {
    background: linear-gradient(135deg, rgba(0, 197, 255, 0.08) 0%, rgba(125, 92, 255, 0.08) 100%);
    border-bottom: 1px solid var(--border-panel);
    padding: 24px 28px;
    text-align: center;
}

.paywall-logo {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 900;
    font-size: 22px;
    color: var(--accent);
    letter-spacing: 2px;
    margin-bottom: 6px;
}

.paywall-headline {
    font-size: 20px;
    font-weight: 800;
    color: var(--text-primary);
    margin-bottom: 6px;
}

.paywall-subtext {
    font-size: 12.5px;
    color: var(--text-secondary);
    max-width: 500px;
    margin: 0 auto;
    line-height: 1.6;
}

.paywall-plans {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    border-top: 1px solid var(--border-panel);
}

.paywall-plan {
    padding: 22px 18px;
    border-right: 1px solid var(--border-panel);
    position: relative;
    transition: var(--transition);
}

.paywall-plan:last-child {
    border-right: none;
}

.paywall-plan.featured {
    background: rgba(0, 197, 255, 0.04);
    border-top: 2px solid var(--accent);
    margin-top: -1px;
}

.paywall-plan-badge {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--accent);
    color: #000;
    font-size: 9px;
    font-weight: 800;
    padding: 3px 12px;
    border-radius: 10px;
    letter-spacing: 1px;
    white-space: nowrap;
}

.paywall-plan-name {
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 1.5px;
    color: var(--text-primary);
    margin-bottom: 4px;
}

.paywall-plan-price {
    font-family: 'JetBrains Mono', monospace;
    font-size: 26px;
    font-weight: 900;
    color: var(--text-primary);
    margin-bottom: 2px;
}

.paywall-plan-price span {
    font-size: 12px;
    font-weight: 400;
    color: var(--text-muted);
}

.paywall-plan-limit {
    font-size: 10.5px;
    color: var(--accent);
    font-weight: 700;
    margin-bottom: 14px;
    font-family: 'JetBrains Mono', monospace;
}

.paywall-plan-features {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
}

.paywall-plan-features li {
    font-size: 11px;
    color: var(--text-secondary);
    padding: 4px 0;
    display: flex;
    align-items: center;
    gap: 6px;
}

.paywall-plan-features li::before {
    content: '✓';
    color: var(--long-color);
    font-weight: 700;
    flex-shrink: 0;
}

.paywall-plan-features li.dim {
    color: var(--text-muted);
}

.paywall-plan-features li.dim::before {
    content: '○';
    color: var(--text-muted);
}

.paywall-plan-btn {
    width: 100%;
    padding: 10px;
    border-radius: 7px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.8px;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border-panel);
    background: none;
    color: var(--text-secondary);
}

.paywall-plan-btn.primary {
    background: var(--accent);
    color: #000;
    border-color: var(--accent);
}

.paywall-plan-btn.primary:hover {
    background: var(--accent-secondary);
    border-color: var(--accent-secondary);
    transform: translateY(-1px);
}

.paywall-plan-btn:hover:not(.primary) {
    border-color: var(--accent);
    color: var(--text-primary);
}

.paywall-dismiss {
    text-align: center;
    padding: 12px;
    border-top: 1px solid var(--border-panel);
    background: var(--bg-panel-header);
}

.paywall-dismiss-link {
    font-size: 11px;
    color: var(--text-muted);
    cursor: pointer;
    transition: var(--transition);
}

.paywall-dismiss-link:hover {
    color: var(--text-secondary);
}

/* ─── PRIVACY POLICY MODAL ─── */
.privacy-overlay {
    position: fixed;
    inset: 0;
    background: rgba(5, 8, 15, 0.92);
    backdrop-filter: blur(12px);
    z-index: 2100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s;
}

.privacy-overlay.active {
    opacity: 1;
    pointer-events: all;
}

.privacy-box {
    background: var(--bg-card);
    border: 1px solid var(--border-panel);
    border-radius: 12px;
    width: 100%;
    max-width: 640px;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.7);
    animation: authSlide 0.3s ease;
}

.privacy-header {
    background: var(--bg-panel-header);
    border-bottom: 1px solid var(--border-panel);
    padding: 14px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
}

.privacy-title {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--text-primary);
    font-family: 'JetBrains Mono', monospace;
}

.privacy-body {
    flex: 1;
    overflow-y: auto;
    padding: 18px 20px;
    line-height: 1.7;
}

.privacy-body h3 {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--accent);
    margin: 16px 0 6px;
    font-family: 'JetBrains Mono', monospace;
}

.privacy-body p {
    font-size: 11.5px;
    color: var(--text-secondary);
    margin-bottom: 8px;
}

.privacy-body .disclaimer-box {
    background: rgba(255, 61, 87, 0.08);
    border: 1px solid rgba(255, 61, 87, 0.25);
    border-radius: 6px;
    padding: 12px 14px;
    margin: 12px 0;
}

.privacy-body .disclaimer-box p {
    color: var(--text-secondary);
    font-size: 11.5px;
    margin: 0;
}

.privacy-contact-link {
    color: var(--accent);
    text-decoration: none;
    font-weight: 700;
}

.privacy-contact-link:hover {
    color: var(--accent-secondary);
}

.privacy-footer {
    padding: 14px 18px;
    border-top: 1px solid var(--border-panel);
    background: var(--bg-panel-header);
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    flex-shrink: 0;
}

.privacy-btn {
    padding: 9px 18px;
    border-radius: 6px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.8px;
    cursor: pointer;
    transition: var(--transition);
}

.privacy-btn.primary {
    background: var(--accent);
    color: #000;
    border: none;
}

.privacy-btn.primary:hover {
    background: var(--accent-secondary);
}

.privacy-btn.outline {
    background: none;
    border: 1px solid var(--border-panel);
    color: var(--text-muted);
}

.privacy-btn.outline:hover {
    border-color: var(--accent);
    color: var(--text-primary);
}

/* ─── AD PLACEHOLDER ─── */
.ad-placeholder {
    background: var(--bg-panel-header);
    border: 1px dashed var(--border-panel);
    border-radius: 6px;
    padding: 12px;
    text-align: center;
    margin: 8px 0;
}

.ad-placeholder-label {
    font-size: 9px;
    color: var(--text-muted);
    letter-spacing: 1.5px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 4px;
}

.ad-placeholder-inner {
    width: 100%;
    min-height: 90px;
    background: rgba(255, 255, 255, 0.02);
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    color: var(--text-muted);
}

/* ─── SUBSCRIPTION QUOTA CHIP ─── */
.quota-chip {
    display: flex;
    align-items: center;
    gap: 6px;
    background: var(--bg-panel-header);
    border: 1px solid var(--border-panel);
    border-radius: 5px;
    padding: 4px 10px;
    font-size: 10px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    color: var(--text-secondary);
    flex-shrink: 0;
}

.quota-chip.warning {
    border-color: var(--wait-color);
    color: var(--wait-color);
}

.quota-chip.depleted {
    border-color: var(--short-color);
    color: var(--short-color);
}

.quota-bar {
    width: 60px;
    height: 4px;
    background: var(--border-panel);
    border-radius: 2px;
    overflow: hidden;
}

.quota-fill {
    height: 100%;
    border-radius: 2px;
    transition: width 0.3s;
}

/* ─── SETTINGS LANGUAGE SECTION ─── */
.bb-lang-selector-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.bb-lang-option {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: var(--bg-panel-header);
    border: 1px solid var(--border-panel);
    border-radius: 6px;
    cursor: pointer;
    transition: var(--transition);
    font-size: 12px;
    color: var(--text-secondary);
}

.bb-lang-option.active {
    border-color: var(--accent);
    color: var(--accent);
    background: rgba(0, 197, 255, 0.06);
}

.bb-lang-option:hover:not(.active) {
    border-color: var(--border-panel);
    background: var(--bg-row-hover);
}

.bb-lang-flag {
    font-size: 16px;
    line-height: 1;
}

/* ─── FREE TIER LOCKED OVERLAY ─── */
.feature-locked-overlay {
    position: absolute;
    inset: 0;
    background: rgba(5, 8, 15, 0.85);
    backdrop-filter: blur(4px);
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: inherit;
    gap: 10px;
}

.feature-locked-icon {
    font-size: 28px;
    color: var(--text-muted);
}

.feature-locked-msg {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-secondary);
    font-family: 'JetBrains Mono', monospace;
    text-align: center;
}

.feature-locked-btn {
    padding: 8px 18px;
    background: var(--accent);
    color: #000;
    border: none;
    border-radius: 6px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.8px;
    cursor: pointer;
    transition: var(--transition);
}

.feature-locked-btn:hover {
    background: var(--accent-secondary);
}

/* ─── PLAN CARDS UPDATE ─── */
.plan-card .ai-limit-note {
    font-size: 10px;
    color: var(--text-muted);
    padding: 6px 0;
    border-top: 1px solid var(--border-panel);
    margin-top: 4px;
    font-family: 'JetBrains Mono', monospace;
}

/* ─── USER BADGE IN TOPBAR / SIDEBAR ─── */
.user-menu-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: 1px solid var(--border-panel);
    border-radius: 6px;
    padding: 5px 10px;
    cursor: pointer;
    color: var(--text-secondary);
    font-size: 11px;
    font-family: 'JetBrains Mono', monospace;
    transition: var(--transition);
    flex-shrink: 0;
}

.user-menu-btn:hover {
    background: var(--bg-row-hover);
    border-color: var(--accent);
    color: var(--text-primary);
}

.user-menu-btn.active {
    background: rgba(0, 197, 255, 0.08);
    border-color: rgba(0, 197, 255, 0.4);
    color: var(--text-primary);
}

.user-avatar-sm {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--accent);
    color: #000;
    font-size: 10px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.account-menu {
    position: fixed;
    min-width: 250px;
    max-width: 280px;
    background: rgba(8, 14, 24, 0.98);
    border: 1px solid rgba(83, 118, 156, 0.35);
    border-radius: 12px;
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.45);
    z-index: 1200;
    padding: 10px;
    display: none;
    backdrop-filter: blur(14px);
}

.account-menu.open {
    display: block;
}

.account-menu-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    padding: 6px 6px 10px;
    margin-bottom: 6px;
    border-bottom: 1px solid rgba(83, 118, 156, 0.22);
}

.account-menu-user {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.account-menu-avatar {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--accent), #1d4ed8);
    color: #03111d;
    font-weight: 900;
    font-family: 'JetBrains Mono', monospace;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.account-menu-meta {
    min-width: 0;
}

.account-menu-name {
    color: var(--text-primary);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
}

.account-menu-email {
    color: var(--text-muted);
    font-size: 10px;
    font-family: 'JetBrains Mono', monospace;
    line-height: 1.35;
    word-break: break-word;
}

.account-menu-plan {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    font-family: 'JetBrains Mono', monospace;
    color: var(--amber);
    background: rgba(245, 158, 11, 0.12);
    border: 1px solid rgba(245, 158, 11, 0.28);
    flex-shrink: 0;
}

.account-menu-item {
    width: 100%;
    border: 0;
    background: transparent;
    color: var(--text-secondary);
    text-align: left;
    padding: 11px 12px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
    font-family: 'JetBrains Mono', monospace;
    letter-spacing: 0.03em;
    transition: var(--transition);
}

.account-menu-item:hover {
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-primary);
}

.account-menu-item--danger {
    color: #ff8787;
}

.account-menu-item--danger:hover {
    background: rgba(239, 68, 68, 0.12);
    color: #ffb4b4;
}

/* ─── TOPBAR BELL BUTTON ACTIVE STATE ─── */
.topbar-btn.has-notif {
    position: relative;
}

.topbar-btn.has-notif .badge {
    background: var(--short-color);
    animation: pulse 1.5s infinite;
}

/* ─── STATUS BAR PLAN BADGE ─── */
.bb-status-plan {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    padding: 1px 8px;
    border-radius: 3px;
}

.bb-status-plan.free {
    background: rgba(148, 163, 184, 0.15);
    color: var(--text-muted);
}

.bb-status-plan.standard {
    background: rgba(0, 197, 255, 0.15);
    color: var(--accent);
}

.bb-status-plan.pro {
    background: rgba(245, 158, 11, 0.15);
    color: var(--amber);
}

/* ─── COPYRIGHT ─── */
.bb-copyright {
    font-size: 9px;
    color: var(--text-muted);
    letter-spacing: 0.5px;
    font-family: 'JetBrains Mono', monospace;
}

/* ═══════════════════════════════════════════════════════════
   PORTFOLIO — Add Holding Modal & Live Price Features
═══════════════════════════════════════════════════════════ */

/* ── Floating + button ── */
.portfolio-add-fab {
    position: fixed;
    bottom: 32px;
    right: 32px;
    width: 48px;
    height: 48px;
    background: var(--amber);
    color: #000;
    border: none;
    border-radius: 50%;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px rgba(246, 190, 0, 0.40);
    z-index: 500;
    transition: transform 0.15s, box-shadow 0.15s;
}

.portfolio-add-fab:hover {
    transform: scale(1.12);
    box-shadow: 0 6px 22px rgba(246, 190, 0, 0.60);
}

/* inline + button in panel header */
.portfolio-add-btn {
    background: transparent;
    border: 1px solid var(--amber);
    color: var(--amber);
    border-radius: 4px;
    padding: 3px 10px;
    font-size: 11px;
    font-family: 'JetBrains Mono', monospace;
    cursor: pointer;
    letter-spacing: 0.5px;
    transition: background 0.15s, color 0.15s;
}

.portfolio-add-btn:hover {
    background: var(--amber);
    color: #000;
}

/* ── Add Holding Overlay ── */
.holding-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 2000;
    align-items: center;
    justify-content: center;
}

.holding-overlay.open {
    display: flex;
}

.holding-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.72);
    backdrop-filter: blur(4px);
}

.holding-box {
    position: relative;
    z-index: 1;
    background: var(--panel-bg);
    border: 1px solid var(--amber);
    border-radius: 8px;
    width: 360px;
    padding: 0;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.6);
    animation: slideUp 0.2s ease;
}

.holding-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px 10px;
    border-bottom: 1px solid var(--border);
}

.holding-header-title {
    font-size: 11px;
    font-weight: 700;
    color: var(--amber);
    letter-spacing: 1px;
    font-family: 'JetBrains Mono', monospace;
}

.holding-close-btn {
    background: none;
    border: none;
    color: var(--text-muted);
    font-size: 18px;
    cursor: pointer;
    padding: 0 2px;
    line-height: 1;
}

.holding-close-btn:hover {
    color: var(--text-primary);
}

.holding-form {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.holding-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.holding-field label {
    font-size: 10px;
    color: var(--text-secondary);
    font-family: 'JetBrains Mono', monospace;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

.holding-field input {
    background: var(--bg-tertiary);
    border: 1px solid var(--border);
    color: var(--text-primary);
    padding: 8px 10px;
    border-radius: 4px;
    font-size: 13px;
    font-family: 'JetBrains Mono', monospace;
    width: 100%;
    box-sizing: border-box;
    outline: none;
    transition: border-color 0.15s;
}

.holding-field input:focus {
    border-color: var(--amber);
}

.holding-field input::placeholder {
    color: var(--text-muted);
    font-size: 11px;
}

.holding-price-preview {
    background: rgba(246, 190, 0, 0.06);
    border: 1px solid rgba(246, 190, 0, 0.2);
    border-radius: 4px;
    padding: 8px 10px;
    font-size: 11px;
    color: var(--text-secondary);
    font-family: 'JetBrains Mono', monospace;
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 34px;
}

.holding-price-live {
    color: var(--long-color);
    font-weight: 700;
}

.holding-actions {
    display: flex;
    gap: 8px;
    padding: 0 16px 16px;
}

.holding-submit-btn {
    flex: 1;
    background: var(--amber);
    color: #000;
    border: none;
    border-radius: 4px;
    padding: 10px;
    font-size: 12px;
    font-weight: 700;
    font-family: 'JetBrains Mono', monospace;
    cursor: pointer;
    letter-spacing: 0.5px;
    transition: opacity 0.15s;
}

.holding-submit-btn:hover {
    opacity: 0.85;
}

.holding-submit-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.holding-cancel-btn {
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text-secondary);
    border-radius: 4px;
    padding: 10px 14px;
    font-size: 12px;
    font-family: 'JetBrains Mono', monospace;
    cursor: pointer;
}

.holding-cancel-btn:hover {
    border-color: var(--text-primary);
    color: var(--text-primary);
}

/* ── Portfolio table delete button ── */
.holding-del-btn {
    background: none;
    border: 1px solid transparent;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 13px;
    border-radius: 3px;
    padding: 2px 6px;
    transition: all 0.15s;
}

.holding-del-btn:hover {
    color: var(--short-color);
    border-color: var(--short-color);
    background: rgba(255, 61, 87, 0.08);
}

/* ── Live price badge ── */
.live-price-dot {
    display: inline-block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--long-color);
    margin-right: 4px;
    animation: blink-dot 1.5s infinite;
    vertical-align: middle;
}

@keyframes blink-dot {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.2;
    }
}

/* ── Empty portfolio state ── */
.portfolio-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    color: var(--text-muted);
    gap: 12px;
}

.portfolio-empty-icon {
    font-size: 40px;
    opacity: 0.4;
}

.portfolio-empty-title {
    font-size: 13px;
    font-family: 'JetBrains Mono', monospace;
    color: var(--text-secondary);
}

.portfolio-empty-sub {
    font-size: 11px;
}

/* ─── NEWS: Source badges & category labels ─────────────────────────────────── */
.bb-news-source-badge {
    display: inline-block;
    font-size: 9.5px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 3px;
    letter-spacing: 0.02em;
    white-space: nowrap;
    max-width: 110px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.news-cat-badge {
    display: inline-block;
    font-size: 9px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 3px;
    letter-spacing: 0.02em;
}

.news-cat-badge.crypto {
    background: rgba(247, 147, 26, 0.15);
    color: #F7931A;
    border: 1px solid rgba(247, 147, 26, 0.3);
}

.news-cat-badge.finance {
    background: rgba(59, 130, 246, 0.15);
    color: #60A5FA;
    border: 1px solid rgba(59, 130, 246, 0.3);
}

.news-cat-badge.global {
    background: rgba(16, 185, 129, 0.15);
    color: #34D399;
    border: 1px solid rgba(16, 185, 129, 0.3);
}

/* External link button */
.news-link-btn {
    display: inline-block;
    font-size: 9.5px;
    font-family: 'JetBrains Mono', monospace;
    color: var(--amber);
    border: 1px solid var(--amber);
    border-radius: 3px;
    padding: 1px 7px;
    text-decoration: none;
    transition: background 0.15s;
}

.news-link-btn:hover {
    background: rgba(255, 170, 0, 0.12);
}
/* ── Dashboard Pagination ──────────────────────────────────────────────────── */
.dash-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 9px 12px 8px;
    border-top: 1px solid var(--border-color);
    background: var(--bg-card);
}

.dash-page-btn {
    background: var(--bg-secondary);
    border: 1px solid var(--border-panel);
    color: var(--text-secondary);
    padding: 4px 16px;
    border-radius: 3px;
    cursor: pointer;
    font-size: 10px;
    font-family: 'JetBrains Mono', monospace;
    letter-spacing: 0.06em;
    font-weight: 600;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    white-space: nowrap;
}

.dash-page-btn:hover:not(:disabled) {
    background: var(--amber);
    border-color: var(--amber);
    color: #000;
}

.dash-page-btn:disabled {
    opacity: 0.28;
    cursor: not-allowed;
}

.dash-page-info {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    color: var(--text-secondary);
    min-width: 120px;
    text-align: center;
    letter-spacing: 0.03em;
}

.dash-page-info strong {
    color: var(--amber);
    font-weight: 700;
}

/* ═══════════════════════════════════════════════════════════════
   OZCx — NEWS PAGE REDESIGN v2
   ═══════════════════════════════════════════════════════════════ */

.news-card-feed {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px;
}

/* Individual news card */
.nc2 {
    background: var(--bg-panel);
    border: 1px solid var(--border-panel);
    border-radius: 8px;
    padding: 14px 16px;
    cursor: pointer;
    transition: transform 0.15s, box-shadow 0.15s, border-color 0.15s;
    border-left: 3px solid transparent;
    position: relative;
    overflow: hidden;
}
.nc2:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 20px rgba(0,0,0,0.3);
    border-color: rgba(108,99,255,0.4);
}
.nc2.bullish  { border-left-color: var(--long-color); }
.nc2.bearish  { border-left-color: var(--short-color); }
.nc2.neutral  { border-left-color: var(--wait-color); }

/* Top row: source + time + sentiment */
.nc2-top {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}
.nc2-source {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9.5px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
    letter-spacing: 0.04em;
    white-space: nowrap;
    text-transform: uppercase;
}
.nc2-time {
    font-size: 10px;
    color: var(--text-muted);
    font-family: 'JetBrains Mono', monospace;
}
.nc2-sentiment {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 9.5px;
    font-weight: 700;
    font-family: 'JetBrains Mono', monospace;
    margin-left: auto;
    padding: 2px 7px;
    border-radius: 4px;
}
.nc2-sentiment.bullish { background: rgba(0,217,126,0.12); color: var(--long-color); border: 1px solid rgba(0,217,126,0.25); }
.nc2-sentiment.bearish { background: rgba(239,68,68,0.12);  color: var(--short-color); border: 1px solid rgba(239,68,68,0.25); }
.nc2-sentiment.neutral { background: rgba(245,158,11,0.12); color: var(--wait-color); border: 1px solid rgba(245,158,11,0.25); }

/* Sentiment animated dot */
.nc2-dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
    animation: nc2-pulse 1.8s ease-in-out infinite;
}
.nc2-sentiment.bullish .nc2-dot { background: var(--long-color); }
.nc2-sentiment.bearish .nc2-dot { background: var(--short-color); }
.nc2-sentiment.neutral  .nc2-dot { background: var(--wait-color); animation: none; }

@keyframes nc2-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(0.7); }
}

/* Title */
.nc2-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.45;
    margin-bottom: 6px;
    letter-spacing: 0.01em;
}

/* Summary */
.nc2-summary {
    font-size: 11.5px;
    color: var(--text-secondary);
    line-height: 1.55;
    margin-bottom: 10px;
}

/* Footer: tags + link */
.nc2-footer {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--border-panel);
}
.nc2-tag {
    font-size: 9px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 3px;
    background: rgba(108,99,255,0.12);
    color: var(--accent);
    border: 1px solid rgba(108,99,255,0.2);
    letter-spacing: 0.04em;
}
.nc2-link {
    font-size: 10px;
    font-family: 'JetBrains Mono', monospace;
    color: var(--amber);
    text-decoration: none;
    margin-left: auto;
    border: 1px solid rgba(255,170,0,0.3);
    padding: 2px 8px;
    border-radius: 3px;
    transition: background 0.15s;
}
.nc2-link:hover { background: rgba(255,170,0,0.1); }
.nc2-score {
    font-size: 9.5px;
    font-family: 'JetBrains Mono', monospace;
    color: var(--text-muted);
}

/* News page layout — 2 column on wide screens */
@media (min-width: 1200px) {
    .news-card-feed {
        display: grid;
        grid-template-columns: 1fr 1fr;
        align-items: start;
    }
}

/* Empty / loading state for news */
.news-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    gap: 10px;
    text-align: center;
}
.news-empty-state .ne-icon {
    font-size: 32px;
    margin-bottom: 4px;
    opacity: 0.6;
}
.news-empty-state .ne-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-secondary);
    font-family: 'JetBrains Mono', monospace;
}
.news-empty-state .ne-sub {
    font-size: 11px;
    color: var(--text-muted);
    max-width: 280px;
    line-height: 1.5;
}

/* ══════════════════════════════════════════════════════════════
   ASSET CHART OVERLAY — TradingView full-screen chart modal
══════════════════════════════════════════════════════════════ */
#assetChartOverlay {
  display: none;
  position: fixed; inset: 0; z-index: 8000;
  align-items: center; justify-content: center;
}
#assetChartOverlay.acd-open { display: flex; }

.acd-backdrop {
  position: absolute; inset: 0;
  background: rgba(2,4,7,0.88);
  backdrop-filter: blur(4px);
}

.acd-box {
  position: relative; z-index: 1;
  width: 96vw; height: 94vh; max-width: 1600px;
  background: #060d18;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  display: flex; flex-direction: column;
  overflow: hidden;
  box-shadow: 0 0 80px rgba(0,0,0,0.8), 0 0 2px rgba(255,255,255,0.05);
}

/* Header */
.acd-header {
  display: flex; align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  height: 52px; flex-shrink: 0;
  background: #080f1e;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  gap: 12px;
}
.acd-hinfo {
  display: flex; align-items: center; gap: 12px; flex: 1;
  overflow: hidden;
}
.acd-hright {
  display: flex; align-items: center; gap: 10px; flex-shrink: 0;
}
.acd-tv-badge {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px; letter-spacing: 1px;
  color: #1e3a5a; background: #0a1828;
  padding: 3px 8px; border-radius: 3px;
  border: 1px solid #1e3a5a;
}
.acd-close {
  width: 30px; height: 30px; border-radius: 50%;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  color: var(--text-muted); cursor: pointer;
  font-size: 14px; display: flex; align-items: center; justify-content: center;
  transition: all 0.15s;
}
.acd-close:hover { background: rgba(239,68,68,0.15); border-color: #ef4444; color: #ef4444; }

/* TradingView chart iframe container */
.acd-chart {
  flex: 1; min-height: 0;
  border-bottom: 1px solid rgba(255,255,255,0.07);
}
.acd-chart iframe {
  width: 100%; height: 100%; border: none; display: block;
}

/* Analysis body */
.acd-body {
  height: 220px; flex-shrink: 0;
  overflow-x: auto; overflow-y: auto;
  display: flex; gap: 0;
  scrollbar-width: thin;
  scrollbar-color: #1a2535 transparent;
}

.acd-panel {
  flex-shrink: 0; padding: 14px 18px;
  border-right: 1px solid rgba(255,255,255,0.06);
  min-width: 180px;
}
.acd-panel:last-child { border-right: none; flex: 1; }

.acd-panel-title {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px; font-weight: 700; letter-spacing: 1.5px;
  color: var(--text-muted); text-transform: uppercase;
  margin-bottom: 10px;
}

/* Signal direction block */
.acd-direction {
  font-family: 'JetBrains Mono', monospace;
  font-size: 26px; font-weight: 900;
  letter-spacing: 1px; line-height: 1;
  margin-bottom: 4px;
}
.acd-conf-bar-wrap {
  height: 4px; background: rgba(255,255,255,0.07);
  border-radius: 2px; margin: 6px 0;
  width: 120px;
}
.acd-conf-bar { height: 100%; border-radius: 2px; transition: width 0.5s; }

/* Stats grid */
.acd-stats-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 8px 16px;
}
.acd-stat { display: flex; flex-direction: column; gap: 1px; }
.acd-stat-label {
  font-size: 9px; font-weight: 600; letter-spacing: 0.8px;
  color: var(--text-muted); font-family: 'JetBrains Mono', monospace;
}
.acd-stat-val {
  font-size: 12px; font-weight: 700; color: var(--text-primary);
  font-family: 'JetBrains Mono', monospace;
}

/* News list inside detail */
.acd-news-list {
  display: flex; flex-direction: column; gap: 8px;
}
.acd-news-item {
  padding: 8px 10px;
  background: rgba(255,255,255,0.03);
  border-left: 2px solid;
  border-radius: 0 4px 4px 0;
  cursor: pointer; text-decoration: none;
}
.acd-news-item:hover { background: rgba(255,255,255,0.06); }
.acd-news-title {
  font-size: 11px; font-weight: 600; color: var(--text-primary);
  line-height: 1.4; margin-bottom: 2px;
}
.acd-news-meta { font-size: 9px; color: var(--text-muted); font-family: 'JetBrains Mono', monospace; }

/* Disclaimer */
.acd-disclaimer {
  font-size: 9px; color: var(--text-muted);
  line-height: 1.5; padding: 0;
  border-top: 1px solid rgba(255,255,255,0.05);
  margin-top: 10px; padding-top: 8px;
}

/* Header asset info elements */
.acd-logo { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }
.acd-sym  { font-family: 'JetBrains Mono', monospace; font-size: 16px; font-weight: 800; color: var(--text-primary); }
.acd-pair { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--text-muted); }
.acd-price { font-family: 'JetBrains Mono', monospace; font-size: 20px; font-weight: 800; }
.acd-chg  { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 700; }

/* ─── SIDEBAR DIVIDER ─── */
.sidebar-divider {
  width: 32px; height: 1px;
  background: var(--border-panel);
  margin: 6px auto;
  opacity: 0.5;
}

/* ─── NEWS PAGE ─── */
.news-page-wrap { padding: 12px; }
.news-page-topbar {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 0 12px; flex-wrap: wrap;
}
.news-page-tabs, .news-page-filters {
  display: flex; gap: 4px; flex-wrap: wrap;
}
.news-cat-btn, .news-sent-btn {
  background: none; border: 1px solid var(--border-panel);
  color: var(--text-muted); cursor: pointer;
  padding: 4px 10px; font-size: 10.5px; font-weight: 700;
  border-radius: 3px; transition: var(--transition);
  font-family: 'JetBrains Mono', monospace; letter-spacing: 0.5px;
}
.news-cat-btn:hover, .news-sent-btn:hover { color: var(--text-primary); border-color: var(--accent); }
.news-cat-btn.active, .news-sent-btn.active {
  background: var(--accent); border-color: var(--accent); color: #fff;
}
.news-sent-btn.bullish.active { background: var(--long-color); border-color: var(--long-color); }
.news-sent-btn.bearish.active { background: var(--short-color); border-color: var(--short-color); }
.news-live-badge {
  margin-left: auto; display: flex; align-items: center; gap: 5px;
  font-size: 10px; color: var(--long-color);
  font-family: 'JetBrains Mono', monospace; font-weight: 700;
}
.news-page-body {
  display: grid; grid-template-columns: 1fr 280px; gap: 12px;
}
@media (max-width: 1100px) { .news-page-body { grid-template-columns: 1fr; } }

/* Featured Article */
.news-featured {
  background: var(--bg-card); border: 1px solid var(--border-panel);
  border-top: 3px solid var(--amber); border-radius: var(--radius-sm);
  padding: 16px; cursor: pointer; transition: var(--transition);
  margin-bottom: 12px;
}
.news-featured:hover { background: var(--bg-row-hover); border-color: var(--accent); }
.news-featured-source-badge {
  display: inline-block; font-size: 9px; font-weight: 800;
  letter-spacing: 1px; padding: 2px 8px; border-radius: 2px;
  background: var(--amber); color: #000; margin-bottom: 10px;
}
.news-featured-title {
  font-size: 15px; font-weight: 700; color: var(--text-primary);
  line-height: 1.4; margin-bottom: 8px;
}
.news-featured-summary {
  font-size: 12px; color: var(--text-secondary); line-height: 1.6;
  margin-bottom: 10px; display: -webkit-box;
  -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.news-featured-meta { display: flex; align-items: center; gap: 8px; }
.news-sent-chip {
  font-size: 9px; font-weight: 800; letter-spacing: 1px;
  padding: 2px 7px; border-radius: 2px;
}
.news-sent-chip.bullish { background: var(--long-bg); color: var(--long-color); }
.news-sent-chip.bearish { background: var(--short-bg); color: var(--short-color); }
.news-sent-chip.neutral  { background: var(--wait-bg); color: var(--wait-color); }
.news-meta-time, .news-meta-src {
  font-size: 10px; color: var(--text-muted);
  font-family: 'JetBrains Mono', monospace;
}

/* Article Grid */
.news-article-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
}
@media (max-width: 1400px) { .news-article-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) { .news-article-grid { grid-template-columns: 1fr; } }

.news-article-card {
  background: var(--bg-card); border: 1px solid var(--border-panel);
  border-radius: var(--radius-sm); padding: 10px 12px;
  cursor: pointer; transition: var(--transition);
}
.news-article-card:hover { background: var(--bg-row-hover); border-color: var(--accent); transform: translateY(-1px); }
.news-card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.news-source-tag {
  font-size: 9px; font-weight: 700; color: var(--accent);
  letter-spacing: 0.5px; text-transform: uppercase;
}
.news-sent-dot {
  width: 6px; height: 6px; border-radius: 50%;
}
.news-sent-dot.bullish { background: var(--long-color); }
.news-sent-dot.bearish { background: var(--short-color); }
.news-sent-dot.neutral  { background: var(--wait-color); }
.news-card-title {
  font-size: 11.5px; font-weight: 600; color: var(--text-primary);
  line-height: 1.4; margin-bottom: 6px;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.news-card-meta {
  display: flex; align-items: center; gap: 8px;
  font-family: 'JetBrains Mono', monospace;
}

/* News Sidebar */
.news-sentiment-panel, .news-trending-panel { }
.news-sent-bar-row {
  display: flex; align-items: center; gap: 8px; margin-bottom: 8px;
}
.news-sent-label {
  font-size: 9px; font-weight: 800; letter-spacing: 1px;
  width: 52px; flex-shrink: 0;
}
.news-sent-label.bullish { color: var(--long-color); }
.news-sent-label.bearish { color: var(--short-color); }
.news-sent-label.neutral  { color: var(--wait-color); }
.news-sent-bar-wrap {
  flex: 1; height: 6px; background: var(--bg-secondary);
  border-radius: 3px; overflow: hidden;
}
.news-sent-bar-fill { height: 100%; border-radius: 3px; transition: width 0.5s ease; }
.news-sent-bar-fill.bullish { background: var(--long-color); }
.news-sent-bar-fill.bearish { background: var(--short-color); }
.news-sent-bar-fill.neutral  { background: var(--wait-color); }
.news-sent-pct {
  font-size: 10px; font-weight: 700; color: var(--text-primary);
  font-family: 'JetBrains Mono', monospace; width: 30px; text-align: right;
}

/* ─── WHALE / CALENDAR / ON-CHAIN PAGES ─── */
.whale-page-wrap { padding: 12px; }


/* ═══════════════════════════════════════════════════════════
   MOBILE REDESIGN — bottom tab bar + drawer + responsive
   ═══════════════════════════════════════════════════════════ */

/* ── Mobile-only elements: hidden on desktop ── */
.mobile-hamburger,
.mobile-drawer,
.mobile-drawer-overlay,
.mobile-bottom-nav { display: none; }

@media (max-width: 768px) {
  /* ── Hide desktop sidebar ── */
  .sidebar { display: none !important; }
  .main-content { margin-left: 0 !important; }

  /* ── Topbar adjustments ── */
  .topbar {
    padding: 0 12px;
    height: 48px;
  }
  .topbar-logo { font-size: 16px; }
  #topbarTitle { display: none; }

  /* ── Hamburger button ── */
  .mobile-hamburger {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: var(--bg-card);
    border: 1px solid var(--border-panel);
    border-radius: var(--radius-sm);
    cursor: pointer;
    color: var(--accent);
    margin-right: 8px;
    order: -1;
    flex-shrink: 0;
  }

  /* ── Drawer overlay ── */
  .mobile-drawer-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.6);
    z-index: 1200;
    backdrop-filter: blur(2px);
  }
  .mobile-drawer-overlay.open { display: block; }

  /* ── Side drawer ── */
  .mobile-drawer {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: -280px;
    width: 270px;
    height: 100dvh;
    background: var(--bg-primary);
    border-right: 1px solid var(--border-panel);
    z-index: 1300;
    transition: left 0.28s cubic-bezier(0.4,0,0.2,1);
    overflow-y: auto;
  }
  .mobile-drawer.open { left: 0; }

  .mobile-drawer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 16px 12px;
    border-bottom: 1px solid var(--border-panel);
  }
  .mobile-drawer-logo {
    font-size: 18px;
    font-weight: 900;
    color: var(--accent);
    font-family: 'JetBrains Mono', monospace;
    letter-spacing: 2px;
  }
  .mobile-drawer-close {
    background: none;
    border: none;
    color: var(--text-muted);
    font-size: 16px;
    cursor: pointer;
    padding: 4px 8px;
  }

  .mobile-drawer-nav { padding: 8px 0; flex: 1; }
  .mobile-drawer-item {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 13px 20px;
    background: none;
    border: none;
    color: var(--text-secondary);
    font-size: 13px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
    transition: var(--transition);
    letter-spacing: 0.3px;
  }
  .mobile-drawer-item:hover,
  .mobile-drawer-item.active {
    background: rgba(255,168,0,0.08);
    color: var(--accent);
  }
  .mobile-drawer-item svg { flex-shrink: 0; }

  /* ── Bottom tab bar ── */
  .mobile-bottom-nav {
    display: flex;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 62px;
    background: var(--bg-primary);
    border-top: 1px solid var(--border-panel);
    z-index: 1100;
    align-items: stretch;
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  .mob-tab {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    background: none;
    border: none;
    color: var(--text-muted);
    font-size: 9px;
    font-weight: 600;
    cursor: pointer;
    transition: color 0.2s;
    padding: 6px 0;
    letter-spacing: 0.3px;
  }
  .mob-tab.active,
  .mob-tab:active { color: var(--accent); }
  .mob-tab svg { transition: transform 0.2s; }
  .mob-tab.active svg { transform: scale(1.1); }

  /* Center AI button raised ── */
  .mob-tab-center { position: relative; margin-top: -16px; }
  .mob-tab-ai-btn {
    width: 48px;
    height: 48px;
    background: var(--accent);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #000;
    box-shadow: 0 4px 16px rgba(255,168,0,0.4);
  }
  .mob-tab-center.active .mob-tab-ai-btn,
  .mob-tab-center:active .mob-tab-ai-btn {
    background: #ffaa00;
    box-shadow: 0 4px 24px rgba(255,168,0,0.6);
  }

  /* ── Page content bottom padding (for bottom bar) ── */
  .page-content { padding-bottom: 80px !important; }
  .page { padding-bottom: 0; }

  /* ── Dashboard layout ── */
  .dashboard-grid { grid-template-columns: 1fr !important; }
  .bottom-grid { grid-template-columns: 1fr !important; }
  .chart-canvas-wrapper { height: 300px !important; }

  /* ── Panels ── */
  .bb-panel { margin-bottom: 8px; }
  .ops-row { grid-template-columns: 1fr !important; }
  .ops-footer { flex-direction: column; align-items: stretch; }
  .ops-meta { white-space: normal; }
  .ops-refresh-btn { width: 100%; }

  /* ── News layout ── */
  .news-article-grid { grid-template-columns: 1fr !important; }
  .news-page-body { grid-template-columns: 1fr !important; }

  /* ── Signal table scroll ── */
  .signal-table-wrap { overflow-x: auto; }

  /* ── Settings grid single column ── */
  .bb-settings-grid { grid-template-columns: 1fr !important; }
  .bb-settings-sidebar { display: flex; flex-direction: row; flex-wrap: wrap; gap: 4px; }
  .settings-tab-btn { padding: 6px 10px; font-size: 9px; }

  /* ── AI layout ── */
  .bb-ai-layout { grid-template-columns: 1fr !important; }

  /* ── Portfolio layout ── */
  .bb-portfolio-layout { grid-template-columns: 1fr !important; }

  /* ── Explore layout ── */
  .bb-explore-grid { grid-template-columns: 1fr !important; }

  /* ── Detail modal full-screen ── */
  .modal-overlay { padding: 0; }
  .bb-modal { width: 100%; height: 100%; max-width: 100%; border-radius: 0; }
  .bb-detail-layout { grid-template-columns: 1fr !important; }
  .bb-detail-right { display: none; }

  /* ── Topbar: hide less critical elements ── */
  .market-status-badges { display: none; }
  .bb-clock { display: none; }
  .topbar-actions .live-indicator { display: none; }
}

/* Mobile nav active state sync */
@media (max-width: 768px) {
  .mob-tab[data-page] { transition: color 0.2s, background 0.15s; }
}

/* ─────────────────────────────────────────────────────────────────────────────
   PRICING PAGE
   ───────────────────────────────────────────────────────────────────────────── */
.pricing-wrapper {
  max-width: 1100px;
  margin: 0 auto;
  padding: 32px 20px 60px;
}

.pricing-hero {
  text-align: center;
  margin-bottom: 40px;
}
.pricing-title {
  font-size: 26px;
  font-weight: 900;
  color: var(--text-primary);
  margin: 0 0 8px;
  letter-spacing: -0.5px;
}
.pricing-sub {
  font-size: 13px;
  color: var(--text-muted);
  margin: 0 0 20px;
}
.pricing-toggle-row {
  display: inline-flex;
  gap: 4px;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 3px;
}
.pricing-currency-btn {
  font-size: 11px;
  font-weight: 700;
  padding: 5px 14px;
  border-radius: 6px;
  cursor: pointer;
  color: var(--text-muted);
  transition: background 0.15s, color 0.15s;
  letter-spacing: 0.5px;
}
.pricing-currency-btn.active {
  background: var(--accent);
  color: #000;
}

/* Cards grid */
.pricing-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
  margin-bottom: 48px;
}

.pricing-card {
  position: relative;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 28px 24px 24px;
  display: flex;
  flex-direction: column;
  gap: 0;
  transition: border-color 0.2s, transform 0.15s;
}
.pricing-card:hover { transform: translateY(-2px); border-color: rgba(255,255,255,0.12); }

.pricing-card--highlight {
  border-color: #00d97e;
  box-shadow: 0 0 0 1px rgba(0,217,126,0.15), 0 8px 32px rgba(0,217,126,0.08);
}
.pricing-card--pro {
  border-color: #f7931a;
  box-shadow: 0 0 0 1px rgba(247,147,26,0.15), 0 8px 32px rgba(247,147,26,0.08);
}
.pricing-card--active { border-color: var(--accent); }

.pricing-badge {
  position: absolute;
  top: -11px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 10px;
  font-weight: 800;
  padding: 3px 12px;
  border-radius: 20px;
  white-space: nowrap;
  letter-spacing: 0.8px;
}
.pricing-card--highlight .pricing-badge { background: #00d97e; color: #000; }
.pricing-card--pro      .pricing-badge { background: #f7931a; color: #000; }

.pricing-plan-name {
  font-size: 14px;
  font-weight: 800;
  color: var(--text-primary);
  text-transform: uppercase;
  letter-spacing: 0.8px;
  margin-bottom: 12px;
}

.pricing-price {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 20px;
}
.pricing-amt {
  font-size: 32px;
  font-weight: 900;
  color: var(--text-primary);
  font-family: 'JetBrains Mono', monospace;
  line-height: 1;
}
.pricing-period {
  font-size: 11px;
  color: var(--text-muted);
  font-weight: 500;
}

.pricing-features {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  display: flex;
  flex-direction: column;
  gap: 9px;
  flex: 1;
}
.pricing-features li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--text-primary);
  line-height: 1.4;
}
.pricing-features li.pricing-feat--off { color: var(--text-muted); }
.pricing-feat-icon {
  font-size: 11px;
  font-weight: 700;
  width: 16px;
  text-align: center;
  flex-shrink: 0;
}
.pricing-features li:not(.pricing-feat--off) .pricing-feat-icon { color: #00d97e; }
.pricing-features li.pricing-feat--off    .pricing-feat-icon { color: var(--text-muted); }

.pricing-cta-btn {
  width: 100%;
  padding: 11px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.5px;
  cursor: pointer;
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.04);
  color: var(--text-primary);
  transition: background 0.15s, transform 0.1s;
  text-transform: uppercase;
}
.pricing-cta-btn:not(:disabled):hover { background: rgba(255,255,255,0.08); transform: translateY(-1px); }
.pricing-cta-btn:disabled { cursor: not-allowed; opacity: 0.5; }

.pricing-cta-btn--std {
  background: rgba(0,217,126,0.12);
  border-color: #00d97e;
  color: #00d97e;
}
.pricing-cta-btn--std:not(:disabled):hover { background: rgba(0,217,126,0.22); }

.pricing-cta-btn--pro {
  background: rgba(247,147,26,0.12);
  border-color: #f7931a;
  color: #f7931a;
}
.pricing-cta-btn--pro:not(:disabled):hover { background: rgba(247,147,26,0.22); }

/* FAQ */
.pricing-faq {
  margin-bottom: 32px;
}
.pricing-faq h2 {
  font-size: 16px;
  font-weight: 800;
  color: var(--text-primary);
  margin: 0 0 16px;
}
.faq-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}
.faq-item {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px 16px;
}
.faq-q {
  font-size: 12px;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 6px;
}
.faq-a {
  font-size: 11px;
  color: var(--text-muted);
  line-height: 1.6;
}

.pricing-disclaimer {
  text-align: center;
  font-size: 10px;
  color: var(--text-muted);
  line-height: 1.7;
  max-width: 600px;
  margin: 0 auto;
  padding-top: 8px;
  border-top: 1px solid var(--border);
}

@media (max-width: 768px) {
  .pricing-cards { grid-template-columns: 1fr; }
  .pricing-title { font-size: 20px; }
  .pricing-amt   { font-size: 26px; }
  .faq-grid      { grid-template-columns: 1fr; }
  .pricing-wrapper { padding: 20px 16px 40px; }
}

/* ══════════════════════════════════════════════════════════════
   REKLAM SLOTLARI (Google AdSense — Sadece free kullanıcılar)
══════════════════════════════════════════════════════════════ */

.ad-slot {
  background: rgba(15, 20, 35, 0.8);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 8px;
  overflow: hidden;
  text-align: center;
  position: relative;
}

.ad-slot .ad-label {
  position: absolute;
  top: 4px;
  right: 8px;
  font-size: 8px;
  color: var(--text-muted, #4a5568);
  font-family: 'JetBrains Mono', monospace;
  letter-spacing: 0.05em;
  opacity: 0.6;
}

.ad-slot-leaderboard {
  width: 100%;
  min-height: 90px;
  padding: 4px;
  margin: 0 0 12px 0;
}

.ad-slot-infeed {
  width: 100%;
  min-height: 250px;
  padding: 4px;
  margin: 16px 0;
  grid-column: 1 / -1;  /* Haber grid'ini tam genişlikte kapsar */
}

.ad-slot-sidebar {
  width: 100%;
  min-height: 300px;
  padding: 4px;
  margin-top: 8px;
}

/* ══════════════════════════════════════════════════════════════
   KİLİTLİ HABER KARTLARI (Free kullanıcı blur overlay)
══════════════════════════════════════════════════════════════ */

.news-card-locked {
  position: relative;
  cursor: pointer;
  overflow: hidden;
}

.news-card-blur-overlay {
  position: absolute;
  inset: 0;
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  background: rgba(5, 10, 25, 0.65);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  z-index: 2;
  transition: background 0.2s;
}

.news-card-locked:hover .news-card-blur-overlay {
  background: rgba(5, 10, 25, 0.5);
}

/* ══════════════════════════════════════════════════════════════
   FİYAT FLASH ANİMASYONLARI (Binance tarzı fiyat güncellemesi)
══════════════════════════════════════════════════════════════ */

@keyframes flashGreen {
  0%   { background: rgba(0, 217, 126, 0.30); color: #00d97e; }
  100% { background: transparent; }
}
@keyframes flashRed {
  0%   { background: rgba(255, 61, 87, 0.30); color: #ff3d57; }
  100% { background: transparent; }
}

.flash-green {
  animation: flashGreen 0.6s ease-out forwards;
  border-radius: 3px;
}
.flash-red {
  animation: flashRed 0.6s ease-out forwards;
  border-radius: 3px;
}

/* ══════════════════════════════════════════════════════════════
   SKELETON LOADING KARTLARI
══════════════════════════════════════════════════════════════ */

@keyframes shimmer {
  0%   { background-position: -400px 0; }
  100% { background-position: 400px 0; }
}

.skeleton {
  background: linear-gradient(90deg,
    rgba(255,255,255,0.04) 25%,
    rgba(255,255,255,0.09) 50%,
    rgba(255,255,255,0.04) 75%);
  background-size: 800px 100%;
  animation: shimmer 1.4s infinite;
  border-radius: 4px;
}

.skeleton-card {
  background: rgba(15, 20, 35, 0.8);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 8px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.skeleton-line   { height: 12px; }
.skeleton-line-sm { height: 10px; width: 60%; }
.skeleton-line-lg { height: 16px; width: 80%; }
.skeleton-circle { width: 32px; height: 32px; border-radius: 50%; }
.skeleton-rect   { height: 80px; }

/* ══════════════════════════════════════════════════════════════
   HEATMAP MİNİ WIDGET (Dashboard)
══════════════════════════════════════════════════════════════ */

.heatmap-mini-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 3px;
  padding: 8px 10px;
}

.heatmap-mini-cell {
  border-radius: 5px;
  padding: 6px 4px;
  text-align: center;
  cursor: pointer;
  transition: transform 0.15s, filter 0.15s;
  font-family: 'JetBrains Mono', monospace;
  overflow: hidden;
}
.heatmap-mini-cell:hover {
  transform: scale(1.07);
  filter: brightness(1.2);
  z-index: 1;
}
.heatmap-mini-sym {
  font-size: 9.5px;
  font-weight: 700;
  color: rgba(255,255,255,0.9);
  letter-spacing: 0.02em;
}
.heatmap-mini-pct {
  font-size: 8.5px;
  font-weight: 600;
  margin-top: 2px;
}

/* ══════════════════════════════════════════════════════════════
   KART HOVER GLOW + SMOOTH PAGE GEÇİŞİ
══════════════════════════════════════════════════════════════ */

.bb-panel,
.news-article-card,
.signal-row,
.explore-row {
  transition: box-shadow 0.2s ease, transform 0.15s ease;
}

.bb-panel:hover,
.news-article-card:hover {
  box-shadow: 0 4px 20px rgba(0,217,126,0.08), 0 1px 4px rgba(0,0,0,0.3);
}

/* Sayfa geçiş animasyonu */
@keyframes pageIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

.page.active {
  animation: pageIn 0.22s ease-out both;
}

/* ══════════════════════════════════════════════════════════════
   SAYAÇ ANİMASYONU (market cap, portföy toplam vb.)
══════════════════════════════════════════════════════════════ */

.counter-anim {
  display: inline-block;
  transition: color 0.3s;
}

/* ══════════════════════════════════════════════════════════════
   HABER KARTI GELİŞTİRMELERİ
══════════════════════════════════════════════════════════════ */

/* Kaynak avatar (renkli harf) */
.news-src-avatar {
  width: 22px;
  height: 22px;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-weight: 800;
  font-family: 'JetBrains Mono', monospace;
  flex-shrink: 0;
  text-transform: uppercase;
  letter-spacing: 0;
}

/* Okuma süresi */
.news-read-time {
  font-size: 8.5px;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 2px;
}
.news-read-time::before { content: "◷ "; }

/* Trending badge */
.news-trending-badge {
  background: linear-gradient(135deg, #f59e0b, #ef4444);
  color: #fff;
  font-size: 7.5px;
  font-weight: 800;
  padding: 1px 5px;
  border-radius: 3px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-family: 'JetBrains Mono', monospace;
  flex-shrink: 0;
}

/* Sentiment bar (news card altı) */
.news-card-sent-bar {
  display: flex;
  height: 2px;
  border-radius: 1px;
  overflow: hidden;
  margin-top: 6px;
}
.news-card-sent-bar .bar-bull { background: var(--long-color); }
.news-card-sent-bar .bar-bear { background: var(--short-color); }
.news-card-sent-bar .bar-neut { background: var(--text-muted); }

/* ══════════════════════════════════════════════════════════════
   EXPLORE SCREENER GELİŞTİRMELERİ
══════════════════════════════════════════════════════════════ */

.explore-table-head {
  display: grid;
  grid-template-columns: 2fr 1.2fr 1fr 0.9fr 1fr 1.2fr;
  gap: 0;
  padding: 4px 10px;
  border-bottom: 1px solid var(--border);
  font-size: 9px;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 0.08em;
  font-family: 'JetBrains Mono', monospace;
  text-transform: uppercase;
  user-select: none;
}

.explore-table-head .th-sort {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 3px;
  transition: color 0.15s;
}
.explore-table-head .th-sort:hover { color: var(--text-primary); }
.explore-table-head .th-sort.asc::after  { content: " ▲"; font-size: 7px; }
.explore-table-head .th-sort.desc::after { content: " ▼"; font-size: 7px; }

.explore-row {
  display: grid;
  grid-template-columns: 2fr 1.2fr 1fr 0.9fr 1fr 1.2fr;
  gap: 0;
  padding: 6px 10px;
  border-bottom: 1px solid rgba(255,255,255,0.03);
  cursor: pointer;
  align-items: center;
  transition: background 0.12s;
}
.explore-row:hover { background: rgba(255,255,255,0.04); }

/* Mini sparkline (SVG inline) */
.sparkline-wrap { display: flex; align-items: center; }
.sparkline-wrap svg { display: block; }

/* RSI bölge badge */
.rsi-badge {
  font-size: 8px;
  font-weight: 700;
  padding: 1px 4px;
  border-radius: 2px;
  font-family: 'JetBrains Mono', monospace;
}
.rsi-badge.ob { background: rgba(255,61,87,0.2); color: #ff3d57; }   /* overbought */
.rsi-badge.os { background: rgba(0,217,126,0.2); color: #00d97e; }   /* oversold */
.rsi-badge.md { background: rgba(255,255,255,0.06); color: var(--text-muted); }

/* Filtre barı */
.explore-filter-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-bottom: 1px solid var(--border);
  flex-wrap: wrap;
}
.explore-filter-btn {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 4px;
  color: var(--text-secondary);
  font-size: 9.5px;
  font-weight: 600;
  font-family: 'JetBrains Mono', monospace;
  padding: 3px 8px;
  cursor: pointer;
  transition: all 0.15s;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.explore-filter-btn:hover,
.explore-filter-btn.active {
  background: rgba(0,217,126,0.12);
  border-color: rgba(0,217,126,0.3);
  color: var(--long-color);
}

/* ══════════════════════════════════════════════════════════════
   PORTFÖy DONUT GRAFIK
══════════════════════════════════════════════════════════════ */

.portfolio-donut-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 12px 0;
  gap: 12px;
}

.portfolio-donut-canvas-wrap {
  position: relative;
  width: 140px;
  height: 140px;
}

.portfolio-donut-center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.portfolio-donut-total {
  font-size: 14px;
  font-weight: 700;
  font-family: 'JetBrains Mono', monospace;
  color: var(--text-primary);
}

.portfolio-donut-label {
  font-size: 8px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-top: 2px;
}

.portfolio-legend {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 100%;
  padding: 0 12px;
}

.portfolio-legend-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 10px;
}

.portfolio-legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 2px;
  flex-shrink: 0;
}

.portfolio-legend-sym {
  font-weight: 700;
  font-family: 'JetBrains Mono', monospace;
  color: var(--text-primary);
  flex: 1;
  margin-left: 6px;
}

.portfolio-legend-pct {
  color: var(--text-muted);
  font-size: 9px;
}

/* P&L progress bar */
.pnl-bar-wrap {
  background: rgba(255,255,255,0.05);
  border-radius: 2px;
  height: 3px;
  margin-top: 4px;
  overflow: hidden;
}
.pnl-bar-fill {
  height: 100%;
  border-radius: 2px;
  transition: width 0.6s ease-out;
}
.pnl-bar-fill.pos { background: var(--long-color); }
.pnl-bar-fill.neg { background: var(--short-color); }

/* ══════════════════════════════════════════════════════════════
   AI TERMİNAL TYPEWRITER
══════════════════════════════════════════════════════════════ */

.bb-term-typing::after {
  content: "▋";
  animation: blink-cursor 0.8s step-end infinite;
  color: var(--long-color);
  margin-left: 1px;
}

@keyframes blink-cursor {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0; }
}

.bb-term-thinking {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  color: var(--text-muted);
  font-size: 11px;
}

.bb-think-dots span {
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--long-color);
  opacity: 0.3;
  animation: think-pulse 1.2s ease-in-out infinite;
}
.bb-think-dots span:nth-child(2) { animation-delay: 0.2s; }
.bb-think-dots span:nth-child(3) { animation-delay: 0.4s; }

@keyframes think-pulse {
  0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); }
  40%           { opacity: 1;   transform: scale(1.2); }
}

/* Theme Toggle */
.topbar-btn-theme {
  min-width: 28px;
  padding: 0 7px;
}

.theme-toggle-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.theme-toggle-icon svg {
  display: block;
}

/* TradingView Slide Panel */
.tv-panel-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.42);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  z-index: 999;
}

.tv-panel-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}

.tv-panel {
  position: fixed;
  right: 0;
  top: 0;
  height: 100%;
  width: 480px;
  background: #111;
  transform: translateX(100%);
  transition: transform 0.3s ease;
  z-index: 1000;
  border-left: 1px solid #202028;
  box-shadow: -16px 0 40px rgba(0, 0, 0, 0.4);
  display: flex;
  flex-direction: column;
}

body.light-mode .tv-panel {
  background: #ffffff;
  border-left-color: var(--border-panel);
}

.tv-panel.open {
  transform: translateX(0);
}

.tv-panel__header {
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 14px;
  border-bottom: 1px solid var(--border-panel);
  background: var(--bg-panel-header);
}

.tv-panel__title {
  font-size: 12px;
  font-weight: 700;
  color: var(--text-primary);
  font-family: 'JetBrains Mono', monospace;
  letter-spacing: 0.04em;
}

.tv-panel__close {
  width: 28px;
  height: 28px;
  border: 1px solid var(--border-panel);
  background: transparent;
  color: var(--text-secondary);
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
}

.tv-panel__close:hover {
  color: var(--text-primary);
}

#tvPanelFrame {
  width: 100%;
  height: calc(100% - 48px);
  border: none;
  background: #0a0a0f;
}

body.light-mode #tvPanelFrame {
  background: #ffffff;
}

/* Keyboard Shortcut Modal */
.shortcut-modal {
  max-width: 430px;
}

.shortcut-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.shortcut-table th,
.shortcut-table td {
  padding: 10px;
  border-bottom: 1px solid var(--border-panel);
  text-align: left;
}

.shortcut-table th {
  color: var(--text-secondary);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.06em;
}

.shortcut-table td:first-child {
  width: 84px;
  font-family: 'JetBrains Mono', monospace;
  color: var(--amber);
  font-weight: 700;
}

.shortcut-table tr:last-child td {
  border-bottom: none;
}

@media (max-width: 900px) {
  .tv-panel {
    width: min(100vw, 480px);
  }

  .shortcut-modal {
    max-width: 94vw;
  }
}
