:root{
  --bg:#0b0f14;
  --panel:#111821;
  --panel2:#151f2b;
  --text:#edf3f8;
  --muted:#8fa1b3;
  --line:#243141;
  --accent:#6dd7ff;
  --good:#6ee7a8;
  --warn:#ffd166;
  --bad:#ff7b8d;
}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(180deg,#091018,#0d131b 55%,#090d12);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif;min-height:100vh}
.topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:18px 20px;background:rgba(9,14,20,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
h1,h2,p{margin:0}.topbar h1{font-size:22px}.eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.status{font-size:12px;border:1px solid var(--line);padding:8px 10px;border-radius:999px;color:var(--muted)}
.top-actions{display:flex;gap:8px;align-items:center}
.wrap{max-width:1180px;margin:0 auto;padding:18px}
.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.card,.panel,.auth-card{background:rgba(17,24,33,.92);border:1px solid var(--line);border-radius:18px}
.card{padding:16px}.card span{display:block;color:var(--muted);font-size:12px;margin-bottom:8px}.card strong{font-size:22px}
.panel{padding:16px;margin-bottom:14px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
button{border:0;border-radius:10px;padding:10px 14px;background:var(--accent);color:#041018;font-weight:700;cursor:pointer}
button.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.market-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.market{padding:14px;background:var(--panel2);border:1px solid var(--line);border-radius:14px}
.market-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.symbol{font-weight:800}.name{color:var(--muted);font-size:12px;margin-top:3px}
.price{font-size:21px;font-weight:800;margin-top:14px}.meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;font-size:12px;color:var(--muted)}
.badge{font-size:11px;padding:5px 8px;border-radius:999px;border:1px solid var(--line);text-transform:uppercase}.normal{color:var(--good)}.orta{color:var(--warn)}.yüksek,.kritik{color:var(--bad)}
.reason{font-size:11px;color:var(--muted);margin-top:10px;line-height:1.4}.warning p{color:var(--muted);margin-top:8px;line-height:1.5}
.muted{color:var(--muted);font-size:12px}
.hidden{display:none!important}
.auth-body{display:grid;place-items:center;padding:20px}
.auth-wrap{width:min(440px,100%)}.auth-card{padding:24px}
.auth-card h1{margin-bottom:6px}.auth-card .muted{margin-bottom:18px}
.form-stack{display:grid;gap:12px}.form-stack.compact{margin-top:14px;max-width:460px}
label{display:grid;gap:6px;font-size:12px;color:var(--muted)}
input,select{width:100%;background:#0d141d;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:11px 12px;outline:none}
input:focus,select:focus{border-color:var(--accent)}
.form-msg{margin-top:12px;color:var(--bad);font-size:13px}
code{display:block;word-break:break-all;background:#0b1118;border:1px solid var(--line);padding:10px;border-radius:10px;color:var(--accent)}
.admin-form{display:grid;grid-template-columns:2fr 1.3fr 1fr auto;gap:8px;margin-bottom:14px}
.user-list{display:grid;gap:8px}
.user-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;background:var(--panel2);border:1px solid var(--line);border-radius:12px}
.user-row>div:last-child{display:flex;gap:8px;align-items:center}
@media(max-width:760px){
  .summary{grid-template-columns:1fr}.market-grid{grid-template-columns:1fr}.topbar{padding:14px 16px}.wrap{padding:12px}.market{padding:13px}
  .admin-form{grid-template-columns:1fr}.top-actions .status{display:none}
}


/* v0.2.2 - Piyasa grupları */
#markets{
  display:block;
}
.market-section{
  margin-top:16px;
}
.market-section:first-child{
  margin-top:0;
}
.market-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 2px 8px;
}
.market-section-head h3{
  margin:0;
  font-size:15px;
  letter-spacing:.01em;
}
.market-section-head span{
  color:var(--muted);
  font-size:11px;
}
.market-grid-group{
  grid-template-columns:repeat(3,1fr);
}
@media(max-width:760px){
  .market-grid-group{
    grid-template-columns:1fr;
  }
}


/* v0.2.3 - 3 ana grup, kompakt görünüm */
.market-section{
  margin-top:18px;
}
.market-section:first-child{
  margin-top:0;
}
.market-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 2px 9px;
  border-bottom:1px solid var(--line);
  margin-bottom:10px;
}
.market-section-head h3{
  margin:0;
  font-size:16px;
}
.market-section-head span{
  color:var(--muted);
  font-size:11px;
}
.market-grid-group{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.market-grid-other{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.subgroup-label{
  display:inline-block;
  margin-bottom:8px;
  padding:4px 7px;
  border-radius:999px;
  border:1px solid var(--line);
  color:var(--accent);
  font-size:10px;
  font-weight:700;
  letter-spacing:.03em;
}
@media(max-width:980px){
  .market-grid-other{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:760px){
  .market-grid-group,
  .market-grid-other{
    grid-template-columns:1fr;
  }
}


/* v0.2.4 - BIST yükseliş adayları ince liste */
.bist-list{
  display:grid;
  gap:7px;
}
.bist-row{
  display:grid;
  grid-template-columns:34px minmax(180px,1.7fr) 120px 86px 86px 128px;
  gap:10px;
  align-items:center;
  min-height:54px;
  padding:8px 10px;
  background:var(--panel2);
  border:1px solid var(--line);
  border-radius:12px;
}
.bist-rank{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:8px;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
}
.bist-main{
  min-width:0;
}
.bist-symbol{
  font-size:14px;
  font-weight:900;
}
.bist-name{
  color:var(--muted);
  font-size:11px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  margin-top:2px;
}
.bist-price{
  display:grid;
  gap:2px;
}
.bist-price strong{
  font-size:14px;
}
.bist-price span{
  color:var(--muted);
  font-size:10px;
}
.bist-metric,
.bist-score{
  display:grid;
  gap:3px;
}
.bist-metric span,
.bist-score span{
  color:var(--muted);
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.bist-metric strong{
  font-size:12px;
}
.bist-score{
  justify-items:end;
}
.bist-score strong{
  font-size:15px;
  color:var(--good);
}
.empty-candidates{
  padding:14px;
  border:1px dashed var(--line);
  border-radius:12px;
  color:var(--muted);
  text-align:center;
}

@media(max-width:900px){
  .bist-row{
    grid-template-columns:30px minmax(150px,1.4fr) 110px 80px 120px;
  }
  .bist-row .bist-metric:nth-of-type(2){
    display:none;
  }
}

@media(max-width:760px){
  .bist-row{
    grid-template-columns:28px 1fr auto;
    gap:8px;
    padding:9px;
  }
  .bist-rank{
    width:24px;
    height:24px;
  }
  .bist-price{
    text-align:right;
  }
  .bist-metric{
    grid-column:2;
    display:inline-flex;
    gap:8px;
    align-items:center;
  }
  .bist-metric + .bist-metric{
    grid-column:2;
  }
  .bist-score{
    grid-column:3;
    grid-row:2 / span 2;
    align-self:center;
    justify-items:end;
  }
  .bist-score span{
    font-size:8px;
  }
  .bist-score strong{
    font-size:14px;
  }
}


/* v0.2.5 - Balina alış önceliği */
.whale-row{
  border:2px solid #ff4d5a !important;
  box-shadow:0 0 0 1px rgba(255,77,90,.12), 0 0 18px rgba(255,77,90,.10);
  background:linear-gradient(90deg,rgba(255,77,90,.07),var(--panel2) 34%);
}
.bist-symbol-line{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.whale-badge{
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
  padding:3px 6px;
  border-radius:999px;
  border:1px solid rgba(255,77,90,.65);
  background:rgba(255,77,90,.12);
  color:#ff7580;
  font-size:9px;
  font-weight:900;
  letter-spacing:.04em;
}
.whale-row .bist-rank{
  border-color:rgba(255,77,90,.65);
  color:#ff7580;
}
.whale-row .bist-score strong{
  color:#ff7580;
}

@media(max-width:760px){
  .whale-badge{
    font-size:8px;
    padding:2px 5px;
  }
}

/* v0.2.6 - Haftalık makro görünüm */
.weekly-outlook{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.weekly-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.weekly-head span{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.weekly-head strong{font-size:11px}
.weekly-outlook.up .weekly-head strong{color:var(--good)}
.weekly-outlook.downtrend .weekly-head strong{color:var(--bad)}
.weekly-outlook.neutral .weekly-head strong{color:var(--warn)}
.weekly-bars{display:grid;gap:6px}
.weekly-line{display:grid;grid-template-columns:50px 1fr 40px;gap:7px;align-items:center;font-size:10px;color:var(--muted)}
.weekly-line b{text-align:right;color:var(--good);font-size:10px}
.weekly-line.down b{color:var(--bad)}
.weekly-track{height:5px;border-radius:999px;background:#0b1118;border:1px solid var(--line);overflow:hidden}
.weekly-track i{display:block;height:100%;background:var(--good)}
.weekly-line.down .weekly-track i{background:var(--bad)}

/* v0.2.6.1 - Sade haftalık yükselme / düşme görünümü */
.simple-weekly{
  margin-top:10px;
  padding-top:9px;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:auto 1fr 1fr;
  gap:8px;
  align-items:center;
  font-size:11px;
}
.simple-weekly-label{
  color:var(--muted);
  font-size:10px;
  font-weight:700;
}
.simple-up{
  color:var(--good);
  font-weight:800;
}
.simple-down{
  color:var(--bad);
  font-weight:800;
  text-align:right;
}
@media(max-width:760px){
  .simple-weekly{
    grid-template-columns:1fr 1fr;
  }
  .simple-weekly-label{
    grid-column:1 / -1;
  }
}


/* v0.3.0 — gerçek salt-okunur kripto veri kaynağı */
.live-source{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-top:7px;
  padding:4px 7px;
  border:1px solid rgba(110,231,168,.35);
  border-radius:999px;
  color:var(--good);
  font-size:9px;
  font-weight:800;
  letter-spacing:.04em;
}
.live-source.stale{
  color:var(--warn);
  border-color:rgba(255,209,102,.35);
}
.live-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:currentColor;
}
.section-source{
  font-size:10px;
  font-weight:800;
  letter-spacing:.04em;
}
.source-live{color:var(--good)}
.source-stale{color:var(--warn)}
.source-demo{color:var(--muted)}


/* v0.3.1 — gerçek piyasa verisi: gram altın / döviz / Brent */
.market-source{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-top:7px;
  padding:4px 7px;
  border:1px solid rgba(109,215,255,.35);
  border-radius:999px;
  color:var(--accent);
  font-size:9px;
  font-weight:800;
  letter-spacing:.04em;
}
.market-source.stale{
  color:var(--warn);
  border-color:rgba(255,209,102,.35);
}
.macro-meta{
  grid-template-columns:1fr 1fr;
}


/* v0.3.2 — gerçek BIST fiyat + geçmiş veri */
.bist-market-badge{
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
  padding:3px 6px;
  border-radius:999px;
  border:1px solid rgba(109,215,255,.40);
  color:var(--accent);
  font-size:8px;
  font-weight:900;
  letter-spacing:.04em;
}
.bist-subnote{
  color:var(--muted);
  font-size:10px;
  margin:-2px 2px 8px;
}


/* v0.3.3 — BIST backtest olasılıkları ve zaman penceresi */
.bist-probabilities{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  margin-top:4px;
  font-size:9px;
  color:var(--muted);
}
.bist-probabilities b{
  color:var(--good);
}
.bist-probabilities .window{
  color:var(--accent);
  font-weight:700;
}
@media(max-width:760px){
  .bist-probabilities{
    gap:5px 8px;
    font-size:8px;
  }
}


/* v0.3.4 — intraday 15dk / 1s / 4s zaman pencereleri */
.bist-probabilities{
  line-height:1.45;
}
.bist-probabilities span{
  white-space:nowrap;
}
@media(max-width:760px){
  .bist-probabilities{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .bist-probabilities .window{
    grid-column:1 / -1;
  }
}


/* v0.3.5 — lisanslı BIST order-flow entegrasyon durumu */
.orderflow-live,
.orderflow-off{
  font-size:9px;
  font-weight:800;
  letter-spacing:.03em;
}
.orderflow-live{
  color:var(--good);
}
.orderflow-off{
  color:var(--muted);
}


/* v0.3.6 — ücretsiz BIST hareket uyarıları */
.free-activity-badge{
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
  padding:3px 6px;
  border-radius:999px;
  font-size:8px;
  font-weight:900;
  letter-spacing:.035em;
}
.free-activity-badge.priority-1{
  border:1px solid rgba(110,231,168,.45);
  color:var(--good);
}
.free-activity-badge.priority-2,
.free-activity-badge.priority-3{
  border:1px solid rgba(255,209,102,.55);
  color:var(--warn);
}
.bist-row:has(.free-activity-badge.priority-2),
.bist-row:has(.free-activity-badge.priority-3){
  border-color:rgba(255,209,102,.45);
  box-shadow:0 0 14px rgba(255,209,102,.06);
}


/* v0.3.7 — günlük/haftalık macro + altın intelligence */
.simple-daily{
  margin-top:8px;
}
.gold-intel{
  margin-top:10px;
  padding-top:9px;
  border-top:1px solid rgba(255,255,255,.08);
  display:grid;
  gap:5px;
}
.gold-intel-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:10px;
  color:var(--muted);
}
.gold-intel-row b{
  color:var(--text);
  font-size:10px;
}
.gold-intel-row b.good{ color:var(--good); }
.gold-intel-row b.bad{ color:var(--danger); }
.gold-intel-note{
  margin-top:3px;
  font-size:8px;
  line-height:1.35;
  color:var(--muted);
  opacity:.9;
}


/* v0.3.8 — Crypto Intelligence */
.crypto-intel{
  margin-top:9px;
}
.crypto-why{
  margin-top:3px;
  font-size:8px;
  line-height:1.4;
  color:var(--muted);
}


/* v0.4.0 — forex/macro intelligence */
.macro-intel{
  margin-top:8px;
}
.macro-why{
  margin-top:3px;
  font-size:8px;
  line-height:1.35;
  color:var(--muted);
}


/* v0.4.1 — TCMB EVDS local macro */
.tcmb-local{
  margin-top:7px;
  padding-top:6px;
  border-top:1px solid rgba(255,255,255,.06);
  display:flex;
  justify-content:space-between;
  gap:8px;
  font-size:8px;
  color:var(--muted);
}
.tcmb-local b{
  font-size:8px;
  color:var(--muted);
}
.tcmb-local.active b{
  color:var(--good);
}


/* v0.4.2 — ücretsiz 15dk büyük oyuncu hareketi adayı */
.big-player-row{
  border-color:rgba(255,166,77,.72) !important;
  box-shadow:0 0 18px rgba(255,166,77,.10);
}
.big-player-badge{
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
  padding:3px 7px;
  border-radius:999px;
  font-size:8px;
  font-weight:900;
  letter-spacing:.035em;
  border:1px solid rgba(255,166,77,.68);
  color:#ffb36b;
  background:rgba(255,166,77,.07);
}
.big-player-badge.priority-1{
  border-color:rgba(255,209,102,.55);
  color:var(--warn);
}
.big-player-badge.priority-3{
  border-color:rgba(255,139,61,.82);
  color:#ff9f50;
}
.big-player-reason{
  margin-top:5px;
  font-size:8px;
  color:var(--muted);
  line-height:1.35;
}


/* v0.4.3 — performance dashboard */
.performance-panel{
  margin-top:14px;
}
.performance-head{
  align-items:flex-end;
}
.performance-range{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.performance-range button{
  min-width:64px;
}
.performance-range button.active{
  box-shadow:0 0 0 1px rgba(89,200,246,.15) inset;
}
.performance-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-bottom:10px;
}
.perf-stat{
  border:1px solid var(--line);
  background:rgba(255,255,255,.018);
  border-radius:10px;
  padding:11px 12px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.perf-stat span{
  font-size:9px;
  color:var(--muted);
}
.perf-stat strong{
  font-size:18px;
}
.performance-notice{
  margin:4px 0 10px;
  font-size:10px;
}
.performance-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.perf-box{
  border:1px solid var(--line);
  border-radius:11px;
  padding:10px;
  background:rgba(255,255,255,.012);
}
.perf-box h3{
  margin:0 0 8px;
  font-size:11px;
}
.perf-list{
  display:grid;
  gap:5px;
}
.perf-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:7px 10px;
  align-items:center;
  padding:7px 8px;
  border-radius:8px;
  background:rgba(255,255,255,.018);
  border:1px solid rgba(255,255,255,.04);
}
.perf-row > div{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.perf-row strong{
  font-size:9px;
  overflow:hidden;
  text-overflow:ellipsis;
}
.perf-row span{
  font-size:8px;
  color:var(--muted);
}
.perf-row b{
  font-size:10px;
  white-space:nowrap;
}
.perf-row em{
  grid-column:1 / -1;
  font-size:7px;
  color:var(--muted);
  font-style:normal;
}
.perf-empty{
  padding:12px 8px;
  text-align:center;
  color:var(--muted);
  font-size:9px;
}
.good{color:var(--good)!important}
.bad{color:var(--danger)!important}
.neutral{color:var(--warn)!important}

@media (max-width: 760px){
  .performance-summary{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .performance-grid{
    grid-template-columns:1fr;
  }
  .performance-head{
    align-items:flex-start;
    gap:10px;
  }
}


/* v0.4.4 — autonomous paper trading */
.paper-panel{border-color:rgba(109,215,255,.28)}
.paper-head{align-items:flex-end;gap:12px}
.paper-state-line{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.danger-state{color:var(--bad);border-color:rgba(255,123,141,.35)}
.paper-active{color:var(--good)!important;border-color:rgba(110,231,168,.35)!important}
.paper-killed{color:var(--bad)!important;border-color:rgba(255,123,141,.5)!important}
.paper-accounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:9px}
.paper-account{display:flex;flex-direction:column;gap:4px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.018)}
.paper-account>span{font-size:8px;color:var(--muted);letter-spacing:.08em}
.paper-account>strong{font-size:17px}
.paper-account small{font-size:8px;color:var(--muted);line-height:1.35}
.paper-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:9px}
.paper-position-row span+span{margin-top:2px}
@media(max-width:760px){
  .paper-head{align-items:flex-start;flex-direction:column}
  .paper-state-line{justify-content:flex-start}
  .paper-accounts{grid-template-columns:1fr}
  .paper-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
