/* ═══════════════════════════════════════════════════════════════
   ForexAI Pro — Complete Dashboard Styles
   Dark professional trading terminal
═══════════════════════════════════════════════════════════════ */
:root {
  --bg:        #080c18;
  --bg-card:   #0d1526;
  --bg-card2:  #111d35;
  --bg-hover:  #172040;
  --border:    #1c2b45;
  --border2:   #243558;

  --buy:       #00d4aa;
  --buy-dim:   rgba(0,212,170,.14);
  --buy-glow:  rgba(0,212,170,.35);
  --sell:      #ff4d6d;
  --sell-dim:  rgba(255,77,109,.14);
  --sell-glow: rgba(255,77,109,.35);
  --neu:       #6b7fa3;
  --neu-dim:   rgba(107,127,163,.14);

  --accent:    #4f8ef7;
  --accent2:   #a855f7;
  --gold:      #f5c842;

  --t1: #e2e8f8;
  --t2: #7b8db0;
  --t3: #3d5070;

  --mono: 'JetBrains Mono', monospace;
  --sans: 'Inter', sans-serif;
  --r:  8px;
  --r2: 14px;
  --sh: 0 4px 24px rgba(0,0,0,.45);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:13px;scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--t1);min-height:100vh;overflow-x:hidden}
button{cursor:pointer;border:none;outline:none;font-family:inherit}
input,select{font-family:inherit;outline:none}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}

/* ── NAVBAR ─────────────────────────────────────────────────── */
.navbar{
  position:sticky;top:0;z-index:200;
  display:flex;align-items:center;gap:16px;
  padding:0 18px;height:54px;
  background:rgba(8,12,24,.96);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
}
.nav-brand{display:flex;align-items:center;gap:10px;flex-shrink:0}
.brand-logo{font-size:22px;filter:drop-shadow(0 0 8px #4f8ef7)}
.brand-text{display:flex;flex-direction:column;line-height:1.2}
.brand-name{font-size:15px;font-weight:800;letter-spacing:-.3px}
.brand-pro{background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.brand-sub{font-size:9px;color:var(--t3);letter-spacing:.3px}

.nav-center{display:flex;align-items:center;gap:20px;flex:1;justify-content:center}
.nav-label{font-size:9px;color:var(--t3);text-transform:uppercase;letter-spacing:.6px;margin-right:4px}
.pair-selector-wrap,.tf-wrap{display:flex;align-items:center}
.pair-select{
  background:var(--bg-card2);border:1px solid var(--border);
  color:var(--t1);padding:5px 10px;border-radius:var(--r);
  font-size:12px;font-weight:700;cursor:pointer;
}
.tf-group{display:flex;gap:3px}
.tf-btn{
  padding:4px 9px;border-radius:var(--r);
  background:var(--bg-card2);border:1px solid var(--border);
  color:var(--t2);font-size:10px;font-weight:700;
  transition:all .2s;
}
.tf-btn:hover{border-color:var(--accent);color:var(--accent)}
.tf-btn.active{background:rgba(79,142,247,.15);border-color:var(--accent);color:var(--accent)}

.live-price-wrap{display:flex;align-items:center;gap:8px;padding:4px 12px;background:var(--bg-card2);border:1px solid var(--border);border-radius:var(--r)}
.live-pair{font-size:11px;font-weight:700;color:var(--t2)}
.live-price{font-family:var(--mono);font-size:14px;font-weight:700}
.live-change{font-family:var(--mono);font-size:11px;font-weight:600}
.live-change.up{color:var(--buy)}.live-change.down{color:var(--sell)}

.nav-right{display:flex;align-items:center;gap:10px;flex-shrink:0}
.session-pills{display:flex;gap:3px}
.spill{padding:2px 7px;border-radius:20px;font-size:9px;font-weight:700;background:var(--bg-card2);border:1px solid var(--border);color:var(--t3)}
.spill.active{background:var(--buy-dim);border-color:var(--buy);color:var(--buy)}

.conn-indicator{display:flex;align-items:center;gap:5px}
.conn-dot{width:7px;height:7px;border-radius:50%;background:var(--t3);transition:background .3s}
.conn-dot.live{background:var(--buy);box-shadow:0 0 8px var(--buy-glow);animation:blink 2s infinite}
.conn-dot.error{background:var(--sell)}
.conn-label{font-size:10px;color:var(--t2)}
.utc-clock{font-family:var(--mono);font-size:10px;color:var(--t3)}

/* ── LAYOUT ─────────────────────────────────────────────────── */
.app-layout{
  display:grid;
  grid-template-columns:290px 1fr 300px;
  gap:10px;padding:10px;
  min-height:calc(100vh - 54px);
  align-items:start;
}
.sidebar-left,.sidebar-right{display:flex;flex-direction:column;gap:10px}
.center-main{display:flex;flex-direction:column;gap:10px}

/* ── CARDS ──────────────────────────────────────────────────── */
.card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--r2);padding:14px;box-shadow:var(--sh);
}
.card-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--t2)}
.card-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}

/* ── SIGNAL CARD ────────────────────────────────────────────── */
.signal-card{position:relative;overflow:hidden}
.signal-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.signal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.signal-id{font-family:var(--mono);font-size:9px;color:var(--t3)}

/* Countdown Ring */
.countdown-wrap{position:relative;width:130px;height:130px;margin:0 auto 14px}
.cring{width:100%;height:100%;transform:rotate(-90deg)}
.cring-bg{fill:none;stroke:var(--border);stroke-width:7}
.cring-fill{
  fill:none;stroke:url(#ringGrad);stroke-width:7;stroke-linecap:round;
  stroke-dasharray:376.99;stroke-dashoffset:0;
  transition:stroke-dashoffset 1s linear,stroke .3s;
}
.cring-fill.buy{stroke:var(--buy)}
.cring-fill.sell{stroke:var(--sell)}
.countdown-center{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.countdown-num{font-family:var(--mono);font-size:36px;font-weight:800;line-height:1;color:var(--t1)}
.countdown-unit{font-size:10px;color:var(--t3);margin-top:1px}
.countdown-next{font-size:9px;color:var(--t3)}

/* Direction Badge */
.dir-badge{
  display:flex;align-items:center;gap:10px;
  padding:12px 14px;border-radius:var(--r);
  background:var(--bg-card2);border:1px solid var(--border);
  margin-bottom:12px;transition:all .4s;
}
.dir-badge.BUY{background:var(--buy-dim);border-color:var(--buy);box-shadow:0 0 18px var(--buy-glow)}
.dir-badge.SELL{background:var(--sell-dim);border-color:var(--sell);box-shadow:0 0 18px var(--sell-glow)}
.dir-icon{font-size:26px;line-height:1}
.dir-info{display:flex;flex-direction:column}
.dir-label{font-size:18px;font-weight:900;letter-spacing:1.5px}
.dir-badge.BUY .dir-label{color:var(--buy)}
.dir-badge.SELL .dir-label{color:var(--sell)}
.dir-badge.NEUTRAL .dir-label{color:var(--neu)}
.dir-pair{font-size:10px;color:var(--t2);margin-top:1px}

/* Confidence */
.conf-row{margin-bottom:12px}
.conf-header{display:flex;justify-content:space-between;font-size:11px;color:var(--t2);margin-bottom:5px}
.conf-pct{font-family:var(--mono);font-weight:700;color:var(--t1)}
.conf-track{height:7px;background:var(--border);border-radius:4px;overflow:hidden;position:relative}
.conf-fill{height:100%;border-radius:4px;transition:width .6s ease,background .3s;background:var(--accent)}
.conf-markers{display:flex;justify-content:space-between;margin-top:3px}
.conf-markers span{font-size:8px;color:var(--t3)}

/* Levels Grid */
.levels-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}
.level-item{background:var(--bg-card2);border:1px solid var(--border);border-radius:var(--r);padding:7px 9px}
.level-item.tp{border-color:rgba(0,212,170,.3)}
.level-item.sl{border-color:rgba(255,77,109,.3)}
.level-item.rr{border-color:rgba(245,200,66,.3)}
.level-lbl{font-size:9px;color:var(--t3);margin-bottom:3px;text-transform:uppercase}
.level-val{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--t1)}
.level-item.tp .level-val{color:var(--buy)}
.level-item.sl .level-val{color:var(--sell)}
.level-item.rr .level-val{color:var(--gold)}

/* Confluence Bar */
.confluence-bar{
  display:flex;gap:6px;margin-bottom:10px;
  padding:8px;background:var(--bg-card2);border-radius:var(--r);
}
.conf-grade-wrap,.conf-score-wrap,.conf-session-wrap{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;
}
.conf-grade{font-size:20px;font-weight:900;color:var(--accent)}
.conf-grade.A{color:var(--buy)}.conf-grade.B{color:var(--accent)}.conf-grade.C{color:var(--sell)}
.conf-grade-lbl,.conf-score-lbl,.conf-session-lbl{font-size:8px;color:var(--t3);text-transform:uppercase}
.conf-score{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--t1)}
.conf-session{font-size:11px;font-weight:700;color:var(--gold)}

/* Patterns */
.patterns-wrap{display:flex;flex-wrap:wrap;gap:4px}
.ptag{padding:2px 7px;border-radius:20px;font-size:9px;font-weight:700;background:rgba(79,142,247,.15);border:1px solid var(--accent);color:var(--accent)}

/* ── ML CARD ────────────────────────────────────────────────── */
.ml-card .card-header-row{margin-bottom:10px}
.ml-badge{font-size:9px;padding:2px 7px;border-radius:20px;background:var(--bg-card2);color:var(--t3);font-weight:700}
.ml-badge.trained{background:var(--buy-dim);color:var(--buy)}
.prob-section{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.prob-item{display:flex;flex-direction:column;gap:3px}
.prob-meta{display:flex;justify-content:space-between;align-items:center}
.prob-name{font-size:10px;font-weight:800}
.prob-name.buy{color:var(--buy)}.prob-name.sell{color:var(--sell)}.prob-name.neutral{color:var(--neu)}
.prob-val{font-family:var(--mono);font-size:10px;color:var(--t2)}
.prob-track{height:7px;background:var(--border);border-radius:4px;overflow:hidden}
.prob-fill{height:100%;border-radius:4px;transition:width .6s ease}
.prob-fill.buy{background:var(--buy)}.prob-fill.sell{background:var(--sell)}.prob-fill.neutral{background:var(--neu)}

.ml-models-row{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}
.model-chip{padding:3px 8px;border-radius:20px;font-size:9px;font-weight:700;background:var(--bg-card2);border:1px solid var(--border);color:var(--t2)}
.model-chip.active{background:rgba(79,142,247,.15);border-color:var(--accent);color:var(--accent)}

.btn-train{
  width:100%;padding:9px;border-radius:var(--r);
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  color:#fff;font-size:11px;font-weight:700;
  transition:all .2s;
}
.btn-train:hover{opacity:.9;transform:translateY(-1px)}
.btn-train:disabled{opacity:.5;cursor:not-allowed;transform:none}

.train-progress-wrap{
  margin-top:8px;padding:8px;background:var(--bg-card2);
  border-radius:var(--r);display:flex;align-items:center;gap:8px;
}
.train-progress-bar{
  flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden;position:relative;
}
.train-progress-bar::after{
  content:'';position:absolute;top:0;left:-50%;width:50%;height:100%;
  background:var(--accent);border-radius:2px;animation:trainSlide 1.4s infinite;
}
.train-progress-text{font-size:9px;color:var(--t2);white-space:nowrap}

/* ── SESSIONS CARD ──────────────────────────────────────────── */
.sessions-card .card-label{display:block;margin-bottom:10px}
.sessions-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}
.sess-item{
  padding:9px;border-radius:var(--r);
  background:var(--bg-card2);border:1px solid var(--border);
  text-align:center;transition:all .3s;
}
.sess-item.active{border-color:var(--buy);background:var(--buy-dim)}
.sess-name{font-size:10px;font-weight:700;color:var(--t2)}
.sess-item.active .sess-name{color:var(--buy)}
.sess-time{font-size:9px;color:var(--t3);margin-top:2px}
.sess-mult{font-size:11px;font-weight:800;margin-top:3px;color:var(--t1)}
.sess-item.active .sess-mult{color:var(--buy)}

.session-quality-row{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--t2)}
.sq-bar-wrap{flex:1;height:5px;background:var(--border);border-radius:3px;overflow:hidden}
.sq-bar{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent),var(--buy));transition:width .5s}
.sq-val{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--t1);min-width:28px;text-align:right}

/* ── CHART CARD ─────────────────────────────────────────────── */
.chart-card{padding:0;overflow:hidden}
.chart-topbar{
  display:flex;align-items:center;gap:12px;
  padding:12px 16px;border-bottom:1px solid var(--border);
  flex-wrap:wrap;gap:8px;
}
.chart-pair-info{display:flex;align-items:center;gap:8px}
.chart-pair-name{font-size:15px;font-weight:800}
.chart-price-big{font-family:var(--mono);font-size:18px;font-weight:700}
.chart-change-badge{font-family:var(--mono);font-size:11px;font-weight:700;padding:2px 7px;border-radius:20px}
.chart-change-badge.up{background:var(--buy-dim);color:var(--buy)}
.chart-change-badge.down{background:var(--sell-dim);color:var(--sell)}
.chart-stats{display:flex;gap:12px;flex:1}
.cstat{display:flex;flex-direction:column;align-items:center}
.cstat-lbl{font-size:8px;color:var(--t3);text-transform:uppercase}
.cstat-val{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--t1)}
.chart-type-btns{display:flex;gap:4px;margin-left:auto}
.ctype-btn{
  padding:4px 10px;border-radius:var(--r);
  background:var(--bg-card2);border:1px solid var(--border);
  color:var(--t2);font-size:10px;font-weight:600;transition:all .2s;
}
.ctype-btn.active{background:rgba(79,142,247,.15);border-color:var(--accent);color:var(--accent)}
.main-chart{height:300px;position:relative}
.chart-signal-overlay{
  padding:6px 14px;border-top:1px solid var(--border);
  display:flex;gap:8px;flex-wrap:wrap;min-height:28px;
}
.chart-sig-tag{
  padding:2px 8px;border-radius:20px;font-size:9px;font-weight:700;
}
.chart-sig-tag.buy{background:var(--buy-dim);color:var(--buy);border:1px solid var(--buy)}
.chart-sig-tag.sell{background:var(--sell-dim);color:var(--sell);border:1px solid var(--sell)}

/* ── INDICATORS GRID ────────────────────────────────────────── */
.indicators-card .card-header-row{margin-bottom:10px}
.ind-summary-pills{display:flex;gap:4px}
.ind-pill{padding:2px 8px;border-radius:20px;font-size:9px;font-weight:700}
.ind-pill.buy{background:var(--buy-dim);color:var(--buy)}
.ind-pill.sell{background:var(--sell-dim);color:var(--sell)}
.ind-pill.neutral{background:var(--neu-dim);color:var(--neu)}

.indicators-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.ind-item{
  background:var(--bg-card2);border:1px solid var(--border);
  border-radius:var(--r);padding:8px;transition:border-color .3s;
}
.ind-item.BUY{border-color:rgba(0,212,170,.35)}
.ind-item.SELL{border-color:rgba(255,77,109,.35)}
.ind-name{font-size:9px;color:var(--t3);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ind-sig{font-size:10px;font-weight:800}
.ind-sig.BUY{color:var(--buy)}.ind-sig.SELL{color:var(--sell)}.ind-sig.NEUTRAL{color:var(--neu)}
.ind-val{font-family:var(--mono);font-size:9px;color:var(--t3);margin-top:1px}
.ind-bar{height:3px;background:var(--border);border-radius:2px;margin-top:4px;overflow:hidden}
.ind-bar-fill{height:100%;border-radius:2px;transition:width .4s}
.BUY .ind-bar-fill{background:var(--buy)}.SELL .ind-bar-fill{background:var(--sell)}.NEUTRAL .ind-bar-fill{background:var(--neu)}

/* ── MTF CARD ───────────────────────────────────────────────── */
.mtf-card .card-label{display:block;margin-bottom:10px}
.mtf-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.mtf-item{
  background:var(--bg-card2);border:1px solid var(--border);
  border-radius:var(--r);padding:10px;text-align:center;transition:all .3s;
}
.mtf-item.BUY{border-color:var(--buy);background:var(--buy-dim)}
.mtf-item.SELL{border-color:var(--sell);background:var(--sell-dim)}
.mtf-tf{font-size:10px;font-weight:700;color:var(--t2);margin-bottom:4px}
.mtf-sig{font-size:14px;font-weight:900}
.mtf-item.BUY .mtf-sig{color:var(--buy)}.mtf-item.SELL .mtf-sig{color:var(--sell)}.mtf-item.NEUTRAL .mtf-sig{color:var(--neu)}
.mtf-conf{font-size:9px;color:var(--t3);margin-top:2px}

/* ── BACKTEST CARD ──────────────────────────────────────────── */
.bt-status-badge{font-size:9px;padding:2px 7px;border-radius:20px;background:var(--bg-card2);color:var(--t3);font-weight:700;text-transform:uppercase}
.bt-status-badge.running{background:rgba(79,142,247,.15);color:var(--accent)}
.bt-status-badge.done{background:var(--buy-dim);color:var(--buy)}
.bt-status-badge.error{background:var(--sell-dim);color:var(--sell)}

.bt-form{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.bt-field{display:flex;align-items:center;justify-content:space-between}
.bt-field label{font-size:10px;color:var(--t2)}
.bt-field input[type="number"]{
  width:80px;background:var(--bg-card2);border:1px solid var(--border);
  color:var(--t1);padding:4px 8px;border-radius:var(--r);font-size:11px;
}
.toggle-switch{position:relative;display:inline-block;width:34px;height:18px}
.toggle-switch input{opacity:0;width:0;height:0}
.toggle-slider{
  position:absolute;inset:0;background:var(--border);border-radius:18px;cursor:pointer;transition:.3s;
}
.toggle-slider::before{
  content:'';position:absolute;width:12px;height:12px;left:3px;bottom:3px;
  background:#fff;border-radius:50%;transition:.3s;
}
.toggle-switch input:checked + .toggle-slider{background:var(--accent)}
.toggle-switch input:checked + .toggle-slider::before{transform:translateX(16px)}

.btn-backtest{
  width:100%;padding:9px;border-radius:var(--r);
  background:linear-gradient(135deg,#f5c842,#f59e0b);
  color:#0a0e1a;font-size:11px;font-weight:800;transition:all .2s;
}
.btn-backtest:hover{opacity:.9;transform:translateY(-1px)}
.btn-backtest:disabled{opacity:.5;cursor:not-allowed;transform:none}

.bt-metrics{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:10px}
.bt-m{background:var(--bg-card2);border:1px solid var(--border);border-radius:var(--r);padding:7px}
.bt-m-lbl{font-size:9px;color:var(--t3);margin-bottom:2px}
.bt-m-val{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--t1)}
.bt-m-val.pos{color:var(--buy)}.bt-m-val.neg{color:var(--sell)}

.equity-title{font-size:10px;color:var(--t2);margin-bottom:6px}
.equity-chart{height:100px}

.mc-section{margin-top:8px;padding:8px;background:var(--bg-card2);border-radius:var(--r)}
.mc-title{font-size:9px;color:var(--t3);margin-bottom:5px;text-transform:uppercase}
.mc-bars{display:flex;gap:3px;align-items:flex-end;height:40px}
.mc-bar{flex:1;border-radius:2px 2px 0 0;transition:height .4s;min-height:2px}

.monthly-section{margin-top:8px}
.monthly-title{font-size:9px;color:var(--t3);margin-bottom:5px;text-transform:uppercase}
.monthly-grid{display:flex;flex-wrap:wrap;gap:3px}
.mo-item{padding:2px 6px;border-radius:var(--r);font-family:var(--mono);font-size:9px;font-weight:700}
.mo-item.pos{background:var(--buy-dim);color:var(--buy)}
.mo-item.neg{background:var(--sell-dim);color:var(--sell)}

/* ── HISTORY CARD ───────────────────────────────────────────── */
.history-card .card-header-row{margin-bottom:8px}
.btn-xs{padding:3px 8px;border-radius:var(--r);background:var(--bg-card2);border:1px solid var(--border);color:var(--t2);font-size:9px;font-weight:700;transition:all .2s}
.btn-xs:hover{border-color:var(--accent);color:var(--accent)}
.history-list{display:flex;flex-direction:column;gap:5px;max-height:220px;overflow-y:auto}
.hist-item{
  display:flex;align-items:center;gap:7px;
  padding:7px 9px;border-radius:var(--r);
  background:var(--bg-card2);border:1px solid var(--border);
  transition:border-color .2s;
}
.hist-item:hover{border-color:var(--border2)}
.hist-dir{font-size:9px;font-weight:800;padding:2px 5px;border-radius:4px;min-width:36px;text-align:center}
.hist-dir.BUY{background:var(--buy-dim);color:var(--buy)}
.hist-dir.SELL{background:var(--sell-dim);color:var(--sell)}
.hist-dir.NEUTRAL{background:var(--neu-dim);color:var(--neu)}
.hist-pair{font-size:10px;font-weight:700;flex:1}
.hist-conf{font-family:var(--mono);font-size:9px;color:var(--t3)}
.hist-time{font-size:9px;color:var(--t3)}

/* ── S/R CARD ───────────────────────────────────────────────── */
.sr-card .card-label{display:block;margin-bottom:8px}
.sr-list{display:flex;flex-direction:column;gap:5px}
.sr-item{display:flex;align-items:center;gap:7px;padding:6px 9px;border-radius:var(--r);background:var(--bg-card2);border:1px solid var(--border)}
.sr-type{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;min-width:72px;text-align:center}
.sr-type.resistance{background:var(--sell-dim);color:var(--sell)}
.sr-type.support{background:var(--buy-dim);color:var(--buy)}
.sr-price{font-family:var(--mono);font-size:11px;font-weight:700;flex:1}
.sr-dist{font-size:9px;color:var(--t3)}

/* ── BROKER CARD ────────────────────────────────────────────── */
.broker-card .card-label{display:block;margin-bottom:10px}
.broker-info{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}
.broker-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid var(--border)}
.broker-row:last-child{border-bottom:none}
.broker-key{font-size:10px;color:var(--t2)}
.broker-val{font-size:10px;font-weight:700;color:var(--t1)}
.disclaimer{font-size:9px;color:var(--t3);line-height:1.5;padding:8px;background:var(--bg-card2);border-radius:var(--r);border:1px solid var(--border)}

/* ── EMPTY STATE ────────────────────────────────────────────── */
.empty-state{font-size:10px;color:var(--t3);text-align:center;padding:16px}

/* ── TOAST ──────────────────────────────────────────────────── */
.toast-stack{position:fixed;bottom:18px;right:18px;display:flex;flex-direction:column;gap:6px;z-index:9999}
.toast{
  padding:10px 14px;border-radius:var(--r);
  background:var(--bg-card2);border:1px solid var(--border);
  box-shadow:0 8px 32px rgba(0,0,0,.5);
  font-size:11px;font-weight:600;max-width:280px;
  animation:slideIn .3s ease;
}
.toast.buy{border-color:var(--buy);color:var(--buy)}
.toast.sell{border-color:var(--sell);color:var(--sell)}
.toast.info{border-color:var(--accent);color:var(--accent)}
.toast.success{border-color:var(--buy);color:var(--buy)}
.toast.error{border-color:var(--sell);color:var(--sell)}

/* ── ANIMATIONS ─────────────────────────────────────────────── */
@keyframes blink{0%,100%{opacity:1}50%{opacity:.4}}
@keyframes trainSlide{0%{left:-50%}100%{left:100%}}
@keyframes slideIn{from{transform:translateX(110%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes fadeOut{from{opacity:1}to{opacity:0;transform:translateX(110%)}}
@keyframes sigPulse{0%{box-shadow:0 0 0 0 var(--buy-glow)}70%{box-shadow:0 0 0 14px transparent}100%{box-shadow:0 0 0 0 transparent}}
.sig-pulse-anim{animation:sigPulse 1s ease-out 3}

/* ── RESPONSIVE ─────────────────────────────────────────────── */
@media(max-width:1280px){
  .app-layout{grid-template-columns:270px 1fr}
  .sidebar-right{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr)}
  .indicators-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:960px){
  .app-layout{grid-template-columns:1fr}
  .sidebar-right{grid-template-columns:1fr 1fr}
  .indicators-grid{grid-template-columns:repeat(2,1fr)}
  .mtf-grid{grid-template-columns:repeat(2,1fr)}
  .nav-center{display:none}
}
@media(max-width:600px){
  .sidebar-right{grid-template-columns:1fr}
  .levels-grid{grid-template-columns:1fr 1fr}
}