﻿/* ==================================================
   TraderPro — app.css
   Combined from 5 inline <style> blocks in app.html
   ================================================== */

/* ── Input Trade ─────────────────────────────────── */
.inp-col-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
@media (max-width: 768px) {
  .inp-col-grid { grid-template-columns: 1fr; gap: 0; }
}
.inp-sec-hd {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(192,132,252,.6);
  margin-bottom: 12px;
}
.inp-sec-hd span {
  flex: 1;
  height: 1px;
  background: rgba(192,132,252,.12);
}
html[data-theme="light"] .inp-sec-hd { color: rgba(107,33,168,.5); }
html[data-theme="light"] .inp-sec-hd span { background: rgba(153,50,204,.12); }

/* ════════════════════════════════════════════════════
   BLOCK 1 — Main CSS (Variables, Animations, Layout)
   ════════════════════════════════════════════════════ */
    :root {
      --bg: #100e20;
      --bg1: #18143a;
      --glass: rgba(28, 20, 54, 0.62);
      --border: rgba(167, 139, 250, 0.18);
      --border2: rgba(167, 139, 250, 0.30);
      --cyan: #c084fc;
      --blue: #7c3aed;
      --green: #00e5a0;
      --red: #ff3d5a;
      --amber: #f59e0b;
      --violet: #a855f7;
      --t1: #ffffff;
      --t2: rgba(240, 232, 255, 0.96);
      --t3: rgba(220, 205, 255, 0.84);
      --r: 12px;
      --rs: 8px;
      --font: 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
      --font-disp: 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
      --font-mono: 'JetBrains Mono', monospace;
    }

    *,
    *::before,
    *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
      -webkit-tap-highlight-color: transparent;
    }

    html {
      height: 100%;
    }

    body {
      height: 100%;
      background: var(--bg);
      font-family: var(--font);
      color: var(--t1);
      -webkit-font-smoothing: antialiased;
      overflow: hidden;
    }

    .bg-scene {
      position: fixed;
      inset: 0;
      z-index: 0;
      overflow: hidden;
      pointer-events: none;
    }

    .orb {
      position: absolute;
      border-radius: 50%;
      filter: blur(55px);
    }

    .orb-1 {
      width: 700px;
      height: 700px;
      background: radial-gradient(circle, rgba(109, 40, 217, 0.40) 0%, rgba(76, 29, 149, 0.16) 45%, transparent 70%);
      top: -200px;
      left: -180px;
      animation: od1 13s ease-in-out infinite;
    }

    .orb-2 {
      width: 580px;
      height: 580px;
      background: radial-gradient(circle, rgba(192, 132, 252, 0.22) 0%, rgba(139, 92, 246, 0.10) 45%, transparent 70%);
      bottom: -160px;
      right: -140px;
      animation: od2 11s ease-in-out infinite;
    }

    .orb-3 {
      width: 420px;
      height: 420px;
      background: radial-gradient(circle, rgba(124, 58, 237, 0.28) 0%, transparent 65%);
      top: 45%;
      left: 32%;
      animation: od1 16s ease-in-out infinite reverse;
    }

    .orb-4 {
      width: 360px;
      height: 360px;
      background: radial-gradient(circle, rgba(167, 139, 250, 0.18) 0%, transparent 65%);
      top: 15%;
      right: 8%;
      animation: od2 14s ease-in-out infinite;
    }

    .orb-5 {
      width: 280px;
      height: 280px;
      background: radial-gradient(circle, rgba(109, 40, 217, 0.15) 0%, transparent 65%);
      bottom: 25%;
      left: 15%;
      animation: od1 18s ease-in-out infinite;
    }

    @keyframes od1 {

      0%,
      100% {
        transform: translate(0, 0);
      }

      50% {
        transform: translate(28px, -38px);
      }
    }

    @keyframes od2 {

      0%,
      100% {
        transform: translate(0, 0);
      }

      50% {
        transform: translate(-22px, 28px);
      }
    }

    .bg-grid {
      position: fixed;
      inset: 0;
      z-index: 0;
      pointer-events: none;
      background-image: linear-gradient(rgba(139, 92, 246, 0.038) 1px, transparent 1px), linear-gradient(90deg, rgba(139, 92, 246, 0.038) 1px, transparent 1px);
      background-size: 48px 48px;
    }

    #cometCanvas {
      position: fixed;
      inset: 0;
      pointer-events: none;
      z-index: 0;
      width: 100%;
      height: 100%;
    }

    @keyframes spin {
      to {
        transform: rotate(360deg);
      }
    }

    @keyframes fadeUp {
      from {
        opacity: 0;
        transform: translateY(14px);
      }

      to {
        opacity: 1;
        transform: none;
      }
    }

    @keyframes pulse {

      0%,
      100% {
        opacity: 1;
      }

      50% {
        opacity: .3;
      }
    }

    @keyframes scaleIn {
      from {
        opacity: 0;
        transform: scale(.96);
      }

      to {
        opacity: 1;
        transform: none;
      }
    }

    @keyframes lineAnim {

      0%,
      100% {
        opacity: .1;
      }

      50% {
        opacity: .55;
      }
    }

    @keyframes lockPulse {

      0%,
      100% {
        box-shadow: 0 0 0 0 rgba(255, 176, 32, 0);
      }

      50% {
        box-shadow: 0 0 0 6px rgba(255, 176, 32, 0.1);
      }
    }

    @keyframes logoutIconPop {
      0% {
        transform: scale(0.6);
        opacity: 0;
      }

      60% {
        transform: scale(1.15);
      }

      100% {
        transform: scale(1);
        opacity: 1;
      }
    }

    @keyframes logoutPing {
      0% {
        opacity: .6;
        transform: scale(1);
      }

      100% {
        opacity: 0;
        transform: scale(1.18);
      }
    }

    @keyframes slideDown {
      from {
        opacity: 0;
        transform: translateY(-8px);
      }

      to {
        opacity: 1;
        transform: none;
      }
    }

    .spin-ico {
      animation: spin .8s linear infinite;
      display: inline-block;
    }

    body.tab-hidden .orb {
      animation-play-state: paused !important;
    }

    body.tab-hidden .sidebar::after {
      animation-play-state: paused !important;
    }

    #app {
      position: relative;
      z-index: 2;
      display: flex;
      height: var(--real-vh, 100vh);
      width: 100%;
      overflow: hidden;
    }

    /* PLAN GATING */
    .nav-item.locked {
      opacity: 0.45;
      cursor: not-allowed !important;
    }

    .nav-item.locked:hover {
      color: var(--t2) !important;
      background: transparent !important;
      border-color: transparent !important;
    }

    .nav-item.locked .lock-icon {
      display: inline-flex !important;
    }

    .nav-item .lock-icon {
      display: none;
      font-size: 8px;
      color: var(--amber);
      margin-left: auto;
      flex-shrink: 0;
    }

    .page-lock-overlay {
      position: absolute;
      inset: 0;
      z-index: 50;
      background: rgba(4, 8, 20, 0.80);
      backdrop-filter: blur(20px);
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: var(--r);
      animation: fadeUp .3s ease both;
    }

    .page-lock-box {
      text-align: center;
      padding: 32px 28px;
      max-width: 340px;
      background: rgba(10, 20, 44, 0.80);
      border: 1px solid rgba(255, 176, 32, 0.22);
      border-radius: 18px;
      box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
      animation: lockPulse 3s ease infinite;
    }

    .lock-icon-big {
      width: 60px;
      height: 60px;
      border-radius: 16px;
      background: rgba(255, 176, 32, 0.08);
      border: 1px solid rgba(255, 176, 32, 0.25);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 24px;
      margin: 0 auto 16px;
    }

    .lock-title {
      font-family: var(--font-disp);
      font-size: 17px;
      font-weight: 700;
      margin-bottom: 6px;
    }

    .lock-desc {
      font-size: 12px;
      color: var(--t2);
      line-height: 1.7;
      margin-bottom: 6px;
    }

    .lock-plan-required {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 4px 12px;
      border-radius: 20px;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: .08em;
      text-transform: uppercase;
      margin-bottom: 20px;
    }

    .lock-plan-required.req-pro {
      background: rgba(192, 132, 252, 0.08);
      border: 1px solid rgba(192, 132, 252, 0.22);
      color: var(--cyan);
    }

    .lock-plan-required.req-elite {
      background: rgba(255, 176, 32, 0.08);
      border: 1px solid rgba(255, 176, 32, 0.22);
      color: var(--amber);
    }

    .lock-upgrade-btn {
      width: 100%;
      height: 42px;
      background: linear-gradient(135deg, rgba(109, 40, 217, 0.85), rgba(167, 139, 250, 0.75));
      border: 1px solid rgba(192, 132, 252, 0.22);
      border-radius: var(--rs);
      color: #fff;
      font-family: var(--font);
      font-size: 12px;
      font-weight: 700;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      transition: all .18s;
    }

    .lock-upgrade-btn.amber {
      background: linear-gradient(135deg, rgba(180, 80, 0, 0.85), rgba(255, 176, 32, 0.75));
      border-color: rgba(255, 176, 32, 0.25);
    }

    .nav-plan-badge {
      font-size: 6px;
      font-weight: 800;
      letter-spacing: .1em;
      text-transform: uppercase;
      padding: 2px 5px;
      border-radius: 3px;
      margin-left: 6px;
      flex-shrink: 0;
    }

    .nav-plan-badge.pro {
      background: rgba(192, 132, 252, 0.1);
      border: 1px solid rgba(192, 132, 252, 0.18);
      color: var(--cyan);
    }

    .nav-plan-badge.elite {
      background: rgba(255, 176, 32, 0.1);
      border: 1px solid rgba(255, 176, 32, 0.18);
      color: var(--amber);
    }

    .section-lock {
      position: relative;
      border-radius: var(--r);
      overflow: hidden;
    }

    .section-lock-overlay {
      position: absolute;
      inset: 0;
      z-index: 10;
      background: rgba(4, 8, 20, 0.78);
      backdrop-filter: blur(12px);
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: var(--r);
    }

    .section-lock-box {
      text-align: center;
      padding: 20px 24px;
      background: rgba(10, 20, 44, 0.80);
      border: 1px solid rgba(255, 176, 32, 0.18);
      border-radius: 14px;
    }

    .section-lock-box .s-lock-icon {
      font-size: 18px;
      margin-bottom: 8px;
    }

    .section-lock-box .s-lock-title {
      font-size: 12px;
      font-weight: 700;
      color: var(--t1);
      margin-bottom: 4px;
    }

    .section-lock-box .s-lock-desc {
      font-size: 10px;
      color: var(--t3);
      margin-bottom: 12px;
    }

    .section-lock-box .s-lock-btn {
      height: 30px;
      padding: 0 14px;
      border-radius: 6px;
      font-size: 10px;
      font-weight: 700;
      cursor: pointer;
      border: 1px solid rgba(192, 132, 252, 0.22);
      background: rgba(124, 58, 237, 0.1);
      color: var(--cyan);
      font-family: var(--font);
      display: inline-flex;
      align-items: center;
      gap: 5px;
      transition: all .15s;
    }

    /* SIDEBAR */
    .sidebar {
      width: 220px;
      flex-shrink: 0;
      background: rgba(20, 14, 40, 0.90);
      backdrop-filter: blur(52px) saturate(2.0);
      -webkit-backdrop-filter: blur(52px) saturate(2.0);
      border-right: 1px solid rgba(167, 139, 250, 0.15);
      display: flex;
      flex-direction: column;
      padding: 16px 8px;
      gap: 1px;
      position: relative;
      overflow: hidden;
      transition: width .2s cubic-bezier(.4, 0, .2, 1);
      box-shadow: 4px 0 60px rgba(0, 0, 0, .4);
    }

    .sidebar::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(192, 132, 252, 0.4), transparent);
    }

    .sidebar::after {
      content: '';
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      width: 1px;
      background: linear-gradient(180deg, transparent 0%, rgba(167, 139, 250, .55) 40%, rgba(109, 40, 217, .28) 70%, transparent 100%);
      animation: lineAnim 5s ease-in-out infinite;
    }

    .sidebar.collapsed {
      width: 52px;
    }

    .sb-logo {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 4px 8px;
      margin-bottom: 18px;
    }

    .sb-brand {
      display: flex;
      align-items: center;
      gap: 9px;
      overflow: hidden;
      white-space: nowrap;
      transition: opacity .2s ease, width .2s ease;
    }

    .sb-icon {
      width: 30px;
      height: 30px;
      flex-shrink: 0;
      background: linear-gradient(135deg, var(--blue), var(--cyan));
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--font-disp);
      font-size: 11px;
      font-weight: 800;
      color: #fff;
      box-shadow: 0 0 20px rgba(147, 114, 240, .45);
    }

    .sb-name {
      font-family: var(--font-disp);
      font-size: 12px;
      font-weight: 800;
      letter-spacing: -.03em;
      transition: opacity .2s;
    }

    .sb-name em {
      font-style: normal;
      background: linear-gradient(90deg, var(--cyan), var(--blue));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    .sidebar.collapsed .sb-name {
      opacity: 0;
      pointer-events: none;
    }

    .sb-plan {
      font-size: 7px;
      font-weight: 700;
      letter-spacing: .12em;
      text-transform: uppercase;
      padding: 2px 7px;
      border-radius: 4px;
      margin-top: 2px;
      display: inline-block;
      transition: opacity .2s;
    }

    .sb-plan.basic {
      color: var(--t2);
      background: rgba(255, 255, 255, .07);
      border: 1px solid rgba(255, 255, 255, .10);
    }

    .sb-plan.pro {
      color: var(--cyan);
      background: rgba(192, 132, 252, .09);
      border: 1px solid rgba(192, 132, 252, .20);
    }

    .sb-plan.elite {
      color: var(--amber);
      background: rgba(255, 176, 32, .09);
      border: 1px solid rgba(255, 176, 32, .20);
    }

    .sidebar.collapsed .sb-plan {
      opacity: 0;
    }

    .sb-toggle {
      width: 20px;
      height: 20px;
      border-radius: 4px;
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid rgba(167, 139, 250, 0.18);
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--t3);
      font-size: 8px;
      flex-shrink: 0;
      transition: all .15s;
    }

    .sb-toggle:hover {
      border-color: var(--cyan);
      color: var(--cyan);
    }

    .nav-sec {
      font-size: 7px;
      font-weight: 700;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--t3);
      padding: 10px 10px 3px;
      white-space: nowrap;
      transition: opacity .2s;
    }

    .sidebar.collapsed .nav-sec {
      opacity: 0;
    }

    .nav-item {
      display: flex;
      align-items: center;
      gap: 9px;
      padding: 8px 10px;
      border-radius: var(--rs);
      cursor: pointer;
      font-size: 12px;
      font-weight: 500;
      color: var(--t2);
      transition: all .14s;
      border: 1px solid transparent;
      white-space: nowrap;
    }

    .nav-item:hover {
      color: var(--t1);
      background: rgba(255, 255, 255, .055);
    }

    .nav-item.active {
      color: #fff;
      background: linear-gradient(135deg, rgba(124, 58, 237, .22), rgba(192, 132, 252, .10));
      border-color: rgba(167, 139, 250, .22);
      box-shadow: 0 0 20px rgba(147, 114, 240, .10);
    }

    .nav-item.active-analyst {
      color: #fff;
      background: linear-gradient(135deg, rgba(255, 130, 0, .20), rgba(255, 176, 32, .08));
      border-color: rgba(255, 176, 32, .25);
    }

    .nav-item .ni {
      width: 20px;
      text-align: center;
      font-size: 13px;
      flex-shrink: 0;
    }

    .nav-item .nl {
      transition: opacity .18s;
      overflow: hidden;
    }

    .sidebar.collapsed .nl {
      opacity: 0;
    }

    .nav-badge {
      font-size: 6px;
      font-weight: 800;
      letter-spacing: .1em;
      text-transform: uppercase;
      padding: 2px 5px;
      border-radius: 3px;
      margin-left: 6px;
      flex-shrink: 0;
    }

    .badge-new {
      background: rgba(255, 176, 32, .12);
      border: 1px solid rgba(255, 176, 32, .25);
      color: var(--amber);
    }

    .badge-pro {
      background: rgba(192, 132, 252, .08);
      border: 1px solid rgba(192, 132, 252, .18);
      color: var(--cyan);
    }

    .badge-soon {
      background: rgba(139, 92, 246, .10);
      border: 1px solid rgba(139, 92, 246, .22);
      color: var(--violet);
    }

    .nav-item.coming-soon {
      opacity: 0.45;
      cursor: default !important;
    }

    .nav-item.coming-soon:hover {
      color: var(--t2) !important;
      background: transparent !important;
      border-color: transparent !important;
    }

    .plan-widget {
      margin: 4px 2px 8px;
      padding: 10px 12px;
      background: rgba(0, 80, 200, .07);
      border: 1px solid rgba(147, 114, 240, .12);
      border-radius: var(--rs);
      transition: opacity .2s;
    }

    .sidebar.collapsed .plan-widget {
      opacity: 0;
      pointer-events: none;
    }

    .pw-lbl {
      font-size: 7px;
      font-weight: 700;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--t3);
      margin-bottom: 5px;
    }

    .pw-name {
      font-size: 11px;
      font-weight: 600;
    }

    .pw-exp {
      font-size: 9px;
      color: var(--t3);
    }

    .user-card {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 10px;
      background: rgba(255, 255, 255, .04);
      border: 1px solid rgba(255, 255, 255, .08);
      border-radius: var(--rs);
      cursor: pointer;
      transition: all .2s;
      overflow: hidden;
      flex-shrink: 0;
    }

    .user-card:hover {
      background: rgba(255, 50, 70, .08);
      border-color: rgba(255, 61, 90, .20);
    }

    .ava {
      width: 26px;
      height: 26px;
      border-radius: 50%;
      background: linear-gradient(135deg, var(--blue), var(--cyan));
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 9px;
      font-weight: 800;
      color: #fff;
      flex-shrink: 0;
    }

    .uc-info {
      transition: opacity .2s;
      overflow: hidden;
      white-space: nowrap;
    }

    .sidebar.collapsed .uc-info {
      opacity: 0;
    }

    .uc-name {
      font-size: 11px;
      font-weight: 600;
    }

    .uc-role {
      font-size: 8px;
      color: var(--t3);
      font-weight: 500;
    }

    .sb-spacer {
      flex: 1;
    }

    /* MAIN */
    .dash-main {
      flex: 1;
      overflow-y: auto;
      overflow-x: hidden;
      padding: 20px;
      display: flex;
      flex-direction: column;
      gap: 14px;
    }

    .dash-main::-webkit-scrollbar {
      width: 3px;
    }

    .dash-main::-webkit-scrollbar-thumb {
      background: rgba(147, 114, 240, .18);
      border-radius: 2px;
    }

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

    .topbar-left {
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .page-title {
      font-family: var(--font-disp);
      font-size: 20px;
      font-weight: 700;
      letter-spacing: -.03em;
    }

    .page-sub {
      font-size: 11px;
      color: var(--t3);
      margin-top: 1px;
      font-family: var(--font-mono);
    }

    .topbar-right {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .live-badge {
      display: flex;
      align-items: center;
      gap: 5px;
      padding: 5px 11px;
      background: rgba(0, 229, 160, .05);
      border: 1px solid rgba(0, 229, 160, .14);
      border-radius: 20px;
    }

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

    .live-txt {
      font-size: 8px;
      font-weight: 700;
      letter-spacing: .1em;
      color: var(--green);
    }

    .refresh-btn {
      height: 30px;
      padding: 0 12px;
      background: rgba(192, 132, 252, .07);
      border: 1px solid rgba(192, 132, 252, .16);
      border-radius: 6px;
      color: var(--cyan);
      font-size: 10px;
      font-weight: 600;
      cursor: pointer;
      font-family: var(--font);
      display: flex;
      align-items: center;
      gap: 5px;
      transition: all .15s;
    }

    .refresh-btn:hover {
      background: rgba(192, 132, 252, .13);
    }

    .page-sec {
      display: none;
      flex-direction: column;
      gap: 10px;
      animation: fadeUp .25s ease both;
      position: relative;
    }

    .page-sec.active {
      display: flex;
    }

    .new-tag {
      display: inline-flex;
      align-items: center;
      gap: 3px;
      padding: 2px 7px;
      border-radius: 4px;
      font-size: 7px;
      font-weight: 800;
      letter-spacing: .1em;
      text-transform: uppercase;
      background: rgba(255, 176, 32, .10);
      border: 1px solid rgba(255, 176, 32, .22);
      color: var(--amber);
      margin-left: 6px;
      vertical-align: middle;
    }

    /* STAT CARDS */
    .stat-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
    }

    .stat-card {
      background: rgba(28, 18, 52, 0.78);
      backdrop-filter: blur(36px) saturate(1.8);
      -webkit-backdrop-filter: blur(36px) saturate(1.8);
      border: 1px solid rgba(255, 255, 255, 0.09);
      border-radius: var(--r);
      padding: 14px 16px;
      position: relative;
      overflow: hidden;
      transition: transform .18s, box-shadow .18s;
      box-shadow: 0 4px 24px rgba(0, 0, 0, .22);
    }

    .stat-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .18), transparent);
    }

    .stat-card .sc-bar {
      position: absolute;
      top: 0;
      left: 20%;
      right: 20%;
      height: 2px;
      border-radius: 0 0 3px 3px;
    }

    .stat-card:hover {
      transform: translateY(-2px);
    }

    .stat-card.c {
      --ac: var(--cyan);
    }

    .stat-card.c .sc-bar {
      background: linear-gradient(90deg, transparent, var(--cyan), transparent);
      box-shadow: 0 0 14px var(--cyan);
    }

    .stat-card.g {
      --ac: var(--green);
    }

    .stat-card.g .sc-bar {
      background: linear-gradient(90deg, transparent, var(--green), transparent);
      box-shadow: 0 0 14px var(--green);
    }

    .stat-card.a {
      --ac: var(--amber);
    }

    .stat-card.a .sc-bar {
      background: linear-gradient(90deg, transparent, var(--amber), transparent);
      box-shadow: 0 0 14px var(--amber);
    }

    .stat-card.r {
      --ac: var(--red);
    }

    .stat-card.r .sc-bar {
      background: linear-gradient(90deg, transparent, var(--red), transparent);
      box-shadow: 0 0 14px var(--red);
    }

    .stat-card.v {
      --ac: var(--violet);
    }

    .stat-card.v .sc-bar {
      background: linear-gradient(90deg, transparent, var(--violet), transparent);
      box-shadow: 0 0 14px var(--violet);
    }

    .sc-label {
      font-size: 7px;
      font-weight: 700;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--t3);
      margin-bottom: 6px;
    }

    .sc-val {
      font-family: var(--font-disp);
      font-size: 22px;
      font-weight: 700;
      letter-spacing: -.03em;
      color: var(--ac, var(--t1));
    }

    .sc-hint {
      font-size: 9px;
      color: var(--t3);
      margin-top: 3px;
      font-family: var(--font-mono);
    }

    .sc-spark {
      display: flex;
      align-items: flex-end;
      gap: 2px;
      height: 22px;
      margin-top: 8px;
    }

    .sp-b {
      flex: 1;
      border-radius: 2px 2px 0 0;
      min-height: 3px;
    }

    .stat-card.c .sp-b {
      background: rgba(192, 132, 252, .45);
    }

    .stat-card.c .sp-b:last-child {
      background: var(--cyan);
    }

    .stat-card.g .sp-b {
      background: rgba(0, 229, 160, .45);
    }

    .stat-card.g .sp-b:last-child {
      background: var(--green);
    }

    .stat-card.a .sp-b {
      background: rgba(255, 176, 32, .45);
    }

    .stat-card.a .sp-b:last-child {
      background: var(--amber);
    }

    /* PANEL */
    .panel {
      background: rgba(26, 18, 50, 0.76);
      backdrop-filter: blur(36px) saturate(1.8);
      -webkit-backdrop-filter: blur(36px) saturate(1.8);
      border: 1px solid rgba(255, 255, 255, 0.08);
      border-radius: var(--r);
      padding: 12px;
      position: relative;
      overflow: hidden;
      box-shadow: 0 8px 32px rgba(0, 0, 0, .20);
    }

    .panel::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(167, 139, 250, .28), rgba(255, 255, 255, .12), transparent);
    }

    .panel-hd {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 10px;
    }

    .panel-title {
      font-size: 8px;
      font-weight: 700;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--cyan);
      display: flex;
      align-items: center;
      gap: 7px;
    }

    .panel-title::before {
      content: '';
      width: 2px;
      height: 11px;
      border-radius: 1px;
      background: linear-gradient(180deg, var(--cyan), var(--blue));
      box-shadow: 0 0 8px var(--cyan);
      flex-shrink: 0;
    }

    .g2 {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }

    .g3 {
      display: grid;
      grid-template-columns: 5fr 3fr;
      gap: 10px;
    }

    .flex-col {
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .equity-wrap {
      position: relative;
      height: 200px;
    }

    .eq-badge {
      font-family: var(--font-mono);
      font-size: 9px;
      font-weight: 600;
      padding: 3px 9px;
      border-radius: 5px;
    }

    .eq-badge.pos {
      background: rgba(0, 229, 160, .10);
      border: 1px solid rgba(0, 229, 160, .22);
      color: var(--green);
    }

    .eq-badge.neg {
      background: rgba(255, 61, 90, .10);
      border: 1px solid rgba(255, 61, 90, .22);
      color: var(--red);
    }

    .home-body-grid {
      display: grid;
      grid-template-columns: 3fr 2fr;
      gap: 14px;
    }

    .pair-bar-row {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 5px 0;
      border-bottom: 1px solid rgba(255, 255, 255, .028);
    }

    .pair-bar-row:last-child {
      border-bottom: none;
    }

    .pbr-name {
      font-family: var(--font-mono);
      font-size: 9.5px;
      font-weight: 600;
      color: var(--cyan);
      width: 52px;
      flex-shrink: 0;
    }

    .pbr-track {
      flex: 1;
      height: 5px;
      background: rgba(255, 255, 255, .06);
      border-radius: 3px;
      overflow: hidden;
    }

    .pbr-fill {
      height: 100%;
      border-radius: 3px;
      transition: width .5s cubic-bezier(.22, .68, 0, 1.2);
    }

    .pbr-val {
      font-family: var(--font-mono);
      font-size: 9.5px;
      font-weight: 700;
      min-width: 48px;
      text-align: right;
    }

    /* TABLE */
    .dt {
      width: 100%;
      border-collapse: collapse;
      font-size: 11px;
    }

    .dt th {
      text-align: left;
      color: var(--t3);
      font-weight: 600;
      padding: 0 0 7px;
      border-bottom: 1px solid rgba(255, 255, 255, .05);
      font-size: 7px;
      text-transform: uppercase;
      letter-spacing: .15em;
    }

    .dt td {
      padding: 8px 4px 8px 0;
      border-bottom: 1px solid rgba(255, 255, 255, .03);
      color: var(--t2);
      vertical-align: middle;
    }

    .dt td:first-child {
      color: var(--t1);
      font-weight: 600;
    }

    .dt tr:hover td {
      background: rgba(124, 58, 237, .05);
    }

    .dt tr:last-child td {
      border-bottom: none;
    }

    .pair-tag {
      font-family: var(--font-mono);
      font-size: 10px;
      font-weight: 600;
      padding: 2px 7px;
      border-radius: 4px;
      background: rgba(167, 139, 250, .08);
      border: 1px solid rgba(167, 139, 250, .16);
      color: var(--cyan);
    }

    .chip {
      display: inline-block;
      padding: 2px 7px;
      border-radius: 4px;
      font-size: 7px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .08em;
    }

    .chip.buy {
      background: rgba(192, 132, 252, .10);
      color: var(--cyan);
      border: 1px solid rgba(192, 132, 252, .22);
    }

    .chip.sell {
      background: rgba(255, 61, 90, .10);
      color: var(--red);
      border: 1px solid rgba(255, 61, 90, .22);
    }

    .chip.bull {
      background: rgba(0, 229, 160, .10);
      color: var(--green);
      border: 1px solid rgba(0, 229, 160, .22);
    }

    .chip.bear {
      background: rgba(255, 61, 90, .10);
      color: var(--red);
      border: 1px solid rgba(255, 61, 90, .22);
    }

    .chip.wait {
      background: rgba(255, 176, 32, .10);
      color: var(--amber);
      border: 1px solid rgba(255, 176, 32, .22);
    }

    .chip.smc {
      background: rgba(139, 92, 246, .10);
      color: var(--violet);
      border: 1px solid rgba(139, 92, 246, .22);
    }

    .chip.sr,
    .chip.fibo {
      background: rgba(167, 139, 250, .08);
      color: var(--cyan);
      border: 1px solid rgba(167, 139, 250, .18);
    }

    .chip.g {
      background: rgba(0, 229, 160, .10);
      color: var(--green);
      border: 1px solid rgba(0, 229, 160, .22);
    }

    .chip.r {
      background: rgba(255, 61, 90, .10);
      color: var(--red);
      border: 1px solid rgba(255, 61, 90, .22);
    }

    .chip.a {
      background: rgba(255, 176, 32, .10);
      color: var(--amber);
      border: 1px solid rgba(255, 176, 32, .22);
    }

    .pnl-pos {
      color: var(--green);
      font-weight: 700;
      font-family: var(--font-mono);
      font-size: 11px;
    }

    .pnl-neg {
      color: var(--red);
      font-weight: 700;
      font-family: var(--font-mono);
      font-size: 11px;
    }

    .mini-stats {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 8px;
    }

    .mini-stat {
      background: rgba(255, 255, 255, .038);
      border: 1px solid rgba(255, 255, 255, .07);
      border-radius: var(--rs);
      padding: 10px 12px;
    }

    .ms-lbl {
      font-size: 7px;
      color: var(--t3);
      font-weight: 700;
      letter-spacing: .15em;
      text-transform: uppercase;
      margin-bottom: 5px;
    }

    .ms-val {
      font-family: var(--font-disp);
      font-size: 16px;
      font-weight: 700;
    }

    /* FORM */
    .f-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }

    .f-row3 {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      gap: 10px;
    }

    .f-grp {
      margin-bottom: 10px;
    }

    .f-lbl {
      font-size: 8px;
      font-weight: 700;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: var(--t3);
      margin-bottom: 5px;
      display: block;
    }

    .f-inp {
      width: 100%;
      height: 40px;
      background: rgba(255, 255, 255, .048);
      border: 1px solid rgba(255, 255, 255, .10);
      border-radius: var(--rs);
      color: var(--t1);
      font-family: var(--font);
      font-size: 13px;
      padding: 0 12px;
      outline: none;
      transition: border .18s;
      -webkit-appearance: none;
      appearance: none;
    }

    .f-inp:focus {
      border-color: rgba(167, 139, 250, .42);
      background: rgba(60, 20, 110, .10);
    }

    .f-inp::placeholder {
      color: var(--t3);
      font-size: 12px;
    }

    select.f-inp {
      cursor: pointer;
    }

    select.f-inp option {
      background: #0e0b1c;
    }

    textarea.f-inp {
      height: 80px;
      padding: 10px 12px;
      resize: vertical;
    }

    .pl-input-wrap {
      position: relative;
    }

    .pl-input-wrap .f-inp {
      padding-left: 36px;
      font-family: var(--font-mono);
      font-weight: 600;
      font-size: 14px;
    }

    .pl-prefix {
      position: absolute;
      left: 12px;
      top: 50%;
      transform: translateY(-50%);
      font-size: 12px;
      color: var(--t3);
      pointer-events: none;
    }

    .filter-row {
      display: flex;
      gap: 7px;
      flex-wrap: wrap;
      margin-bottom: 12px;
      align-items: center;
    }

    .filter-row .f-inp {
      height: 32px;
      font-size: 11px;
    }

    .rr-display {
      width: 100%;
      height: 40px;
      background: rgba(0, 229, 160, .04);
      border: 1px solid rgba(0, 229, 160, .18);
      border-radius: var(--rs);
      display: flex;
      align-items: center;
      padding: 0 12px;
      font-family: var(--font-mono);
      font-size: 14px;
      font-weight: 700;
      color: var(--green);
    }

    /* BUTTONS */
    .btn-pri {
      height: 42px;
      padding: 0 18px;
      background: linear-gradient(135deg, rgba(109, 40, 217, .88), rgba(167, 139, 250, .78));
      border: 1px solid rgba(192, 132, 252, .25);
      border-radius: var(--rs);
      color: #fff;
      font-family: var(--font);
      font-size: 12px;
      font-weight: 600;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      width: 100%;
      margin-top: 6px;
      transition: all .18s;
      box-shadow: 0 4px 20px rgba(130, 60, 220, .25);
    }

    .btn-pri:hover {
      box-shadow: 0 6px 28px rgba(147, 114, 240, .40);
    }

    .btn-pri:disabled {
      opacity: .4;
      cursor: not-allowed;
    }

    .btn-pri.amber {
      background: linear-gradient(135deg, rgba(180, 80, 0, .88), rgba(255, 176, 32, .78));
      border-color: rgba(255, 176, 32, .25);
      width: auto;
      height: 30px;
      padding: 0 12px;
      font-size: 10px;
      margin-top: 0;
      box-shadow: 0 4px 20px rgba(255, 120, 0, .2);
    }

    .btn-sm {
      height: 26px;
      padding: 0 9px;
      border-radius: 5px;
      font-family: var(--font);
      font-size: 9px;
      font-weight: 600;
      cursor: pointer;
      border: 1px solid;
      transition: all .14s;
    }

    .btn-b {
      background: rgba(192, 132, 252, .08);
      border-color: rgba(192, 132, 252, .20);
      color: var(--cyan);
    }

    .btn-r {
      background: rgba(255, 61, 90, .08);
      border-color: rgba(255, 61, 90, .20);
      color: var(--red);
    }

    .btn-g {
      background: rgba(0, 229, 160, .08);
      border-color: rgba(0, 229, 160, .20);
      color: var(--green);
    }

    .btn-sm:hover {
      opacity: .8;
    }

    /* ANALYST ROOM */
    .tab-row {
      display: flex;
      gap: 5px;
      flex-wrap: wrap;
    }

    .tab-btn {
      padding: 6px 14px;
      border-radius: 6px;
      font-family: var(--font);
      font-size: 10px;
      font-weight: 700;
      cursor: pointer;
      border: 1px solid;
      transition: all .15s;
    }

    .tab-btn.active {
      background: linear-gradient(135deg, rgba(109, 40, 217, .88), rgba(167, 139, 250, .78));
      border-color: rgba(192, 132, 252, .28);
      color: #fff;
    }

    .tab-btn:not(.active) {
      background: rgba(255, 255, 255, .048);
      border-color: rgba(255, 255, 255, .09);
      color: var(--t2);
    }

    .tf-tag {
      font-size: 8px;
      font-weight: 700;
      letter-spacing: .1em;
      color: var(--t3);
    }

    .signal-feed {
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .signal-card {
      background: rgba(255, 255, 255, .035);
      border: 1px solid rgba(255, 255, 255, .08);
      border-radius: 10px;
      overflow: hidden;
      transition: box-shadow .16s;
    }

    .signal-card:hover {
      box-shadow: 0 8px 32px rgba(0, 0, 0, .25);
    }

    .card-stripe {
      width: 3px;
      flex-shrink: 0;
    }

    .card-stripe.bull {
      background: linear-gradient(180deg, var(--green), rgba(0, 229, 160, .3));
    }

    .card-stripe.bear {
      background: linear-gradient(180deg, var(--red), rgba(255, 61, 90, .3));
    }

    .card-stripe.wait {
      background: linear-gradient(180deg, var(--amber), rgba(255, 176, 32, .3));
    }

    .signal-card-inner {
      padding: 14px 16px;
      flex: 1;
    }

    .sc-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 9px;
    }

    .sc-head-left {
      display: flex;
      align-items: center;
      gap: 7px;
      flex-wrap: wrap;
    }

    .sc-setup-name {
      font-size: 12px;
      font-weight: 700;
      color: var(--t1);
      margin-bottom: 7px;
      line-height: 1.4;
    }

    .sc-levels {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 6px;
      margin-bottom: 9px;
    }

    .lvl-box {
      background: rgba(255, 255, 255, .04);
      border: 1px solid rgba(255, 255, 255, .14);
      border-top: 2.5px solid rgba(255, 255, 255, .20);
      border-radius: 8px;
      padding: 8px 6px;
      text-align: center;
      position: relative;
      overflow: hidden;
    }

    .lvl-lbl {
      font-size: 7px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .1em;
      color: var(--t3);
      margin-bottom: 4px;
    }

    .lvl-val {
      font-family: var(--font-mono);
      font-size: 12px;
      font-weight: 700;
    }

    .lvl-val.entry {
      color: var(--cyan);
    }
    .lvl-box:has(.lvl-val.entry) {
      border-top-color: rgba(192, 132, 252, .70);
      border-color: rgba(192, 132, 252, .22);
      background: rgba(192, 132, 252, .05);
    }

    .lvl-val.sl {
      color: var(--red);
    }
    .lvl-box:has(.lvl-val.sl) {
      border-top-color: rgba(255, 61, 90, .70);
      border-color: rgba(255, 61, 90, .22);
      background: rgba(255, 61, 90, .05);
    }

    .lvl-val.tp {
      color: var(--green);
    }
    .lvl-box:has(.lvl-val.tp) {
      border-top-color: rgba(0, 229, 160, .70);
      border-color: rgba(0, 229, 160, .22);
      background: rgba(0, 229, 160, .05);
    }

    .sc-note {
      font-size: 10.5px;
      color: var(--t2);
      line-height: 1.65;
      padding: 9px 11px;
      background: rgba(0, 0, 0, .18);
      border-radius: 6px;
      border-left: 2px solid rgba(167, 139, 250, .18);
      margin-bottom: 10px;
    }

    .sc-footer {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
    }

    .sc-analyst {
      display: flex;
      align-items: center;
      gap: 5px;
      font-size: 9px;
      color: var(--t3);
    }

    .analyst-ava {
      width: 20px;
      height: 20px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 7px;
      font-weight: 800;
      color: #fff;
      flex-shrink: 0;
    }

    .analyst-name {
      color: var(--t2);
      font-weight: 600;
    }

    .sc-rr {
      font-family: var(--font-mono);
      font-size: 9px;
      font-weight: 700;
      padding: 2px 7px;
      border-radius: 4px;
    }

    .rr-good {
      background: rgba(0, 229, 160, .08);
      color: var(--green);
      border: 1px solid rgba(0, 229, 160, .18);
    }

    .rr-ok {
      background: rgba(255, 176, 32, .08);
      color: var(--amber);
      border: 1px solid rgba(255, 176, 32, .18);
    }

    .sc-time {
      font-size: 9px;
      color: var(--t3);
      font-family: var(--font-mono);
      margin-left: auto;
    }

    .sc-status {
      font-size: 7px;
      font-weight: 700;
      padding: 2px 7px;
      border-radius: 4px;
      text-transform: uppercase;
      letter-spacing: .08em;
    }

    .status-open {
      background: rgba(192, 132, 252, .08);
      color: var(--cyan);
      border: 1px solid rgba(192, 132, 252, .18);
    }

    .status-tp {
      background: rgba(0, 229, 160, .10);
      color: var(--green);
      border: 1px solid rgba(0, 229, 160, .22);
    }

    .status-sl {
      background: rgba(255, 61, 90, .10);
      color: var(--red);
      border: 1px solid rgba(255, 61, 90, .22);
    }

    .status-cancel {
      background: rgba(255, 255, 255, .05);
      color: var(--t3);
      border: 1px solid rgba(255, 255, 255, .10);
    }

    .action-row {
      display: flex;
      align-items: center;
      gap: 6px;
      margin-top: 10px;
      padding-top: 10px;
      border-top: 1px solid rgba(255, 255, 255, .05);
    }

    .vote-btn {
      height: 24px;
      padding: 0 9px;
      border-radius: 5px;
      font-family: var(--font);
      font-size: 9px;
      font-weight: 700;
      cursor: pointer;
      border: 1px solid;
      transition: all .14s;
      display: inline-flex;
      align-items: center;
      gap: 4px;
    }

    .vote-up {
      background: rgba(0, 229, 160, .07);
      border-color: rgba(0, 229, 160, .18);
      color: rgba(0, 229, 160, .88);
    }

    .vote-up:hover,
    .vote-up.voted {
      background: rgba(0, 229, 160, .16);
      border-color: rgba(0, 229, 160, .35);
      color: var(--green);
    }

    .vote-dn {
      background: rgba(255, 61, 90, .07);
      border-color: rgba(255, 61, 90, .18);
      color: rgba(255, 61, 90, .88);
    }

    .vote-dn:hover,
    .vote-dn.voted {
      background: rgba(255, 61, 90, .16);
      border-color: rgba(255, 61, 90, .35);
      color: var(--red);
    }

    .comment-toggle-btn {
      height: 24px;
      padding: 0 9px;
      border-radius: 5px;
      font-family: var(--font);
      font-size: 9px;
      font-weight: 700;
      cursor: pointer;
      border: 1px solid rgba(255, 255, 255, .10);
      background: rgba(255, 255, 255, .05);
      color: var(--t2);
      display: inline-flex;
      align-items: center;
      gap: 4px;
      transition: all .14s;
    }

    .comment-toggle-btn:hover,
    .comment-toggle-btn.open {
      background: rgba(167, 139, 250, .10);
      border-color: rgba(167, 139, 250, .25);
      color: var(--cyan);
    }

    .close-btn {
      height: 24px;
      padding: 0 9px;
      border-radius: 5px;
      font-size: 9px;
      font-weight: 700;
      cursor: pointer;
      border: 1px solid rgba(255, 176, 32, .20);
      background: rgba(255, 176, 32, .07);
      color: var(--amber);
      font-family: var(--font);
      transition: all .14s;
      display: inline-flex;
      align-items: center;
      gap: 4px;
    }

    .comment-section {
      border-top: 1px solid rgba(255, 255, 255, .05);
      background: rgba(0, 0, 0, .15);
      padding: 14px 16px;
      animation: slideDown .2s ease both;
    }

    .comment-section-hd {
      font-size: 8px;
      font-weight: 700;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--t3);
      margin-bottom: 12px;
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .comment-list {
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-bottom: 14px;
    }

    .comment-item {
      display: flex;
      gap: 8px;
    }

    .c-ava {
      width: 24px;
      height: 24px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 8px;
      font-weight: 800;
      color: #fff;
      flex-shrink: 0;
      margin-top: 1px;
    }

    .comment-bubble {
      flex: 1;
      background: rgba(255, 255, 255, .04);
      border: 1px solid rgba(255, 255, 255, .07);
      border-radius: 8px;
      padding: 9px 11px;
    }

    .comment-meta {
      display: flex;
      align-items: center;
      gap: 6px;
      margin-bottom: 5px;
      flex-wrap: wrap;
    }

    .comment-user {
      font-size: 10px;
      font-weight: 700;
      color: var(--t1);
    }

    .comment-plan {
      font-size: 6px;
      font-weight: 800;
      padding: 1px 5px;
      border-radius: 3px;
    }

    .comment-plan.pro {
      color: var(--cyan);
      background: rgba(192, 132, 252, .08);
      border: 1px solid rgba(192, 132, 252, .18);
    }

    .comment-plan.elite {
      color: var(--amber);
      background: rgba(255, 176, 32, .09);
      border: 1px solid rgba(255, 176, 32, .18);
    }

    .comment-time {
      font-size: 8px;
      color: var(--t3);
      font-family: var(--font-mono);
      margin-left: auto;
    }

    .comment-text {
      font-size: 11px;
      color: var(--t2);
      line-height: 1.6;
    }

    .comment-actions {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-top: 7px;
    }

    .c-like-btn {
      background: none;
      border: none;
      cursor: pointer;
      font-size: 9px;
      color: var(--t3);
      display: inline-flex;
      align-items: center;
      gap: 3px;
      padding: 0;
      font-family: var(--font);
      transition: color .14s;
    }

    .c-like-btn:hover,
    .c-like-btn.liked {
      color: var(--green);
    }

    .c-reply-btn {
      background: none;
      border: none;
      cursor: pointer;
      font-size: 9px;
      color: var(--t3);
      padding: 0;
      font-family: var(--font);
      transition: color .14s;
    }

    .c-reply-btn:hover {
      color: var(--cyan);
    }

    .c-del-btn {
      background: none;
      border: none;
      cursor: pointer;
      font-size: 9px;
      color: var(--t3);
      padding: 0;
      font-family: var(--font);
      transition: color .14s;
      margin-left: auto;
    }

    .c-del-btn:hover {
      color: var(--red);
    }

    .reply-thread {
      margin-top: 8px;
      padding-left: 10px;
      border-left: 2px solid rgba(255, 255, 255, .06);
      display: flex;
      flex-direction: column;
      gap: 7px;
    }

    .reply-item {
      display: flex;
      gap: 7px;
    }

    .reply-bubble {
      flex: 1;
      background: rgba(0, 0, 0, .15);
      border: 1px solid rgba(255, 255, 255, .05);
      border-radius: 7px;
      padding: 7px 10px;
    }

    .reply-text {
      font-size: 10px;
      color: var(--t2);
      line-height: 1.55;
    }

    .reply-input-wrap {
      margin-top: 7px;
      display: flex;
      gap: 7px;
      align-items: flex-start;
      padding-left: 10px;
      border-left: 2px solid rgba(167, 139, 250, .20);
    }

    .reply-textarea {
      flex: 1;
      background: rgba(255, 255, 255, .05);
      border: 1px solid rgba(255, 255, 255, .10);
      border-radius: 7px;
      color: var(--t1);
      font-family: var(--font);
      font-size: 11px;
      padding: 7px 10px;
      resize: none;
      height: 52px;
      outline: none;
      transition: border .18s;
    }

    .reply-send {
      height: 52px;
      padding: 0 11px;
      border-radius: 7px;
      border: 1px solid rgba(167, 139, 250, .22);
      background: rgba(167, 139, 250, .08);
      color: var(--cyan);
      cursor: pointer;
      font-size: 12px;
      display: flex;
      align-items: center;
      transition: all .14s;
    }

    .comment-input-row {
      display: flex;
      gap: 8px;
      align-items: flex-start;
    }

    .comment-textarea {
      flex: 1;
      background: rgba(255, 255, 255, .05);
      border: 1px solid rgba(255, 255, 255, .10);
      border-radius: 8px;
      color: var(--t1);
      font-family: var(--font);
      font-size: 11px;
      padding: 9px 11px;
      resize: none;
      height: 58px;
      outline: none;
      transition: border .18s;
    }

    .comment-textarea:focus {
      border-color: rgba(167, 139, 250, .35);
    }

    .comment-textarea::placeholder {
      color: var(--t3);
    }

    .comment-send {
      height: 58px;
      padding: 0 14px;
      border-radius: 8px;
      border: 1px solid rgba(167, 139, 250, .22);
      background: rgba(167, 139, 250, .08);
      color: var(--cyan);
      cursor: pointer;
      font-size: 12px;
      display: flex;
      align-items: center;
      gap: 5px;
      font-family: var(--font);
      font-weight: 600;
      transition: all .14s;
    }

    .char-counter {
      font-size: 8px;
      color: var(--t3);
      font-family: var(--font-mono);
      text-align: right;
      margin-top: 3px;
    }

    .char-counter.warn {
      color: var(--amber);
    }

    .char-counter.over {
      color: var(--red);
    }

    .comment-limit-note {
      font-size: 9px;
      color: var(--t3);
      margin-top: 6px;
      font-family: var(--font-mono);
    }

    .comment-limit-note.reached {
      color: var(--amber);
    }

    .upgrade-note {
      font-size: 10px;
      color: var(--t3);
      padding: 10px;
      text-align: center;
      background: rgba(255, 176, 32, .04);
      border: 1px solid rgba(255, 176, 32, .10);
      border-radius: 7px;
    }

    /* HEATMAP */
    .heatmap-grid {
      display: grid;
      grid-template-columns: repeat(9, 1fr);
      gap: 3px;
    }

    .hmap-cell {
      height: 22px;
      border-radius: 3px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 7px;
      font-weight: 700;
      cursor: pointer;
      transition: transform .12s;
    }

    .hmap-cell:hover {
      transform: scale(1.14);
    }

    .hmap-hdr {
      height: 18px;
      font-size: 6.5px;
      font-weight: 700;
      color: var(--t3);
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .h-str-bull {
      background: rgba(0, 229, 160, .60);
      color: rgba(255, 255, 255, .95);
    }

    .h-bull {
      background: rgba(0, 229, 160, .28);
      color: rgba(180, 255, 220, .9);
    }

    .h-neu {
      background: rgba(255, 176, 32, .18);
      color: rgba(255, 210, 100, .9);
    }

    .h-bear {
      background: rgba(255, 61, 90, .25);
      color: rgba(255, 160, 170, .9);
    }

    .h-str-bear {
      background: rgba(255, 61, 90, .55);
      color: rgba(255, 255, 255, .95);
    }

    .h-none {
      background: rgba(255, 255, 255, .04);
      color: var(--t3);
    }

    /* ECON CALENDAR */
    .econ-row {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 8px 0;
      border-bottom: 1px solid rgba(255, 255, 255, .03);
    }

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

    .econ-time {
      font-family: var(--font-mono);
      font-size: 9px;
      font-weight: 600;
      color: var(--t3);
      width: 46px;
      flex-shrink: 0;
    }

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

    .dot-high {
      background: var(--red);
    }

    .dot-med {
      background: var(--amber);
    }

    .dot-low {
      background: rgba(130, 170, 230, .35);
    }

    .econ-body {
      flex: 1;
      min-width: 0;
    }

    .econ-event {
      font-size: 11px;
      font-weight: 600;
      color: var(--t1);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .econ-country {
      font-size: 9px;
      color: var(--t3);
      margin-top: 1px;
    }

    .econ-nums {
      text-align: right;
      font-family: var(--font-mono);
      font-size: 9px;
      flex-shrink: 0;
    }

    .econ-fore {
      color: var(--cyan);
    }

    .econ-act {
      font-weight: 700;
    }

    .econ-act.pos {
      color: var(--green);
    }

    .econ-act.neg {
      color: var(--red);
    }

    .econ-act.pend {
      color: var(--t3);
    }

    /* ANALYST LB */
    .lb-row-sm {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 8px 0;
      border-bottom: 1px solid rgba(255, 255, 255, .03);
    }

    .lb-row-sm:last-child {
      border-bottom: none;
    }

    .lb-rank-sm {
      width: 26px;
      height: 26px;
      border-radius: 7px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--font-disp);
      font-size: 11px;
      font-weight: 700;
      flex-shrink: 0;
    }

    .lb-rank-sm.r1 {
      background: rgba(255, 176, 32, .18);
      color: var(--amber);
      border: 1px solid rgba(255, 176, 32, .30);
    }

    .lb-rank-sm.r2 {
      background: rgba(180, 210, 255, .10);
      color: rgba(200, 225, 255, .92);
      border: 1px solid rgba(180, 210, 255, .20);
    }

    .lb-rank-sm.r3 {
      background: rgba(205, 127, 50, .12);
      color: #cd7f32;
      border: 1px solid rgba(205, 127, 50, .25);
    }

    .lb-rank-sm.rn {
      background: rgba(255, 255, 255, .05);
      color: var(--t3);
      border: 1px solid rgba(255, 255, 255, .08);
      font-size: 10px;
    }

    .acc-bar-wrap {
      display: flex;
      align-items: center;
      gap: 7px;
    }

    .acc-bar {
      width: 60px;
      height: 5px;
      background: rgba(255, 255, 255, .07);
      border-radius: 3px;
      overflow: hidden;
    }

    .acc-fill {
      height: 100%;
      border-radius: 3px;
    }

    .acc-val {
      font-family: var(--font-mono);
      font-size: 11px;
      font-weight: 700;
      min-width: 34px;
      text-align: right;
    }

    /* MODAL */
    .modal-ov {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 500;
      background: rgba(0, 0, 0, .72);
      backdrop-filter: blur(14px);
      align-items: center;
      justify-content: center;
    }

    .modal-ov.open {
      display: flex;
    }

    .modal {
      background: rgba(22, 16, 44, 0.95);
      backdrop-filter: blur(56px) saturate(2.0);
      border: 1px solid rgba(167, 139, 250, .18);
      border-radius: 18px;
      padding: 22px;
      width: 100%;
      max-width: 420px;
      animation: scaleIn .22s ease both;
      box-shadow: 0 24px 80px rgba(0, 0, 0, .6);
      position: relative;
      max-height: 90vh;
      overflow-y: auto;
    }

    .modal::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(167, 139, 250, .30), rgba(255, 255, 255, .12), transparent);
      border-radius: 18px 18px 0 0;
    }

    .modal-title {
      font-family: var(--font-disp);
      font-size: 16px;
      font-weight: 700;
      margin-bottom: 4px;
    }

    .modal-sub {
      font-size: 12px;
      color: var(--t2);
      margin-bottom: 18px;
    }

    .modal-foot {
      display: flex;
      gap: 8px;
      margin-top: 16px;
    }

    .btn-ms {
      flex: 1;
      height: 40px;
      background: linear-gradient(135deg, rgba(109, 40, 217, .88), rgba(167, 139, 250, .78));
      border: 1px solid rgba(192, 132, 252, .25);
      border-radius: var(--rs);
      color: #fff;
      font-family: var(--font);
      font-size: 12px;
      font-weight: 600;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
    }

    .btn-ms.amber {
      background: linear-gradient(135deg, rgba(180, 80, 0, .85), rgba(255, 176, 32, .75));
      border-color: rgba(255, 176, 32, .25);
    }

    .btn-mc {
      height: 40px;
      padding: 0 16px;
      background: rgba(255, 255, 255, .05);
      border: 1px solid rgba(255, 255, 255, .09);
      border-radius: var(--rs);
      color: var(--t2);
      font-family: var(--font);
      font-size: 12px;
      cursor: pointer;
      transition: all .15s;
    }

    .btn-mc:hover {
      background: rgba(255, 255, 255, .09);
      color: var(--t1);
    }

    .close-opt {
      display: flex;
      flex-direction: column;
      gap: 8px;
      margin-bottom: 16px;
    }

    .close-opt-btn {
      padding: 12px 16px;
      border-radius: 10px;
      border: 1px solid;
      cursor: pointer;
      display: flex;
      align-items: center;
      gap: 12px;
      font-family: var(--font);
      transition: all .15s;
      text-align: left;
      background: transparent;
    }

    .close-opt-btn.tp {
      border-color: rgba(0, 229, 160, .22);
    }

    .close-opt-btn.tp:hover {
      background: rgba(0, 229, 160, .08);
    }

    .close-opt-btn.sl {
      border-color: rgba(255, 61, 90, .22);
    }

    .close-opt-btn.sl:hover {
      background: rgba(255, 61, 90, .08);
    }

    .close-opt-btn.cn {
      border-color: rgba(255, 255, 255, .10);
    }

    .close-opt-btn.cn:hover {
      background: rgba(255, 255, 255, .05);
    }

    .co-icon {
      width: 36px;
      height: 36px;
      border-radius: 9px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      flex-shrink: 0;
    }

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

    .co-desc {
      font-size: 10px;
      color: var(--t3);
      margin-top: 2px;
    }

    /* LOGOUT */
    #logoutModal .modal {
      max-width: 380px;
      border-color: rgba(255, 61, 90, 0.20);
      text-align: center;
      overflow: hidden;
    }

    .logout-stripe {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 3px;
      background: linear-gradient(90deg, rgba(255, 61, 90, 0), rgba(255, 61, 90, 0.88), rgba(255, 100, 50, 0.88), rgba(255, 61, 90, 0));
    }

    /* WELCOME POPUP */
    @keyframes wDropIn {
      0% {
        opacity: 0;
        transform: translateY(-32px) scale(.94);
      }

      60% {
        transform: translateY(6px) scale(1.01);
      }

      100% {
        opacity: 1;
        transform: none;
      }
    }

    @keyframes wFadeIn {
      from {
        opacity: 0;
      }

      to {
        opacity: 1;
      }
    }

    @keyframes wPulseRing {

      0%,
      100% {
        box-shadow: 0 0 0 0 rgba(192, 132, 252, 0);
      }

      50% {
        box-shadow: 0 0 0 10px rgba(192, 132, 252, 0.08);
      }
    }

    #welcomeModal {
      z-index: 600;
    }

    #welcomeModal .modal {
      max-width: 400px;
      text-align: center;
      border-color: rgba(167, 139, 250, 0.28);
      animation: wDropIn .42s cubic-bezier(.34, 1.36, .64, 1) both;
      padding: 32px 28px 28px;
    }

    .wlc-stripe {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 3px;
      border-radius: 18px 18px 0 0;
      background: linear-gradient(90deg, rgba(167, 139, 250, 0), rgba(192, 132, 252, 0.90), rgba(139, 92, 246, 0.90), rgba(167, 139, 250, 0));
    }

    .wlc-icon-wrap {
      width: 72px;
      height: 72px;
      border-radius: 22px;
      background: linear-gradient(135deg, rgba(109, 40, 217, 0.18), rgba(167, 139, 250, 0.12));
      border: 1px solid rgba(167, 139, 250, 0.25);
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 4px auto 20px;
      animation: wPulseRing 3s ease infinite;
    }

    .wlc-icon-wrap i {
      font-size: 28px;
      background: linear-gradient(135deg, var(--cyan), var(--blue));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    .wlc-title {
      font-family: var(--font-disp);
      font-size: 20px;
      font-weight: 800;
      letter-spacing: -.02em;
      margin-bottom: 14px;
      background: linear-gradient(135deg, #fff 30%, var(--cyan));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    .wlc-quote {
      font-size: 13px;
      line-height: 1.75;
      color: var(--t2);
      margin-bottom: 20px;
      padding: 14px 16px;
      background: rgba(167, 139, 250, 0.05);
      border: 1px solid rgba(167, 139, 250, 0.10);
      border-radius: 10px;
      font-style: italic;
    }

    .wlc-quote strong {
      color: var(--t1);
      font-style: normal;
    }

    .wlc-question {
      font-size: 14px;
      font-weight: 600;
      color: var(--t1);
      margin-bottom: 22px;
    }

    .wlc-btn {
      width: 100%;
      height: 48px;
      background: linear-gradient(135deg, rgba(124, 58, 237, 0.85), rgba(192, 132, 252, 0.70));
      border: 1px solid rgba(192, 132, 252, 0.30);
      border-radius: 12px;
      color: #fff;
      font-family: var(--font);
      font-size: 14px;
      font-weight: 700;
      cursor: pointer;
      letter-spacing: .02em;
      transition: all .18s;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      box-shadow: 0 8px 28px rgba(124, 58, 237, 0.25);
    }

    .wlc-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 12px 36px rgba(0, 150, 255, 0.35);
    }

    .wlc-reminder {
      margin-top: 14px;
      font-size: 10px;
      color: var(--t3);
      letter-spacing: .04em;
    }

    .logout-icon-wrap {
      width: 68px;
      height: 68px;
      border-radius: 20px;
      background: rgba(255, 61, 90, 0.07);
      border: 1px solid rgba(255, 61, 90, 0.22);
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 8px auto 16px;
      position: relative;
    }

    .logout-icon-wrap i {
      font-size: 26px;
      color: var(--red);
      animation: logoutIconPop .4s cubic-bezier(.34, 1.56, .64, 1) both;
    }

    .logout-icon-wrap::after {
      content: '';
      position: absolute;
      inset: -4px;
      border-radius: 23px;
      border: 1px solid rgba(255, 61, 90, 0.14);
      animation: logoutPing 2.2s ease infinite;
    }

    .logout-title {
      font-family: var(--font-disp);
      font-size: 18px;
      font-weight: 800;
      color: var(--t1);
      margin-bottom: 6px;
    }

    .logout-desc {
      font-size: 12px;
      color: var(--t2);
      line-height: 1.7;
      margin-bottom: 6px;
      max-width: 280px;
      margin-left: auto;
      margin-right: auto;
    }

    .logout-warn-badge {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 5px 14px;
      border-radius: 20px;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: .06em;
      text-transform: uppercase;
      background: rgba(255, 176, 32, 0.07);
      border: 1px solid rgba(255, 176, 32, 0.22);
      color: var(--amber);
      margin-bottom: 22px;
    }

    .logout-user-strip {
      display: flex;
      align-items: center;
      gap: 10px;
      background: rgba(255, 255, 255, 0.04);
      border: 1px solid rgba(255, 255, 255, 0.07);
      border-radius: 10px;
      padding: 10px 14px;
      margin-bottom: 20px;
      text-align: left;
    }

    .logout-ava {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      background: linear-gradient(135deg, var(--blue), var(--cyan));
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      font-weight: 800;
      color: #fff;
      flex-shrink: 0;
    }

    .logout-username {
      font-size: 12px;
      font-weight: 700;
      color: var(--t1);
    }

    .logout-plan-txt {
      font-size: 9px;
      color: var(--t3);
      margin-top: 1px;
    }

    .logout-btn-row {
      display: flex;
      gap: 8px;
    }

    .btn-logout-cancel {
      flex: 1;
      height: 44px;
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid rgba(255, 255, 255, 0.09);
      border-radius: var(--rs);
      color: var(--t2);
      font-family: var(--font);
      font-size: 12px;
      font-weight: 600;
      cursor: pointer;
      transition: all .18s;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
    }

    .btn-logout-confirm {
      flex: 2;
      height: 44px;
      background: linear-gradient(135deg, rgba(180, 20, 40, 0.92), rgba(255, 61, 90, 0.85));
      border: 1px solid rgba(255, 61, 90, 0.30);
      border-radius: var(--rs);
      color: #fff;
      font-family: var(--font);
      font-size: 12px;
      font-weight: 700;
      cursor: pointer;
      transition: all .18s;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      box-shadow: 0 4px 20px rgba(255, 40, 70, 0.25);
    }

    .btn-logout-confirm:hover {
      transform: translateY(-1px);
    }

    .btn-logout-confirm.loading {
      opacity: .7;
      pointer-events: none;
    }

    /* ALERTS / TOAST */
    .alert {
      padding: 11px 13px;
      border-radius: var(--rs);
      font-size: 12px;
      line-height: 1.6;
      display: flex;
      align-items: flex-start;
      gap: 9px;
      margin-bottom: 10px;
    }

    .alert-r {
      background: rgba(255, 61, 90, .06);
      border: 1px solid rgba(255, 61, 90, .18);
      color: var(--red);
    }

    .alert-a {
      background: rgba(255, 176, 32, .06);
      border: 1px solid rgba(255, 176, 32, .18);
      color: var(--amber);
    }

    .alert-g {
      background: rgba(0, 229, 160, .06);
      border: 1px solid rgba(0, 229, 160, .18);
      color: var(--green);
    }

    .alert-b {
      background: rgba(192, 132, 252, .06);
      border: 1px solid rgba(192, 132, 252, .18);
      color: var(--cyan);
    }

    .toast {
      position: fixed;
      bottom: 18px;
      right: 18px;
      z-index: 9999;
      padding: 10px 16px;
      border-radius: 10px;
      font-size: 12px;
      font-weight: 600;
      opacity: 0;
      transition: opacity .3s, transform .3s;
      pointer-events: none;
      transform: translateY(6px);
    }

    .toast.show {
      opacity: 1;
      transform: none;
    }

    .toast.ok {
      background: rgba(0, 229, 160, .09);
      border: 1px solid rgba(0, 229, 160, .26);
      color: var(--green);
    }

    .toast.err {
      background: rgba(255, 61, 90, .09);
      border: 1px solid rgba(255, 61, 90, .26);
      color: var(--red);
    }

    .toast.info {
      background: rgba(192, 132, 252, .09);
      border: 1px solid rgba(192, 132, 252, .26);
      color: var(--cyan);
    }

    /* CALENDAR */
    /* ── CALENDAR ─────────────────────────────────────────────── */
    .cal-nav-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 10px;
    }

    .cal-nav-btn {
      width: 32px;
      height: 32px;
      border-radius: 8px;
      border: 1px solid var(--border);
      background: rgba(255,255,255,.04);
      color: var(--t2);
      font-size: 15px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all .15s;
      font-family: var(--font);
      line-height: 1;
    }
    .cal-nav-btn:hover { border-color: var(--cyan); color: var(--cyan); background: rgba(192,132,252,.08); }

    .cal-month-lbl {
      font-family: var(--font-disp);
      font-size: 14px;
      font-weight: 700;
      letter-spacing: -.02em;
    }

    .cal-legend {
      display: flex;
      align-items: center;
      gap: 12px;
    }
    .cal-legend-item {
      display: flex;
      align-items: center;
      gap: 5px;
      font-size: 9px;
      color: var(--t3);
      font-weight: 600;
    }
    .cal-legend-dot {
      width: 8px;
      height: 8px;
      border-radius: 3px;
    }

    .cal-days-header {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      gap: 4px;
      margin-bottom: 4px;
    }

    .cal-day-name {
      text-align: center;
      font-size: 8px;
      color: var(--t3);
      font-weight: 700;
      letter-spacing: .06em;
      text-transform: uppercase;
      padding: 2px 0 4px;
    }
    .cal-day-name.weekend { opacity: .55; }

    .cal-grid {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      gap: 4px;
      grid-auto-rows: clamp(46px, 8.5vh, 72px);
    }

    .cal-cell {
      height: 100%;
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      cursor: default;
      transition: transform .18s cubic-bezier(.34,1.56,.64,1), box-shadow .18s;
      position: relative;
      overflow: hidden;
      border: 1px solid transparent;
    }
    .cal-cell.has-trade { cursor: pointer; }
    .cal-cell.has-trade:hover {
      transform: scale(1.06);
      z-index: 2;
    }
    .cal-cell.profit:hover {
      box-shadow: 0 4px 18px rgba(0,229,160,.35);
    }
    .cal-cell.loss:hover {
      box-shadow: 0 4px 18px rgba(255,61,90,.35);
    }

    /* Bottom accent bar */
    .cal-cell::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 15%;
      right: 15%;
      height: 2.5px;
      border-radius: 2px 2px 0 0;
      opacity: 0;
      transition: opacity .18s;
    }
    .cal-cell.has-trade::after { opacity: 1; }
    .cal-cell.profit::after { background: rgba(0,229,160,.90); box-shadow: 0 0 6px rgba(0,229,160,.5); }
    .cal-cell.loss::after   { background: rgba(255,61,90,.90);  box-shadow: 0 0 6px rgba(255,61,90,.5); }

    .cal-cell.today {
      box-shadow: 0 0 0 2px var(--cyan), 0 0 12px rgba(192,132,252,.25);
    }

    .cal-cell.weekend-col { opacity: .80; }

    .cal-date {
      font-size: 10px;
      font-weight: 600;
      line-height: 1.2;
      font-family: var(--font-disp);
    }
    .cal-pl {
      font-size: 7.5px;
      font-weight: 700;
      font-family: var(--font-mono);
      margin-top: 1px;
    }

    .ld {
      padding: 18px;
      text-align: center;
      color: var(--t3);
      font-size: 12px;
    }

    .empty {
      padding: 24px 16px;
      text-align: center;
    }

    .empty-ico {
      width: 52px;
      height: 52px;
      border-radius: 50%;
      background: rgba(124, 58, 237, .06);
      border: 1px solid rgba(167, 139, 250, .12);
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto 12px;
      font-size: 20px;
      color: var(--t3);
    }

    /* SUBSCRIPTION */
    .sub-cards {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 12px;
    }

    .sub-card {
      background: rgba(12, 24, 55, 0.52);
      border: 1px solid rgba(255, 255, 255, 0.09);
      border-radius: var(--r);
      padding: 18px;
      text-align: center;
      cursor: pointer;
      transition: all .18s;
      position: relative;
    }

    .sub-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .12), transparent);
    }

    .sub-card:hover {
      transform: translateY(-3px);
    }

    .sub-card.pro-card {
      border-color: rgba(192, 132, 252, .22);
      background: rgba(0, 80, 200, .09);
    }

    .sub-card.elite-card {
      border-color: rgba(255, 176, 32, .20);
    }

    .sub-card.current-plan {
      border-color: rgba(0, 229, 160, .30);
      box-shadow: 0 0 20px rgba(0, 229, 160, .08);
    }

    .sub-badge-popular {
      position: absolute;
      top: -10px;
      left: 50%;
      transform: translateX(-50%);
      background: linear-gradient(90deg, var(--cyan), var(--blue));
      color: #fff;
      font-size: 7px;
      font-weight: 800;
      letter-spacing: .12em;
      text-transform: uppercase;
      padding: 3px 12px;
      border-radius: 20px;
      white-space: nowrap;
    }

    .sc-subtitle {
      font-size: 8px;
      font-weight: 700;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--t3);
      margin-bottom: 6px;
    }

    .sc-name {
      font-family: var(--font-disp);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .5px;
      margin-bottom: 8px;
    }

    .sc-price {
      font-family: var(--font-disp);
      font-size: 26px;
      font-weight: 800;
      margin-bottom: 2px;
    }

    .sc-period {
      font-size: 9px;
      color: var(--t3);
      margin-bottom: 14px;
    }

    .sub-plan-price {
      transition: opacity .2s;
    }

    body.hide-sub-prices .sub-plan-price {
      opacity: 0;
      height: 0;
      overflow: hidden;
      margin: 0;
      pointer-events: none;
    }

    .cur-tabs {
      display: flex;
      gap: 6px;
      margin-bottom: 12px;
      flex-wrap: wrap;
    }

    .cur-tab {
      height: 26px;
      padding: 0 12px;
      border-radius: var(--rs);
      font-size: 10px;
      font-weight: 700;
      cursor: pointer;
      border: 1px solid rgba(255, 255, 255, 0.08);
      background: transparent;
      color: var(--t2);
      font-family: var(--font);
      transition: all .15s;
      letter-spacing: .04em;
    }

    .cur-tab:hover {
      border-color: rgba(167, 139, 250, 0.2);
      color: var(--t1);
    }

    .cur-tab.active {
      background: rgba(167, 139, 250, 0.12);
      border-color: rgba(167, 139, 250, 0.25);
      color: var(--cyan);
    }

    .cur-tab.idr.active {
      background: rgba(0, 229, 160, 0.10);
      border-color: rgba(0, 229, 160, 0.22);
      color: var(--green);
    }

    .sess-btn {
      padding: 10px 6px;
      border-radius: var(--rs);
      border: 1px solid rgba(255, 255, 255, 0.08);
      background: rgba(255, 255, 255, 0.03);
      cursor: pointer;
      text-align: center;
      font-family: var(--font);
      transition: all .15s;
      width: 100%;
    }

    .sess-btn:hover {
      border-color: rgba(167, 139, 250, 0.22);
      background: rgba(124, 58, 237, 0.07);
    }

    .sess-btn.active {
      border-color: rgba(167, 139, 250, 0.4);
      background: rgba(124, 58, 237, 0.14);
    }

    .sess-btn.active.s-london {
      border-color: rgba(255, 176, 32, 0.4);
      background: rgba(255, 176, 32, 0.08);
    }

    .sess-btn.active.s-ny {
      border-color: rgba(0, 229, 160, 0.4);
      background: rgba(0, 229, 160, 0.10);
    }

    .cur-tog {
      display: inline-flex;
      border-radius: var(--rs);
      overflow: hidden;
      border: 1px solid rgba(255, 255, 255, 0.09);
    }

    .cur-tog-btn {
      height: 28px;
      padding: 0 12px;
      font-size: 10px;
      font-weight: 700;
      cursor: pointer;
      border: none;
      background: transparent;
      color: var(--t3);
      font-family: var(--font);
      transition: all .15s;
    }

    .cur-tog-btn.active {
      background: rgba(167, 139, 250, 0.15);
      color: var(--cyan);
    }

    .cur-tog-btn.idr.active {
      background: rgba(0, 229, 160, 0.12);
      color: var(--green);
    }

    .sc-feat {
      list-style: none;
      text-align: left;
    }

    .sc-feat li {
      font-size: 11px;
      color: var(--t2);
      padding: 3px 0;
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .sc-cta {
      margin-top: 14px;
      padding: 8px;
      border-radius: 7px;
      font-size: 9px;
      font-weight: 700;
    }

    .current-badge {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 3px 8px;
      border-radius: 10px;
      font-size: 8px;
      font-weight: 700;
      background: rgba(0, 229, 160, .09);
      border: 1px solid rgba(0, 229, 160, .22);
      color: var(--green);
      margin-bottom: 6px;
    }

    /* RISK */
    /* RISK CALCULATOR — redesign */
    .rc-pair-row { display:flex; gap:5px; flex-wrap:wrap; margin-bottom:14px; }
    .rc-pair-chip { padding:4px 11px; border-radius:20px; border:1px solid rgba(255,255,255,.1); background:transparent; font-size:10px; font-weight:700; color:var(--t2); cursor:pointer; transition:all .15s; white-space:nowrap; font-family:var(--font); }
    .rc-pair-chip:hover { border-color:rgba(192,132,252,.4); color:var(--cyan); background:rgba(192,132,252,.07); }
    .rc-pair-chip.active { background:rgba(192,132,252,.14); border-color:rgba(192,132,252,.38); color:var(--cyan); }
    .rc-tabs { display:flex; background:rgba(255,255,255,.04); border-radius:10px; padding:3px; gap:3px; margin-bottom:16px; }
    .rc-tab { flex:1; padding:8px; border-radius:7px; border:none; background:transparent; font-family:var(--font); font-size:12px; font-weight:700; color:var(--t3); cursor:pointer; transition:all .2s; }
    .rc-tab.active { background:linear-gradient(135deg,rgba(109,40,217,.85),rgba(167,139,250,.75)); border:1px solid rgba(192,132,252,.24); color:#fff; }
    .rc-inputs { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:14px; }
    .rc-hero { background:rgba(75,20,160,.08); border:1px solid rgba(167,139,250,.18); border-radius:12px; padding:18px 20px; display:flex; align-items:center; justify-content:space-between; margin-top:4px; }
    .rc-hero-lbl { font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--t3); margin-bottom:5px; }
    .rc-hero-val { font-family:var(--font-mono); font-size:30px; font-weight:900; color:var(--cyan); letter-spacing:-.02em; line-height:1; }
    .rc-hero-meta { font-size:10px; color:var(--t3); margin-top:6px; font-family:var(--font-mono); }
    .rc-hero-side { text-align:right; }
    .rc-hero-side-lbl { font-size:9px; color:var(--t3); font-weight:600; text-transform:uppercase; letter-spacing:.08em; margin-bottom:3px; }
    .rc-hero-side-val { font-family:var(--font-mono); font-size:13px; font-weight:700; color:var(--t2); }
    .rc-stat-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:4px; }
    .rc-stat-card { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.07); border-radius:10px; padding:13px 12px; }
    .rc-stat-lbl { font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--t3); margin-bottom:7px; }
    .rc-stat-val { font-family:var(--font-mono); font-size:17px; font-weight:800; line-height:1.1; }
    .rc-stat-sub { font-size:9px; color:var(--t3); margin-top:5px; font-family:var(--font-mono); }

    /* LEADERBOARD */
    .lb-topbar {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 14px;
      flex-wrap: wrap;
      gap: 8px;
    }

    .lb-optin-wrap {
      display: flex;
      align-items: center;
      gap: 10px;
      background: rgba(75, 20, 160, .06);
      border: 1px solid rgba(147, 114, 240, .12);
      border-radius: var(--rs);
      padding: 8px 14px;
    }

    .lb-optin-lbl {
      font-size: 11px;
      color: var(--t2);
      font-weight: 500;
    }

    .toggle-sw {
      position: relative;
      width: 36px;
      height: 20px;
      flex-shrink: 0;
      cursor: pointer;
    }

    .toggle-sw input {
      opacity: 0;
      width: 0;
      height: 0;
      position: absolute;
    }

    .toggle-track {
      position: absolute;
      inset: 0;
      border-radius: 20px;
      background: rgba(255, 255, 255, .10);
      border: 1px solid rgba(255, 255, 255, .13);
      transition: all .22s;
    }

    .toggle-sw input:checked~.toggle-track {
      background: rgba(167, 139, 250, .30);
      border-color: rgba(192, 132, 252, .40);
    }

    .toggle-thumb {
      position: absolute;
      top: 2px;
      left: 2px;
      width: 14px;
      height: 14px;
      border-radius: 50%;
      background: rgba(255, 255, 255, .35);
      transition: all .22s;
    }

    .toggle-sw input:checked~.toggle-track .toggle-thumb {
      transform: translateX(16px);
      background: var(--cyan);
    }

    .lb-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 11px;
    }

    .lb-table th {
      text-align: left;
      color: var(--t3);
      font-weight: 700;
      padding: 0 0 7px;
      border-bottom: 1px solid rgba(255, 255, 255, .05);
      font-size: 7px;
      text-transform: uppercase;
      letter-spacing: .15em;
    }

    .lb-table td {
      padding: 10px 4px 10px 0;
      border-bottom: 1px solid rgba(255, 255, 255, .03);
      vertical-align: middle;
    }

    .lb-table tr:last-child td {
      border-bottom: none;
    }

    .lb-table tr:hover td {
      background: rgba(124, 58, 237, .05);
    }

    .lb-rank {
      width: 28px;
      height: 28px;
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--font-disp);
      font-size: 12px;
      font-weight: 700;
    }

    .lb-rank.r1 {
      background: rgba(255, 176, 32, .18);
      color: var(--amber);
      border: 1px solid rgba(255, 176, 32, .30);
    }

    .lb-rank.r2 {
      background: rgba(180, 210, 255, .10);
      color: rgba(200, 225, 255, .92);
      border: 1px solid rgba(180, 210, 255, .20);
    }

    .lb-rank.r3 {
      background: rgba(205, 127, 50, .12);
      color: #cd7f32;
      border: 1px solid rgba(205, 127, 50, .25);
    }

    .lb-rank.rn {
      background: rgba(255, 255, 255, .05);
      color: var(--t3);
      border: 1px solid rgba(255, 255, 255, .08);
      font-size: 10px;
    }

    .lb-user {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .lb-ava {
      width: 28px;
      height: 28px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 9px;
      font-weight: 800;
      flex-shrink: 0;
      background: linear-gradient(135deg, var(--blue), var(--cyan));
      color: #fff;
    }

    .lb-name {
      font-size: 12px;
      font-weight: 600;
      color: var(--t1);
    }

    .lb-plan-badge {
      font-size: 7px;
      font-weight: 700;
      padding: 1px 5px;
      border-radius: 3px;
      letter-spacing: .08em;
    }

    .lb-plan-badge.basic {
      color: var(--t2);
      background: rgba(255, 255, 255, .06);
      border: 1px solid rgba(255, 255, 255, .09);
    }

    .lb-plan-badge.pro {
      color: var(--cyan);
      background: rgba(192, 132, 252, .08);
      border: 1px solid rgba(192, 132, 252, .20);
    }

    .lb-plan-badge.elite {
      color: var(--amber);
      background: rgba(255, 176, 32, .09);
      border: 1px solid rgba(255, 176, 32, .20);
    }

    .wr-bar-wrap {
      display: flex;
      align-items: center;
      gap: 7px;
    }

    .wr-bar {
      flex: 1;
      height: 5px;
      background: rgba(255, 255, 255, .07);
      border-radius: 3px;
      overflow: hidden;
      min-width: 50px;
    }

    .wr-fill {
      height: 100%;
      border-radius: 3px;
      transition: width .5s cubic-bezier(.22, .68, 0, 1.2);
    }

    .wr-txt {
      font-family: var(--font-mono);
      font-size: 11px;
      font-weight: 700;
      min-width: 34px;
      text-align: right;
    }

    .lb-you-row td {
      background: rgba(167, 139, 250, .05) !important;
    }

    /* BOTTOM NAV */
    .sb-backdrop {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 190;
      background: rgba(0, 0, 0, .65);
    }

    .mob-menu {
      display: none;
      background: none;
      border: none;
      color: var(--t2);
      font-size: 16px;
      cursor: pointer;
      padding: 6px;
      flex-shrink: 0;
    }

    .bottom-nav {
      display: none;
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 300;
      background: rgba(8, 5, 18, 0.90);
      backdrop-filter: blur(36px) saturate(2.0);
      border-top: 1px solid rgba(167, 139, 250, 0.13);
      padding: 8px 0 max(8px, env(safe-area-inset-bottom, 8px));
      box-shadow: 0 -4px 32px rgba(0, 0, 0, .45);
      -webkit-transform: translateZ(0);
      transform: translateZ(0);
    }

    .bottom-nav-items {
      display: flex;
      align-items: stretch;
      justify-content: space-around;
    }

    .bn-item {
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 4px;
      padding: 4px 2px;
      cursor: pointer;
      color: rgba(185, 210, 242, 0.68);
      transition: all .18s;
      border: none;
      background: none;
      font-family: var(--font);
      -webkit-tap-highlight-color: transparent;
    }

    .bn-item.active {
      color: var(--cyan);
    }

    .bn-item.active .bn-icon {
      background: rgba(192, 132, 252, .10);
    }

    .bn-icon {
      width: 36px;
      height: 28px;
      border-radius: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      transition: all .18s;
    }

    .bn-item:active .bn-icon {
      transform: scale(.88);
    }

    .bn-label {
      font-size: 9px;
      font-weight: 600;
      letter-spacing: .02em;
    }

    .bn-item.input-btn .bn-icon {
      width: 44px;
      height: 34px;
      border-radius: 14px;
      background: linear-gradient(135deg, var(--blue), var(--cyan));
      color: #fff;
      font-size: 16px;
      box-shadow: 0 4px 16px rgba(147, 114, 240, .38);
    }

    .bn-item.input-btn {
      color: var(--cyan);
    }

    @media(max-width:680px) {
      .bottom-nav {
        display: block;
      }
    }

    body.is-mobile .sidebar {
      position: fixed !important;
      top: 0;
      left: 0;
      bottom: 0;
      z-index: 400;
      width: 240px !important;
      transform: translateX(-100%) !important;
      display: flex !important;
      padding-top: max(18px, env(safe-area-inset-top, 18px));
      padding-bottom: max(16px, env(safe-area-inset-bottom, 16px));
      transition: transform .25s cubic-bezier(.4, 0, .2, 1);
    }

    body.is-mobile .sidebar.mob-open {
      transform: translateX(0) !important;
      box-shadow: 8px 0 60px rgba(0, 0, 0, .85) !important;
    }

    body.is-mobile .dash-main {
      padding: max(12px, env(safe-area-inset-top, 0px)) 12px calc(72px + env(safe-area-inset-bottom, 8px)) 12px !important;
      gap: 12px;
      width: 100%;
    }

    body.is-mobile .bottom-nav {
      display: block !important;
    }

    body.is-mobile .mob-menu {
      display: block !important;
    }

    body.is-mobile .stat-grid {
      grid-template-columns: repeat(2, 1fr) !important;
      gap: 8px;
    }

    body.is-mobile #homeStatGrid {
      grid-template-columns: repeat(2, 1fr) !important;
    }

    body.is-mobile .g2,
    body.is-mobile .g3,
    body.is-mobile .cal-layout-grid {
      grid-template-columns: 1fr !important;
    }

    body.is-mobile .f-row,
    body.is-mobile .f-row3 {
      grid-template-columns: 1fr !important;
    }

    body.is-mobile .sub-cards {
      grid-template-columns: 1fr !important;
    }

    body.is-mobile .mini-stats {
      grid-template-columns: 1fr 1fr !important;
    }

    body.is-mobile .rc-mode-toggle {
      flex-direction: column;
    }

    body.is-mobile .page-title {
      font-size: 17px;
    }

    body.is-mobile .topbar-right .live-badge {
      display: none;
    }

    body.is-mobile #liveTickerWidget {
      display: none !important;
    }

    body.is-mobile #newsCountdownWidget {
      display: none !important;
    }

    body.is-mobile .refresh-btn {
      display: none !important;
    }

    body.is-mobile .home-body-grid,
    body.is-mobile .analyst-body-grid {
      grid-template-columns: 1fr !important;
    }

    body.is-mobile .toast {
      bottom: calc(76px + env(safe-area-inset-bottom, 8px)) !important;
    }

    body.is-mobile .panel {
      padding: 12px !important;
    }

    body.is-mobile .equity-wrap {
      height: 130px !important;
    }

    body.is-mobile .panel-hd {
      flex-wrap: wrap;
      gap: 6px;
    }

    body.is-mobile .eq-badge {
      font-size: 8px;
      padding: 2px 7px;
    }

    body.is-mobile #equitySection .panel-hd {
      margin-bottom: 6px !important;
    }

    body.is-mobile .stat-card {
      padding: 10px 12px !important;
    }

    body.is-mobile .sc-val {
      font-size: 18px !important;
    }

    body.is-mobile .sc-spark {
      display: none !important;
    }

    body.is-mobile .sc-hint {
      margin-top: 2px;
    }

    body.is-mobile .page-sec.active {
      gap: 10px !important;
    }

    body.is-mobile .flex-col {
      gap: 10px !important;
    }

    /* --- GRUP MOBILE FIX --- */
    body.is-mobile #page-grup.active {
      flex: 1 !important;
      height: auto !important;
      margin: 0 !important;
      min-height: 0 !important;
    }
    body.is-mobile #page-grup.active .discord-layout {
      height: 100% !important;   /* flex-fill, bukan fixed calc */
      min-height: 0 !important;
      border-radius: 0 !important;
    }
    body.is-mobile .chat-input-row {
      padding-bottom: max(14px, env(safe-area-inset-bottom, 14px)) !important;
    }

    /* OVERVIEW MOBILE PADDING  */
    body.is-mobile #page-home {
      gap: 12px !important;
      padding-top: 4px;
    }

    body.is-mobile .cur-tabs {
      margin-bottom: 8px;
      gap: 6px;
    }

    body.is-mobile .cur-tab {
      height: 28px;
      padding: 0 14px;
      font-size: 10px;
    }

    body.is-mobile #homeStatGrid {
      gap: 8px !important;
    }

    body.is-mobile .stat-card {
      padding: 12px 14px !important;
      border-radius: 10px;
    }

      body.is-mobile .sc-val {
      font-size: 13px !important;
    }

    body.is-mobile .sc-label {
      margin-bottom: 2px;
      font-size: 7px !important;
    }

    body.is-mobile .home-body-grid {
      gap: 10px !important;
    }

    body.is-mobile #traderDnaPanel {
      order: 0;
    }

    body.is-mobile .equity-wrap {
      height: 140px !important;
    }

    /*  SIGNAL CARD  */
    .signal-feed {
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .signal-card {
      background: rgba(255, 255, 255, .035);
      border: 1px solid rgba(255, 255, 255, .08);
      border-radius: 10px;
      overflow: hidden;
      transition: box-shadow .16s;
    }

    .signal-card-inner {
      padding: 14px 16px;
      position: relative;
    }

    .signal-card:hover {
      box-shadow: 0 8px 32px rgba(0, 0, 0, .25);
    }

    .card-stripe {
      width: 3px;
      flex-shrink: 0;
      border-radius: 3px 0 0 0;
    }

    .card-stripe.bull {
      background: linear-gradient(180deg, var(--green), rgba(0, 229, 160, .3));
    }

    .card-stripe.bear {
      background: linear-gradient(180deg, var(--red), rgba(255, 61, 90, .3));
    }

    .card-stripe.wait {
      background: linear-gradient(180deg, var(--amber), rgba(255, 176, 32, .3));
    }

    .sc-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 9px;
    }

    .sc-head-left {
      display: flex;
      align-items: center;
      gap: 7px;
      flex-wrap: wrap;
    }

    .sc-head-right {
      display: flex;
      align-items: center;
      gap: 7px;
    }

    .sc-setup-name {
      font-size: 12px;
      font-weight: 700;
      color: var(--t1);
      margin-bottom: 7px;
      line-height: 1.4;
    }

    /* .sc-levels / .lvl-box / .sc-note — defined in first style block, duplicate removed */

    .sc-analyst {
      display: flex;
      align-items: center;
      gap: 5px;
      font-size: 9px;
      color: var(--t3);
    }

    .analyst-ava {
      width: 20px;
      height: 20px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 7px;
      font-weight: 800;
      color: #fff;
      flex-shrink: 0;
    }

    .analyst-name {
      color: var(--t2);
      font-weight: 600;
    }

    .sc-rr {
      font-family: var(--font-mono);
      font-size: 9px;
      font-weight: 700;
      padding: 2px 7px;
      border-radius: 4px;
    }

    .rr-good {
      background: rgba(0, 229, 160, .08);
      color: var(--green);
      border: 1px solid rgba(0, 229, 160, .18);
    }

    .rr-ok {
      background: rgba(255, 176, 32, .08);
      color: var(--amber);
      border: 1px solid rgba(255, 176, 32, .18);
    }

    .sc-time {
      font-size: 9px;
      color: var(--t3);
      font-family: var(--font-mono);
      margin-left: auto;
    }

    .sc-status {
      font-size: 7px;
      font-weight: 700;
      padding: 2px 7px;
      border-radius: 4px;
      text-transform: uppercase;
      letter-spacing: .08em;
    }

    .status-open {
      background: rgba(192, 132, 252, .08);
      color: var(--cyan);
      border: 1px solid rgba(192, 132, 252, .18);
    }

    .status-tp {
      background: rgba(0, 229, 160, .10);
      color: var(--green);
      border: 1px solid rgba(0, 229, 160, .22);
    }

    .status-sl {
      background: rgba(255, 61, 90, .10);
      color: var(--red);
      border: 1px solid rgba(255, 61, 90, .22);
    }

    .status-cancel {
      background: rgba(255, 255, 255, .05);
      color: var(--t3);
      border: 1px solid rgba(255, 255, 255, .10);
    }

    /*  ACTION ROW  */
    .action-row {
      display: flex;
      align-items: center;
      gap: 6px;
      margin-top: 10px;
      padding-top: 10px;
      border-top: 1px solid rgba(255, 255, 255, .05);
    }

    .vote-btn {
      height: 24px;
      padding: 0 9px;
      border-radius: 5px;
      font-family: var(--font);
      font-size: 9px;
      font-weight: 700;
      cursor: pointer;
      border: 1px solid;
      transition: all .14s;
      display: inline-flex;
      align-items: center;
      gap: 4px;
    }

    .vote-up {
      background: rgba(0, 229, 160, .07);
      border-color: rgba(0, 229, 160, .18);
      color: rgba(0, 229, 160, .88);
    }

    .vote-up:hover,
    .vote-up.voted {
      background: rgba(0, 229, 160, .16);
      border-color: rgba(0, 229, 160, .35);
      color: var(--green);
    }

    .vote-dn {
      background: rgba(255, 61, 90, .07);
      border-color: rgba(255, 61, 90, .18);
      color: rgba(255, 61, 90, .88);
    }

    .vote-dn:hover,
    .vote-dn.voted {
      background: rgba(255, 61, 90, .16);
      border-color: rgba(255, 61, 90, .35);
      color: var(--red);
    }

    .comment-toggle-btn {
      height: 24px;
      padding: 0 9px;
      border-radius: 5px;
      font-family: var(--font);
      font-size: 9px;
      font-weight: 700;
      cursor: pointer;
      border: 1px solid rgba(255, 255, 255, .10);
      background: rgba(255, 255, 255, .05);
      color: var(--t2);
      display: inline-flex;
      align-items: center;
      gap: 4px;
      transition: all .14s;
    }

    .comment-toggle-btn:hover,
    .comment-toggle-btn.open {
      background: rgba(167, 139, 250, .10);
      border-color: rgba(167, 139, 250, .25);
      color: var(--cyan);
    }

    .close-btn {
      height: 24px;
      padding: 0 9px;
      border-radius: 5px;
      font-size: 9px;
      font-weight: 700;
      cursor: pointer;
      border: 1px solid rgba(255, 176, 32, .20);
      background: rgba(255, 176, 32, .07);
      color: var(--amber);
      font-family: var(--font);
      transition: all .14s;
      display: inline-flex;
      align-items: center;
      gap: 4px;
    }

    .close-btn:hover {
      background: rgba(255, 176, 32, .15);
    }

    /*  COMMENT SECTION  */
    .comment-section {
      border-top: 1px solid rgba(255, 255, 255, .05);
      background: rgba(0, 0, 0, .15);
      padding: 14px 16px;
    }

    .comment-section-hd {
      font-size: 8px;
      font-weight: 700;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--t3);
      margin-bottom: 12px;
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .comment-list {
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-bottom: 14px;
    }

    .comment-item {
      display: flex;
      gap: 8px;
    }

    .c-ava {
      width: 24px;
      height: 24px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 8px;
      font-weight: 800;
      color: #fff;
      flex-shrink: 0;
      margin-top: 1px;
    }

    .comment-bubble {
      flex: 1;
      background: rgba(255, 255, 255, .04);
      border: 1px solid rgba(255, 255, 255, .07);
      border-radius: 8px;
      padding: 9px 11px;
    }

    .comment-meta {
      display: flex;
      align-items: center;
      gap: 6px;
      margin-bottom: 5px;
      flex-wrap: wrap;
    }

    .comment-user {
      font-size: 10px;
      font-weight: 700;
      color: var(--t1);
    }

    .comment-plan {
      font-size: 6px;
      font-weight: 800;
      padding: 1px 5px;
      border-radius: 3px;
    }

    .comment-plan.pro {
      color: var(--cyan);
      background: rgba(192, 132, 252, .08);
      border: 1px solid rgba(192, 132, 252, .18);
    }

    .comment-plan.elite {
      color: var(--amber);
      background: rgba(255, 176, 32, .09);
      border: 1px solid rgba(255, 176, 32, .18);
    }

    .comment-time {
      font-size: 8px;
      color: var(--t3);
      font-family: var(--font-mono);
      margin-left: auto;
    }

    .comment-text {
      font-size: 11px;
      color: var(--t2);
      line-height: 1.6;
    }

    .comment-actions {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-top: 7px;
    }

    .c-like-btn {
      background: none;
      border: none;
      cursor: pointer;
      font-size: 9px;
      color: var(--t3);
      display: inline-flex;
      align-items: center;
      gap: 3px;
      padding: 0;
      font-family: var(--font);
      transition: color .14s;
    }

    .c-like-btn:hover,
    .c-like-btn.liked {
      color: var(--green);
    }

    .c-reply-btn {
      background: none;
      border: none;
      cursor: pointer;
      font-size: 9px;
      color: var(--t3);
      padding: 0;
      font-family: var(--font);
      transition: color .14s;
    }

    .c-reply-btn:hover {
      color: var(--cyan);
    }

    .c-del-btn {
      background: none;
      border: none;
      cursor: pointer;
      font-size: 9px;
      color: var(--t3);
      padding: 0;
      font-family: var(--font);
      transition: color .14s;
      margin-left: auto;
    }

    .c-del-btn:hover {
      color: var(--red);
    }

    .reply-thread {
      margin-top: 8px;
      padding-left: 10px;
      border-left: 2px solid rgba(255, 255, 255, .06);
      display: flex;
      flex-direction: column;
      gap: 7px;
    }

    .reply-item {
      display: flex;
      gap: 7px;
    }

    .reply-bubble {
      flex: 1;
      background: rgba(0, 0, 0, .15);
      border: 1px solid rgba(255, 255, 255, .05);
      border-radius: 7px;
      padding: 7px 10px;
    }

    .reply-text {
      font-size: 10px;
      color: var(--t2);
      line-height: 1.55;
    }

    .reply-input-wrap {
      margin-top: 7px;
      display: flex;
      gap: 7px;
      align-items: flex-start;
      padding-left: 10px;
      border-left: 2px solid rgba(167, 139, 250, .20);
    }

    .reply-textarea {
      flex: 1;
      background: rgba(255, 255, 255, .05);
      border: 1px solid rgba(255, 255, 255, .10);
      border-radius: 7px;
      color: var(--t1);
      font-family: var(--font);
      font-size: 11px;
      padding: 7px 10px;
      resize: none;
      height: 52px;
      outline: none;
      transition: border .18s;
    }

    .reply-textarea:focus {
      border-color: rgba(167, 139, 250, .35);
    }

    .reply-send {
      height: 52px;
      padding: 0 11px;
      border-radius: 7px;
      border: 1px solid rgba(167, 139, 250, .22);
      background: rgba(167, 139, 250, .08);
      color: var(--cyan);
      cursor: pointer;
      font-size: 12px;
      display: flex;
      align-items: center;
      transition: all .14s;
    }

    .reply-send:hover {
      background: rgba(167, 139, 250, .16);
    }

    .reply-char {
      font-size: 8px;
      color: var(--t3);
      font-family: var(--font-mono);
      margin-top: 3px;
      text-align: right;
    }

    .reply-char.warn {
      color: var(--amber);
    }

    .reply-char.over {
      color: var(--red);
    }

    .comment-input-row {
      display: flex;
      gap: 8px;
      align-items: flex-start;
    }

    .comment-textarea {
      flex: 1;
      background: rgba(255, 255, 255, .05);
      border: 1px solid rgba(255, 255, 255, .10);
      border-radius: 8px;
      color: var(--t1);
      font-family: var(--font);
      font-size: 11px;
      padding: 9px 11px;
      resize: none;
      height: 58px;
      outline: none;
      transition: border .18s;
    }

    .comment-textarea:focus {
      border-color: rgba(167, 139, 250, .35);
    }

    .comment-textarea::placeholder {
      color: var(--t3);
    }

    .comment-send {
      height: 58px;
      padding: 0 14px;
      border-radius: 8px;
      border: 1px solid rgba(167, 139, 250, .22);
      background: rgba(167, 139, 250, .08);
      color: var(--cyan);
      cursor: pointer;
      font-size: 12px;
      display: flex;
      align-items: center;
      gap: 5px;
      font-family: var(--font);
      font-weight: 600;
      transition: all .14s;
    }

    .comment-send:hover {
      background: rgba(167, 139, 250, .16);
    }

    .char-counter {
      font-size: 8px;
      color: var(--t3);
      font-family: var(--font-mono);
      text-align: right;
      margin-top: 3px;
    }

    .char-counter.warn {
      color: var(--amber);
    }

    .char-counter.over {
      color: var(--red);
    }

    .comment-limit-note {
      font-size: 9px;
      color: var(--t3);
      margin-top: 6px;
      font-family: var(--font-mono);
    }

    .comment-limit-note.reached {
      color: var(--amber);
    }

    .upgrade-note {
      font-size: 10px;
      color: var(--t3);
      padding: 10px;
      text-align: center;
      background: rgba(255, 176, 32, .04);
      border: 1px solid rgba(255, 176, 32, .10);
      border-radius: 7px;
    }

    /*  HEATMAP  */
    .heatmap-grid {
      display: grid;
      grid-template-columns: repeat(9, 1fr);
      gap: 3px;
    }

    .hmap-cell {
      height: 22px;
      border-radius: 3px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 7px;
      font-weight: 700;
      cursor: pointer;
      transition: transform .12s;
    }

    .hmap-cell:hover {
      transform: scale(1.14);
    }

    .hmap-hdr {
      height: 18px;
      font-size: 6.5px;
      font-weight: 700;
      color: var(--t3);
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .h-str-bull {
      background: rgba(0, 229, 160, .60);
      color: rgba(255, 255, 255, .95);
    }

    .h-bull {
      background: rgba(0, 229, 160, .28);
      color: rgba(180, 255, 220, .9);
    }

    .h-neu {
      background: rgba(255, 176, 32, .18);
      color: rgba(255, 210, 100, .9);
    }

    .h-bear {
      background: rgba(255, 61, 90, .25);
      color: rgba(255, 160, 170, .9);
    }

    .h-str-bear {
      background: rgba(255, 61, 90, .55);
      color: rgba(255, 255, 255, .95);
    }

    .h-none {
      background: rgba(255, 255, 255, .04);
      color: var(--t3);
    }

    /*  ECONOMIC CALENDAR  */
    .econ-row {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 8px 0;
      border-bottom: 1px solid rgba(255, 255, 255, .03);
    }

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

    .econ-time {
      font-family: var(--font-mono);
      font-size: 9px;
      font-weight: 600;
      color: var(--t3);
      width: 46px;
      flex-shrink: 0;
    }

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

    .dot-high {
      background: var(--red);
      box-shadow: 0 0 6px rgba(255, 61, 90, .5);
    }

    .dot-med {
      background: var(--amber);
      box-shadow: 0 0 6px rgba(255, 176, 32, .4);
    }

    .dot-low {
      background: rgba(130, 170, 230, .35);
    }

    .econ-body {
      flex: 1;
      min-width: 0;
    }

    .econ-event {
      font-size: 11px;
      font-weight: 600;
      color: var(--t1);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .econ-country {
      font-size: 9px;
      color: var(--t3);
      margin-top: 1px;
    }

    .econ-nums {
      text-align: right;
      font-family: var(--font-mono);
      font-size: 9px;
      flex-shrink: 0;
    }

    .econ-prev {
      color: var(--t3);
    }

    .econ-fore {
      color: var(--cyan);
    }

    .econ-act {
      font-weight: 700;
    }

    .econ-act.pos {
      color: var(--green);
    }

    .econ-act.neg {
      color: var(--red);
    }

    .econ-act.pend {
      color: var(--t3);
    }

    .econ-tabs {
      display: flex;
      gap: 4px;
      margin-bottom: 10px;
    }

    .econ-tab {
      background: rgba(255, 255, 255, .04);
      border: 1px solid rgba(255, 255, 255, .08);
      color: var(--t3);
      font-size: 9px;
      font-weight: 700;
      padding: 5px 12px;
      border-radius: 7px;
      cursor: pointer;
      transition: all .18s;
      letter-spacing: .03em;
      font-family: var(--font-mono);
    }

    .econ-tab:hover {
      background: rgba(255, 255, 255, .07);
      color: var(--t2);
    }

    .econ-tab.active {
      background: rgba(192, 132, 252, .12);
      border-color: rgba(192, 132, 252, .35);
      color: var(--cyan);
    }

    /*  GROUP BOARD  */
    .gp-like-btn,
    .gp-comment-btn {
      background: rgba(255, 255, 255, .04);
      border: 1px solid rgba(255, 255, 255, .08);
      cursor: pointer;
      font-size: 10px;
      color: var(--t3);
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 5px 12px;
      border-radius: 7px;
      font-family: var(--font);
      transition: all .14s;
    }

    .gp-like-btn:hover,
    .gp-like-btn.liked {
      background: rgba(255, 61, 90, .09);
      border-color: rgba(255, 61, 90, .28);
      color: var(--red);
    }

    /* ── POLL ── */
    .gp-poll {
      margin-top: 12px;
      padding: 12px 14px;
      background: rgba(255, 255, 255, .03);
      border: 1px solid rgba(255, 255, 255, .08);
      border-radius: 10px;
    }

    .gp-poll-hdr {
      font-size: 9px;
      font-weight: 700;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: var(--t3);
      margin-bottom: 10px;
      display: flex;
      align-items: center;
      gap: 5px;
    }

    .gp-poll-opt {
      position: relative;
      margin-bottom: 7px;
      cursor: pointer;
      border-radius: 7px;
      overflow: hidden;
      border: 1px solid rgba(255, 255, 255, .08);
      transition: border-color .14s;
    }

    .gp-poll-opt:hover {
      border-color: rgba(192, 132, 252, .28);
    }

    .gp-poll-opt.voted {
      border-color: rgba(192, 132, 252, .40);
    }

    .gp-poll-bar {
      position: absolute;
      inset: 0;
      border-radius: 6px;
      transition: width .5s cubic-bezier(.22, .68, 0, 1.2);
      z-index: 0;
    }

    .gp-poll-label {
      position: relative;
      z-index: 1;
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 8px 12px;
      font-size: 11px;
    }

    .gp-poll-name {
      font-weight: 600;
      color: var(--t1);
    }

    .gp-poll-pct {
      font-family: var(--font-mono);
      font-size: 10px;
      font-weight: 700;
      color: var(--t3);
    }

    .gp-poll-opt.voted .gp-poll-name {
      color: var(--cyan);
    }

    .gp-poll-opt.voted .gp-poll-pct {
      color: var(--cyan);
    }

    .gp-poll-footer {
      font-size: 9px;
      color: var(--t3);
      margin-top: 6px;
      text-align: right;
      font-family: var(--font-mono);
    }

    .gp-poll-toggle {
      display: flex;
      align-items: center;
      gap: 8px;
      cursor: pointer;
      padding: 8px 10px;
      border-radius: 7px;
      background: rgba(139, 92, 246, .06);
      border: 1px solid rgba(139, 92, 246, .18);
      transition: all .15s;
      user-select: none;
    }

    .gp-poll-toggle:hover {
      background: rgba(139, 92, 246, .12);
    }

    .gp-poll-toggle-icon {
      font-size: 14px;
    }

    .gp-poll-toggle-lbl {
      font-size: 10px;
      font-weight: 700;
      color: var(--violet);
    }

    .gp-poll-inputs {
      margin-top: 10px;
      display: flex;
      flex-direction: column;
      gap: 7px;
    }

    .gp-poll-inp-row {
      display: flex;
      gap: 6px;
      align-items: center;
    }

    .gp-poll-inp {
      flex: 1;
      height: 34px;
      background: rgba(255, 255, 255, .05);
      border: 1px solid rgba(139, 92, 246, .22);
      border-radius: 6px;
      color: var(--t1);
      font-family: var(--font);
      font-size: 12px;
      padding: 0 10px;
      outline: none;
      transition: border .15s;
    }

    .gp-poll-inp:focus {
      border-color: rgba(139, 92, 246, .50);
    }

    .gp-poll-inp::placeholder {
      color: var(--t3);
      font-size: 11px;
    }

    .gp-poll-del {
      background: none;
      border: none;
      cursor: pointer;
      color: rgba(255, 61, 90, .45);
      font-size: 12px;
      padding: 4px;
      transition: color .14s;
      flex-shrink: 0;
    }

    .gp-poll-del:hover {
      color: var(--red);
    }

    .gp-comment-btn:hover,
    .gp-comment-btn.open {
      background: rgba(167, 139, 250, .08);
      border-color: rgba(167, 139, 250, .25);
      color: var(--cyan);
    }

    .gp-del-btn {
      background: none;
      border: none;
      cursor: pointer;
      color: rgba(255, 61, 90, .35);
      font-size: 10px;
      padding: 4px 6px;
      border-radius: 5px;
      transition: color .14s;
      margin-left: auto;
    }

    .gp-del-btn:hover {
      color: var(--red);
    }

    .gp-cat {
      font-size: 9px;
      font-weight: 700;
      padding: 2px 9px;
      border-radius: 10px;
      display: inline-flex;
      align-items: center;
    }

    .gp-cat-analisa {
      background: rgba(192, 132, 252, .10);
      border: 1px solid rgba(192, 132, 252, .22);
      color: var(--cyan);
    }

    .gp-cat-diskusi {
      background: rgba(0, 229, 160, .10);
      border: 1px solid rgba(0, 229, 160, .22);
      color: var(--green);
    }

    .gp-cat-market {
      background: rgba(255, 176, 32, .10);
      border: 1px solid rgba(255, 176, 32, .22);
      color: var(--amber);
    }

    .gp-cat-tanya {
      background: rgba(139, 92, 246, .10);
      border: 1px solid rgba(139, 92, 246, .22);
      color: var(--violet);
    }

    .gp-cat-edukasi {
      background: rgba(139, 92, 246, .10);
      border: 1px solid rgba(139, 92, 246, .22);
      color: var(--blue);
    }

    .gp-post {
      background: rgba(10, 22, 52, 0.52);
      backdrop-filter: blur(36px);
      border: 1px solid rgba(255, 255, 255, .08);
      border-radius: var(--r);
      padding: 16px;
      margin-bottom: 10px;
      transition: box-shadow .16s;
    }

    .gp-post:hover {
      box-shadow: 0 6px 28px rgba(0, 0, 0, .22);
    }

    .gp-content {
      font-size: 12px;
      color: var(--t2);
      line-height: 1.75;
      margin-bottom: 12px;
      white-space: pre-wrap;
      word-break: break-word;
    }

    .gp-actions {
      display: flex;
      align-items: center;
      gap: 8px;
      padding-top: 10px;
      border-top: 1px solid rgba(255, 255, 255, .05);
    }

    /* ── Group Chat ── */
    .grp-tab-bar {
      display: none;
      gap: 0;
      border-bottom: 1px solid var(--border);
      background: var(--card);
      border-radius: 12px 12px 0 0;
      overflow: hidden;
      margin-bottom: 0;
    }

    .grp-tab-bar.show {
      display: flex;
    }

    .grp-tab {
      flex: 1;
      padding: 10px 6px;
      font-family: var(--font);
      font-size: 11px;
      font-weight: 700;
      color: var(--t3);
      background: none;
      border: none;
      cursor: pointer;
      letter-spacing: .04em;
      transition: color .14s, border-bottom .14s;
      border-bottom: 2px solid transparent;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
    }

    .grp-tab.active {
      color: var(--cyan);
      border-bottom-color: var(--cyan);
    }

    .grp-tab:not(.active):hover {
      color: var(--t2);
    }

    .chat-panel {
      display: none;
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: 0 0 12px 12px;
      margin-bottom: 12px;
      overflow: hidden;
      flex-direction: column;
      min-height: 0;
    }

    .chat-panel.show {
      display: flex;
    }

    .chat-box {
      flex: 1;
      min-height: 0;
      overflow-y: auto;
      padding: 14px 12px;
      display: flex;
      flex-direction: column;
      gap: 4px;
      scroll-behavior: smooth;
    }

    .chat-day-sep {
      text-align: center;
      font-size: 9px;
      color: var(--t3);
      letter-spacing: .08em;
      text-transform: uppercase;
      margin: 8px 0;
      position: relative;
    }

    .chat-day-sep::before,
    .chat-day-sep::after {
      content: '';
      position: absolute;
      top: 50%;
      width: 38%;
      height: 1px;
      background: rgba(255, 255, 255, .07);
    }

    .chat-day-sep::before {
      left: 0;
    }

    .chat-day-sep::after {
      right: 0;
    }

    .chat-msg {
      display: flex;
      align-items: flex-end;
      gap: 7px;
      max-width: 85%;
    }

    .chat-msg.me {
      align-self: flex-end;
      flex-direction: row-reverse;
    }

    .chat-msg.other {
      align-self: flex-start;
    }

    .chat-avatar {
      width: 28px;
      height: 28px;
      border-radius: 8px;
      background: rgba(167, 139, 250, .18);
      border: 1px solid rgba(167, 139, 250, .20);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      font-weight: 700;
      color: var(--cyan);
      flex-shrink: 0;
      text-transform: uppercase;
    }

    .chat-bubble {
      padding: 8px 11px;
      border-radius: 12px;
      max-width: 100%;
      word-break: break-word;
      font-size: 12px;
      line-height: 1.6;
      position: relative;
    }

    .chat-msg.me .chat-bubble {
      background: rgba(139, 92, 246, .22);
      border: 1px solid rgba(139, 92, 246, .30);
      border-bottom-right-radius: 3px;
      color: var(--t1);
    }

    .chat-msg.other .chat-bubble {
      background: rgba(255, 255, 255, .05);
      border: 1px solid rgba(255, 255, 255, .09);
      border-bottom-left-radius: 3px;
      color: var(--t1);
    }

    .chat-meta {
      font-size: 9px;
      color: var(--t3);
      margin-top: 3px;
      display: flex;
      align-items: center;
      gap: 5px;
    }

    .chat-msg.me .chat-meta {
      justify-content: flex-end;
    }

    .chat-del-btn {
      background: none;
      border: none;
      cursor: pointer;
      color: rgba(255, 61, 90, .35);
      font-size: 9px;
      padding: 1px 3px;
      border-radius: 3px;
      transition: color .14s;
      line-height: 1;
    }

    .chat-del-btn:hover {
      color: var(--red);
    }

    .chat-empty {
      text-align: center;
      padding: 40px 20px;
      color: var(--t3);
      font-size: 11px;
      margin: auto;
    }

    .chat-lock {
      text-align: center;
      padding: 32px 20px;
      color: var(--t3);
      font-size: 11px;
    }

    .chat-input-row {
      display: flex;
      align-items: flex-end;
      gap: 8px;
      padding: 10px 12px;
      border-top: 1px solid var(--border);
    }

    .chat-input {
      flex: 1;
      background: rgba(255, 255, 255, .05);
      border: 1px solid rgba(255, 255, 255, .09);
      border-radius: 10px;
      color: var(--t1);
      font-family: var(--font);
      font-size: 12px;
      padding: 8px 10px;
      resize: none;
      outline: none;
      max-height: 90px;
      overflow-y: auto;
      transition: border .15s;
      line-height: 1.5;
    }

    .chat-input:focus {
      border-color: rgba(139, 92, 246, .40);
    }

    .chat-input::placeholder {
      color: var(--t3);
    }

    .chat-send-btn {
      height: 36px;
      width: 36px;
      border-radius: 10px;
      border: none;
      background: linear-gradient(135deg, rgba(109, 40, 217, .88), rgba(167, 139, 250, .78));
      color: #fff;
      font-size: 14px;
      cursor: pointer;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: opacity .14s;
    }

    .chat-send-btn:disabled {
      opacity: .4;
      cursor: default;
    }

    .chat-char-count {
      font-size: 9px;
      color: var(--t3);
      text-align: right;
      padding: 0 12px 6px;
      font-family: var(--font-mono);
    }

    /*  ANALYST LB  */
    .lb-row {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 8px 0;
      border-bottom: 1px solid rgba(255, 255, 255, .03);
    }

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

    .acc-bar-wrap {
      display: flex;
      align-items: center;
      gap: 7px;
    }

    .acc-bar {
      width: 60px;
      height: 5px;
      background: rgba(255, 255, 255, .07);
      border-radius: 3px;
      overflow: hidden;
    }

    .acc-fill {
      height: 100%;
      border-radius: 3px;
    }

    .acc-val {
      font-family: var(--font-mono);
      font-size: 11px;
      font-weight: 700;
      min-width: 34px;
      text-align: right;
    }

    /*  TABS  */
    .tab-row {
      display: flex;
      gap: 5px;
      flex-wrap: wrap;
    }

    .tab-btn {
      padding: 6px 14px;
      border-radius: 6px;
      font-family: var(--font);
      font-size: 10px;
      font-weight: 700;
      cursor: pointer;
      border: 1px solid;
      transition: all .15s;
      letter-spacing: .04em;
    }

    .tab-btn.active {
      background: linear-gradient(135deg, rgba(109, 40, 217, .88), rgba(167, 139, 250, .78));
      border-color: rgba(192, 132, 252, .28);
      color: #fff;
      box-shadow: 0 2px 12px rgba(147, 114, 240, .25);
    }

    .tab-btn:not(.active) {
      background: rgba(255, 255, 255, .048);
      border-color: rgba(255, 255, 255, .09);
      color: var(--t2);
    }

    .tab-btn:not(.active):hover {
      background: rgba(255, 255, 255, .08);
      color: var(--t1);
    }

    /*  CHIPS ANALYST  */
    .chip.bull {
      background: rgba(0, 229, 160, .10);
      color: var(--green);
      border: 1px solid rgba(0, 229, 160, .22);
    }

    .chip.bear {
      background: rgba(255, 61, 90, .10);
      color: var(--red);
      border: 1px solid rgba(255, 61, 90, .22);
    }

    .chip.wait {
      background: rgba(255, 176, 32, .10);
      color: var(--amber);
      border: 1px solid rgba(255, 176, 32, .22);
    }

    .chip.smc {
      background: rgba(139, 92, 246, .10);
      color: var(--violet);
      border: 1px solid rgba(139, 92, 246, .22);
    }

    .chip.sr {
      background: rgba(167, 139, 250, .08);
      color: var(--cyan);
      border: 1px solid rgba(167, 139, 250, .18);
    }

    .chip.fibo {
      background: rgba(255, 176, 32, .08);
      color: var(--amber);
      border: 1px solid rgba(255, 176, 32, .18);
    }

    /*  POST FORM  */
    .rr-display {
      width: 100%;
      height: 40px;
      background: rgba(0, 229, 160, .04);
      border: 1px solid rgba(0, 229, 160, .18);
      border-radius: var(--rs);
      display: flex;
      align-items: center;
      padding: 0 12px;
      font-family: var(--font-mono);
      font-size: 14px;
      font-weight: 700;
      color: var(--green);
    }

    /*  CLOSE SIGNAL MODAL  */
    .close-opt {
      display: flex;
      flex-direction: column;
      gap: 8px;
      margin-bottom: 16px;
    }

    .close-opt-btn {
      padding: 12px 16px;
      border-radius: 10px;
      border: 1px solid;
      cursor: pointer;
      display: flex;
      align-items: center;
      gap: 12px;
      font-family: var(--font);
      transition: all .15s;
      text-align: left;
      background: none;
    }

    .close-opt-btn:hover {
      transform: translateX(3px);
    }

    .close-opt-btn.tp {
      background: rgba(0, 229, 160, .06);
      border-color: rgba(0, 229, 160, .22);
    }

    .close-opt-btn.tp:hover {
      background: rgba(0, 229, 160, .12);
    }

    .close-opt-btn.sl {
      background: rgba(255, 61, 90, .06);
      border-color: rgba(255, 61, 90, .22);
    }

    .close-opt-btn.sl:hover {
      background: rgba(255, 61, 90, .12);
    }

    .close-opt-btn.cn {
      background: rgba(255, 255, 255, .04);
      border-color: rgba(255, 255, 255, .10);
    }

    .close-opt-btn.cn:hover {
      background: rgba(255, 255, 255, .08);
    }

    .co-icon {
      width: 36px;
      height: 36px;
      border-radius: 9px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      flex-shrink: 0;
    }

    .co-icon.tp {
      background: rgba(0, 229, 160, .12);
    }

    .co-icon.sl {
      background: rgba(255, 61, 90, .12);
    }

    .co-icon.cn {
      background: rgba(255, 255, 255, .06);
    }

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

    .co-desc {
      font-size: 10px;
      color: var(--t3);
      margin-top: 2px;
    }

    /*  ANALYST PAGE LAYOUT  */
    .analyst-body-grid {
      display: grid;
      grid-template-columns: 5fr 3fr;
      gap: 14px;
    }

    body.is-mobile .analyst-body-grid {
      grid-template-columns: 1fr !important;
    }

    .new-tag {
      display: inline-flex;
      align-items: center;
      gap: 3px;
      padding: 2px 7px;
      border-radius: 4px;
      font-size: 7px;
      font-weight: 800;
      letter-spacing: .1em;
      text-transform: uppercase;
      background: rgba(255, 176, 32, .10);
      border: 1px solid rgba(255, 176, 32, .22);
      color: var(--amber);
      margin-left: 6px;
      vertical-align: middle;
    }

    .btn-pri-amber {
      height: 38px;
      padding: 0 16px;
      background: linear-gradient(135deg, rgba(180, 80, 0, .85), rgba(255, 176, 32, .75));
      border: 1px solid rgba(255, 176, 32, .25);
      border-radius: var(--rs);
      color: #fff;
      font-family: var(--font);
      font-size: 12px;
      font-weight: 600;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      gap: 7px;
      box-shadow: 0 4px 20px rgba(255, 120, 0, .2);
      transition: all .18s;
    }

    .btn-pri-amber:hover {
      box-shadow: 0 6px 28px rgba(255, 140, 0, .35);
      transform: translateY(-1px);
    }

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

    ::-webkit-scrollbar-thumb {
      background: rgba(147, 114, 240, .20);
      border-radius: 2px;
    }

    #dropZone.dz-hover {
      border-color: rgba(167, 139, 250, 0.55);
      background: rgba(124, 58, 237, 0.07);
    }

    .ff-maint-ov {
      position: absolute;
      inset: 0;
      z-index: 60;
      background: rgba(4, 8, 20, 0.88);
      backdrop-filter: blur(22px);
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .ff-maint-box {
      text-align: center;
      padding: 32px 28px;
      max-width: 320px;
      background: rgba(10, 20, 44, 0.90);
      border: 1px solid rgba(139, 92, 246, 0.22);
      border-radius: 18px;
      box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55);
    }

    /*  PROGRESS BAR  */
    .prog-bar {
      height: 7px;
      background: rgba(255, 255, 255, .07);
      border-radius: 4px;
      overflow: hidden;
      margin: 8px 0 5px;
    }

    .prog-fill {
      height: 100%;
      border-radius: 4px;
      transition: width .4s cubic-bezier(.4, 0, .2, 1), background .3s;
      background: linear-gradient(90deg, var(--cyan), var(--blue));
    }

    .prog-label {
      font-size: 11px;
      color: var(--t2);
      font-weight: 500;
    }

    .prog-pct-val {
      font-size: 15px;
      font-weight: 700;
      font-family: var(--font-disp);
      color: var(--cyan);
    }

    .prog-sub-txt {
      font-size: 9px;
      color: var(--t3);
      font-family: var(--font-mono);
      margin-top: 3px;
    }

    /* â• NEWS SIDEBAR â• */
    #newsSidebar {
      width: 268px;
      flex-shrink: 0;
      background: rgba(6, 4, 16, 0.85);
      backdrop-filter: blur(52px) saturate(2.0);
      -webkit-backdrop-filter: blur(52px) saturate(2.0);
      border-left: 1px solid rgba(167, 139, 250, 0.13);
      display: flex;
      flex-direction: column;
      overflow: hidden;
      transition: width .22s cubic-bezier(.4, 0, .2, 1);
      position: relative;
    }

    #newsSidebar::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      bottom: 0;
      width: 1px;
      background: linear-gradient(180deg, transparent 0%, rgba(167, 139, 250, .45) 40%, rgba(109, 40, 217, .22) 70%, transparent 100%);
      z-index: 1;
      pointer-events: none;
    }

    #newsSidebar.ns-collapsed {
      width: 0;
      border-left-color: transparent;
    }

    .ns-inner {
      display: flex;
      flex-direction: column;
      height: 100%;
      min-width: 268px;
      overflow: hidden;
    }

    .ns-header {
      padding: 16px 14px 12px;
      border-bottom: 1px solid rgba(255, 255, 255, .05);
      flex-shrink: 0;
    }

    .ns-title-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 5px;
    }

    .ns-title {
      font-size: 8px;
      font-weight: 700;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--cyan);
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .ns-title::before {
      content: '';
      width: 2px;
      height: 10px;
      border-radius: 1px;
      background: linear-gradient(180deg, var(--cyan), var(--blue));
      box-shadow: 0 0 7px var(--cyan);
      flex-shrink: 0;
    }

    .ns-toggle {
      width: 22px;
      height: 22px;
      border-radius: 5px;
      background: rgba(255, 255, 255, .05);
      border: 1px solid rgba(255, 255, 255, .09);
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--t3);
      font-size: 9px;
      transition: all .15s;
    }

    .ns-toggle:hover {
      border-color: var(--cyan);
      color: var(--cyan);
    }

    .ns-date-lbl {
      font-size: 9px;
      color: var(--t3);
      font-family: var(--font-mono);
      margin-top: 3px;
    }

    .ns-major-card {
      margin: 10px 14px;
      padding: 14px 12px;
      background: linear-gradient(135deg, rgba(239, 68, 68, 0.12), rgba(124, 58, 237, 0.08));
      border: 1.5px solid rgba(239, 68, 68, 0.28);
      box-shadow: 0 0 15px rgba(239, 68, 68, 0.15), inset 0 0 10px rgba(239, 68, 68, 0.05);
      border-radius: 12px;
      text-align: center;
      position: relative;
      overflow: hidden;
      display: none;
      flex-direction: column;
      align-items: center;
      gap: 6px;
      transition: all .2s ease;
    }

    .ns-major-card.visible {
      display: flex;
    }

    .ns-major-badge-wrap {
      display: flex;
      justify-content: center;
      margin-bottom: 2px;
    }

    .ns-major-badge {
      font-size: 7px;
      font-weight: 800;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      background: var(--red);
      color: #fff;
      padding: 2.5px 10px;
      border-radius: 20px;
      box-shadow: 0 0 10px rgba(239, 68, 68, 0.35);
    }

    .ns-major-event {
      font-size: 11px;
      font-weight: 700;
      color: var(--t1);
      line-height: 1.35;
      max-width: 90%;
      white-space: normal;
      word-wrap: break-word;
    }

    .ns-major-timer {
      font-family: var(--font-mono);
      font-size: 24px;
      font-weight: 800;
      color: var(--t1);
      letter-spacing: 0.5px;
      text-shadow: 0 0 8px rgba(255, 61, 90, 0.2);
      margin: 2px 0;
    }

    .ns-major-meta {
      font-size: 8px;
      color: var(--t3);
      letter-spacing: 0.03em;
      font-weight: 600;
    }

    .ns-cd-box {
      margin: 10px 14px;
      padding: 10px 12px;
      background: rgba(255, 61, 90, .05);
      border: 1px solid rgba(255, 61, 90, .18);
      border-radius: 9px;
      display: none;
      align-items: center;
      gap: 9px;
    }

    .ns-cd-box.visible {
      display: flex;
    }

    .ns-cd-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--red);
      flex-shrink: 0;
      animation: pulse 1.4s ease infinite;
    }

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

    .ns-cd-sublabel {
      font-size: 7px;
      font-weight: 700;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: rgba(255, 80, 80, .8);
      margin-bottom: 2px;
    }

    .ns-cd-event {
      font-size: 9px;
      font-weight: 600;
      color: var(--t2);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .ns-cd-time {
      font-family: var(--font-disp);
      font-size: 18px;
      font-weight: 700;
      color: var(--t1);
      letter-spacing: -.02em;
      margin-top: 1px;
    }

    .ns-sec-lbl {
      padding: 10px 14px 4px;
      font-size: 7px;
      font-weight: 700;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--t3);
    }

    .ns-cal-scroll {
      flex: 1;
      overflow-y: auto;
      overflow-x: hidden;
      padding-bottom: 16px;
    }

    .ns-cal-scroll::-webkit-scrollbar {
      width: 2px;
    }

    .ns-cal-scroll::-webkit-scrollbar-thumb {
      background: rgba(147, 114, 240, .15);
      border-radius: 1px;
    }

    .ns-group {
      padding: 0 14px;
    }

    .ns-erow {
      display: flex;
      align-items: flex-start;
      gap: 8px;
      padding: 9px 0;
      border-bottom: 1px solid rgba(255, 255, 255, .033);
    }

    .ns-erow:last-child {
      border-bottom: none;
    }

    .ns-erow.ns-past {
      opacity: .38;
    }

    .ns-erow.ns-now {
      background: rgba(255, 176, 32, .04);
      border-radius: 6px;
      padding: 9px 6px;
      margin: 0 -6px;
    }

    .ns-etime {
      font-family: var(--font-mono);
      font-size: 9px;
      font-weight: 600;
      color: var(--t3);
      width: 40px;
      flex-shrink: 0;
      padding-top: 2px;
    }

    .ns-edot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      flex-shrink: 0;
      margin-top: 3px;
    }

    .ns-ebody {
      flex: 1;
      min-width: 0;
    }

    .ns-eevent {
      font-size: 10px;
      font-weight: 600;
      color: var(--t1);
      line-height: 1.35;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .ns-evals {
      display: flex;
      gap: 5px;
      margin-top: 4px;
      flex-wrap: wrap;
    }

    .ns-eval {
      font-family: var(--font-mono);
      font-size: 7.5px;
      padding: 1px 5px;
      border-radius: 3px;
      font-weight: 600;
    }

    .ns-eval.prev {
      background: rgba(255, 255, 255, .04);
      color: var(--t3);
    }

    .ns-eval.fore {
      background: rgba(192, 132, 252, .07);
      color: var(--cyan);
    }

    .ns-eval.act-pos {
      background: rgba(0, 229, 160, .09);
      color: var(--green);
    }

    .ns-eval.act-neg {
      background: rgba(255, 61, 90, .09);
      color: var(--red);
    }

    .ns-eval.act-pend {
      background: rgba(255, 255, 255, .04);
      color: var(--t3);
    }

    .ns-impact-badge {
      font-size: 6.5px;
      font-weight: 800;
      letter-spacing: .08em;
      text-transform: uppercase;
      padding: 1px 5px;
      border-radius: 3px;
    }

    .ns-impact-high {
      background: rgba(255, 61, 90, .10);
      color: var(--red);
      border: 1px solid rgba(255, 61, 90, .20);
    }

    .ns-impact-med {
      background: rgba(255, 176, 32, .09);
      color: var(--amber);
      border: 1px solid rgba(255, 176, 32, .18);
    }

    .ns-impact-low {
      background: rgba(120, 120, 140, .10);
      color: var(--t3);
      border: 1px solid rgba(120, 120, 140, .20);
    }

    .ns-empty {
      text-align: center;
      padding: 28px 16px;
      font-size: 11px;
      color: var(--t3);
      line-height: 1.8;
    }

    .ns-topbar-btn {
      height: 30px;
      width: 30px;
      background: rgba(192, 132, 252, .07);
      border: 1px solid rgba(192, 132, 252, .16);
      border-radius: 6px;
      color: var(--cyan);
      font-size: 11px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all .15s;
    }

    .ns-topbar-btn:hover {
      background: rgba(192, 132, 252, .13);
    }

    body.is-mobile #newsSidebar {
      display: none !important;
    }

    body.is-mobile #newsSidebar.ns-mobile-open {
      display: flex !important;
      position: fixed !important;
      top: 0 !important;
      right: 0 !important;
      bottom: 0 !important;
      width: min(320px, 92vw) !important;
      z-index: 450 !important;
      box-shadow: -4px 0 40px rgba(0, 0, 0, .7) !important;
    }

    @keyframes slideFromRight {
      from {
        transform: translateX(100%);
      }

      to {
        transform: translateX(0);
      }
    }

    body.is-mobile #newsSidebar.ns-mobile-open .ns-inner {
      animation: slideFromRight .22s cubic-bezier(.4, 0, .2, 1) both;
    }

    /* ─── SETTINGS PAGE — glassmorphism ─── */
    .sp-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
    }

    @media(max-width:900px) {
      .sp-grid {
        grid-template-columns: 1fr;
      }
    }

    .sp-hero {
      display: flex;
      align-items: center;
      gap: 22px;
      background: linear-gradient(135deg, rgba(124, 58, 237, .10) 0%, rgba(0, 180, 204, .06) 100%);
      backdrop-filter: blur(24px);
      -webkit-backdrop-filter: blur(24px);
      border: 1px solid rgba(167, 139, 250, .18);
      border-radius: 20px;
      padding: 22px 24px;
      margin-bottom: 14px;
      position: relative;
      overflow: hidden;
      box-shadow: 0 8px 40px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(255, 255, 255, .06);
    }

    .sp-hero::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(167, 139, 250, .55), rgba(0, 180, 204, .35), transparent);
    }

    .sp-hero::after {
      content: '';
      position: absolute;
      inset: 0;
      background: radial-gradient(ellipse 55% 80% at 5% 50%, rgba(124, 58, 237, .07), transparent);
      pointer-events: none;
    }

    .sp-hero-info {
      flex: 1;
      min-width: 0;
      position: relative;
      z-index: 1;
    }

    .sp-hero-name {
      font-size: 19px;
      font-weight: 800;
      color: var(--t1);
      font-family: var(--font-disp);
      margin-bottom: 3px;
      letter-spacing: -.01em;
    }

    .sp-hero-role {
      font-size: 11px;
      color: var(--t3);
      margin-bottom: 9px;
    }

    .sp-hero-badges {
      display: flex;
      gap: 6px;
      flex-wrap: wrap;
      margin-bottom: 13px;
    }

    .sp-plan-badge {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      font-size: 9px;
      font-weight: 800;
      padding: 3px 10px;
      border-radius: 20px;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    .sp-plan-badge.basic {
      background: rgba(148, 163, 184, .10);
      border: 1px solid rgba(148, 163, 184, .20);
      color: #94a3b8;
    }

    .sp-plan-badge.pro {
      background: rgba(167, 139, 250, .14);
      border: 1px solid rgba(167, 139, 250, .28);
      color: var(--cyan);
    }

    .sp-plan-badge.elite {
      background: rgba(255, 176, 32, .12);
      border: 1px solid rgba(255, 176, 32, .28);
      color: var(--amber);
    }

    .sp-hero-photo-row {
      display: flex;
      gap: 8px;
      align-items: center;
    }

    .sp-hero-photo-row .f-inp {
      flex: 1;
      min-width: 0;
      font-size: 11px;
      height: 34px;
      background: rgba(255, 255, 255, .04) !important;
      border: 1.5px solid rgba(255, 255, 255, .09) !important;
      border-radius: 9px !important;
    }

    .sp-hero-photo-row .btn-sm {
      flex-shrink: 0;
      height: 34px;
      padding: 0 14px;
    }

    .sp-avatar {
      width: 84px;
      height: 84px;
      border-radius: 50%;
      background: rgba(124, 58, 237, .12);
      border: 2.5px solid rgba(167, 139, 250, .30);
      box-shadow: 0 0 0 5px rgba(167, 139, 250, .07), 0 0 28px rgba(124, 58, 237, .18);
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 30px;
      color: var(--cyan);
      cursor: pointer;
      transition: all .22s;
      position: relative;
      flex-shrink: 0;
      z-index: 1;
    }

    .sp-avatar:hover {
      border-color: rgba(167, 139, 250, .65);
      box-shadow: 0 0 0 6px rgba(167, 139, 250, .12), 0 0 36px rgba(124, 58, 237, .28);
    }

    .sp-avatar img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .sp-avatar-overlay {
      position: absolute;
      inset: 0;
      background: rgba(0, 0, 0, .58);
      backdrop-filter: blur(2px);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      opacity: 0;
      transition: opacity .18s;
      border-radius: 50%;
      gap: 3px;
    }

    .sp-avatar-overlay i {
      font-size: 14px;
      color: #fff;
    }

    .sp-avatar-overlay small {
      font-size: 8px;
      color: rgba(255, 255, 255, .75);
      font-weight: 600;
    }

    .sp-avatar:hover .sp-avatar-overlay {
      opacity: 1;
    }

    .sp-panel {
      background: rgba(255, 255, 255, .025);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      border: 1px solid rgba(255, 255, 255, .065);
      border-radius: 16px;
      padding: 20px 22px;
      box-shadow: 0 4px 24px rgba(0, 0, 0, .20), inset 0 1px 0 rgba(255, 255, 255, .04);
      position: relative;
      overflow: hidden;
    }

    .sp-panel::before {
      content: '';
      position: absolute;
      top: 0;
      left: 18px;
      right: 18px;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(167, 139, 250, .26), transparent);
    }

    .sp-panel-title {
      font-size: 10px;
      font-weight: 800;
      letter-spacing: .11em;
      text-transform: uppercase;
      color: var(--t3);
      margin-bottom: 16px;
      display: flex;
      align-items: center;
      gap: 9px;
    }

    .sp-pico {
      width: 26px;
      height: 26px;
      border-radius: 7px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      flex-shrink: 0;
    }

    .sp-pico-v {
      background: rgba(167, 139, 250, .14);
      color: var(--cyan);
    }

    .sp-pico-c {
      background: rgba(0, 180, 204, .12);
      color: #00b4cc;
    }

    .sp-pico-g {
      background: rgba(0, 229, 160, .10);
      color: var(--green);
    }

    .sp-pico-a {
      background: rgba(255, 176, 32, .10);
      color: var(--amber);
    }

    #page-settings .f-inp {
      background: rgba(255, 255, 255, .04);
      border: 1.5px solid rgba(255, 255, 255, .08);
      border-radius: 10px;
      transition: border-color .18s, box-shadow .18s;
    }

    #page-settings .f-inp:focus {
      border-color: rgba(167, 139, 250, .45);
      box-shadow: 0 0 0 3px rgba(167, 139, 250, .10);
      outline: none;
    }

    #page-settings .f-inp:disabled {
      opacity: .35;
      cursor: not-allowed;
    }

    #page-settings select.f-inp option {
      background: #0e0b1c;
    }

    .sp-msg {
      font-size: 11px;
      padding: 9px 12px;
      border-radius: 9px;
      margin-top: 10px;
      display: none;
      line-height: 1.45;
    }

    .sp-msg.ok {
      background: rgba(0, 200, 120, .07);
      color: #00c878;
      border: 1px solid rgba(0, 200, 120, .18);
    }

    .sp-msg.err {
      background: rgba(255, 68, 102, .07);
      color: var(--red);
      border: 1px solid rgba(255, 68, 102, .18);
    }

    .sp-msg.show {
      display: block;
    }

    .sp-pw-wrap {
      position: relative;
    }

    .sp-pw-wrap .f-inp {
      padding-right: 40px;
    }

    .sp-pw-toggle {
      position: absolute;
      right: 11px;
      top: 50%;
      transform: translateY(-50%);
      color: var(--t3);
      cursor: pointer;
      font-size: 12px;
      padding: 5px;
      background: none;
      border: none;
      line-height: 1;
      transition: color .15s;
    }

    .sp-pw-toggle:hover {
      color: var(--cyan);
    }

    .sp-danger-zone {
      background: rgba(255, 68, 102, .03);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      border: 1px solid rgba(255, 68, 102, .14);
      border-radius: 16px;
      padding: 18px 22px;
      margin-top: 14px;
    }

    .sp-danger-title {
      font-size: 10px;
      font-weight: 800;
      letter-spacing: .11em;
      text-transform: uppercase;
      color: var(--red);
      margin-bottom: 6px;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .sp-btn-danger {
      background: rgba(255, 68, 102, .08);
      border: 1px solid rgba(255, 68, 102, .22);
      color: var(--red);
      border-radius: 9px;
      padding: 9px 18px;
      font-size: 12px;
      font-weight: 700;
      cursor: pointer;
      font-family: var(--font);
      transition: all .15s;
      display: inline-flex;
      align-items: center;
      gap: 7px;
    }

    .sp-btn-danger:hover {
      background: rgba(255, 68, 102, .16);
      border-color: rgba(255, 68, 102, .35);
    }

    /* ─── DISCORD LAYOUT REDESIGN ─── */
    .discord-layout {
      display: flex;
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: 12px;
      overflow: hidden;
      height: calc(var(--real-vh, 100vh) - 160px);
      min-height: 450px;
      margin-bottom: 12px;
    }
    .discord-servers-sidebar {
      width: 60px;
      background: rgba(0, 0, 0, 0.24);
      border-right: 1px solid var(--border);
      display: flex;
      flex-direction: column;
      align-items: center;
      padding: 12px 0;
      gap: 10px;
      flex-shrink: 0;
      overflow-x: hidden;
      overflow-y: auto;
      scrollbar-width: none;
    }
    .discord-servers-sidebar::-webkit-scrollbar {
      display: none;
    }
    .ds-server-icon {
      width: 42px;
      height: 42px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid rgba(255, 255, 255, 0.08);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 18px;
      cursor: pointer;
      position: relative;
      transition: all 0.2s ease;
      color: var(--t2);
      flex-shrink: 0;
    }
    .ds-server-icon:hover, .ds-server-icon.active {
      border-radius: 12px;
      background: linear-gradient(135deg, #7c3aed, #06b6d4);
      color: #fff;
      border-color: transparent;
    }
    .ds-server-indicator {
      position: absolute;
      left: 0;
      top: 13px;
      width: 4px;
      height: 16px;
      background: var(--cyan);
      border-radius: 0 4px 4px 0;
      transition: all 0.2s ease;
      transform: scaleY(0);
      transform-origin: center;
    }
    .ds-server-icon.active .ds-server-indicator {
      transform: scaleY(1);
    }
    .ds-server-icon:hover .ds-server-indicator {
      transform: scaleY(0.6);
    }
    .discord-sidebar {
      width: 240px;
      background: rgba(0, 0, 0, 0.18);
      border-right: 1px solid var(--border);
      display: flex;
      flex-direction: column;
      padding: 14px 12px;
      gap: 12px;
      flex-shrink: 0;
    }
    .ds-header {
      display: flex;
      flex-direction: column;
      gap: 8px;
      padding-bottom: 10px;
      border-bottom: 1px solid var(--border);
    }
    .ds-header-info {
      display: flex;
      align-items: center;
      gap: 8px;
      min-width: 0;
    }
    .ds-name-wrap {
      display: flex;
      flex-direction: column;
      min-width: 0;
      flex: 1;
    }
    .ds-header-actions {
      display: flex;
      align-items: center;
      gap: 6px;
      flex-wrap: wrap;
    }
    .ds-action-btn {
      background: rgba(255, 255, 255, 0.04);
      border: 1px solid rgba(255, 255, 255, 0.08);
      color: var(--t2);
      width: 28px;
      height: 28px;
      border-radius: 6px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      cursor: pointer;
      transition: all 0.15s;
    }
    .ds-action-btn:hover {
      background: rgba(255, 255, 255, 0.09);
      color: var(--t1);
    }
    .ds-action-btn.manage {
      color: var(--cyan);
      background: rgba(0, 229, 160, 0.05);
      border-color: rgba(0, 229, 160, 0.15);
    }
    .ds-action-btn.manage:hover {
      background: rgba(0, 229, 160, 0.12);
    }
    .ds-action-btn.requests {
      color: var(--amber);
      background: rgba(255, 176, 32, 0.05);
      border-color: rgba(255, 176, 32, 0.15);
    }
    .ds-action-btn.requests:hover {
      background: rgba(255, 176, 32, 0.12);
    }
    .ds-action-btn.leave {
      color: var(--red);
      background: rgba(255, 68, 102, 0.05);
      border-color: rgba(255, 68, 102, 0.15);
    }
    .ds-action-btn.leave:hover {
      background: rgba(255, 68, 102, 0.12);
    }
    .ds-action-btn.join {
      color: var(--green);
      background: rgba(0, 229, 160, 0.08);
      border-color: rgba(0, 229, 160, 0.2);
    }
    .ds-action-btn.join:hover {
      background: rgba(0, 229, 160, 0.15);
    }
    /* ── Analisa Channel ── */
    .analisa-post-card { background:rgba(255,176,32,.05); border:1px solid rgba(255,176,32,.14); border-left:3px solid rgba(255,176,32,.6); border-radius:12px; padding:14px 16px; position:relative; }
    .analisa-post-card.private-post .analisa-body { filter:blur(6px); user-select:none; pointer-events:none; }
    .analisa-lock-badge { display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:20px; background:rgba(255,176,32,.10); border:1px solid rgba(255,176,32,.22); color:rgba(255,176,32,.85); font-size:9px; font-weight:700; margin-bottom:8px; }
    .analisa-pair-badge { display:inline-flex; align-items:center; padding:2px 9px; border-radius:20px; background:rgba(192,132,252,.10); border:1px solid rgba(192,132,252,.22); color:var(--cyan); font-size:10px; font-weight:700; margin-left:6px; }
    .vis-toggle { display:flex; gap:6px; margin-top:8px; }
    .vis-btn { flex:1; padding:8px; border-radius:8px; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.03); color:var(--t2); font-family:var(--font); font-size:11px; font-weight:700; cursor:pointer; transition:all .18s; }
    .vis-btn.active.publish { background:rgba(0,229,160,.10); border-color:rgba(0,229,160,.30); color:var(--green); }
    .vis-btn.active.private { background:rgba(255,176,32,.10); border-color:rgba(255,176,32,.30); color:var(--amber); }
    .role-analyst-badge { display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:20px; background:rgba(255,176,32,.10); border:1px solid rgba(255,176,32,.25); color:var(--amber); font-size:9px; font-weight:700; }
    .ds-section {
      display: flex;
      flex-direction: column;
      gap: 3px;
    }
    .ds-section-hd {
      font-size: 9px;
      font-weight: 700;
      color: var(--t3);
      letter-spacing: 0.08em;
      text-transform: uppercase;
      margin-top: 6px;
      margin-bottom: 2px;
      padding: 0 4px;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    .ds-section-hd button {
      background: none;
      border: none;
      color: var(--t3);
      cursor: pointer;
      padding: 2px;
      font-size: 10px;
      transition: color 0.15s;
    }
    .ds-section-hd button:hover {
      color: var(--t1);
    }
    .ds-menu-item {
      display: flex;
      align-items: center;
      gap: 8px;
      background: none;
      border: none;
      color: var(--t3);
      font-family: var(--font);
      font-size: 11px;
      font-weight: 600;
      padding: 6px 10px;
      border-radius: 6px;
      cursor: pointer;
      text-align: left;
      transition: all 0.15s;
      width: 100%;
    }
    .ds-menu-item:hover {
      background: rgba(255, 255, 255, 0.03);
      color: var(--t2);
    }
    .ds-menu-item.active {
      background: rgba(167, 139, 250, 0.08);
      color: var(--cyan);
    }
    .discord-sidebar .cur-tab {
      display: flex;
      align-items: center;
      gap: 8px;
      background: none;
      border: none;
      color: var(--t3);
      font-family: var(--font);
      font-size: 11px;
      font-weight: 600;
      padding: 6px 10px !important;
      border-radius: 6px;
      cursor: pointer;
      text-align: left;
      transition: all 0.15s;
      width: 100%;
      border-bottom: none !important;
    }
    .discord-sidebar .cur-tab:hover {
      background: rgba(255, 255, 255, 0.03) !important;
      color: var(--t2) !important;
    }
    .discord-sidebar .cur-tab.active {
      background: rgba(167, 139, 250, 0.08) !important;
      color: var(--cyan) !important;
    }
    .discord-main {
      flex: 1;
      display: flex;
      flex-direction: column;
      background: rgba(0, 0, 0, 0.06);
      min-width: 0;
      min-height: 0;
    }
    .dm-mobile-header {
      display: none;
      align-items: center;
      justify-content: space-between;
      padding: 10px 14px;
      background: var(--card);
      border-bottom: 1px solid var(--border);
    }
    .dmm-back {
      background: none;
      border: none;
      color: var(--t1);
      font-size: 14px;
      cursor: pointer;
      padding: 4px;
    }
    .dmm-title {
      font-size: 13px;
      font-weight: 700;
      color: var(--t1);
    }
    .dmm-close {
      background: none;
      border: none;
      color: var(--t3);
      font-size: 13px;
      cursor: pointer;
      padding: 4px;
    }
    .discord-content-area {
      flex: 1;
      display: flex;
      flex-direction: column;
      min-height: 0;
      overflow: hidden;
    }
    .discord-posts-area {
      padding: 14px;
      overflow-y: auto;
      flex: 1;
    }
    /* dash-main pakai grid saat grup aktif: topbar auto, konten 1fr */
    #dashMain.grup-active {
      display: grid !important;
      grid-template-rows: auto 1fr;
      overflow: hidden !important;
      padding: 0 !important;
      gap: 0 !important;
    }
    #dashMain.grup-active .topbar {
      padding: 10px 20px;
      border-bottom: 1px solid var(--border);
    }
    #page-grup.active {
      display: flex;
      flex-direction: column;
      min-height: 0;
      overflow: hidden;
    }
    #page-grup.active #grupContent {
      display: flex;
      flex-direction: column;
      flex: 1;
      min-height: 0;
      overflow: hidden;
    }
    #page-grup.active .discord-layout {
      flex: 1;
      height: auto !important;
      min-height: 0 !important;
      margin-bottom: 0 !important;
    }
    @media (max-width: 768px) {
      .discord-layout {
        height: calc(var(--real-vh, 100vh) - 180px);
        min-height: 400px;
      }
      .discord-servers-sidebar {
        display: none;
        border-right: 1px solid rgba(255, 255, 255, 0.05);
      }
      .discord-servers-sidebar.active {
        display: flex;
      }
      .discord-sidebar {
        display: none;
        width: calc(100% - 60px);
        border-right: none;
      }
      .discord-sidebar.active {
        display: flex;
      }
      .discord-main {
        display: none;
      }
      .discord-main.active {
        display: flex;
      }
      .dm-mobile-header {
        display: flex;
      }
    }

    /* â• GRUP — SUBGROUPS â• */
    .gg-panel {
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: 12px;
      margin-bottom: 12px;
      overflow: hidden;
    }

    .gg-hd {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 12px 16px;
      border-bottom: 1px solid var(--border);
    }

    .gg-hd-title {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .09em;
      text-transform: uppercase;
      color: var(--t2);
      flex: 1;
    }

    .gg-create-btn {
      height: 28px;
      padding: 0 13px;
      background: linear-gradient(135deg, rgba(192, 132, 252, .15), rgba(109, 40, 217, .15));
      border: 1px solid rgba(167, 139, 250, .28);
      border-radius: 7px;
      color: var(--cyan);
      font-size: 10px;
      font-weight: 700;
      cursor: pointer;
      font-family: var(--font);
      transition: all .15s;
      display: flex;
      align-items: center;
      gap: 5px;
    }

    .gg-create-btn:hover {
      background: linear-gradient(135deg, rgba(192, 132, 252, .26), rgba(109, 40, 217, .26));
    }

    .gg-scroll {
      display: flex;
      gap: 8px;
      overflow-x: auto;
      padding: 12px 16px;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: thin;
      scrollbar-color: rgba(147, 114, 240, .15) transparent;
    }

    .gg-scroll::-webkit-scrollbar {
      height: 3px;
    }

    .gg-scroll::-webkit-scrollbar-thumb {
      background: rgba(147, 114, 240, .18);
      border-radius: 2px;
    }

    .gg-card {
      flex-shrink: 0;
      width: 148px;
      background: rgba(255, 255, 255, .028);
      border: 1.5px solid rgba(255, 255, 255, .07);
      border-radius: 10px;
      padding: 12px 12px 10px;
      cursor: pointer;
      transition: all .18s;
      position: relative;
    }

    .gg-card:hover {
      border-color: rgba(167, 139, 250, .30);
      background: rgba(167, 139, 250, .06);
      transform: translateY(-1px);
    }

    .gg-card.active {
      border-color: rgba(167, 139, 250, .55);
      background: rgba(167, 139, 250, .11);
    }

    .gg-card-emoji {
      font-size: 22px;
      margin-bottom: 7px;
      display: block;
      line-height: 1;
    }

    .gg-card-photo {
      width: 22px;
      height: 22px;
      border-radius: 50%;
      object-fit: cover;
      margin-bottom: 7px;
      display: block;
    }

    .gg-card-name {
      font-size: 11px;
      font-weight: 700;
      color: var(--t1);
      margin-bottom: 3px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .gg-card-meta {
      font-size: 9px;
      color: var(--t3);
      display: flex;
      align-items: center;
      gap: 4px;
    }

    .gg-card-priv {
      position: absolute;
      top: 7px;
      right: 7px;
      font-size: 7px;
      font-weight: 700;
      padding: 2px 5px;
      border-radius: 4px;
      background: rgba(255, 176, 32, .10);
      color: var(--amber);
      border: 1px solid rgba(255, 176, 32, .20);
      letter-spacing: .05em;
    }

    .gg-joined-dot {
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: var(--green);
      flex-shrink: 0;
    }

    .gg-empty {
      padding: 16px 18px;
      font-size: 11px;
      color: var(--t3);
      font-style: italic;
    }

    /* Group view header */
    .gv-bar {
      display: none;
      align-items: center;
      gap: 12px;
      padding: 14px 16px;
      background: rgba(167, 139, 250, .04);
      border-bottom: 1px solid var(--border);
      margin-bottom: 0;
    }

    .gv-bar.show {
      display: flex;
    }

    .gv-emoji {
      font-size: 28px;
      flex-shrink: 0;
      line-height: 1;
    }

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

    .gv-name {
      font-size: 15px;
      font-weight: 700;
      color: var(--t1);
      font-family: var(--font-disp);
    }

    .gv-desc {
      font-size: 10px;
      color: var(--t3);
      margin-top: 2px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      max-width: 340px;
    }

    .gv-stats {
      font-size: 9px;
      color: var(--t3);
      margin-top: 4px;
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .gv-admin-badge {
      font-size: 7px;
      font-weight: 700;
      padding: 2px 6px;
      border-radius: 4px;
      background: rgba(255, 176, 32, .12);
      color: var(--amber);
      border: 1px solid rgba(255, 176, 32, .22);
      letter-spacing: .06em;
      text-transform: uppercase;
    }

    .gv-btn {
      height: 30px;
      padding: 0 13px;
      border-radius: 7px;
      font-size: 11px;
      font-weight: 700;
      cursor: pointer;
      font-family: var(--font);
      transition: all .15s;
      border: 1px solid;
      display: flex;
      align-items: center;
      gap: 5px;
    }

    .gv-btn.join {
      background: rgba(0, 229, 160, .08);
      border-color: rgba(0, 229, 160, .25);
      color: var(--green);
    }

    .gv-btn.join:hover {
      background: rgba(0, 229, 160, .16);
    }

    .gv-btn.leave {
      background: rgba(255, 68, 102, .06);
      border-color: rgba(255, 68, 102, .18);
      color: var(--red);
    }

    .gv-btn.leave:hover {
      background: rgba(255, 68, 102, .13);
    }

    .gv-btn.back {
      background: rgba(255, 255, 255, .04);
      border-color: rgba(255, 255, 255, .09);
      color: var(--t2);
    }

    .gv-btn.back:hover {
      background: rgba(255, 255, 255, .09);
    }

    .gv-btn.manage {
      background: rgba(192, 132, 252, .07);
      border-color: rgba(192, 132, 252, .18);
      color: var(--cyan);
    }

    .gv-btn.manage:hover {
      background: rgba(192, 132, 252, .14);
    }

    .gv-btn.requests {
      background: rgba(255, 176, 32, .07);
      border-color: rgba(255, 176, 32, .22);
      color: var(--amber);
      padding: 0 11px;
    }

    .gv-btn.requests:hover {
      background: rgba(255, 176, 32, .14);
    }

    .gv-req-badge {
      position: absolute;
      top: -6px;
      right: -6px;
      background: #ff3d5a;
      color: #fff;
      font-size: 8px;
      font-weight: 800;
      min-width: 16px;
      height: 16px;
      border-radius: 8px;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 0 4px;
      line-height: 1;
      pointer-events: none;
    }

    .gv-req-badge.show {
      display: flex;
    }

    .gv-avatar {
      width: 44px;
      height: 44px;
      border-radius: 10px;
      object-fit: cover;
      flex-shrink: 0;
      border: 1.5px solid rgba(167, 139, 250, .20);
    }

    /* Group requests modal */
    #grqModal {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, .72);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      z-index: 9200;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 16px;
    }

    #grqModal.open {
      display: flex;
    }

    /* Manage group modal */
    #cgModal {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, .72);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      z-index: 9100;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 16px;
    }

    #cgModal.open {
      display: flex;
    }

    .cg-box {
      width: 100%;
      max-width: 460px;
      background: #0e0b1c;
      border: 1px solid rgba(167, 139, 250, .18);
      border-radius: 16px;
      padding: 24px;
      max-height: 90vh;
      overflow-y: auto;
    }

    .cg-hd {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 20px;
    }

    .cg-title {
      font-size: 15px;
      font-weight: 700;
      color: var(--t1);
      font-family: var(--font-disp);
    }

    .cg-close {
      background: none;
      border: none;
      color: var(--t3);
      font-size: 18px;
      cursor: pointer;
      line-height: 1;
      padding: 0;
    }

    .cg-emoji-grid {
      display: flex;
      flex-wrap: wrap;
      gap: 7px;
      padding: 8px 0;
    }

    .cg-emoji-opt {
      width: 36px;
      height: 36px;
      border-radius: 8px;
      border: 1.5px solid rgba(255, 255, 255, .08);
      background: rgba(255, 255, 255, .03);
      font-size: 18px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all .14s;
    }

    .cg-emoji-opt:hover,
    .cg-emoji-opt.sel {
      border-color: rgba(167, 139, 250, .45);
      background: rgba(167, 139, 250, .12);
    }

    .cg-type-row {
      display: flex;
      gap: 8px;
    }

    .cg-type-btn {
      flex: 1;
      height: 38px;
      border-radius: 8px;
      border: 1.5px solid rgba(255, 255, 255, .09);
      background: rgba(255, 255, 255, .03);
      color: var(--t2);
      font-size: 11px;
      font-weight: 600;
      cursor: pointer;
      font-family: var(--font);
      transition: all .15s;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
    }

    .cg-type-btn.sel {
      border-color: rgba(167, 139, 250, .45);
      background: rgba(167, 139, 250, .10);
      color: var(--cyan);
    }

    /* Manage group modal */
    #mgModal {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, .72);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      z-index: 9100;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 16px;
    }

    #mgModal.open {
      display: flex;
    }

    .mg-box {
      width: 100%;
      max-width: 420px;
      background: #0e0b1c;
      border: 1px solid rgba(167, 139, 250, .18);
      border-radius: 16px;
      padding: 24px;
      max-height: 90vh;
      overflow-y: auto;
    }

    /* ═══════════════════════════════════════════
       DISCORD MODERN UPGRADE — grup modernization
       Adds on top of existing, nothing removed.
    ═══════════════════════════════════════════ */

    /* Server icon: overflow visible for tooltip */
    .discord-servers-sidebar .ds-server-icon {
      overflow: visible;
    }
    .discord-servers-sidebar .ds-server-icon[title]::after {
      content: attr(title);
      position: absolute;
      left: calc(100% + 14px);
      top: 50%;
      transform: translateY(-50%);
      background: #1a1635;
      color: var(--t1);
      font-size: 12px;
      font-weight: 700;
      padding: 6px 12px;
      border-radius: 8px;
      white-space: nowrap;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.15s 0.35s;
      z-index: 9999;
      border: 1px solid rgba(167,139,250,.18);
      box-shadow: 0 6px 24px rgba(0,0,0,.55);
      font-family: var(--font);
    }
    .discord-servers-sidebar .ds-server-icon[title]:hover::after {
      opacity: 1;
    }

    /* Server icon active pill — taller */
    .ds-server-icon.active .ds-server-indicator {
      height: 22px;
    }

    /* Add-group icon morphing squircle */
    .ds-server-icon.add-btn {
      border-radius: 50% !important;
      transition: border-radius 0.25s ease, background 0.2s ease !important;
    }
    .ds-server-icon.add-btn:hover {
      border-radius: 14px !important;
      background: rgba(0, 229, 160, 0.14) !important;
    }

    /* Desktop channel header (hidden on mobile) */
    .discord-channel-header {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 0 16px;
      border-bottom: 1px solid var(--border);
      background: rgba(0,0,0,.10);
      flex-shrink: 0;
      height: 48px;
      min-height: 48px;
    }
    .discord-channel-header .ch-hash {
      font-size: 22px;
      font-weight: 900;
      color: var(--t3);
      line-height: 1;
      flex-shrink: 0;
      margin-right: -2px;
    }
    .discord-channel-header .ch-name {
      font-size: 14px;
      font-weight: 700;
      color: var(--t1);
      flex-shrink: 0;
    }
    .discord-channel-header .ch-divider {
      width: 1px;
      height: 18px;
      background: rgba(255,255,255,.12);
      flex-shrink: 0;
      margin: 0 4px;
    }
    .discord-channel-header .ch-topic {
      font-size: 11px;
      color: var(--t3);
      flex: 1;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      min-width: 0;
    }
    .discord-channel-header .ch-actions {
      display: flex;
      gap: 2px;
      flex-shrink: 0;
      margin-left: 8px;
    }
    .discord-channel-header .ch-btn {
      width: 30px;
      height: 30px;
      border-radius: 7px;
      background: none;
      border: none;
      color: var(--t3);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      cursor: pointer;
      transition: color 0.15s, background 0.15s;
    }
    .discord-channel-header .ch-btn:hover {
      color: var(--t1);
      background: rgba(255,255,255,.06);
    }
    @media (max-width: 768px) {
      .discord-channel-header { display: none; }
    }

    /* Chat messages: Discord-style all-left layout */
    .chat-msg {
      max-width: 100% !important;
      flex-direction: row !important;
      align-self: flex-start !important;
      position: relative;
      padding: 1px 0;
    }
    .chat-msg.me {
      flex-direction: row !important;
      align-self: flex-start !important;
    }
    .chat-msg.me .chat-bubble {
      background: rgba(124, 58, 237, 0.16) !important;
      border-color: rgba(124, 58, 237, 0.26) !important;
      border-bottom-right-radius: 12px !important;
      border-bottom-left-radius: 3px !important;
    }
    .chat-msg.me .chat-meta {
      justify-content: flex-start !important;
    }

    /* Larger round avatar, top-aligned */
    .chat-avatar {
      width: 36px !important;
      height: 36px !important;
      border-radius: 50% !important;
      font-size: 12px !important;
      align-self: flex-start !important;
      margin-top: 3px;
    }

    /* Chat bubble: Discord border-radius */
    .chat-bubble {
      border-radius: 3px 12px 12px 12px !important;
      font-size: 13px !important;
      line-height: 1.5 !important;
      padding: 8px 14px !important;
    }

    /* Delete button: hidden, reveals on row hover */
    .chat-del-btn {
      opacity: 0 !important;
      position: absolute !important;
      top: -10px !important;
      right: 6px !important;
      background: rgba(20,15,42,0.97) !important;
      border: 1px solid rgba(255,61,90,.3) !important;
      border-radius: 7px !important;
      padding: 4px 10px !important;
      font-size: 10px !important;
      color: var(--red) !important;
      transition: opacity 0.15s ease !important;
      z-index: 10;
      cursor: pointer;
    }
    .chat-msg:hover .chat-del-btn {
      opacity: 1 !important;
    }

    /* Chat input: Discord filled style */
    .chat-input {
      border-radius: 8px !important;
      background: rgba(255,255,255,.08) !important;
      border-color: transparent !important;
      font-size: 13px !important;
      padding: 10px 14px !important;
    }
    .chat-input:focus {
      border-color: transparent !important;
      background: rgba(255,255,255,.11) !important;
    }

    /* Chat input row padding */
    .chat-input-row {
      padding: 10px 16px 14px !important;
    }

    /* Typing indicator */
    .ds-typing-indicator {
      height: 20px;
      padding: 0 16px;
      font-size: 10px;
      color: var(--t3);
      display: flex;
      align-items: center;
      gap: 6px;
      flex-shrink: 0;
      opacity: 0;
      transition: opacity 0.2s;
    }
    .ds-typing-indicator.visible {
      opacity: 1;
    }
    .ds-typing-dots {
      display: flex;
      gap: 3px;
    }
    .ds-typing-dots span {
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: var(--t3);
      animation: dsDotBounce 1.4s ease infinite;
    }
    .ds-typing-dots span:nth-child(2) { animation-delay: 0.16s; }
    .ds-typing-dots span:nth-child(3) { animation-delay: 0.32s; }
    @keyframes dsDotBounce {
      0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; }
      40% { transform: scale(1.0); opacity: 1; }
    }

    /* Bottom user panel in discord-sidebar */
    .ds-user-panel {
      margin-top: auto;
      padding: 8px 10px;
      border-top: 1px solid var(--border);
      display: flex;
      align-items: center;
      gap: 8px;
      border-radius: 6px;
      background: rgba(0,0,0,.12);
      flex-shrink: 0;
    }
    .ds-user-ava-wrap {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      flex-shrink: 0;
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
      background: rgba(139,92,246,.28);
      font-size: 12px;
      font-weight: 700;
      color: var(--t1);
    }
    .ds-user-ava-wrap img {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      object-fit: cover;
    }
    .ds-user-status-dot {
      position: absolute;
      bottom: -1px;
      right: -1px;
      width: 11px;
      height: 11px;
      border-radius: 50%;
      background: #23a559;
      border: 2px solid var(--bg);
      animation: ds-status-pulse 3s ease infinite;
    }
    @keyframes ds-status-pulse {
      0%, 100% { box-shadow: 0 0 0 0 rgba(35,165,89,0.4); }
      50% { box-shadow: 0 0 0 4px rgba(35,165,89,0); }
    }
    .ds-user-info {
      flex: 1;
      min-width: 0;
    }
    .ds-user-display-name {
      font-size: 12px;
      font-weight: 700;
      color: var(--t1);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .ds-user-plan-tag {
      font-size: 9px;
      color: var(--t3);
    }
    .ds-user-panel-btn {
      width: 26px;
      height: 26px;
      border-radius: 5px;
      background: none;
      border: none;
      color: var(--t3);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      cursor: pointer;
      transition: color 0.15s, background 0.15s;
      flex-shrink: 0;
    }
    .ds-user-panel-btn:hover {
      color: var(--t1);
      background: rgba(255,255,255,.07);
    }

    /* Post cards: Discord embed left accent */
    .gp-post {
      border-left: 3px solid transparent !important;
      transition: border-left-color 0.2s ease, box-shadow 0.16s ease !important;
    }
    .gp-post:hover {
      border-left-color: rgba(167,139,250,.55) !important;
    }

    /* Pill-style like & comment buttons */
    .gp-like-btn, .gp-comment-btn {
      border-radius: 20px !important;
      height: 28px !important;
      transition: all 0.14s ease !important;
    }
    .gp-like-btn:hover, .gp-like-btn.liked {
      transform: scale(1.04) !important;
    }

    /* Online status dots */
    .ds-online-dot {
      width: 9px; height: 9px;
      border-radius: 50%;
      background: #23a559;
      flex-shrink: 0;
      box-shadow: 0 0 5px rgba(35,165,89,.6);
    }
    .ds-offline-dot {
      width: 9px; height: 9px;
      border-radius: 50%;
      background: rgba(255,255,255,.18);
      flex-shrink: 0;
    }

    /* Member list section headers */
    .ds-member-section-hd {
      font-size: 9px;
      font-weight: 700;
      color: var(--t3);
      letter-spacing: 0.1em;
      text-transform: uppercase;
      padding: 10px 6px 4px;
    }

    /* Section-hd hover effect */
    .ds-section-hd {
      cursor: pointer;
      transition: color 0.15s;
    }
    .ds-section-hd:hover {
      color: var(--t2) !important;
    }

/* ════════════════════════════════════════════════════
   BLOCK 2 — Auth, Dashboard, Admin, Mobile CSS
   ════════════════════════════════════════════════════ */
  /* â•
   TraderXid — Combined Style Sheet
   Merged from: Login.html, Dashboard.html, Admin.html, Landing.html, Reset.html
   â• */

  /* ── SHARED DESIGN TOKENS ───────────────────────────────────────── */
  :root {
    --bg: #100e20;
    --bg1: #18143a;
    --glass: rgba(28, 20, 54, 0.62);
    --border: rgba(167, 139, 250, 0.18);
    --border2: rgba(167, 139, 250, 0.30);
    --cyan: #c084fc;
    --blue: #7c3aed;
    --green: #00e5a0;
    --red: #ff3d5a;
    --amber: #f59e0b;
    --violet: #a855f7;
    --accent: #c084fc;
    --accent2: #7c3aed;
    --t1: #ffffff;
    --t2: rgba(240, 232, 255, 0.96);
    --t3: rgba(220, 205, 255, 0.84);
    --text-1: rgba(255, 255, 255, 0.93);
    --text-2: rgba(210, 190, 250, 0.68);
    --text-3: rgba(148, 110, 232, 0.42);
    --r: 12px;
    --rs: 8px;
    --radius-sm: 10px;
    --radius-md: 14px;
    --radius-xl: 28px;
    --font: 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    --font-disp: 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    --font-body: 'SF Pro Text', sans-serif;
    --font-display: 'SF Pro Display', sans-serif;
    --font-mono: 'JetBrains Mono', monospace;
  }

  *,
  *::before,
  *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    -webkit-tap-highlight-color: transparent;
  }

  html {
    scroll-behavior: smooth;
  }

  html,
  body {
    height: 100%;
    background: var(--bg);
    font-family: var(--font);
    color: var(--t1);
    -webkit-font-smoothing: antialiased;
  }

  /* ── BACKGROUND EFFECTS ─────────────────────────────────────────── */
  .bg-scene {
    position: fixed;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
  }

  .orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(55px);
  }

  .orb-1 {
    width: 700px;
    height: 700px;
    background: radial-gradient(circle, rgba(109, 40, 217, 0.40) 0%, rgba(76, 29, 149, 0.16) 45%, transparent 70%);
    top: -200px;
    left: -180px;
    animation: od1 13s ease-in-out infinite;
  }

  .orb-2 {
    width: 580px;
    height: 580px;
    background: radial-gradient(circle, rgba(192, 132, 252, 0.22) 0%, rgba(139, 92, 246, 0.10) 45%, transparent 70%);
    bottom: -160px;
    right: -140px;
    animation: od2 11s ease-in-out infinite;
  }

  .orb-3 {
    width: 420px;
    height: 420px;
    background: radial-gradient(circle, rgba(124, 58, 237, 0.28) 0%, transparent 65%);
    top: 45%;
    left: 32%;
    animation: od1 16s ease-in-out infinite reverse;
  }

  .orb-4 {
    width: 360px;
    height: 360px;
    background: radial-gradient(circle, rgba(167, 139, 250, 0.18) 0%, transparent 65%);
    top: 15%;
    right: 8%;
    animation: od2 14s ease-in-out infinite;
  }

  .orb-5 {
    width: 280px;
    height: 280px;
    background: radial-gradient(circle, rgba(109, 40, 217, 0.15) 0%, transparent 65%);
    bottom: 25%;
    left: 15%;
    animation: od1 18s ease-in-out infinite;
  }

  @keyframes od1 {

    0%,
    100% {
      transform: translate(0, 0);
    }

    50% {
      transform: translate(28px, -38px);
    }
  }

  @keyframes od2 {

    0%,
    100% {
      transform: translate(0, 0);
    }

    50% {
      transform: translate(-22px, 28px);
    }
  }

  .bg-grid {
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: linear-gradient(rgba(139, 92, 246, 0.038) 1px, transparent 1px), linear-gradient(90deg, rgba(139, 92, 246, 0.038) 1px, transparent 1px);
    background-size: 48px 48px;
  }

  #cometCanvas,
  #bg-canvas {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    width: 100%;
    height: 100%;
  }

  .bg-radial {
    position: fixed;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: radial-gradient(ellipse 1000px 700px at -10% -20%, rgba(109, 40, 217, 0.28) 0%, transparent 55%), radial-gradient(ellipse 600px 600px at 110% 110%, rgba(139, 92, 246, 0.14) 0%, transparent 55%);
  }

  .bg-vignette {
    position: fixed;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: radial-gradient(ellipse 90% 90% at 50% 50%, transparent 60%, rgba(7, 7, 15, .62) 100%);
  }

  /* ── KEYFRAMES ──────────────────────────────────────────────────── */
  @keyframes spin {
    to {
      transform: rotate(360deg);
    }
  }

  @keyframes fadeUp {
    from {
      opacity: 0;
      transform: translateY(14px);
    }

    to {
      opacity: 1;
      transform: none;
    }
  }

  @keyframes pulse {

    0%,
    100% {
      opacity: 1;
    }

    50% {
      opacity: .3;
    }
  }

  @keyframes scaleIn {
    from {
      opacity: 0;
      transform: scale(.96);
    }

    to {
      opacity: 1;
      transform: none;
    }
  }

  @keyframes lineAnim {

    0%,
    100% {
      opacity: .1;
    }

    50% {
      opacity: .55;
    }
  }

  @keyframes lockPulse {

    0%,
    100% {
      box-shadow: 0 0 0 0 rgba(255, 176, 32, 0);
    }

    50% {
      box-shadow: 0 0 0 6px rgba(255, 176, 32, 0.1);
    }
  }

  @keyframes logoutIconPop {
    0% {
      transform: scale(0.6);
      opacity: 0;
    }

    60% {
      transform: scale(1.15);
    }

    100% {
      transform: scale(1);
      opacity: 1;
    }
  }

  @keyframes logoutPing {
    0% {
      opacity: .6;
      transform: scale(1);
    }

    100% {
      opacity: 0;
      transform: scale(1.18);
    }
  }

  @keyframes slideDown {
    from {
      opacity: 0;
      transform: translateY(-8px);
    }

    to {
      opacity: 1;
      transform: none;
    }
  }

  @keyframes slideIn {
    from {
      opacity: 0;
      transform: translateX(10px);
    }

    to {
      opacity: 1;
      transform: none;
    }
  }

  @keyframes loginFade {
    from {
      opacity: 0;
      transform: translateY(20px) scale(0.97);
    }

    to {
      opacity: 1;
      transform: none;
    }
  }

  @keyframes dotPulse {

    0%,
    100% {
      opacity: 1;
    }

    50% {
      opacity: .4;
    }
  }

  @keyframes logoPulse {

    0%,
    100% {
      box-shadow: 0 0 0 0 rgba(139, 92, 246, 0.4);
    }

    50% {
      box-shadow: 0 0 0 8px rgba(139, 92, 246, 0);
    }
  }

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

    100% {
      background-position: 200% center
    }
  }

  @keyframes glow-pulse {

    0%,
    100% {
      box-shadow: 0 0 40px rgba(124, 58, 237, .08)
    }

    50% {
      box-shadow: 0 0 60px rgba(167, 139, 250, .16)
    }
  }

  @keyframes wDropIn {
    0% {
      opacity: 0;
      transform: translateY(-32px) scale(.94);
    }

    60% {
      transform: translateY(6px) scale(1.01);
    }

    100% {
      opacity: 1;
      transform: none;
    }
  }

  @keyframes wPulseRing {

    0%,
    100% {
      box-shadow: 0 0 0 0 rgba(192, 132, 252, 0);
    }

    50% {
      box-shadow: 0 0 0 10px rgba(192, 132, 252, 0.08);
    }
  }

  .spin-ico {
    animation: spin .8s linear infinite;
    display: inline-block;
  }

  .dot-pulse {
    animation: dotPulse 2s ease infinite;
  }

  .logo-pulse {
    animation: logoPulse 3s ease infinite;
  }

  body.tab-hidden .orb {
    animation-play-state: paused !important;
  }

  /* ── APP LAYOUT ─────────────────────────────────────────────────── */
  #app {
    position: relative;
    z-index: 2;
    display: flex;
    height: var(--real-vh, 100vh);
    width: 100%;
    overflow: hidden;
  }

  .page-section {
    display: none;
  }

  .page-section.active {
    display: flex;
  }

  /* ── SIDEBAR ────────────────────────────────────────────────────── */
  .sidebar {
    width: 220px;
    flex-shrink: 0;
    background: rgba(20, 14, 40, 0.90);
    backdrop-filter: blur(52px) saturate(2.0);
    -webkit-backdrop-filter: blur(52px) saturate(2.0);
    border-right: 1px solid rgba(167, 139, 250, 0.15);
    display: flex;
    flex-direction: column;
    padding: 16px 8px;
    gap: 1px;
    position: relative;
    overflow: hidden;
    transition: width .2s cubic-bezier(.4, 0, .2, 1);
    box-shadow: 4px 0 60px rgba(0, 0, 0, .4);
  }

  .sidebar::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(192, 132, 252, 0.4), transparent);
  }

  .sidebar::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 1px;
    background: linear-gradient(180deg, transparent 0%, rgba(167, 139, 250, .55) 40%, rgba(109, 40, 217, .28) 70%, transparent 100%);
    animation: lineAnim 5s ease-in-out infinite;
  }

  .sidebar.collapsed {
    width: 52px;
  }

  .sb-logo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 8px;
    margin-bottom: 18px;
  }

  .sb-brand {
    display: flex;
    align-items: center;
    gap: 9px;
    overflow: hidden;
    white-space: nowrap;
  }

  .sb-icon {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    background: linear-gradient(135deg, var(--blue), var(--cyan));
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-disp);
    font-size: 11px;
    font-weight: 800;
    color: #fff;
    box-shadow: 0 0 20px rgba(147, 114, 240, .45);
  }

  .sb-name {
    font-family: var(--font-disp);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: -.03em;
    transition: opacity .2s;
  }

  .sb-name em {
    font-style: normal;
    background: linear-gradient(90deg, var(--cyan), var(--blue));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

  .sidebar.collapsed .sb-name {
    opacity: 0;
    pointer-events: none;
  }

  .sb-toggle {
    width: 20px;
    height: 20px;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(167, 139, 250, 0.18);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--t3);
    font-size: 8px;
    flex-shrink: 0;
    transition: all .15s;
  }

  .sb-toggle:hover {
    border-color: var(--cyan);
    color: var(--cyan);
  }

  .sb-plan {
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 4px;
    margin-top: 2px;
    display: inline-block;
    transition: opacity .2s;
  }

  .sb-plan.basic {
    color: var(--t2);
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .10);
  }

  .sb-plan.pro {
    color: var(--cyan);
    background: rgba(192, 132, 252, .09);
    border: 1px solid rgba(192, 132, 252, .20);
  }

  .sb-plan.elite {
    color: var(--amber);
    background: rgba(255, 176, 32, .09);
    border: 1px solid rgba(255, 176, 32, .20);
  }

  .sidebar.collapsed .sb-plan {
    opacity: 0;
  }

  .nav-sec {
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--t3);
    padding: 10px 10px 3px;
    white-space: nowrap;
    transition: opacity .2s;
  }

  .sidebar.collapsed .nav-sec {
    opacity: 0;
  }

  .nav-item {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 10px;
    border-radius: var(--rs);
    cursor: pointer;
    font-size: 12px;
    font-weight: 500;
    color: var(--t2);
    transition: all .14s;
    border: 1px solid transparent;
    white-space: nowrap;
  }

  .nav-item:hover {
    color: var(--t1);
    background: rgba(255, 255, 255, .055);
  }

  .nav-item.active {
    color: #fff;
    background: linear-gradient(135deg, rgba(124, 58, 237, .22), rgba(192, 132, 252, .10));
    border-color: rgba(167, 139, 250, .22);
    box-shadow: 0 0 20px rgba(147, 114, 240, .10);
  }

  .nav-item .ni {
    width: 16px;
    text-align: center;
    font-size: 11px;
    flex-shrink: 0;
  }

  .nav-item .nl {
    transition: opacity .2s;
  }

  .sidebar.collapsed .nl {
    opacity: 0;
  }

  .nav-item.locked {
    opacity: 0.45;
    cursor: not-allowed !important;
  }

  .nav-item .lock-icon {
    display: none;
    font-size: 8px;
    color: var(--amber);
    margin-left: auto;
    flex-shrink: 0;
  }

  .nav-item.locked .lock-icon {
    display: inline-flex !important;
  }

  .nav-badge {
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 2px 5px;
    border-radius: 3px;
    margin-left: 6px;
    flex-shrink: 0;
  }

  .badge-new {
    background: rgba(255, 176, 32, .12);
    border: 1px solid rgba(255, 176, 32, .25);
    color: var(--amber);
  }

  .badge-pro {
    background: rgba(192, 132, 252, .08);
    border: 1px solid rgba(192, 132, 252, .18);
    color: var(--cyan);
  }

  .plan-widget {
    margin: 4px 2px 8px;
    padding: 10px 12px;
    background: rgba(0, 80, 200, .07);
    border: 1px solid rgba(147, 114, 240, .12);
    border-radius: var(--rs);
    transition: opacity .2s;
  }

  .sidebar.collapsed .plan-widget {
    opacity: 0;
    pointer-events: none;
  }

  .user-card {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: var(--rs);
    cursor: pointer;
    transition: all .2s;
    overflow: hidden;
    flex-shrink: 0;
  }

  .user-card:hover {
    background: rgba(255, 50, 70, .08);
    border-color: rgba(255, 61, 90, .20);
  }

  .ava {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--blue), var(--cyan));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 800;
    color: #fff;
    flex-shrink: 0;
  }

  .uc-info {
    transition: opacity .2s;
    overflow: hidden;
    white-space: nowrap;
  }

  .sidebar.collapsed .uc-info {
    opacity: 0;
  }

  .uc-name {
    font-size: 11px;
    font-weight: 600;
  }

  .uc-role {
    font-size: 8px;
    color: var(--t3);
    font-weight: 500;
  }

  .sb-spacer {
    flex: 1;
  }

  /* ── MAIN CONTENT ───────────────────────────────────────────────── */
  .dash-main {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  .dash-main::-webkit-scrollbar {
    width: 3px;
  }

  .dash-main::-webkit-scrollbar-thumb {
    background: rgba(147, 114, 240, .18);
    border-radius: 2px;
  }

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

  .topbar-left {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .page-title {
    font-family: var(--font-disp);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -.03em;
  }

  .page-sub {
    font-size: 11px;
    color: var(--t3);
    margin-top: 1px;
    font-family: var(--font-mono);
  }

  .topbar-right {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .live-badge {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 5px 11px;
    background: rgba(0, 229, 160, .05);
    border: 1px solid rgba(0, 229, 160, .14);
    border-radius: 20px;
  }

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

  .live-txt {
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .1em;
    color: var(--green);
  }

  .refresh-btn {
    height: 30px;
    padding: 0 12px;
    background: rgba(192, 132, 252, .07);
    border: 1px solid rgba(192, 132, 252, .16);
    border-radius: 6px;
    color: var(--cyan);
    font-size: 10px;
    font-weight: 600;
    cursor: pointer;
    font-family: var(--font);
    display: flex;
    align-items: center;
    gap: 5px;
    transition: all .15s;
  }

  .refresh-btn:hover {
    background: rgba(192, 132, 252, .13);
  }

  .page-sec {
    display: none;
    flex-direction: column;
    gap: 10px;
    animation: fadeUp .25s ease both;
    position: relative;
  }

  .page-sec.active {
    display: flex;
  }

  /* ── STAT CARDS ─────────────────────────────────────────────────── */
  .stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
  }

  .stat-card {
    background: rgba(28, 18, 52, 0.78);
    backdrop-filter: blur(36px) saturate(1.8);
    -webkit-backdrop-filter: blur(36px) saturate(1.8);
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: var(--r);
    padding: 14px 16px;
    position: relative;
    overflow: hidden;
    transition: transform .18s, box-shadow .18s;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .22);
  }

  .stat-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .18), transparent);
  }

  .stat-card .sc-bar {
    position: absolute;
    top: 0;
    left: 20%;
    right: 20%;
    height: 2px;
    border-radius: 0 0 3px 3px;
  }

  .stat-card:hover {
    transform: translateY(-2px);
  }

  .stat-card.c {
    --ac: var(--cyan);
  }

  .stat-card.c .sc-bar {
    background: linear-gradient(90deg, transparent, var(--cyan), transparent);
    box-shadow: 0 0 14px var(--cyan);
  }

  .stat-card.g {
    --ac: var(--green);
  }

  .stat-card.g .sc-bar {
    background: linear-gradient(90deg, transparent, var(--green), transparent);
    box-shadow: 0 0 14px var(--green);
  }

  .stat-card.a {
    --ac: var(--amber);
  }

  .stat-card.a .sc-bar {
    background: linear-gradient(90deg, transparent, var(--amber), transparent);
    box-shadow: 0 0 14px var(--amber);
  }

  .stat-card.r {
    --ac: var(--red);
  }

  .stat-card.r .sc-bar {
    background: linear-gradient(90deg, transparent, var(--red), transparent);
    box-shadow: 0 0 14px var(--red);
  }

  .sc-label {
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--t3);
    margin-bottom: 6px;
  }

  .sc-val {
    font-family: var(--font-disp);
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -.03em;
    color: var(--ac, var(--t1));
  }

  .sc-hint {
    font-size: 9px;
    color: var(--t3);
    margin-top: 3px;
    font-family: var(--font-mono);
  }

  /* ── PANEL ──────────────────────────────────────────────────────── */
  .panel {
    background: rgba(26, 18, 50, 0.76);
    backdrop-filter: blur(36px) saturate(1.8);
    -webkit-backdrop-filter: blur(36px) saturate(1.8);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--r);
    padding: 12px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0, 0, 0, .20);
  }

  .panel::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(167, 139, 250, .28), rgba(255, 255, 255, .12), transparent);
  }

  .panel-hd {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
  }

  .panel-title {
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--cyan);
    display: flex;
    align-items: center;
    gap: 7px;
  }

  .panel-title::before {
    content: '';
    width: 2px;
    height: 11px;
    border-radius: 1px;
    background: linear-gradient(180deg, var(--cyan), var(--blue));
    box-shadow: 0 0 8px var(--cyan);
    flex-shrink: 0;
  }

  .g2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .g3 {
    display: grid;
    grid-template-columns: 5fr 3fr;
    gap: 10px;
  }

  .flex-col {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  /* ── TABLE ──────────────────────────────────────────────────────── */
  .dt {
    width: 100%;
    border-collapse: collapse;
    font-size: 11px;
  }

  .dt th {
    text-align: left;
    color: var(--t3);
    font-weight: 600;
    padding: 0 0 7px;
    border-bottom: 1px solid rgba(255, 255, 255, .05);
    font-size: 7px;
    text-transform: uppercase;
    letter-spacing: .15em;
  }

  .dt td {
    padding: 8px 4px 8px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .03);
    color: var(--t2);
    vertical-align: middle;
  }

  .dt td:first-child {
    color: var(--t1);
    font-weight: 600;
  }

  .dt tr:hover td {
    background: rgba(124, 58, 237, .05);
  }

  .dt tr:last-child td {
    border-bottom: none;
  }

  .pair-tag {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 4px;
    background: rgba(167, 139, 250, .08);
    border: 1px solid rgba(167, 139, 250, .16);
    color: var(--cyan);
  }

  .chip {
    display: inline-block;
    padding: 2px 7px;
    border-radius: 4px;
    font-size: 7px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
  }

  .chip.buy {
    background: rgba(192, 132, 252, .10);
    color: var(--cyan);
    border: 1px solid rgba(192, 132, 252, .22);
  }

  .chip.sell {
    background: rgba(255, 61, 90, .10);
    color: var(--red);
    border: 1px solid rgba(255, 61, 90, .22);
  }

  .chip.g {
    background: rgba(0, 229, 160, .10);
    color: var(--green);
    border: 1px solid rgba(0, 229, 160, .22);
  }

  .chip.r {
    background: rgba(255, 61, 90, .10);
    color: var(--red);
    border: 1px solid rgba(255, 61, 90, .22);
  }

  .chip.a {
    background: rgba(255, 176, 32, .10);
    color: var(--amber);
    border: 1px solid rgba(255, 176, 32, .22);
  }

  .pnl-pos {
    color: var(--green);
    font-weight: 700;
    font-family: var(--font-mono);
    font-size: 11px;
  }

  .pnl-neg {
    color: var(--red);
    font-weight: 700;
    font-family: var(--font-mono);
    font-size: 11px;
  }

  /* ── FORM ───────────────────────────────────────────────────────── */
  .f-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .f-row3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 10px;
  }

  .f-grp {
    margin-bottom: 10px;
  }

  .f-lbl {
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--t3);
    margin-bottom: 5px;
    display: block;
  }

  .f-inp,
  .field {
    width: 100%;
    height: 40px;
    background: rgba(255, 255, 255, .048);
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: var(--rs);
    color: var(--t1);
    font-family: var(--font);
    font-size: 13px;
    padding: 0 12px;
    outline: none;
    transition: border .18s;
    -webkit-appearance: none;
    appearance: none;
  }

  .f-inp:focus,
  .field:focus {
    border-color: rgba(167, 139, 250, .42);
    background: rgba(60, 20, 110, .10);
  }

  .f-inp::placeholder,
  .field::placeholder {
    color: var(--t3);
    font-size: 12px;
  }

  select.f-inp {
    cursor: pointer;
  }

  select.f-inp option {
    background: #0e0b1c;
  }

  textarea.f-inp {
    height: 80px;
    padding: 10px 12px;
    resize: vertical;
  }

  .filter-row {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    margin-bottom: 12px;
    align-items: center;
  }

  .filter-row .f-inp {
    height: 32px;
    font-size: 11px;
  }

  /* ── BUTTONS ────────────────────────────────────────────────────── */
  .btn-pri,
  .btn-primary {
    height: 42px;
    padding: 0 18px;
    background: linear-gradient(135deg, rgba(109, 40, 217, .88), rgba(167, 139, 250, .78));
    border: 1px solid rgba(192, 132, 252, .25);
    border-radius: var(--rs);
    color: #fff;
    font-family: var(--font);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: 100%;
    margin-top: 6px;
    transition: all .18s;
    box-shadow: 0 4px 20px rgba(130, 60, 220, .25);
  }

  .btn-pri:hover,
  .btn-primary:hover {
    box-shadow: 0 6px 28px rgba(147, 114, 240, .40);
  }

  .btn-pri:disabled,
  .btn-primary:disabled {
    opacity: .4;
    cursor: not-allowed;
  }

  .btn-sm {
    height: 26px;
    padding: 0 9px;
    border-radius: 5px;
    font-family: var(--font);
    font-size: 9px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid;
    transition: all .14s;
  }

  /* ── Trash button di history table ── */
  .hist-del-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px; height: 28px;
    border-radius: 7px;
    border: 1px solid rgba(255,61,90,.18);
    background: transparent;
    color: rgba(255,61,90,.45);
    font-size: 11px;
    cursor: pointer;
    transition: background .18s, color .18s, border-color .18s, transform .14s;
    outline: none;
  }
  .hist-del-btn:hover {
    background: rgba(255,61,90,.12);
    border-color: rgba(255,61,90,.45);
    color: #ff3d5a;
    transform: scale(1.08);
  }
  .hist-del-btn:active {
    transform: scale(.93);
    background: rgba(255,61,90,.22);
  }
  .hist-del-btn i {
    pointer-events: none;
  }
  /* Light mode */
  html[data-theme="light"] .hist-del-btn {
    border-color: rgba(198,40,40,.15);
    color: rgba(198,40,40,.4);
  }
  html[data-theme="light"] .hist-del-btn:hover {
    background: rgba(198,40,40,.08);
    border-color: rgba(198,40,40,.4);
    color: #c62828;
  }
  @media (prefers-reduced-motion: reduce) {
    .hist-del-btn { transition: none; }
    .hist-del-btn:hover { transform: none; }
  }

  .btn-b {
    background: rgba(192, 132, 252, .08);
    border-color: rgba(192, 132, 252, .20);
    color: var(--cyan);
  }

  .btn-r {
    background: rgba(255, 61, 90, .08);
    border-color: rgba(255, 61, 90, .20);
    color: var(--red);
  }

  .btn-g {
    background: rgba(0, 229, 160, .08);
    border-color: rgba(0, 229, 160, .20);
    color: var(--green);
  }

  .btn-sm:hover {
    opacity: .8;
  }


  /* ── TOAST ──────────────────────────────────────────────────────── */
  .toast {
    position: fixed;
    bottom: 18px;
    right: 18px;
    z-index: 9999;
    padding: 10px 16px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 600;
    opacity: 0;
    transition: opacity .3s, transform .3s;
    pointer-events: none;
    transform: translateY(6px);
  }

  .toast.show {
    opacity: 1;
    transform: none;
  }

  .toast.ok {
    background: rgba(0, 229, 160, .09);
    border: 1px solid rgba(0, 229, 160, .26);
    color: var(--green);
  }

  .toast.err {
    background: rgba(255, 61, 90, .09);
    border: 1px solid rgba(255, 61, 90, .26);
    color: var(--red);
  }

  .toast.info {
    background: rgba(192, 132, 252, .09);
    border: 1px solid rgba(192, 132, 252, .26);
    color: var(--cyan);
  }

  .alert {
    padding: 11px 13px;
    border-radius: var(--rs);
    font-size: 12px;
    line-height: 1.6;
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-bottom: 10px;
  }

  .alert-r {
    background: rgba(255, 61, 90, .06);
    border: 1px solid rgba(255, 61, 90, .18);
    color: var(--red);
  }

  .alert-g {
    background: rgba(0, 229, 160, .06);
    border: 1px solid rgba(0, 229, 160, .18);
    color: var(--green);
  }

  .alert-b {
    background: rgba(192, 132, 252, .06);
    border: 1px solid rgba(192, 132, 252, .18);
    color: var(--cyan);
  }

  /* ── MODAL ──────────────────────────────────────────────────────── */
  .modal-ov {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 500;
    background: rgba(0, 0, 0, .72);
    backdrop-filter: blur(14px);
    align-items: center;
    justify-content: center;
  }

  .modal-ov.open {
    display: flex;
  }

  .modal {
    background: rgba(22, 16, 44, 0.95);
    backdrop-filter: blur(56px) saturate(2.0);
    border: 1px solid rgba(167, 139, 250, .18);
    border-radius: 18px;
    padding: 22px;
    width: 100%;
    max-width: 420px;
    animation: scaleIn .22s ease both;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .6);
    position: relative;
    max-height: 90vh;
    overflow-y: auto;
  }

  .modal::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(167, 139, 250, .30), rgba(255, 255, 255, .12), transparent);
    border-radius: 18px 18px 0 0;
  }

  .modal-title {
    font-family: var(--font-disp);
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 4px;
  }

  .modal-sub {
    font-size: 12px;
    color: var(--t2);
    margin-bottom: 18px;
  }

  .modal-foot {
    display: flex;
    gap: 8px;
    margin-top: 16px;
  }

  .btn-ms {
    flex: 1;
    height: 40px;
    background: linear-gradient(135deg, rgba(109, 40, 217, .88), rgba(167, 139, 250, .78));
    border: 1px solid rgba(192, 132, 252, .25);
    border-radius: var(--rs);
    color: #fff;
    font-family: var(--font);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
  }

  .btn-mc {
    height: 40px;
    padding: 0 16px;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: var(--rs);
    color: var(--t2);
    font-family: var(--font);
    font-size: 12px;
    cursor: pointer;
    transition: all .15s;
  }

  .btn-mc:hover {
    background: rgba(255, 255, 255, .09);
    color: var(--t1);
  }

  /* ── LANDING PAGE ───────────────────────────────────────────────── */
  nav {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 9999 !important;
    background: rgba(7, 7, 15, 0.92);
    backdrop-filter: blur(40px) saturate(1.6);
    -webkit-backdrop-filter: blur(40px) saturate(1.6);
    border-bottom: 1px solid rgba(167, 139, 250, 0.1);
    padding: 14px 0;
    box-shadow: 0 4px 32px rgba(0, 0, 0, 0.4);
  }

  nav::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(192, 132, 252, 0.4), rgba(124, 58, 237, 0.3), transparent);
  }

  .nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
  }

  .nav-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
  }

  .nav-logo-icon {
    width: 34px;
    height: 34px;
    background: linear-gradient(135deg, #7c3aed, #c084fc);
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: #fff;
    box-shadow: 0 0 20px rgba(139, 92, 246, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  }

  .nav-logo-name {
    font-family: var(--font-disp);
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -.02em;
    color: #fff;
  }

  .nav-logo-name span {
    background: linear-gradient(90deg, #c084fc, #7c3aed);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

  .nav-links {
    display: flex;
    align-items: center;
    gap: 4px;
  }

  .nav-link {
    padding: 7px 14px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 600;
    color: rgba(210, 190, 250, 0.6);
    text-decoration: none;
    transition: all .15s;
    cursor: pointer;
    background: none;
    border: none;
    font-family: inherit;
  }

  .nav-link:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.04);
  }

  .nav-cta {
    padding: 8px 20px;
    background: linear-gradient(135deg, rgba(124, 58, 237, 0.82), rgba(167, 139, 250, 0.72));
    border: 1px solid rgba(167, 139, 250, 0.24);
    border-radius: 9px;
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    text-decoration: none;
    transition: all .18s;
    box-shadow: 0 0 20px rgba(139, 92, 246, 0.22);
    cursor: pointer;
    font-family: inherit;
  }

  .nav-cta:hover {
    box-shadow: 0 0 32px rgba(167, 139, 250, 0.42);
  }

  .hero {
    padding: 96px 0 80px;
    text-align: center;
  }

  .hero h1 {
    font-family: var(--font-disp);
    font-size: clamp(36px, 6vw, 68px);
    font-weight: 900;
    letter-spacing: -.04em;
    line-height: 1.08;
    margin-bottom: 22px;
  }

  .hero-sub {
    font-size: clamp(15px, 2vw, 18px);
    color: rgba(210, 190, 250, 0.62);
    max-width: 560px;
    margin: 0 auto 40px;
    line-height: 1.75;
  }

  .hero-btns {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
  }

  .container {
    max-width: 1080px;
    margin: 0 auto;
    padding: 0 24px;
  }

  .rel {
    position: relative;
    z-index: 2;
  }

  .cyan {
    background: linear-gradient(90deg, #a855f7, #c084fc 33%, #e879f9 50%, #c084fc 66%, #a855f7);
    background-size: 250% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: shimmer 4s linear infinite;
  }

  /* ── MOBILE ─────────────────────────────────────────────────────── */
  .bottom-nav {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 300;
    background: rgba(8, 5, 18, 0.90);
    backdrop-filter: blur(36px) saturate(2.0);
    border-top: 1px solid rgba(167, 139, 250, 0.13);
    padding: 8px 0 max(8px, env(safe-area-inset-bottom, 8px));
    box-shadow: 0 -4px 32px rgba(0, 0, 0, .45);
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
  }

  .bottom-nav-items {
    display: flex;
    align-items: stretch;
    justify-content: space-around;
  }

  .bn-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 4px 2px;
    cursor: pointer;
    color: rgba(185, 210, 242, 0.68);
    transition: all .18s;
    border: none;
    background: none;
    font-family: var(--font);
    -webkit-tap-highlight-color: transparent;
  }

  .bn-item.active {
    color: var(--cyan);
  }

  .bn-icon {
    width: 36px;
    height: 28px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    transition: all .18s;
  }

  .bn-label {
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .02em;
  }

  .bn-item.input-btn .bn-icon {
    width: 44px;
    height: 34px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--blue), var(--cyan));
    color: #fff;
    font-size: 16px;
    box-shadow: 0 4px 16px rgba(147, 114, 240, .38);
  }

  @media(max-width:680px) {
    .bottom-nav {
      display: block;
    }
  }

  body.is-mobile .sidebar {
    position: fixed !important;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 400;
    width: 240px !important;
    transform: translateX(-100%) !important;
    display: flex !important;
    padding-top: max(18px, env(safe-area-inset-top, 18px));
    transition: transform .25s cubic-bezier(.4, 0, .2, 1);
  }

  body.is-mobile .sidebar.mob-open {
    transform: translateX(0) !important;
    box-shadow: 8px 0 60px rgba(0, 0, 0, .85) !important;
  }

  body.is-mobile .dash-main {
    padding: max(12px, env(safe-area-inset-top, 0px)) 12px calc(72px + env(safe-area-inset-bottom, 8px)) 12px !important;
    gap: 12px;
    width: 100%;
  }

  body.is-mobile .bottom-nav {
    display: block !important;
  }

  body.is-mobile .stat-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px;
  }

  body.is-mobile .g2,
  .g3 {
    grid-template-columns: 1fr !important;
  }

  body.is-mobile .f-row,
  .f-row3 {
    grid-template-columns: 1fr !important;
  }

  /* ── ECON CALENDAR ───────────────────────────────────────────────── */
  .econ-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .03);
  }

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

  .econ-time {
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    color: var(--t3);
    width: 46px;
    flex-shrink: 0;
  }

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

  .dot-high {
    background: var(--red);
  }

  .dot-med {
    background: var(--amber);
  }

  .dot-low {
    background: rgba(130, 170, 230, .35);
  }

  .econ-body {
    flex: 1;
    min-width: 0;
  }

  .econ-event {
    font-size: 11px;
    font-weight: 600;
    color: var(--t1);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .econ-country {
    font-size: 9px;
    color: var(--t3);
    margin-top: 1px;
  }

  .econ-nums {
    text-align: right;
    font-family: var(--font-mono);
    font-size: 9px;
    flex-shrink: 0;
  }

  .econ-act.pos {
    color: var(--green);
  }

  .econ-act.neg {
    color: var(--red);
  }

  .econ-act.pend {
    color: var(--t3);
  }

  /* ── HEATMAP ─────────────────────────────────────────────────────── */
  .heatmap-grid {
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    gap: 3px;
  }
  /* Currency strength override — konten dirender via JS, tidak pakai grid ini */
  #analystHeatmapGrid { display: block; }

  /* ══════════════════════════════════════════
     MOBILE FIXES — typography & layout
  ══════════════════════════════════════════ */

  /* FXB Dashboard — stack vertical di mobile */
  body.is-mobile .fxb-top { flex-direction:column !important; height:auto !important; }
  body.is-mobile .fxb-left { width:100% !important; border-right:none !important; border-bottom:1px solid var(--border); max-height:280px; overflow-y:auto; }
  body.is-mobile .fxb-chart-area, body.is-mobile #fxbChartSingle { height:220px !important; }
  body.is-mobile .fxb-right { height:260px; }
  body.is-mobile #fxbChartDual { flex-direction:column !important; }
  body.is-mobile #fxbChartDual > div { min-width:unset !important; }
  body.is-mobile #fxbChartDual canvas { height:180px !important; }

  /* FXB font scale-up di mobile (min 9px) */
  body.is-mobile .fxb-row { font-size:11px !important; padding:4px 0 !important; }
  body.is-mobile .fxb-row-label { font-size:11px !important; }
  body.is-mobile .fxb-row-val { font-size:11px !important; }
  body.is-mobile .fxb-section-lbl { font-size:9px !important; }
  body.is-mobile .fxb-tab { font-size:10px !important; padding:8px 6px !important; }
  body.is-mobile .fxb-ctab { font-size:10px !important; padding:8px 10px !important; }
  body.is-mobile .fxb-btab { font-size:10px !important; padding:8px 10px !important; }
  body.is-mobile .fxb-bpanel { padding:10px 12px !important; }

  /* Advanced Statistics — 1 kolom di mobile */
  body.is-mobile .fxb-adv-grid { grid-template-columns:1fr !important; }
  body.is-mobile .fxb-adv-col { padding:0 !important; }
  body.is-mobile .fxb-adv-col + .fxb-adv-col { border-left:none !important; border-top:1px solid rgba(255,255,255,.05); margin-top:8px; padding-top:8px !important; }
  body.is-mobile .fxb-adv-lbl { font-size:10px !important; }
  body.is-mobile .fxb-adv-val { font-size:10px !important; }
  body.is-mobile .fxb-adv-hd { overflow-x:auto; }
  body.is-mobile .fxb-atab { font-size:9px !important; padding:8px 10px !important; }

  /* Goals grid — 1 kolom di mobile */
  body.is-mobile #fxbGoalsGrid { grid-template-columns:1fr !important; }
  body.is-mobile .fxb-ror-grid { grid-template-columns:1fr 1fr !important; }

  /* History table — scroll + font readable */
  body.is-mobile #page-history .dt th { font-size:8px !important; padding:4px 6px !important; }
  body.is-mobile #page-history .dt td { font-size:10px !important; padding:5px 6px !important; }
  body.is-mobile .filter-row { flex-wrap:wrap !important; gap:6px !important; }

  body.is-mobile .filter-row .f-inp { flex:1; min-width:100px; }
  body.is-mobile .filter-row .cur-tabs { width:100%; }

  /* Trading/Periods tables scroll */
  body.is-mobile .fxb-tbl th { font-size:8px !important; padding:3px 6px !important; }
  body.is-mobile .fxb-tbl td { font-size:10px !important; padding:4px 6px !important; }
  body.is-mobile .fxb-periods-grid { grid-template-columns:1fr !important; }

  /* Input form session pills */
  body.is-mobile .sess-pill { font-size:9px !important; padding:6px 4px !important; }

  /* Subscription 3-col → 1-col */
  body.is-mobile .sub-grid { grid-template-columns:1fr !important; }

  /* FXB legend font */
  body.is-mobile .fxb-legend-item { font-size:9px !important; }
  body.is-mobile .fxb-legend { padding:4px 10px 6px !important; gap:8px !important; }

  /* ══════════════════════════════════════════
     EXPORT / IMPORT PAGE
  ══════════════════════════════════════════ */
  .ei-tabs { display:flex; border-bottom:1px solid var(--border); margin-bottom:20px; }
  .ei-tab { padding:10px 18px; font-size:11px; font-weight:700; color:var(--t3); background:none; border:none; cursor:pointer; font-family:var(--font); border-bottom:2px solid transparent; transition:color .14s,border-color .14s; }
  .ei-tab.active { color:var(--t1); border-bottom-color:var(--cyan); }
  .ei-tab:not(.active):hover { color:var(--t2); }
  .ei-panel { display:none; }
  .ei-panel.active { display:block; }

  /* Export buttons row */
  .ei-export-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
  .ei-export-btn { display:flex; flex-direction:column; align-items:center; gap:8px; padding:18px 12px; border-radius:10px; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.02); cursor:pointer; font-family:var(--font); transition:all .16s; }
  .ei-export-btn:hover { border-color:rgba(192,132,252,.30); background:rgba(192,132,252,.06); transform:translateY(-1px); }
  .ei-export-icon { width:42px; height:42px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:18px; }
  .ei-export-label { font-size:12px; font-weight:700; color:var(--t1); }
  .ei-export-desc { font-size:10px; color:var(--t3); text-align:center; line-height:1.4; }

  /* Drop zone */
  .ei-dropzone { border:1.5px dashed rgba(167,139,250,.25); border-radius:10px; padding:24px; text-align:center; cursor:pointer; transition:all .18s; background:rgba(124,58,237,.02); }
  .ei-dropzone:hover, .ei-dropzone.dz-hover { border-color:rgba(167,139,250,.5); background:rgba(124,58,237,.06); }
  .ei-dropzone-icon { width:44px; height:44px; border-radius:12px; background:rgba(167,139,250,.08); border:1px solid rgba(167,139,250,.18); display:flex; align-items:center; justify-content:center; margin:0 auto 10px; }

  /* Loading bar */
  /* ── MT5 Import Loading Bar ── */
  .ei-progress {
    margin-top:16px;
    background:rgba(139,92,246,.06);
    border:1px solid rgba(139,92,246,.18);
    border-radius:12px;
    padding:14px 16px;
    animation:fadeInUp .2s ease;
  }
  @keyframes fadeInUp { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:none} }
  .ei-progress-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
  .ei-progress-label {
    font-size:11px; font-weight:600; color:var(--t1);
    display:flex; align-items:center; gap:7px;
  }
  .ei-progress-label::before {
    content:'';
    display:inline-block; width:6px; height:6px; border-radius:50%;
    background:var(--cyan);
    animation:pulse-dot 1.2s ease infinite;
    flex-shrink:0;
  }
  @keyframes pulse-dot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(.7)} }
  .ei-progress-pct { font-size:12px; font-family:var(--font-mono); font-weight:800; color:var(--cyan); }
  .ei-progress-bar {
    height:7px;
    background:rgba(255,255,255,.07);
    border-radius:4px;
    overflow:hidden;
    box-shadow:inset 0 1px 2px rgba(0,0,0,.3);
  }
  .ei-progress-fill {
    height:100%; border-radius:4px;
    background:linear-gradient(90deg,#7c3aed 0%,#8b5cf6 40%,#00e5a0 100%);
    transition:width .35s cubic-bezier(.4,0,.2,1);
    position:relative;
  }
  .ei-progress-fill::after {
    content:'';
    position:absolute; inset:0;
    background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.35) 50%,transparent 100%);
    background-size:200% 100%;
    animation:shimmer 1.4s ease infinite;
  }
  @keyframes shimmer { 0%{background-position:200%} 100%{background-position:-200%} }
  .ei-progress-sub {
    font-size:9px; color:var(--t3); margin-top:8px;
    font-family:var(--font-mono); letter-spacing:.02em;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }

  /* Preview table */
  .ei-preview { margin-top:14px; }
  .ei-preview-hd { font-size:11px; color:var(--t2); margin-bottom:8px; }
  .ei-preview-wrap { overflow-x:auto; max-height:200px; border:1px solid rgba(255,255,255,.06); border-radius:8px; }

  /* Currency selector compact */
  .ei-cur-row { display:flex; gap:6px; margin-top:12px; }
  .ei-cur-btn { flex:1; height:30px; border-radius:6px; border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.04); color:var(--t2); font-family:var(--font); font-size:11px; font-weight:700; cursor:pointer; transition:all .14s; }
  .ei-cur-btn.active { border-color:rgba(192,132,252,.30); background:rgba(192,132,252,.10); color:var(--cyan); }

  @media(max-width:640px) {
    .ei-export-grid { grid-template-columns:1fr; }
    .ei-tab { padding:10px 12px; font-size:10px; }
  }

  /* Stat cards mobile — kembalikan ke vertical stack, bukan flex row */
  body.is-mobile #homeStatGrid .stat-card:not([style*="display:none"]):not([style*="display: none"]) {
    display:block !important;
    padding:8px 10px !important;
  }
  body.is-mobile #homeStatGrid .sc-label { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  body.is-mobile #homeStatGrid .sc-hint { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:8px !important; }
  body.is-mobile #homeStatGrid .sc-val { font-size:13px !important; line-height:1.2; }

  /* Sembunyikan hamburger di mobile — sudah ada bottom bar */
  body.is-mobile .mob-menu { display:none !important; }

  /* ── Stat cards compact override ── */
  #homeStatGrid {
    gap: 6px !important;
    margin-bottom: 10px;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)) !important;
  }
  #homeStatGrid .stat-card:not([style*="display:none"]):not([style*="display: none"]) {
    padding: 7px 10px !important;
    border-radius: 8px !important;
    display: block !important;
    min-width: 0;
    overflow: hidden;
  }
  #homeStatGrid .stat-card .sc-bar {
    left: 0 !important; right: 0 !important; height: 1.5px !important;
  }
  #homeStatGrid .sc-label {
    font-size: 7px !important;
    margin-bottom: 2px !important;
    letter-spacing: .12em !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  #homeStatGrid .sc-val {
    font-size: 14px !important;
    letter-spacing: -.02em !important;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  #homeStatGrid .sc-hint {
    font-size: 8px !important;
    margin-top: 1px !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  #homeStatGrid .sc-spark { display: none !important; }
  #homeStatGrid .stat-card > .sc-bar + * {
    flex: 1; min-width: 0;
  }

  /* ═══════════════════════════════════════════════════════
     FXB DASHBOARD — MyFXBook-style Overview
  ═══════════════════════════════════════════════════════ */
  .fxb-wrap { display:flex; flex-direction:column; gap:0; }

  /* Top area: left panel + right chart */
  .fxb-top { display:flex; gap:0; border-radius:12px; overflow:hidden; border:1px solid var(--border); background:var(--card); height:340px; }

  /* Left panel — cukup lebar untuk dual value */
  .fxb-left { width:250px; flex-shrink:0; border-right:1px solid var(--border); display:flex; flex-direction:column; overflow:hidden; }
  .fxb-panel { display:none; flex:1; overflow-y:auto; padding:10px 12px; }
  .fxb-tabs { display:flex; border-bottom:1px solid var(--border); }
  .fxb-tab { flex:1; padding:8px 4px; font-size:9px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--t3); background:none; border:none; cursor:pointer; font-family:var(--font); border-bottom:2px solid transparent; transition:color .14s,border-color .14s; }
  .fxb-tab.active { color:var(--cyan); border-bottom-color:var(--cyan); }
  .fxb-tab:not(.active):hover { color:var(--t2); }
  .fxb-panel { display:none; flex:1; overflow-y:auto; padding:10px 12px; }
  .fxb-panel.active { display:block; }

  /* Stats rows — compact */
  .fxb-row { display:flex; justify-content:space-between; align-items:center; padding:3px 0; font-size:10px; }
  .fxb-row + .fxb-row { border-top:1px solid rgba(255,255,255,.035); }
  .fxb-row-label { color:var(--t3); font-size:10px; }
  .fxb-row-val { font-family:var(--font-mono); font-weight:700; font-size:10px; text-align:right; }
  .fxb-row-val.pos { color:var(--green); }
  .fxb-row-val.neg { color:var(--red); }
  .fxb-row-val.neu { color:var(--t2); }
  .fxb-row-val.dim { color:var(--t3); }
  .fxb-divider { height:1px; background:rgba(255,255,255,.05); margin:7px 0; }
  .fxb-section-lbl { font-size:7px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:rgba(192,132,252,.5); margin-bottom:4px; margin-top:2px; }

  /* Balance input */
  .fxb-balance-row { display:flex; align-items:center; gap:5px; padding:5px 0; }
  .fxb-balance-inp { flex:1; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.09); border-radius:6px; padding:4px 8px; font-size:10px; font-family:var(--font-mono); color:var(--t1); outline:none; }
  .fxb-balance-inp:focus { border-color:rgba(192,132,252,.35); }
  .fxb-live-btn { height:26px; padding:0 8px; border-radius:6px; border:1px solid rgba(0,229,160,.25); background:rgba(0,229,160,.07); color:var(--green); font-size:8px; font-weight:700; cursor:pointer; font-family:var(--font); transition:all .15s; white-space:nowrap; }
  .fxb-live-btn:hover { background:rgba(0,229,160,.15); }
  .fxb-live-btn.loading { opacity:.6; pointer-events:none; }

  /* Right chart panel */
  .fxb-right { flex:1; display:flex; flex-direction:column; min-width:0; }
  .fxb-chart-tabs { display:flex; align-items:center; border-bottom:1px solid var(--border); padding:0 4px; gap:0; flex-shrink:0; }
  .fxb-ctab { padding:8px 12px; font-size:10px; font-weight:700; color:var(--t3); background:none; border:none; cursor:pointer; font-family:var(--font); border-bottom:2px solid transparent; transition:color .14s,border-color .14s; white-space:nowrap; }
  .fxb-ctab.active { color:var(--t1); border-bottom-color:var(--cyan); }
  .fxb-ctab:not(.active):hover { color:var(--t2); }
  .fxb-chart-area { flex:1; position:relative; padding:10px 12px; min-height:0; }
  .fxb-chart-area canvas { width:100% !important; }
  .fxb-legend { display:flex; gap:10px; flex-wrap:wrap; padding:5px 12px 8px; border-top:1px solid rgba(255,255,255,.04); }
  .fxb-legend-item { display:flex; align-items:center; gap:4px; font-size:8px; color:var(--t3); }
  .fxb-legend-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0; }

  /* Bottom section */
  .fxb-bottom { border:1px solid var(--border); border-radius:12px; background:var(--card); margin-top:8px; overflow:hidden; }
  .fxb-btabs { display:flex; border-bottom:1px solid var(--border); padding:0 4px; }
  .fxb-btab { padding:8px 14px; font-size:10px; font-weight:700; color:var(--t3); background:none; border:none; cursor:pointer; font-family:var(--font); border-bottom:2px solid transparent; transition:color .14s,border-color .14s; }
  .fxb-btab.active { color:var(--t1); border-bottom-color:var(--cyan); }
  .fxb-btab:not(.active):hover { color:var(--t2); }
  .fxb-bpanel { display:none; padding:12px 14px; }
  .fxb-bpanel.active { display:block; }

  /* Trading tab table */
  .fxb-tbl { width:100%; border-collapse:collapse; font-size:10.5px; table-layout:auto; }
  .fxb-tbl th { text-align:left; font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--t3); padding:3px 8px 6px; border-bottom:1px solid rgba(255,255,255,.06); white-space:nowrap; }
  .fxb-tbl th:nth-child(2),
  .fxb-tbl th:nth-child(3) { text-align:right; }
  .fxb-tbl th:last-child { text-align:right; }
  .fxb-tbl td { padding:5px 8px; border-bottom:1px solid rgba(255,255,255,.04); color:var(--t2); font-family:var(--font-mono); font-size:10.5px; white-space:nowrap; }
  .fxb-tbl td:nth-child(2), .fxb-tbl td:nth-child(3), .fxb-tbl td:last-child { text-align:right; }
  .fxb-tbl tr:last-child td { border-bottom:none; }
  .fxb-tbl tr:hover td { background:rgba(255,255,255,.02); }

  /* Periods tab */
  .fxb-periods-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }

  /* Goals tab */
  .fxb-goal { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.07); border-radius:9px; padding:11px 12px; margin-bottom:8px; }
  .fxb-goal-hd { display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
  .fxb-goal-title { font-size:10px; font-weight:700; color:var(--t2); }
  .fxb-goal-val { font-size:10px; font-family:var(--font-mono); color:var(--t1); }
  .fxb-goal-bar { height:5px; background:rgba(255,255,255,.07); border-radius:3px; overflow:hidden; }
  .fxb-goal-fill { height:100%; border-radius:3px; transition:width .6s ease; }
  .fxb-goal-inp { display:flex; gap:6px; margin-top:8px; align-items:center; }
  .fxb-goal-inp input { flex:1; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.09); border-radius:6px; padding:4px 8px; font-size:10px; font-family:var(--font-mono); color:var(--t1); outline:none; }
  .fxb-goal-inp input:focus { border-color:rgba(192,132,252,.35); }

  /* Session pill buttons */
  .sess-pill { flex:1; padding:7px 6px; border-radius:8px; border:1px solid rgba(255,255,255,.09); background:rgba(255,255,255,.03); color:var(--t2); font-size:10px; font-weight:700; cursor:pointer; font-family:var(--font); transition:all .15s; text-align:center; white-space:nowrap; }
  .sess-pill:hover { border-color:rgba(192,132,252,.25); background:rgba(192,132,252,.06); color:var(--t1); }
  .sess-pill.active, .sess-pill:focus { border-color:rgba(192,132,252,.40); background:rgba(192,132,252,.12); color:var(--cyan); outline:none; }
  .sess-pill.s-london.active { border-color:rgba(245,158,11,.35); background:rgba(245,158,11,.08); color:var(--amber); }
  .sess-pill.s-ny.active { border-color:rgba(0,229,160,.30); background:rgba(0,229,160,.07); color:var(--green); }

  /* Input form 2-col responsive */
  @media(max-width:640px) {
    #page-input .panel > div[style*="grid-template-columns:1fr 1fr"] { grid-template-columns:1fr !important; gap:16px !important; }
  }

  .fxb-cur-btn { padding:3px 9px; font-size:9px; font-weight:700; font-family:var(--font); border-radius:5px; border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.03); color:var(--t3); cursor:pointer; transition:all .14s; }
  .fxb-cur-btn.active { background:rgba(192,132,252,.12); border-color:rgba(192,132,252,.30); color:var(--cyan); }
  .fxb-cur-btn:not(.active):hover { color:var(--t2); border-color:rgba(255,255,255,.16); }

  /* ── Advanced Statistics ── */
  .fxb-adv { border:1px solid var(--border); border-radius:12px; background:var(--card); margin-top:12px; overflow:hidden; }
  .fxb-adv-hd { display:flex; align-items:center; border-bottom:1px solid var(--border); overflow-x:auto; scrollbar-width:none; }
  .fxb-adv-hd::-webkit-scrollbar { display:none; }
  .fxb-adv-title { font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--t3); padding:10px 16px; white-space:nowrap; border-right:1px solid var(--border); flex-shrink:0; }
  .fxb-atab { padding:10px 14px; font-size:10px; font-weight:700; color:var(--t3); background:none; border:none; cursor:pointer; font-family:var(--font); border-bottom:2px solid transparent; transition:color .14s,border-color .14s; white-space:nowrap; flex-shrink:0; }
  .fxb-atab.active { color:var(--t1); border-bottom-color:var(--cyan); }
  .fxb-atab:not(.active):hover { color:var(--t2); }
  .fxb-apanel { display:none; padding:14px 16px; }
  .fxb-apanel.active { display:block; }

  /* Stats grid — 3 col */
  .fxb-adv-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; }
  .fxb-adv-col { padding:0 12px; }
  .fxb-adv-col + .fxb-adv-col { border-left:1px solid rgba(255,255,255,.05); }
  .fxb-adv-row { display:flex; justify-content:space-between; align-items:center; padding:5px 0; font-size:11px; }
  .fxb-adv-row + .fxb-adv-row { border-top:1px solid rgba(255,255,255,.04); }
  .fxb-adv-lbl { color:var(--t3); text-decoration:underline; text-decoration-style:dotted; text-underline-offset:3px; text-decoration-color:rgba(255,255,255,.15); cursor:default; }
  .fxb-adv-val { font-family:var(--font-mono); font-size:11px; font-weight:600; color:var(--t1); text-align:right; max-width:58%; }
  .fxb-adv-val.pos { color:var(--green); }
  .fxb-adv-val.neg { color:var(--red); }
  .fxb-adv-val.neu { color:var(--t2); }
  .fxb-adv-val.dim { color:var(--t3); }

  /* Profitability bar */
  .fxb-prof-bar { display:flex; width:90px; height:8px; border-radius:4px; overflow:hidden; flex-shrink:0; }
  .fxb-prof-win { background:var(--green); height:100%; transition:width .5s ease; }
  .fxb-prof-loss { background:var(--red); height:100%; flex:1; }

  /* Risk of Ruin gauge */
  .fxb-ror-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
  .fxb-ror-card { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.07); border-radius:10px; padding:12px; text-align:center; }
  .fxb-ror-val { font-size:18px; font-weight:800; font-family:var(--font-mono); margin-bottom:4px; }
  .fxb-ror-lbl { font-size:9px; color:var(--t3); text-transform:uppercase; letter-spacing:.08em; }

  /* Responsive */
  @media(max-width:900px) {
    .fxb-left { width:210px; }
  }
  @media(max-width:768px) {
    .fxb-top { flex-direction:column; }
    .fxb-left { width:100%; border-right:none; border-bottom:1px solid var(--border); }
    .fxb-periods-grid { grid-template-columns:1fr; }
    .fxb-adv-grid { grid-template-columns:1fr; }
    .fxb-adv-col + .fxb-adv-col { border-left:none; border-top:1px solid rgba(255,255,255,.05); margin-top:6px; padding-top:6px; }
    .fxb-ror-grid { grid-template-columns:1fr 1fr; }
  }

  /* ═══════════════════════════════════════════════════════
     GRUP PAGE — DESIGN IMPROVEMENTS
  ═══════════════════════════════════════════════════════ */

  /* Group view header — premium gradient */
  .gv-bar {
    background: linear-gradient(135deg, rgba(124,58,237,.10) 0%, rgba(167,139,250,.05) 100%) !important;
    border-bottom: 1px solid rgba(167,139,250,.20) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    position: relative;
  }
  .gv-bar::before {
    content: '';
    position: absolute;
    bottom: 0; left: 16px; right: 16px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(167,139,250,.35), transparent);
    pointer-events: none;
  }
  .gv-emoji {
    font-size: 32px !important;
    filter: drop-shadow(0 2px 8px rgba(167,139,250,.35));
  }
  .gv-name {
    font-size: 16px !important;
    letter-spacing: -.01em;
    background: linear-gradient(135deg, var(--t1), var(--cyan));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }
  .gv-stats {
    margin-top: 5px !important;
    gap: 10px !important;
  }
  .gv-stats i { color: rgba(167,139,250,.6); }

  /* Group cards — hover glow */
  .gg-card:hover {
    box-shadow: 0 4px 20px rgba(124,58,237,.18) !important;
  }
  .gg-card.active {
    box-shadow: 0 0 0 1px rgba(167,139,250,.55), 0 4px 20px rgba(124,58,237,.22) !important;
  }

  /* Tab bar — tighter, more polished */
  .grp-tab-bar {
    border-radius: 10px 10px 0 0 !important;
    background: rgba(255,255,255,.02) !important;
    border: 1px solid var(--border) !important;
    border-bottom: none !important;
  }
  .grp-tab { padding: 11px 6px !important; font-size: 10px !important; letter-spacing: .06em !important; text-transform: uppercase; }
  .grp-tab.active { color: var(--cyan) !important; border-bottom: 2px solid var(--cyan) !important; background: rgba(192,132,252,.04); }
  .chat-panel { border-top: none !important; border-radius: 0 0 12px 12px !important; }

  /* Chat box improvements */
  .chat-bubble { font-size: 12.5px !important; line-height: 1.65 !important; }
  .chat-msg.me .chat-bubble {
    background: linear-gradient(135deg, rgba(124,58,237,.28), rgba(139,92,246,.18)) !important;
    border-color: rgba(139,92,246,.35) !important;
  }
  .chat-msg.other .chat-bubble {
    background: rgba(255,255,255,.055) !important;
    border-color: rgba(255,255,255,.10) !important;
  }
  .chat-avatar {
    border-radius: 10px !important;
    background: linear-gradient(135deg, rgba(124,58,237,.22), rgba(167,139,250,.14)) !important;
  }

  /* Chat input row */
  .chat-input-row {
    border-top: 1px solid rgba(255,255,255,.06) !important;
    padding: 10px 12px !important;
    gap: 8px !important;
    background: rgba(255,255,255,.015) !important;
  }
  .chat-input {
    background: rgba(255,255,255,.04) !important;
    border: 1px solid rgba(255,255,255,.09) !important;
    border-radius: 10px !important;
    padding: 9px 13px !important;
    font-size: 12px !important;
    transition: border-color .15s !important;
  }
  .chat-input:focus { border-color: rgba(167,139,250,.35) !important; outline: none; }
  .chat-send-btn {
    width: 36px !important; height: 36px !important;
    border-radius: 10px !important;
    background: linear-gradient(135deg, rgba(124,58,237,.70), rgba(109,40,217,.90)) !important;
    border: 1px solid rgba(167,139,250,.30) !important;
    color: #fff !important;
    flex-shrink: 0;
    transition: all .15s !important;
  }
  .chat-send-btn:hover { background: linear-gradient(135deg, #7c3aed, #6d28d9) !important; transform: scale(1.04); }

  /* Post card — cleaner */
  .gp-post {
    border-color: rgba(255,255,255,.07) !important;
    transition: border-color .16s, box-shadow .16s !important;
  }
  .gp-post:hover {
    border-color: rgba(167,139,250,.18) !important;
    box-shadow: 0 4px 24px rgba(0,0,0,.28) !important;
  }
  .gp-content { font-size: 12.5px !important; color: rgba(255,255,255,.78) !important; }
  .gp-actions { padding-top: 11px !important; border-top-color: rgba(255,255,255,.06) !important; }

  /* Category tabs color-coded */
  #grupCatTabs .tab-btn { font-size: 10px !important; padding: 5px 12px !important; border-radius: 20px !important; border: 1px solid rgba(255,255,255,.08) !important; }
  #grupCatTabs .tab-btn.active { border-color: rgba(192,132,252,.35) !important; background: rgba(192,132,252,.10) !important; color: var(--cyan) !important; }

  /* Feed filter bar panel */
  #grupFilterBar { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; margin-bottom: 10px; }

  /* gg-panel header */
  .gg-hd { padding: 13px 16px !important; }
  .gg-hd-title { font-size: 10px !important; letter-spacing: .12em !important; }

  /* Post form panel */
  #grupFormPanel { border: 1px solid rgba(167,139,250,.18) !important; }

  .hmap-cell {
    height: 22px;
    border-radius: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 7px;
    font-weight: 700;
    cursor: pointer;
    transition: transform .12s;
  }

  .hmap-cell:hover {
    transform: scale(1.14);
  }

  .hmap-hdr {
    height: 18px;
    font-size: 6.5px;
    font-weight: 700;
    color: var(--t3);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .h-str-bull {
    background: rgba(0, 229, 160, .60);
    color: rgba(255, 255, 255, .95);
  }

  .h-bull {
    background: rgba(0, 229, 160, .28);
    color: rgba(180, 255, 220, .9);
  }

  .h-neu {
    background: rgba(255, 176, 32, .18);
    color: rgba(255, 210, 100, .9);
  }

  .h-bear {
    background: rgba(255, 61, 90, .25);
    color: rgba(255, 160, 170, .9);
  }

  .h-str-bear {
    background: rgba(255, 61, 90, .55);
    color: rgba(255, 255, 255, .95);
  }

  .h-none {
    background: rgba(255, 255, 255, .04);
    color: var(--t3);
  }

  /* ── LOADING STATE ───────────────────────────────────────────────── */
  .ld {
    padding: 18px;
    text-align: center;
    color: var(--t3);
    font-size: 12px;
  }

  .empty {
    padding: 24px 16px;
    text-align: center;
  }

  .empty-ico {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: rgba(124, 58, 237, .06);
    border: 1px solid rgba(167, 139, 250, .12);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 12px;
    font-size: 20px;
    color: var(--t3);
  }

  /* ── LOGOUT MODAL ────────────────────────────────────────────────── */
  .logout-stripe {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, rgba(255, 61, 90, 0), rgba(255, 61, 90, 0.88), rgba(255, 100, 50, 0.88), rgba(255, 61, 90, 0));
  }

  .logout-icon-wrap {
    width: 68px;
    height: 68px;
    border-radius: 20px;
    background: rgba(255, 61, 90, 0.07);
    border: 1px solid rgba(255, 61, 90, 0.22);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 8px auto 16px;
    position: relative;
  }

  .logout-icon-wrap i {
    font-size: 26px;
    color: var(--red);
    animation: logoutIconPop .4s cubic-bezier(.34, 1.56, .64, 1) both;
  }

  .logout-icon-wrap::after {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 23px;
    border: 1px solid rgba(255, 61, 90, 0.14);
    animation: logoutPing 2.2s ease infinite;
  }

  .logout-title {
    font-family: var(--font-disp);
    font-size: 18px;
    font-weight: 800;
    color: var(--t1);
    margin-bottom: 6px;
  }

  .btn-logout-cancel {
    flex: 1;
    height: 44px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: var(--rs);
    color: var(--t2);
    font-family: var(--font);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: all .18s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
  }

  .btn-logout-confirm {
    flex: 2;
    height: 44px;
    background: linear-gradient(135deg, rgba(180, 20, 40, 0.92), rgba(255, 61, 90, 0.85));
    border: 1px solid rgba(255, 61, 90, 0.30);
    border-radius: var(--rs);
    color: #fff;
    font-family: var(--font);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: all .18s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    box-shadow: 0 4px 20px rgba(255, 40, 70, 0.25);
  }

  @media(max-width:600px) {
    .field {
      font-size: 16px !important;
    }
  }

  /* â•
   SPA LAYOUT — view toggling
   â• */
  #view-dash,
  #view-admin {
    display: none;
    height: var(--real-vh, 100vh);
    overflow: hidden;
    position: relative;
    z-index: 2;
    flex-direction: row;
  }

  #view-dash.active,
  #view-admin.active {
    display: flex;
  }

  #dashMain,
  #adminDashMain {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  #dashMain::-webkit-scrollbar,
  #adminDashMain::-webkit-scrollbar {
    width: 3px;
  }

  #dashMain::-webkit-scrollbar-thumb,
  #adminDashMain::-webkit-scrollbar-thumb {
    background: rgba(147, 114, 240, .18);
    border-radius: 2px;
  }

  /* ── Dashboard sidebar bridge (matches index.html class names) ── */
  .sb-nav {
    display: flex;
    flex-direction: column;
    gap: 1px;
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
  }

  .sb-nav::-webkit-scrollbar {
    width: 2px;
  }

  .sb-nav::-webkit-scrollbar-thumb {
    background: rgba(147, 114, 240, .15);
    border-radius: 1px;
  }

  .sb-nav-item {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 10px;
    border-radius: var(--rs);
    cursor: pointer;
    font-size: 12px;
    font-weight: 500;
    color: var(--t2);
    transition: all .14s;
    border: 1px solid transparent;
    white-space: nowrap;
  }

  .sb-nav-item:hover {
    color: var(--t1);
    background: rgba(255, 255, 255, .055);
  }

  .sb-nav-item.active {
    color: #fff;
    background: linear-gradient(135deg, rgba(124, 58, 237, .22), rgba(192, 132, 252, .10));
    border-color: rgba(167, 139, 250, .22);
    box-shadow: 0 0 20px rgba(147, 114, 240, .10);
  }

  .sb-nav-item i {
    width: 16px;
    text-align: center;
    font-size: 11px;
    flex-shrink: 0;
  }

  /* ── Sidebar user card bridge ── */
  .sb-user {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: var(--rs);
    cursor: pointer;
    transition: all .2s;
    overflow: hidden;
    flex-shrink: 0;
    margin-top: auto;
  }

  .sb-user:hover {
    background: rgba(255, 50, 70, .08);
    border-color: rgba(255, 61, 90, .20);
  }

  .sb-ava {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--blue), var(--cyan));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 800;
    color: #fff;
    flex-shrink: 0;
  }

  .sb-info {
    overflow: hidden;
    white-space: nowrap;
    flex: 1;
  }

  .sb-uname {
    font-size: 11px;
    font-weight: 600;
    color: var(--t1);
  }

  .sb-plan {
    font-size: 8px;
    color: var(--t3);
    font-weight: 500;
  }

  .sb-logout {
    font-size: 13px;
    color: var(--t3);
    cursor: pointer;
    flex-shrink: 0;
    transition: color .15s;
  }

  .sb-logout:hover {
    color: var(--red);
  }

  /* ── Plan widget bridge ── */
  .pw-label {
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--t3);
    margin-bottom: 5px;
  }

  /* ── Topbar bridge ── */
  .topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    flex-shrink: 0;
  }

  .topbar-right {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  /* ── Ticker widget ── */
  .ticker-widget {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 5px 11px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 7px;
  }

  .tk-item {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 600;
    color: var(--t1);
    font-family: var(--font-mono);
  }

  /* ── Toast ── */
  #toast {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 8px;
    pointer-events: none;
  }

  .toast-item {
    background: rgba(22, 16, 44, 0.95);
    border-left: 4px solid #7c3aed;
    border-radius: 10px;
    padding: 10px 16px;
    font-size: 12px;
    font-weight: 600;
    color: var(--t1);
    box-shadow: 0 8px 32px rgba(0, 0, 0, .5);
    animation: slideIn .3s ease;
    max-width: 320px;
    pointer-events: all;
  }

  .toast-item.err {
    border-left-color: var(--red);
  }

  .toast-item.ok {
    border-left-color: var(--green);
  }

  .toast-item.info {
    border-left-color: var(--cyan);
  }

  /* ── Modal overlay bridge ── */
  .modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 8000;
    background: rgba(0, 0, 0, .72);
    backdrop-filter: blur(14px);
    align-items: center;
    justify-content: center;
  }

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

  .modal-box {
    background: rgba(22, 16, 44, 0.95);
    backdrop-filter: blur(56px) saturate(2.0);
    border: 1px solid rgba(167, 139, 250, .18);
    border-radius: 18px;
    padding: 22px;
    width: 90%;
    max-width: 460px;
    animation: scaleIn .22s ease both;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .6);
    position: relative;
    max-height: 90vh;
    overflow-y: auto;
  }

  .modal-box::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(167, 139, 250, .30), rgba(255, 255, 255, .12), transparent);
    border-radius: 18px 18px 0 0;
  }

  .modal-box h3 {
    font-family: var(--font-disp);
    font-size: 15px;
    font-weight: 700;
    margin-bottom: 14px;
    color: var(--t1);
  }

  .modal-box .row {
    display: flex;
    gap: 8px;
    margin-top: 14px;
    justify-content: flex-end;
  }

  /* ── Form group bridge (.mfg) ── */
  .mfg {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 10px;
  }

  .mfg label {
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--t3);
  }

  .mfg input,
  .mfg select,
  .mfg textarea {
    width: 100%;
    height: 40px;
    background: rgba(255, 255, 255, .048);
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: var(--rs);
    color: var(--t1);
    font-family: var(--font);
    font-size: 13px;
    padding: 0 12px;
    outline: none;
    transition: border .18s;
    -webkit-appearance: none;
    appearance: none;
  }

  .mfg input:focus,
  .mfg select:focus,
  .mfg textarea:focus {
    border-color: rgba(167, 139, 250, .42);
  }

  .mfg textarea {
    height: auto;
    min-height: 72px;
    padding: 10px 12px;
    resize: vertical;
  }

  .mfg input::placeholder,
  .mfg textarea::placeholder {
    color: var(--t3);
    font-size: 12px;
  }

  /* ── Admin sidebar specific ── */
  #adminSidebar {
    z-index: 10;
    overflow-y: auto;   /* biarkan scroll jika nav item terlalu banyak */
    overflow-x: hidden;
  }

  .badge-red {
    background: rgba(239, 68, 68, .85);
  }

  .badge {
    background: rgba(239, 68, 68, .85);
    color: #fff;
    border-radius: 10px;
    padding: 1px 7px;
    font-size: 7px;
    font-weight: 800;
    margin-left: 4px;
  }

  .badge-green {
    background: rgba(34, 197, 94, .85);
  }

  /* ── Plan badges (admin) ── */
  .badge-plan-pro {
    color: var(--cyan);
    background: rgba(192, 132, 252, .09);
    border: 1px solid rgba(192, 132, 252, .20);
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .08em;
  }

  .badge-plan-elite {
    color: var(--amber);
    background: rgba(255, 176, 32, .09);
    border: 1px solid rgba(255, 176, 32, .20);
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 7px;
    font-weight: 800;
  }

  .badge-plan-basic {
    color: var(--t2);
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 7px;
    font-weight: 800;
  }

  .badge-buy,
  .badge.badge-buy {
    background: rgba(0, 229, 160, .12);
    color: var(--green);
    border: 1px solid rgba(0, 229, 160, .22);
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 8px;
    font-weight: 700;
  }

  .badge-wait,
  .badge.badge-wait {
    background: rgba(255, 176, 32, .12);
    color: var(--amber);
    border: 1px solid rgba(255, 176, 32, .22);
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 8px;
    font-weight: 700;
  }

  .badge-sell,
  .badge.badge-sell {
    background: rgba(255, 61, 90, .12);
    color: var(--red);
    border: 1px solid rgba(255, 61, 90, .22);
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 8px;
    font-weight: 700;
  }

  /* ── Toggle switch ── */
  .toggle {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
  }

  .toggle input {
    opacity: 0;
    width: 0;
    height: 0;
  }

  .slider {
    position: absolute;
    cursor: pointer;
    inset: 0;
    background: rgba(255, 255, 255, .10);
    border-radius: 24px;
    transition: .3s;
    border: 1px solid rgba(255, 255, 255, .13);
  }

  .slider:before {
    content: "";
    position: absolute;
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 2px;
    background: rgba(255, 255, 255, .35);
    border-radius: 50%;
    transition: .3s;
  }

  .toggle input:checked+.slider {
    background: rgba(167, 139, 250, .30);
    border-color: rgba(192, 132, 252, .40);
  }

  .toggle input:checked+.slider:before {
    transform: translateX(20px);
    background: var(--cyan);
  }

  /* ── Plan card (sub page) ── */
  .plan-card {
    text-align: center;
  }

  .plan-card .pc-name {
    font-family: var(--font-disp);
    font-size: 15px;
    font-weight: 800;
    margin-bottom: 4px;
    letter-spacing: .02em;
  }

  .plan-card .pc-price {
    font-family: var(--font-disp);
    font-size: 26px;
    font-weight: 900;
    margin-bottom: 6px;
  }

  .plan-card .pc-feat {
    list-style: none;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 16px;
    font-size: 12px;
    color: var(--t2);
  }

  .plan-card .pc-feat li::before {
    content: "✓ ";
    color: var(--green);
  }

  /* ── Stat grid shorthand colors ── */
  .green {
    color: var(--green) !important;
  }

  .red {
    color: var(--red) !important;
  }

  .yellow {
    color: var(--amber) !important;
  }

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

  /* ── Import dropzone ── */
  #importDropzone,
  #mt5Dropzone {
    border: 2px dashed rgba(124, 58, 237, .35);
    border-radius: 12px;
    padding: 28px;
    text-align: center;
    cursor: pointer;
    transition: border-color .2s;
  }

  #importDropzone:hover,
  #mt5Dropzone:hover {
    border-color: rgba(167, 139, 250, .55);
  }

  /* ── sb-logo in SPA (override) ── */
  .sb-logo {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 10px;
    margin-bottom: 14px;
    font-family: var(--font-disp);
    font-size: 13px;
    font-weight: 800;
    color: var(--t1);
    letter-spacing: -.02em;
  }

  .sb-logo i {
    font-size: 18px;
    background: linear-gradient(135deg, var(--blue), var(--cyan));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

  /* ── Responsive ── */
  @media(max-width:768px) {

    #view-dash,
    #view-admin {
      flex-direction: column;
    }

    .sidebar {
      position: fixed !important;
      top: 0;
      left: 0;
      bottom: 0;
      z-index: 400;
      width: 240px !important;
      transform: translateX(-100%) !important;
      transition: transform .25s cubic-bezier(.4, 0, .2, 1);
    }

    .sidebar.open {
      transform: translateX(0) !important;
      box-shadow: 8px 0 60px rgba(0, 0, 0, .85) !important;
    }

    #dashMain,
    #adminDashMain {
      padding: 12px;
    }

    .stat-grid {
      grid-template-columns: repeat(2, 1fr) !important;
    }
  }

/* ════════════════════════════════════════════════════
   BLOCK 3 — News Sidebar CSS
   ════════════════════════════════════════════════════ */
    /* Override flex:1 → tiap bagian setengah tinggi */
    .ns-cal-scroll.ns-half {
      flex: 1;
      min-height: 0;
    }
    /* ns-inner jadi flex column agar 2 bagian terbagi merata */
    .ns-inner {
      display: flex;
      flex-direction: column;
      overflow: hidden;
    }
    /* Garis pemisah antar 2 bagian */
    .ns-split-divider {
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(167,139,250,.25), transparent);
      margin: 6px 14px;
      flex-shrink: 0;
    }
    /* Headline item */
    .ns-headline-item {
      display: flex;
      flex-direction: column;
      gap: 3px;
      padding: 9px 14px;
      border-bottom: 1px solid rgba(255,255,255,.04);
      cursor: pointer;
      transition: background .15s;
      text-decoration: none;
    }
    .ns-headline-item:hover { background: rgba(167,139,250,.06); }
    .ns-headline-title {
      font-size: 11px;
      font-weight: 600;
      color: var(--t1);
      line-height: 1.4;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }
    .ns-headline-meta {
      display: flex;
      align-items: center;
      gap: 6px;
      font-size: 9px;
      color: var(--t3);
    }
    .ns-headline-source {
      font-weight: 700;
      color: var(--cyan);
      font-size: 8px;
      text-transform: uppercase;
      letter-spacing: .06em;
    }
    .ns-hl-ago { margin-left: auto; color: var(--t3); font-size: 8px; white-space: nowrap; }
    .ns-hl-cat {
      font-size: 7.5px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .07em;
      padding: 1px 5px;
      border-radius: 3px;
      flex-shrink: 0;
    }
    .ns-hl-cat--market        { background: rgba(52,211,153,.15); color: #34d399; }
    .ns-hl-cat--geopolitics   { background: rgba(248,113,113,.15); color: #f87171; }
    .ns-hl-cat--central-bank  { background: rgba(167,139,250,.2);  color: #a78bfa; }
    .ns-hl-cat--big-tech      { background: rgba(96,165,250,.15);  color: #60a5fa; }
    .ns-hl-cat--energy        { background: rgba(251,191,36,.15);  color: #fbbf24; }
    .ns-hl-cat--earnings      { background: rgba(34,211,238,.15);  color: #22d3ee; }
    .ns-hl-cat--economy       { background: rgba(129,140,248,.15); color: #818cf8; }

/* ════════════════════════════════════════════════════
   BLOCK 4 — Topbar Widget CSS
   ════════════════════════════════════════════════════ */
    /* Semua elemen topbar-right: tinggi seragam 32px */
    .topbar-right { gap: 6px; }

    /* Widget pill (ticker & countdown) */
    .tb-widget {
      display: flex;
      align-items: center;
      gap: 8px;
      height: 32px;
      padding: 0 10px;
      background: rgba(255, 255, 255, .04);
      border: 1px solid rgba(255, 255, 255, .08);
      border-radius: 8px;
    }

    /* Grup item dalam ticker */
    .tb-ticker-item {
      display: flex;
      align-items: center;
      gap: 4px;
    }

    /* Dot status */
    .tb-dot {
      width: 5px;
      height: 5px;
      border-radius: 50%;
      flex-shrink: 0;
      animation: pulse 1.6s ease infinite;
    }

    /* Label kecil (BTC / XAU / nama news) */
    .tb-label {
      font-size: 7px;
      font-weight: 700;
      letter-spacing: .08em;
      text-transform: uppercase;
      white-space: nowrap;
    }

    /* Harga / countdown */
    .tb-price {
      font-size: 11px;
      font-weight: 600;
      color: var(--t1);
      font-family: var(--font-mono);
    }

    /* Perubahan % atau CLOSED badge */
    .tb-chg {
      font-size: 9px;
      font-weight: 700;
      font-family: var(--font-mono);
    }

    /* Stack label + harga (untuk countdown) */
    .tb-stack {
      display: flex;
      flex-direction: column;
      gap: 1px;
    }
    .tb-stack .tb-label { max-width: 90px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

    /* Separator vertikal antar ticker */
    .tb-sep {
      width: 1px;
      height: 16px;
      background: rgba(255, 255, 255, .08);
      flex-shrink: 0;
    }

    /* Divider antar kelompok di topbar-right */
    .tb-divider {
      width: 1px;
      height: 20px;
      background: rgba(255, 255, 255, .08);
      flex-shrink: 0;
      margin: 0 2px;
    }

    /* Live badge — tinggi seragam */
    .live-badge { height: 32px; padding: 0 11px; border-radius: 8px; }

    /* Refresh btn — tinggi seragam */
    .refresh-btn { height: 32px; border-radius: 8px; }

    /* Icon btn (news + theme) — pakai ns-topbar-btn, seragam */
    .ns-topbar-btn { height: 32px; width: 32px; border-radius: 8px; }

    /* Theme toggle: ambil style ns-topbar-btn */
    .theme-toggle {
      height: 32px;
      width: 32px;
      background: rgba(192, 132, 252, .07);
      border: 1px solid rgba(192, 132, 252, .16);
      border-radius: 8px;
      color: var(--t2);
      font-size: 11px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all .15s;
    }
    .theme-toggle:hover { background: rgba(192, 132, 252, .13); }

    /* Post Analisa — tinggi seragam */
    .btn-pri.amber { height: 32px !important; border-radius: 8px; font-size: 11px; padding: 0 14px; }

/* ════════════════════════════════════════════════════
   BLOCK 5 — Group Layout CSS
   ════════════════════════════════════════════════════ */
    /*
     * Struktur parent sudah benar:
     *   #app            → display:flex; height:100vh; overflow:hidden
     *   .sidebar        → 220px, fixed kiri
     *   #dashMain       → flex:1
     *   #newsSidebar    → 268px, fixed kanan
     *
     * Di dalam grup:
     *   #dashMain.grup-active   → grid auto/1fr, overflow:hidden
     *   #page-grup.active       → flex-column, overflow:hidden, 1fr
     *   #grupContent            → flex:1, overflow:hidden (TIDAK scroll)
     *   .discord-layout         → flex-row, overflow:hidden
     *     .discord-servers-sidebar → 60px, scroll mandiri
     *     .discord-sidebar         → 240px, scroll mandiri
     *     .discord-main            → flex:1, overflow:hidden
     *       .discord-content-area  → flex:1, overflow:hidden
     *         #grupPostsArea       → flex:1, SCROLL DI SINI ✓
     *         #grupChatPanel       → flex:1, #chatBox scroll di sini ✓
     */

    /* 1. Container: TIDAK scroll, NO double-padding
       dashMain sudah punya padding:20px sendiri di desktop,
       jadi grupContent tidak perlu padding tambahan */
    #page-grup.active #grupContent {
      padding: 0;
      box-sizing: border-box;
      overflow: hidden;
    }
    body.is-mobile #page-grup.active #grupContent {
      padding: 0 !important;
    }

    /* 2. discord-layout harus 100% tinggi grupContent */
    #page-grup.active #grupContent > .discord-layout {
      height: 100% !important;
    }

    /* ── GRUP PADDING FIX — edge-to-edge on mobile, breathing room on desktop ── */

    /* DESKTOP: 10px jarak keseluruhan */
    @media (min-width: 769px) {
      #page-grup.active #grupContent {
        padding: 10px !important;
      }
      #page-grup.active #grupContent > .discord-layout {
        height: calc(100% - 20px) !important; /* kompensasi padding 10+10 */
        margin: 0 !important;
      }
      #grupMainContainer {
        margin-bottom: 0 !important;
      }
    }

    /* MOBILE: hapus semua padding dashMain saat grup → edge-to-edge full-height */
    body.is-mobile .dash-main.grup-active {
      padding:  0 !important;
      gap:      0 !important;
      overflow: hidden !important;
      height:   var(--real-vh, 100vh) !important;
    }

    /* Topbar: safe-area top, padding internal */
    body.is-mobile .dash-main.grup-active .topbar {
      padding: max(10px, env(safe-area-inset-top, 10px)) 14px 10px !important;
      flex-shrink: 0 !important;
      border-bottom: 1px solid var(--border);
    }

    /* Discord-layout & container: edge-to-edge, fill height */
    body.is-mobile #page-grup.active .discord-layout,
    body.is-mobile #page-grup.active #grupMainContainer {
      height:        100% !important;
      min-height:    0 !important;
      border-radius: 0 !important;
      margin:        0 !important;
      border-left:   none !important;
      border-right:  none !important;
      border-top:    none !important;
    }

    /* Feed/posts area: 10px inner padding */
    body.is-mobile .discord-posts-area {
      padding: 10px !important;
    }

    /* Filter bar: rounded & margin bawah */
    body.is-mobile #grupFilterBar {
      border-radius: 8px !important;
      margin-bottom: 8px !important;
    }

    /* Mobile header: position relative untuk ::after */
    body.is-mobile .dm-mobile-header {
      position: relative !important;
      flex-shrink: 0 !important;
    }

    /* 3. discord-main: overflow:hidden wajib agar flex-child bisa fill & scroll */
    #grupMainContainer .discord-main {
      overflow: hidden;
    }

    /* 3. Feed postingan tengah — satu-satunya area yang scroll */
    #grupPostsArea {
      overflow-y: auto;
      overflow-x: hidden;
      padding-right: 10px;
      padding-bottom: 20px;
      scrollbar-width: thin;
      scrollbar-color: rgba(147, 114, 240, .28) transparent;
    }
    #grupPostsArea::-webkit-scrollbar        { width: 4px; }
    #grupPostsArea::-webkit-scrollbar-track  { background: transparent; }
    #grupPostsArea::-webkit-scrollbar-thumb  {
      background: rgba(147, 114, 240, .28);
      border-radius: 4px;
    }
    #grupPostsArea::-webkit-scrollbar-thumb:hover {
      background: rgba(147, 114, 240, .55);
    }

    /* 4. Chat box — scroll mandiri (saat tab Chat aktif) */
    #chatBox {
      overflow-y: auto;
      scrollbar-width: thin;
      scrollbar-color: rgba(147, 114, 240, .28) transparent;
    }
    #chatBox::-webkit-scrollbar        { width: 4px; }
    #chatBox::-webkit-scrollbar-track  { background: transparent; }
    #chatBox::-webkit-scrollbar-thumb  {
      background: rgba(147, 114, 240, .28);
      border-radius: 4px;
    }
    #chatBox::-webkit-scrollbar-thumb:hover {
      background: rgba(147, 114, 240, .55);
    }

    /* 5. Channel sidebar kiri — scroll mandiri jika channel banyak */
    #discordSidebar {
      overflow-y: auto;
      padding-bottom: 14px;
      scrollbar-width: thin;
      scrollbar-color: rgba(147, 114, 240, .18) transparent;
    }

    /* User panel bawah — mengambang */
    #discordSidebar .ds-user-panel {
      border-top: none;
      border: 1px solid rgba(167, 139, 250, .14);
      background: rgba(255, 255, 255, .06);
      border-radius: var(--rs, 8px);
      margin-top: auto;
      box-shadow: 0 4px 16px rgba(0, 0, 0, .28);
    }

    /* Panel tetap menyatu, tambah jarak bawah seperti topbar */
    #grupMainContainer {
      border: 1px solid rgba(167, 139, 250, .14);
      background: rgba(255, 255, 255, .06);
      box-shadow: 0 4px 16px rgba(0, 0, 0, .28);
      margin-bottom: 10px;
    }
    #discordSidebar::-webkit-scrollbar        { width: 3px; }
    #discordSidebar::-webkit-scrollbar-track  { background: transparent; }
    #discordSidebar::-webkit-scrollbar-thumb  {
      background: rgba(147, 114, 240, .18);
      border-radius: 3px;
    }

/* ════════════════════════════════════════════════════
   FRONTEND DESIGN IMPROVEMENTS — 2026-06-02
   ════════════════════════════════════════════════════ */

/* ── 1. FONT SIZE FLOOR — readable minimum ── */
.sc-label,
.ms-lbl,
.fxb-row-label,
.fxb-adv-lbl,
.fxb-section-lbl {
  font-size: 10px !important;
}

.nav-sec {
  font-size: 10px !important;
}

.pw-lbl {
  font-size: 9px !important;
}

.nav-plan-badge,
.nav-badge,
.sb-plan {
  font-size: 8px !important;
}

.sc-hint {
  font-size: 11px !important;
}

.uc-role {
  font-size: 9px !important;
}

/* ── 2. FOCUS VISIBILITY — keyboard navigation ── */
:focus-visible {
  outline: 2px solid rgba(192, 132, 252, 0.7);
  outline-offset: 2px;
  border-radius: 4px;
}

button:focus-visible,
.nav-item:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--cyan);
  outline-offset: 2px;
}

:focus:not(:focus-visible) { outline: none; }

/* ── 3. MOBILE TOPBAR — hide overflow items on small screens ── */
@media (max-width: 640px) {
  #liveTickerWidget       { display: none !important; }
  #newsCountdownWidget    { display: none !important; }
  .refresh-btn            { display: none !important; }
  .tb-divider             { display: none !important; }
  .live-txt               { display: none !important; }
  .topbar-right           { gap: 6px !important; }
  .live-badge             { gap: 4px !important; }
}

/* ── 4. STAT CARD HIERARCHY — Net P&L prominent + animations ── */
#stPnl {
  border-color: rgba(0, 229, 160, 0.22) !important;
  background: linear-gradient(135deg,
    rgba(0, 229, 160, 0.06) 0%,
    rgba(28, 20, 54, 0.62) 100%) !important;
}
#stPnl .sc-val { font-size: 24px; }

.stat-card {
  animation: fadeUp .4s cubic-bezier(.25,.46,.45,.94) both;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.stat-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 36px rgba(0,0,0,0.3);
  border-color: rgba(192, 132, 252, 0.28);
}
.stat-card:nth-child(1) { animation-delay: .05s; }
.stat-card:nth-child(2) { animation-delay: .10s; }
.stat-card:nth-child(3) { animation-delay: .15s; }
.stat-card:nth-child(4) { animation-delay: .20s; }
.stat-card:nth-child(5) { animation-delay: .25s; }
.stat-card:nth-child(6) { animation-delay: .30s; }

/* ── 5. SKELETON LOADER ── */
@keyframes skeletonShimmer {
  0%   { background-position: -400px 0; }
  100% { background-position:  400px 0; }
}

.skeleton {
  background: linear-gradient(
    90deg,
    rgba(255,255,255,0.04) 25%,
    rgba(192,132,252,0.09) 37%,
    rgba(255,255,255,0.04) 63%
  );
  background-size: 800px 100%;
  animation: skeletonShimmer 1.4s ease infinite;
  border-radius: 6px;
}

.skeleton-line {
  height: 12px;
  margin-bottom: 8px;
  border-radius: 4px;
}
.skeleton-line.wide   { width: 85%; }
.skeleton-line.medium { width: 55%; }
.skeleton-line.short  { width: 35%; }

html[data-theme="light"] .skeleton {
  background: linear-gradient(
    90deg,
    rgba(153,50,204,0.04) 25%,
    rgba(153,50,204,0.10) 37%,
    rgba(153,50,204,0.04) 63%
  );
  background-size: 800px 100%;
}

/* ── 6. NAV-SEC COLLAPSE GAP FIX ── */
.sidebar.collapsed .nav-sec {
  height: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  transition: opacity .2s, height .2s, padding .2s !important;
}

/* ── 7. SIDEBAR TOGGLE ICON ── */
#sbToggleBtn { display: flex; align-items: center; justify-content: center; }
#sbToggleIco {
  font-size: 9px;
  transition: transform .22s cubic-bezier(.4,0,.2,1);
}
.sidebar.collapsed #sbToggleIco { transform: rotate(180deg); }

/* ── 8b. FXB TRADING TABLE LAYOUT ── */
/* Grid: auto-stack saat ruang sempit */
#fxb-trading > div,
.fxb-periods-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 16px;
  align-items: start;
}

/* Wrapper tiap tabel: scroll horizontal jika nilai panjang */
#fxbPairWrap,
#fxbDirWrap,
#fxbMonthWrap,
#fxbWeekWrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  min-width: 0;
}

/* Trading tab (4 kolom): fixed layout agar kolom konsisten
   antara tabel $ USD dan Rp IDR */
#fxbPairWrap .fxb-tbl,
#fxbDirWrap  .fxb-tbl {
  table-layout: fixed !important;
  min-width: 220px;
}
#fxbPairWrap .fxb-tbl th:first-child,
#fxbPairWrap .fxb-tbl td:first-child,
#fxbDirWrap  .fxb-tbl th:first-child,
#fxbDirWrap  .fxb-tbl td:first-child { width: 25%; }

#fxbPairWrap .fxb-tbl th:nth-child(2),
#fxbPairWrap .fxb-tbl td:nth-child(2),
#fxbDirWrap  .fxb-tbl th:nth-child(2),
#fxbDirWrap  .fxb-tbl td:nth-child(2) { width: 15%; }

#fxbPairWrap .fxb-tbl th:nth-child(3),
#fxbPairWrap .fxb-tbl td:nth-child(3),
#fxbDirWrap  .fxb-tbl th:nth-child(3),
#fxbDirWrap  .fxb-tbl td:nth-child(3) { width: 15%; }

/* Kolom NET P&L: sisa lebar (40%), teks tidak wrap */
#fxbPairWrap .fxb-tbl td:last-child,
#fxbDirWrap  .fxb-tbl td:last-child {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── 8. FXB TABLE ROW HOVER ── */
.fxb-tbl tbody tr {
  transition: background .12s ease;
}
.fxb-tbl tbody tr:hover {
  background: rgba(192, 132, 252, 0.06);
}
html[data-theme="light"] .fxb-tbl tbody tr:hover {
  background: rgba(153, 50, 204, 0.05);
}

/* ── 9. MOBILE BOTTOM NAV — menggunakan #bottomNav yang sudah ada ── */

/* ════════════════════════════════════════════════════
   GRUP PAGE IMPROVEMENTS — 2026-06-02
   ════════════════════════════════════════════════════ */

/* ── Post card ── */
.gp-post {
  border-left: 3px solid rgba(139,92,246,.25);
  transition: box-shadow .18s ease, border-left-color .18s ease, transform .18s ease !important;
  animation: fadeUp .3s cubic-bezier(.25,.46,.45,.94) both;
}
.gp-post:hover {
  border-left-color: rgba(192,132,252,.6) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,.28), 0 0 0 1px rgba(192,132,252,.10) !important;
  transform: translateY(-1px);
}
/* Category-aware left accent */
.gp-post.gp-cat-analisa  { border-left-color: rgba(192,132,252,.40); }
.gp-post.gp-cat-diskusi  { border-left-color: rgba(0,229,160,.35); }
.gp-post.gp-cat-market   { border-left-color: rgba(255,176,32,.40); }
.gp-post.gp-cat-tanya    { border-left-color: rgba(139,92,246,.40); }
.gp-post.gp-cat-edukasi  { border-left-color: rgba(99,102,241,.40); }

.gp-post.gp-cat-analisa:hover  { border-left-color: rgba(192,132,252,.85) !important; }
.gp-post.gp-cat-diskusi:hover  { border-left-color: rgba(0,229,160,.80) !important; }
.gp-post.gp-cat-market:hover   { border-left-color: rgba(255,176,32,.80) !important; }
.gp-post.gp-cat-tanya:hover    { border-left-color: rgba(139,92,246,.80) !important; }
.gp-post.gp-cat-edukasi:hover  { border-left-color: rgba(99,102,241,.80) !important; }

/* Stagger entrance per post */
.gp-post:nth-child(1)  { animation-delay: .03s; }
.gp-post:nth-child(2)  { animation-delay: .07s; }
.gp-post:nth-child(3)  { animation-delay: .11s; }
.gp-post:nth-child(4)  { animation-delay: .15s; }
.gp-post:nth-child(5)  { animation-delay: .19s; }
.gp-post:nth-child(n+6){ animation-delay: .22s; }

/* ── Content typography ── */
.gp-content {
  font-size: 13px !important;
  line-height: 1.80 !important;
  color: rgba(230,220,255,0.85) !important;
}

/* ── Action buttons ── */
.gp-like-btn,
.gp-comment-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 11px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.03);
  color: rgba(210,190,255,.5);
  font-family: var(--font);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: all .16s ease;
  -webkit-tap-highlight-color: transparent;
}
.gp-like-btn:hover {
  background: rgba(255,61,90,.08);
  border-color: rgba(255,61,90,.22);
  color: #ff3d5a;
}
.gp-like-btn.liked {
  background: rgba(255,61,90,.10);
  border-color: rgba(255,61,90,.28);
  color: #ff3d5a;
}
.gp-like-btn.liked i { animation: likeHeartPop .3s cubic-bezier(.34,1.56,.64,1); }
@keyframes likeHeartPop {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.4); }
  100% { transform: scale(1); }
}
.gp-comment-btn:hover {
  background: rgba(192,132,252,.08);
  border-color: rgba(192,132,252,.22);
  color: var(--cyan);
}

/* ── Avatar plan ring ── */
.gp-ava-pro   { box-shadow: 0 0 0 2px rgba(192,132,252,.65); }
.gp-ava-elite { box-shadow: 0 0 0 2px rgba(255,176,32,.70); }
.gp-ava-basic { box-shadow: 0 0 0 2px rgba(255,255,255,.12); }

/* ── Filter bar — Tulis Post button ── */
#grupFilterBar {
  border: 1px solid rgba(167,139,250,.12) !important;
  background: rgba(12,6,28,.55) !important;
}

.grup-write-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 36px;
  padding: 0 16px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(124,58,237,.85), rgba(167,139,250,.75));
  border: 1px solid rgba(192,132,252,.28);
  color: #fff;
  font-family: var(--font);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: all .18s;
  box-shadow: 0 4px 16px rgba(124,58,237,.22);
  flex-shrink: 0;
  letter-spacing: .02em;
}
.grup-write-btn:hover {
  box-shadow: 0 6px 22px rgba(167,139,250,.38);
  transform: translateY(-1px);
}
.grup-write-btn:active {
  transform: translateY(0);
  box-shadow: 0 2px 10px rgba(124,58,237,.20);
}

/* ── Mobile header (dm-mobile-header) ── */
.dm-mobile-header {
  background: rgba(14,8,30,.92) !important;
  backdrop-filter: blur(24px) !important;
  -webkit-backdrop-filter: blur(24px) !important;
  border-bottom: 1px solid rgba(167,139,250,.12) !important;
  padding: 10px 12px !important;
  gap: 8px !important;
}
.dm-mobile-header::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(192,132,252,.25), transparent);
  pointer-events: none;
}
.dmm-title {
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: -.01em !important;
}
.dmm-back, .dmm-close {
  width: 32px !important;
  height: 32px !important;
  border-radius: 8px !important;
  background: rgba(255,255,255,.05) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  transition: all .15s !important;
}
.dmm-back:hover, .dmm-close:hover {
  background: rgba(192,132,252,.10) !important;
  border-color: rgba(192,132,252,.22) !important;
  color: var(--cyan) !important;
}

/* Light mode */
html[data-theme="light"] .gp-post:hover {
  box-shadow: 0 8px 28px rgba(153,50,204,.12), 0 0 0 1px rgba(153,50,204,.10) !important;
}
html[data-theme="light"] .gp-like-btn:hover    { background: rgba(198,40,40,.06); border-color: rgba(198,40,40,.22); color: #C62828; }
html[data-theme="light"] .gp-like-btn.liked    { background: rgba(198,40,40,.08); border-color: rgba(198,40,40,.28); color: #C62828; }
html[data-theme="light"] .gp-comment-btn:hover { background: rgba(153,50,204,.06); border-color: rgba(153,50,204,.22); color: var(--cyan); }
html[data-theme="light"] .grup-write-btn       { background: linear-gradient(135deg, rgba(123,31,162,.85), rgba(153,50,204,.75)); }
html[data-theme="light"] .dm-mobile-header     { background: rgba(248,244,255,.96) !important; border-bottom-color: rgba(153,50,204,.14) !important; }
html[data-theme="light"] .dmm-back,
html[data-theme="light"] .dmm-close            { background: rgba(153,50,204,.06) !important; border-color: rgba(153,50,204,.16) !important; }

/* ══ SIDEBAR COLLAPSED — sebaris, foto tidak terpotong ══ */

/* Toggle button: sejajar dengan icon nav di bawahnya */
.sidebar.collapsed .sb-logo {
  justify-content: center !important;
  padding: 4px 0 !important;
}
.sidebar.collapsed .sb-brand {
  display: none !important;
}

/* Nav items: center ikon, hapus gap & padding horizontal */
.sidebar.collapsed .nav-item {
  justify-content: center !important;
  padding: 8px 0 !important;
  gap: 0 !important;
}

/* Hapus semua teks dari layout (bukan sekadar opacity) */
.sidebar.collapsed .nl,
.sidebar.collapsed .nav-plan-badge,
.sidebar.collapsed .nav-badge,
.sidebar.collapsed .lock-icon {
  display: none !important;
}

/* Ikon proporsional */
.sidebar.collapsed .nav-item .ni {
  font-size: 14px !important;
}

/* Nav section header: hilang sepenuhnya saat collapsed */
.sidebar.collapsed .nav-sec {
  display: none !important;
}

/* User card: center avatar, hapus gap & info dari layout */
.sidebar.collapsed .user-card {
  justify-content: center !important;
  padding: 8px 0 !important;
  gap: 0 !important;
}

.sidebar.collapsed .uc-info {
  display: none !important;
}

/* Plan widget: hilang sepenuhnya */
.sidebar.collapsed .plan-widget {
  display: none !important;
}

/* sb-spacer tetap ada untuk dorong user-card ke bawah */

/* Tooltip label muncul saat sidebar collapsed + hover */
.sidebar.collapsed .nav-item {
  position: relative;
}
.sidebar.collapsed .nav-item:hover::after {
  content: attr(title);
  position: absolute;
  left: calc(100% + 10px);
  top: 50%;
  transform: translateY(-50%);
  background: rgba(14, 8, 30, 0.96);
  border: 1px solid rgba(167, 139, 250, 0.22);
  color: var(--t1);
  padding: 5px 10px;
  border-radius: 7px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  z-index: 9999;
  pointer-events: none;
  box-shadow: 0 4px 16px rgba(0,0,0,0.4);
  animation: fadeUp .15s ease both;
}
html[data-theme="light"] .sidebar.collapsed .nav-item:hover::after {
  background: rgba(253, 250, 255, 0.98);
  border-color: rgba(153, 50, 204, 0.22);
  color: var(--t1);
  box-shadow: 0 4px 16px rgba(153, 50, 204, 0.12);
}

/* ── 10a. DAY + HEATMAP GRID — stack on mobile ── */
@media (max-width: 640px) {
  .day-heat-grid {
    grid-template-columns: 1fr !important;
  }
  .day-heat-grid > div:first-child {
    order: 1;
  }
  .day-heat-grid > div:last-child {
    order: 2;
  }
}

/* ── 10. PREFERS-REDUCED-MOTION ── */
@media (prefers-reduced-motion: reduce) {
  .orb,
  .live-dot,
  .spin-ico,
  .stat-card,
  .sidebar::after,
  .skeleton,
  .skeleton-line,
  .logout-icon-wrap::after {
    animation: none !important;
    transition-duration: 0.01ms !important;
  }
  #cometCanvas { display: none !important; }
  .stat-card   { transform: none !important; }
}
