/* ============================================================
   FlowAlpha · Shared Design System
   Single source of truth. Every page links this file.
   Tokens lifted verbatim from the Technical Analysis signal board
   so the whole site reads as one product.
   ============================================================ */

:root{
  /* surfaces */
  --bg-0:#0e1320; --bg-1:#121826; --bg-2:#161d2c; --bg-3:#1c2434; --bg-4:#26303f;
  --border:#1f2836; --border-hi:#2b3647; --border-hi2:#3a465a;
  /* text */
  --text:#e6edf3; --text-2:#9aa4b2; --text-3:#6b727e; --text-4:#4a525f;
  /* accents */
  --blue:#5e7ea8; --blue-bright:#7e9cc4; --blue-bg:rgba(94,126,168,0.10);
  --cyan:#5fa8b8;
  --green:#4caf6a; --green-bg:rgba(76,175,106,0.10);
  --red:#d3635b; --red-bg:rgba(211,99,91,0.10);
  --gold:#c79a3e; --gold-bg:rgba(199,154,62,0.10);
  /* type */
  --font-sans:'Inter',system-ui,-apple-system,sans-serif;
  --font-mono:'JetBrains Mono','Menlo',monospace;
  /* metrics */
  --rail-w:236px;
  --radius:10px;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-behavior:smooth;}
body{
  background:var(--bg-0); color:var(--text); font-family:var(--font-sans);
  font-size:13px; font-weight:400; line-height:1.5; min-height:100vh;
  background-image:radial-gradient(1200px 600px at 78% -10%, rgba(46,123,255,0.05), transparent 60%);
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
::selection{background:rgba(46,123,255,0.28);color:#fff;}

/* ─── Brand mark (the FlowAlpha diamond) ─── */
.fa-mark{width:20px;height:20px;border-radius:6px;background:linear-gradient(135deg,var(--blue),var(--cyan));box-shadow:0 0 16px rgba(94,126,168,.4);position:relative;flex-shrink:0;}
.fa-mark::after{content:'';position:absolute;inset:0;margin:auto;width:7px;height:7px;background:var(--bg-0);border-radius:2px;transform:rotate(45deg);}
.fa-mark.lg{width:30px;height:30px;border-radius:9px;}
.fa-mark.lg::after{width:11px;height:11px;}
.fa-wordmark{font-size:15px;font-weight:600;letter-spacing:-0.02em;color:var(--text);}
.fa-wordmark span{color:var(--blue-bright);}

/* ─── App layout (sidebar + main) ─── */
.app{display:grid;grid-template-columns:var(--rail-w) 1fr;min-height:100vh;}
.rail{border-right:1px solid var(--border);padding:22px 14px;position:sticky;top:0;height:100vh;overflow-y:auto;scrollbar-width:none;display:flex;flex-direction:column;gap:4px;}
.rail::-webkit-scrollbar{display:none;}
.rail-brand{display:flex;align-items:center;gap:9px;padding:2px 6px 18px;margin-bottom:8px;border-bottom:1px solid var(--border);}
.rail-h{font-family:var(--font-mono);font-size:9px;color:var(--text-4);letter-spacing:.14em;text-transform:uppercase;padding:14px 8px 7px;}
.nav-item{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:8px;color:var(--text-3);font-size:13px;font-weight:500;cursor:pointer;transition:.13s;}
.nav-item svg{width:17px;height:17px;flex-shrink:0;stroke-width:1.7;}
.nav-item:hover{background:var(--bg-2);color:var(--text-2);}
.nav-item.active{background:var(--bg-3);color:var(--text);}
.nav-item.active svg{color:var(--blue-bright);}
.nav-badge{margin-left:auto;font-family:var(--font-mono);font-size:8.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--gold);background:var(--gold-bg);border:1px solid rgba(199,154,62,.30);padding:1px 6px;border-radius:5px;}
.rail-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--border);}

.main{min-width:0;position:relative;}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;padding:14px 28px;background:rgba(7,9,16,0.72);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);}
.topbar-search{flex:1;max-width:560px;display:flex;align-items:center;gap:9px;padding:9px 13px;background:var(--bg-2);border:1px solid var(--border);border-radius:9px;color:var(--text-4);font-size:13px;}
.topbar-search svg{width:15px;height:15px;flex-shrink:0;}
.topbar-search input{flex:1;background:transparent;border:0;outline:0;color:var(--text);font-family:var(--font-sans);font-size:13px;}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:12px;}
.lang-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid var(--border-hi);border-radius:999px;font-size:12px;color:var(--text-2);cursor:pointer;transition:.13s;}
.lang-pill:hover{border-color:var(--border-hi2);color:var(--text);}
.icon-btn{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-hi);border-radius:8px;color:var(--text-3);background:transparent;cursor:pointer;transition:.13s;}
.icon-btn:hover{color:var(--text);border-color:var(--border-hi2);}
.icon-btn svg{width:16px;height:16px;}
.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--bg-4),var(--bg-3));border:1px solid var(--border-hi);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--text-2);cursor:pointer;}

.page{padding:40px 36px 90px;max-width:1280px;}
.page.wide{max-width:none;}

/* ─── Buttons ─── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:-0.01em;padding:11px 20px;border-radius:9px;border:1px solid transparent;cursor:pointer;transition:.15s;white-space:nowrap;}
.btn svg{width:16px;height:16px;}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 6px 20px rgba(46,123,255,.28);}
.btn-primary:hover{background:var(--blue-bright);box-shadow:0 8px 26px rgba(46,123,255,.36);transform:translateY(-1px);}
.btn-ghost{background:transparent;color:var(--text-2);border-color:var(--border-hi);}
.btn-ghost:hover{color:var(--text);border-color:var(--border-hi2);background:var(--bg-2);}
.btn-soft{background:var(--bg-3);color:var(--text);border-color:var(--border-hi);}
.btn-soft:hover{background:var(--bg-4);border-color:var(--border-hi2);}
.btn-lg{padding:14px 26px;font-size:14px;}
.btn-block{width:100%;}

/* ─── Eyebrow / section headers ─── */
.eyebrow{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--blue-bright);display:inline-flex;align-items:center;gap:8px;}
.eyebrow::before{content:'';width:18px;height:1px;background:var(--blue-bright);opacity:.6;}
.section-title{font-size:26px;font-weight:500;letter-spacing:-0.025em;line-height:1.18;color:var(--text);}
.section-sub{color:var(--text-2);font-size:14px;line-height:1.65;max-width:620px;margin-top:12px;}

/* ─── Cards ─── */
.card{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:border-color .18s, transform .18s;}
.card.hover:hover{border-color:var(--border-hi2);transform:translateY(-2px);box-shadow:0 12px 34px rgba(0,0,0,.3);}
.card-icon{width:38px;height:38px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(46,123,255,.14),rgba(60,203,236,.04));border:1px solid rgba(46,123,255,.22);color:var(--blue-bright);margin-bottom:14px;}
.card-icon svg{width:19px;height:19px;stroke-width:1.7;}
.card-title{font-size:15px;font-weight:600;letter-spacing:-0.01em;color:var(--text);margin-bottom:7px;}
.card-desc{font-size:13px;line-height:1.6;color:var(--text-2);}

/* ─── Pills / badges ─── */
.pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:999px;border:1px solid var(--border-hi);color:var(--text-3);}
.pill.green{color:var(--green);background:var(--green-bg);border-color:rgba(31,209,138,.25);}
.pill.red{color:var(--red);background:var(--red-bg);border-color:rgba(255,92,106,.25);}
.pill.blue{color:var(--blue-bright);background:var(--blue-bg);border-color:rgba(46,123,255,.28);}
.pill.gold{color:var(--gold);background:var(--gold-bg);border-color:rgba(199,154,62,.30);}
.live-dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(31,209,138,.6);animation:livePulse 2s infinite;}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(31,209,138,.5);}70%{box-shadow:0 0 0 6px rgba(31,209,138,0);}100%{box-shadow:0 0 0 0 rgba(31,209,138,0);}}

/* ─── Forms ─── */
.field{display:flex;flex-direction:column;gap:7px;}
.field label{font-size:12px;font-weight:500;color:var(--text-2);}
.field label .req{color:var(--blue-bright);}
.input,.select{width:100%;padding:11px 13px;background:var(--bg-2);border:1px solid var(--border);border-radius:9px;color:var(--text);font-family:var(--font-sans);font-size:13px;outline:none;transition:.15s;}
.input::placeholder{color:var(--text-4);}
.input:focus,.select:focus{border-color:var(--blue);background:var(--bg-3);box-shadow:0 0 0 3px var(--blue-bg);}
.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23646C80' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px;cursor:pointer;}

/* ─── Tables ─── */
.tbl{width:100%;border-collapse:collapse;}
.tbl th{font-family:var(--font-mono);font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);font-weight:500;}
.tbl td{padding:13px 14px;font-size:13px;border-bottom:1px solid var(--border);color:var(--text-2);}
.tbl tr:last-child td{border-bottom:0;}
.tbl tr:hover td{background:var(--bg-1);}

/* ─── Empty state ─── */
.empty{text-align:center;padding:54px 20px;color:var(--text-4);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;}

/* ─── Footer (marketing) ─── */
.footer{border-top:1px solid var(--border);padding:48px 36px 36px;margin-top:60px;}
.footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:32px;max-width:1180px;margin:0 auto;}
.footer-col h4{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-bottom:14px;}
.footer-col a{display:block;color:var(--text-2);font-size:13px;padding:5px 0;transition:.13s;}
.footer-col a:hover{color:var(--text);}
.footer-disclaimer{max-width:1180px;margin:36px auto 0;padding-top:24px;border-top:1px solid var(--border);font-size:11.5px;color:var(--text-4);line-height:1.7;}

/* ─── Atmosphere helpers ─── */
.grid-texture{background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:54px 54px;opacity:.35;}

/* ─── Load animation ─── */
@keyframes rise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.rise{opacity:0;animation:rise .7s cubic-bezier(.2,.7,.2,1) forwards;}

/* ─── Responsive ─── */
@media (max-width:900px){
  .app{grid-template-columns:1fr;}
  .rail{display:none;}
  .page{padding:24px 18px 60px;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:24px;}
}
