    :root{
      /* Dark palette */
      --bg1: 11, 16, 32;    /* #0b1020 */
      --bg2: 17, 24, 47;    /* #11182f */
      --surface: 18, 26, 46;/* #121a2e */
      --brand: 88, 166, 255;/* blue-ish */
      --ink: 231, 238, 255; /* light text */
      --muted: 148, 163, 184; /* slate-300 */
      --border: 255,255,255;

      --buy: 34,197,94;     /* green-500 */
      --sell: 239,68,68;    /* red-500 */
      --neutral: 234,179,8; /* amber-500 */
      --patent: 255,215,0;  /* gold */
      --sec: 78, 199, 25;    /* green */
    }

    *{ scrollbar-color: rgba(var(--ink),0.35) rgba(var(--bg2),1); }

    body{
      background: radial-gradient(1200px 800px at 20% -10%, rgba(var(--brand),0.08), rgba(var(--bg2),0)),
                  linear-gradient(180deg, rgba(var(--bg2),1) 0%, rgba(var(--bg1),1) 100%);
      color: rgb(var(--ink));
      min-height: 100vh;
    }

    .table>:not(caption)>*>*{ color: white !important; }
    .navbar{
      background: rgba(10, 14, 28, 0.7);
      backdrop-filter: blur(8px);
      border-bottom: 1px solid rgba(var(--border),0.08);
    }
    .navbar .navbar-brand, .navbar .nav-link, .navbar .text-secondary{ color: rgba(var(--ink),0.8) !important; }

    .card{
      background: rgba(var(--surface), 1);
      border: 1px solid rgba(var(--border),0.06);
      box-shadow: 0 20px 40px rgba(0,0,0,0.25);
      border-radius: 1rem;
      color: rgba(var(--ink),0.95);
    }

    .form-label, .fw-semibold { color: rgba(var(--ink),0.9); }

    /* High-contrast dark inputs */
    .form-control, .form-select{
      background: rgba(255,255,255,0.08);
      color: rgba(var(--ink),0.98);
      border-color: rgba(var(--border),0.18);
    }
    .form-control::placeholder{ color: rgba(var(--ink),0.55); }
    .form-select option{ color: rgba(var(--ink),0.95); background-color: rgba(var(--surface),1); }
    .form-control:focus, .form-select:focus{
      border-color: rgba(var(--brand),0.6);
      box-shadow: 0 0 0 .2rem rgba(var(--brand),0.15);
    }

    .btn-outline-primary{
      --bs-btn-color: rgba(var(--ink),0.9);
      --bs-btn-border-color: rgba(var(--border),0.18);
      --bs-btn-hover-bg: rgba(var(--brand),0.15);
      --bs-btn-hover-border-color: rgba(var(--brand),0.6);
    }
    .btn-primary, .btn-time.active{
      background: rgba(var(--brand),1) !important;
      border-color: rgba(var(--brand),0.9) !important;
      color: #0b1020 !important;
      box-shadow: 0 10px 24px rgba(var(--brand),0.25);
    }
    .btn-ghost{ background: transparent; color: rgba(var(--ink),0.9); border: 1px solid rgba(var(--border),0.12); }

    #status{ min-height: 1.5rem; color: rgb(var(--muted)) !important; }

    .badge-buy    { background: rgba(var(--buy), .12);  color: rgb(var(--buy));  border: 1px solid rgba(var(--buy), .24); }
    .badge-sell   { background: rgba(var(--sell), .12); color: rgb(var(--sell)); border: 1px solid rgba(var(--sell), .24); }
    .badge-ins    { background: rgba(255,255,255,.12); color: rgba(255,255,255,.95); border: 1px solid rgba(255,255,255,.24); }
    .badge-pat    { background: rgba(var(--patent), .12); color: rgb(var(--patent)); border: 1px solid rgba(var(--patent), .35); }
    .badge-sec    { background: rgba(var(--sec), .12); color: rgb(var(--sec)); border: 1px solid rgba(var(--sec), .35); }

    .legend-row { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; }
    .legend-chip { display:flex; align-items:center; gap:.5rem; font-weight:600; }
    .legend-chip .line { width:18px; height:0; border-top:2px dashed currentColor; }
    .legend-buy  { color: rgb(var(--buy)); }
    .legend-sell { color: rgb(var(--sell)); }
    .legend-ins  { color: rgba(255,255,255,0.9); }
    .legend-ins .line { border-top-style: solid; color: rgba(255,255,255,0.95); }
    .legend-pat  { color: rgb(var(--patent)); }
    .legend-pat .line { border-top-style: solid; }
    .legend-sec  { color: rgb(var(--sec)); }
    .legend-sec .line { border-top-style: solid; }

    .legend-toggle { display:flex; align-items:center; gap:.35rem; font-size:.9rem; color: rgba(var(--ink),0.85); }
    .form-switch .form-check-input{ cursor:pointer; }

    .spinner-sm{ width: 1rem; height:1rem; border-width:.15rem; }

    .sparkline{ height:40px; }

    /* Bigger chart */
    .chart-wrap{ position: relative; height: 78vh; min-height: 560px; }
    .chart-wrap canvas { height: 100% !important; }

    .chart-container{ position: relative; flex:1; min-height:300px; display:flex; }
    .chart-container canvas{ height:100% !important; width:100%; margin:auto; }

    .table{ color: rgba(var(--ink),0.92); }
    .table thead th{ color: rgba(var(--ink),0.8); border-bottom: 1px solid rgba(var(--border),0.12) !important; }
    .table>:not(caption)>*>*{ background-color: rgba(255,255,255,0.02) !important; border-bottom: 1px solid rgba(var(--border),0.06); }

    .link-muted{ color: rgba(var(--muted),1); text-decoration: none; }
    .link-muted:hover{ color: rgba(var(--ink),0.9); }
    .symbol-link, .symbol-link:visited{ color: #fff; text-decoration: none; }
    .symbol-link:hover{ color: #fff; text-decoration: underline; }
    hr{ border-color: rgba(var(--border),0.08); }
    .small.text-secondary{ color: rgb(var(--muted)) !important; }

    /* KPI chips */
    .kpi{ background: rgba(255,255,255,0.03); border: 1px solid rgba(var(--border),0.08); border-radius: .75rem; padding: .75rem 1rem; }
    .rp-card .kpi{ padding: .5rem .75rem; }

    .sidebar {
      position: fixed; top: 0; right: 0; width: 360px; max-width: 90%; height: 100vh;
      background-color: rgba(var(--bg2), 1);
      border-left: 1px solid rgba(var(--border), 0.1);
      z-index: 1050; transition: transform 0.3s ease; transform: translateX(100%);
      box-shadow: -4px 0 20px rgba(0,0,0,0.2);
    }
    .sidebar.open { transform: translateX(0%); }
    .sidebar canvas { background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.05); border-radius: 0.5rem; }
    .sidebar table td { padding: 0.25rem 0.5rem; border-color: rgba(255,255,255,0.05); }

    /* --- Recent Predictions modal --- */
    .rp-modal::backdrop { background: rgba(0,0,0,.6); }
    .rp-modal {
      width: min(980px, 92vw); max-height: 82vh;
      border: 1px solid rgba(255,255,255,.14); border-radius: 14px; padding: 0;
      background: rgba(var(--surface), 1); color: rgba(var(--ink), .98);
      box-shadow: 0 30px 80px rgba(0,0,0,.45);
    }
    .rp-head { display:flex; align-items:center; justify-content:space-between; padding: .9rem 1rem; border-bottom: 1px solid rgba(255,255,255,.08); position: sticky; top:0; background: rgba(var(--surface), 1); z-index: 2; }
    .rp-body { padding: .75rem 1rem 1rem; overflow:auto; max-height: calc(82vh - 56px); }
    .rp-grid { display:grid; gap:.5rem; grid-template-columns: repeat(1, minmax(0, 1fr)); }
    @media (min-width: 640px){ .rp-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
    @media (min-width: 992px){ .rp-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
    .rp-card {
      border: 1px solid rgba(255,255,255,.08);
      background: rgba(255,255,255,.03);
      border-radius: .75rem;
      padding: .75rem .9rem;
      display: flex;
      flex-direction: column;
      height: 100%;
    }
    .rp-stats { margin-top: auto; }
    .rp-row { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
    .rp-symbol { font-weight: 700; letter-spacing:.3px; cursor: pointer; }
    .rp-symbol:hover { text-decoration: underline; }
    .rp-badges { display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; }
    .rp-chip { display:flex; align-items:center; gap:.45rem; padding:.25rem .5rem; border:1px solid rgba(255,255,255,.14); border-radius: 999px; font-size: .8rem; background: rgba(255,255,255,.03); }
    .rp-dot { width: 10px; height: 10px; border-radius: 999px; box-shadow: 0 0 0 1px rgba(255,255,255,.18), 0 0 8px rgba(255,255,255,.06) inset; }
    .rp-sub { color: rgb(var(--muted)); font-size: .8rem; }

    @media (min-width: 1400px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
        max-width: 1600px !important;
    }
    }