@font-face { font-family: Vazirmatn; src: url('/static/fonts/Vazirmatn-Regular.ttf') format('truetype'); font-style: normal; font-weight: 300 500; font-display: swap; }
@font-face { font-family: Vazirmatn; src: url('/static/fonts/Vazirmatn-SemiBold.ttf') format('truetype'); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: Vazirmatn; src: url('/static/fonts/Vazirmatn-Bold.ttf') format('truetype'); font-style: normal; font-weight: 700 900; font-display: swap; }

:root {
  --bg: #f8f9fd;
  --surface: #ffffff;
  --surface-soft: #fbfcff;
  --text: #11182a;
  --muted: #718096;
  --muted-2: #9aa5b6;
  --line: #e9edf5;
  --primary: #5b4df5;
  --primary-soft: #f0edff;
  --blue: #2869f7;
  --green: #11b675;
  --green-soft: #e8f9f1;
  --red: #ed3949;
  --red-soft: #fff0f2;
  --orange: #ff960f;
  --orange-soft: #fff5e8;
  --violet: #6a50f8;
  --shadow: 0 12px 34px rgba(31, 45, 78, .055);
  --shadow-hover: 0 18px 44px rgba(31, 45, 78, .1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  color: var(--text);
  font-family: Vazirmatn, Tahoma, Arial, sans-serif;
  background:
    radial-gradient(circle at 68% -5%, rgba(95, 78, 245, .045), transparent 28%),
    linear-gradient(180deg, #fbfcff 0, var(--bg) 34%, #fafbfe 100%);
  transition: background .2s ease, color .2s ease;
}

button, input, select { font: inherit; }
button, select { cursor: pointer; }
a { color: inherit; text-decoration: none; }
.uiIcon { width: 21px; height: 21px; flex: 0 0 auto; }
.up { color: var(--green) !important; }
.down { color: var(--red) !important; }

.shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  direction: ltr;
}

.sidebar {
  position: sticky;
  top: 0;
  z-index: 30;
  height: 100vh;
  padding: 20px 18px 18px;
  display: flex;
  flex-direction: column;
  direction: rtl;
  overflow-y: auto;
  background: rgba(255, 255, 255, .92);
  border-right: 1px solid #e5e9f2;
  backdrop-filter: blur(20px);
}

.brand {
  display: flex;
  align-items: center;
  direction: ltr;
  gap: 10px;
  min-height: 58px;
  padding: 2px 7px 12px;
}

.brandMark {
  width: 40px;
  height: 43px;
  display: grid;
  place-items: center;
  color: transparent;
  font-size: 38px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -7px;
  background: linear-gradient(145deg, #7163ff 8%, #4d41e8 42%, #9d70ff 82%);
  -webkit-background-clip: text;
  background-clip: text;
  filter: drop-shadow(0 7px 11px rgba(91, 77, 245, .2));
}

.brandCopy {
  display: grid;
  align-content: center;
  direction: ltr;
  text-align: left;
}
.brandCopy strong { font-size: 16px; line-height: 1.2; letter-spacing: -.25px; }
.brandCopy small { margin-top: 5px; color: #46516a; font-size: 8px; direction: rtl; }

.nav {
  display: grid;
  gap: 5px;
  margin-top: 18px;
}

.nav a {
  min-height: 48px;
  padding: 0 15px;
  display: flex;
  align-items: center;
  direction: ltr;
  gap: 17px;
  color: #53617d;
  font-size: 13px;
  border-radius: 11px;
  transition: color .18s ease, background .18s ease, transform .18s ease;
}
.nav a span { direction: rtl; }
.nav a:hover { color: var(--primary); background: #f6f4ff; transform: translateX(2px); }
.nav a.active {
  color: #4735f5;
  background: linear-gradient(90deg, #eeebff, #f4f1ff);
  font-weight: 600;
}
.nav a.active .uiIcon { stroke-width: 2; }
.sidebarSpacer { flex: 1 0 20px; }

.premiumCard {
  position: relative;
  min-height: 157px;
  padding: 20px 18px 16px;
  overflow: hidden;
  color: #fff;
  border-radius: 15px;
  background:
    radial-gradient(circle at 90% 25%, rgba(255,255,255,.24), transparent 22%),
    linear-gradient(135deg, #5f7afb 0%, #7858f9 52%, #a04af2 100%);
  box-shadow: 0 16px 30px rgba(103, 77, 246, .22);
}
.premiumCard:after {
  content: '';
  position: absolute;
  width: 100px;
  height: 100px;
  left: -34px;
  bottom: -46px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
}
.premiumText { position: relative; z-index: 1; max-width: 145px; }
.premiumText strong { display: block; font-size: 13px; }
.premiumText small { display: block; margin-top: 9px; font-size: 8px; line-height: 1.9; opacity: .85; }
.premiumGem { position: absolute; left: 18px; top: 37px; }
.premiumGem .uiIcon { width: 42px; height: 42px; stroke-width: 1.4; filter: drop-shadow(0 7px 12px rgba(60,20,120,.3)); }
.premiumCard > a {
  position: absolute;
  z-index: 2;
  right: 18px;
  left: 18px;
  bottom: 15px;
  height: 37px;
  display: grid;
  place-items: center;
  color: #5946e9;
  font-size: 11px;
  font-weight: 700;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 5px 13px rgba(57, 32, 135, .16);
}

.userCard {
  min-height: 78px;
  margin-top: 17px;
  padding: 12px 13px;
  display: flex;
  align-items: center;
  direction: ltr;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,.86);
  box-shadow: var(--shadow);
}
.avatar {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  border-radius: 50%;
  border: 3px solid #eef1f7;
  background: linear-gradient(145deg, #1b304f, #5a6a7d);
}
.userInfo { min-width: 0; flex: 1; display: grid; direction: rtl; text-align: right; }
.userInfo strong { font-size: 11px; white-space: nowrap; }
.userInfo small { margin-top: 5px; direction: ltr; color: #66738c; font-size: 9px; }
.userInfo small b { color: #ffbd1a; }
.userCard > .uiIcon { width: 16px; color: #78859b; }

.main {
  min-width: 0;
  padding: 20px 26px 40px;
  direction: rtl;
}
.homeOnly { max-width: 1720px; width: 100%; margin: 0 auto; }

/* Desktop shell is fixed deliberately: it prevents the RTL document from
   horizontally pushing the agreed left sidebar outside the viewport. */
@media (min-width: 841px) {
  .shell {
    display: block;
    width: 100%;
    max-width: 100vw;
  }
  .sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: 250px;
  }
  .main {
    width: calc(100% - 250px);
    max-width: none;
    margin-left: 250px;
  }
  .dashboardWorkspace {
    width: 100%;
    max-width: 100%;
  }
}

.topbar {
  min-height: 58px;
  margin-bottom: 15px;
  display: flex;
  align-items: center;
  direction: ltr;
  gap: 16px;
}
.search {
  position: relative;
  width: min(416px, 42vw);
  height: 51px;
  display: flex;
  align-items: center;
  color: #63718d;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,.82);
  box-shadow: 0 8px 22px rgba(46, 56, 84, .035);
}
.search .uiIcon { position: absolute; right: auto; left: 17px; width: 19px; }
.search input {
  width: 100%;
  height: 100%;
  padding: 0 48px 0 48px;
  direction: rtl;
  color: var(--text);
  border: 0;
  outline: 0;
  background: transparent;
  font-size: 11px;
}
.search input::placeholder { color: #66738d; }
.topActions { margin-left: auto; display: flex; align-items: center; direction: ltr; gap: 14px; }
.iconButton {
  position: relative;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  color: #18243d;
  border: 0;
  border-radius: 12px;
  background: transparent;
}
.iconButton:hover { background: #f0efff; color: var(--primary); }
.notificationButton span {
  position: absolute;
  top: 1px;
  right: 1px;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 9px;
  border: 2px solid var(--bg);
  border-radius: 50%;
  background: #5844f4;
}
.marketStatus {
  min-width: 120px;
  height: 58px;
  padding: 0 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  direction: rtl;
  gap: 17px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(255,255,255,.92);
  box-shadow: var(--shadow);
}
.marketStatus span { display: grid; text-align: center; }
.marketStatus small { color: #65738e; font-size: 9px; }
.marketStatus strong { margin-top: 3px; color: var(--green); font-size: 10px; }
.marketStatus i { width: 10px; height: 10px; border-radius: 50%; background: var(--green); }

.dashboardWorkspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 410px;
  gap: 18px;
  direction: ltr;
}
.primaryColumn, .dashboardRail { min-width: 0; direction: rtl; }
.primaryColumn { display: grid; align-content: start; gap: 17px; }
.dashboardRail { display: grid; align-content: start; gap: 16px; }

.summaryGrid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; direction: ltr; }
.summaryCard {
  min-height: 179px;
  padding: 24px 19px 17px;
  direction: rtl;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(255,255,255,.91);
  box-shadow: var(--shadow);
}
.summaryHead { display: flex; align-items: center; justify-content: space-between; color: #202a40; font-size: 12px; }
.summaryIcon {
  width: 43px;
  height: 43px;
  display: grid;
  place-items: center;
  border-radius: 50%;
}
.summaryIcon .uiIcon { width: 22px; height: 22px; }
.summaryIcon.violet, .wealthIcon.violet { color: var(--violet); background: #f1edff; }
.summaryIcon.green, .wealthIcon.green { color: var(--green); background: var(--green-soft); }
.summaryIcon.orange, .wealthIcon.orange { color: var(--orange); background: var(--orange-soft); }
.summaryCard > strong { display: block; margin-top: 8px; direction: ltr; text-align: right; font-size: 20px; line-height: 1.3; }
.summaryCard > small { display: block; margin-top: 7px; color: #6e7b94; font-size: 10px; }
.summaryBottom { height: 48px; margin-top: 5px; display: flex; align-items: end; justify-content: space-between; direction: ltr; }
.summaryBottom b { align-self: center; direction: ltr; font-size: 10px; }
.summaryBottom.chartOnly { justify-content: flex-end; }
.summarySpark { width: 55%; height: 46px; overflow: visible; }
.summaryBottom.chartOnly .summarySpark { width: 100%; }
.summarySpark path:not(.fill) { fill: none; stroke: currentColor; stroke-width: 2.1; stroke-linecap: round; stroke-linejoin: round; }
.summarySpark .fill { stroke: none; fill: currentColor; opacity: .09; }
.violetSpark { color: #6048ff; }
.greenSpark { color: #0fb373; }
.orangeSpark { color: #ff920d; }

/* Trading tools replace decorative portfolio totals with usable calculations. */
.tradingDesk { padding: 20px; overflow: hidden; }
.tradingDeskHead { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.tradingDeskHead h2 { margin: 5px 0 0; font-size: 18px; }
.tradingDeskHead p { max-width: 650px; margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.9; }
.localCalc { padding: 7px 11px; display: inline-flex; align-items: center; flex: 0 0 auto; gap: 7px; color: #08784c; border: 1px solid #ccecdf; border-radius: 999px; background: #effbf6; font-size: 9px; font-weight: 700; }
.localCalc i { width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(17,182,117,.1); }
.tradeToolGrid { margin-top: 17px; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 11px; direction: ltr; }
.tradeTool { min-width: 0; padding: 15px; direction: rtl; border: 1px solid var(--line); border-radius: 14px; background: linear-gradient(155deg, #fff, #fbfcff); box-shadow: 0 8px 22px rgba(31,45,78,.035); }
.tradeTool header { display: flex; align-items: center; gap: 10px; }
.tradeTool header > div { display: grid; gap: 3px; }
.tradeTool header strong { color: #1c263b; font-size: 12px; }
.tradeTool header small { color: var(--muted); font-size: 9px; }
.tradeToolIcon { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 11px; }
.tradeToolIcon .uiIcon { width: 20px; height: 20px; }
.tradeToolIcon.violet { color: var(--violet); background: #f0edff; }
.tradeToolIcon.green { color: var(--green); background: var(--green-soft); }
.tradeToolIcon.orange { color: var(--orange); background: var(--orange-soft); }
.tradeInputs { margin-top: 14px; display: grid; gap: 7px; }
.tradeInputs.fourInputs, .tradeInputs.threeInputs { grid-template-columns: repeat(2, minmax(0,1fr)); }
.tradeInputs label { min-width: 0; display: grid; gap: 5px; color: #6f7b91; font-size: 9px; }
.tradeInputs input { width: 100%; height: 37px; padding: 0 9px; direction: ltr; text-align: right; color: #172136; border: 1px solid #e3e7f0; border-radius: 9px; outline: 0; background: #f8f9fc; font-size: 11px; transition: border-color .16s ease, box-shadow .16s ease, background .16s ease; }
.tradeInputs input:focus { border-color: #a89eff; background: #fff; box-shadow: 0 0 0 3px #f0eeff; }
.tradeResult { min-height: 69px; margin-top: 11px; padding: 10px 12px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 3px 9px; border-radius: 11px; background: #f4f6fa; }
.tradeResult > span { color: #66738a; font-size: 9px; }
.tradeResult > strong { direction: ltr; text-align: left; color: #222d43; font-size: 15px; }
.tradeResult > small { grid-column: 1 / -1; color: #758198; font-size: 8.5px; line-height: 1.7; }
.tradeResult.good { background: #ecfaf4; }
.tradeResult.good > strong { color: #08794d; }
.tradeResult.caution { background: #fff7e7; }
.tradeResult.caution > strong { color: #98670d; }
.tradeResult.danger { background: #fff0f2; }
.tradeResult.danger > strong { color: #c42e40; }

.panel {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255,255,255,.91);
  box-shadow: var(--shadow);
}
.panelHead { display: flex; align-items: center; justify-content: space-between; }
.panelHead h2, .panelHead h3 { margin: 0; color: #11192a; font-size: 14px; }
.panelHead a { color: var(--primary); font-size: 10px; }
.titleWithInfo { display: flex; align-items: center; gap: 10px; }
.titleWithInfo h2 { margin: 0; font-size: 14px; }
.titleWithInfo i {
  width: 15px;
  height: 15px;
  display: grid;
  place-items: center;
  color: #8e99ab;
  font-size: 9px;
  font-style: normal;
  border: 1px solid #b8c0cd;
  border-radius: 50%;
}

/* Opportunity decision workspace */
.opportunityPanel { padding: 20px; overflow: hidden; }
.opportunityHeader {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
}
.opportunityHeader h2 { margin: 5px 0 0; color: #11192a; font-size: 17px; }
.opportunityHeader p { max-width: 590px; margin: 7px 0 0; color: var(--muted); font-size: 11.5px; line-height: 1.9; }
.sectionEyebrow { color: var(--primary); font-size: 10.5px; font-weight: 700; }
.opportunityTabs {
  padding: 4px;
  display: flex;
  flex: 0 0 auto;
  gap: 3px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f7f8fc;
}
.opportunityTabs button {
  min-width: 70px;
  height: 36px;
  color: #65718a;
  border: 0;
  border-radius: 9px;
  background: transparent;
  font-size: 10px;
  transition: .18s ease;
}
.opportunityTabs button:hover { color: var(--primary); background: #f0eeff; }
.opportunityTabs button.active { color: #fff; background: linear-gradient(135deg, #5848ed, #7b61ff); box-shadow: 0 7px 16px rgba(92,72,237,.22); }
.opportunityFormula {
  margin: 16px 0;
  padding: 10px 13px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: #526079;
  border: 1px solid #e7e4ff;
  border-radius: 11px;
  background: linear-gradient(90deg, #f8f7ff, #fcfcff);
  font-size: 10px;
}
.opportunityFormula > span { display: flex; align-items: center; gap: 6px; color: var(--primary); font-weight: 700; }
.opportunityFormula .uiIcon { width: 16px; height: 16px; }
.opportunityFormula b { color: #252f46; font-size: 10px; }
.opportunityFormula small { margin-right: auto; color: #7b8599; font-size: 9.5px; }
.opportunityGrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.opportunityCard {
  position: relative;
  min-width: 0;
  padding: 15px;
  border: 1px solid #e5e9f2;
  border-radius: 14px;
  background: linear-gradient(155deg, #fff, #fbfcff);
  box-shadow: 0 8px 20px rgba(40,50,80,.035);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.opportunityCard:hover { transform: translateY(-3px); border-color: #d7d2ff; box-shadow: 0 14px 28px rgba(66,55,140,.09); }
.opportunityCardHead { display: flex; align-items: center; justify-content: space-between; gap: 9px; }
.opportunityAsset { min-width: 0; display: flex; align-items: center; direction: ltr; gap: 9px; }
.opportunityAsset > span { min-width: 0; display: grid; direction: rtl; text-align: right; }
.opportunityAsset strong { overflow: hidden; font-size: 12.5px; white-space: nowrap; text-overflow: ellipsis; }
.opportunityAsset small { margin-top: 2px; direction: ltr; color: var(--muted); font-size: 9.5px; }
.signalChip { padding: 5px 8px; flex: 0 0 auto; border-radius: 999px; font-size: 10px; font-weight: 700; }
.signalChip.buy { color: #087a4d; background: #e4f8ef; }
.signalChip.sell { color: #c82639; background: #ffeaed; }
.signalChip.hold { color: #82580b; background: #fff3da; }
.opportunityReturn { margin: 16px 0 13px; display: flex; align-items: baseline; justify-content: space-between; }
.opportunityReturn span { color: #6f7a90; font-size: 10.5px; }
.opportunityReturn strong { direction: ltr; font-size: 17px; }
.scoreLine { display: flex; justify-content: space-between; color: #6e7890; font-size: 10px; }
.scoreLine b { color: #303a51; font-size: 10px; }
.scoreTrack { height: 6px; margin-top: 7px; overflow: hidden; border-radius: 10px; background: #edf0f6; direction: ltr; }
.scoreTrack i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #7061fb, #13b878); }
.opportunityMetrics { margin-top: 13px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.opportunityMetrics > span { padding: 8px 9px; display: grid; gap: 4px; border-radius: 9px; background: #f7f9fc; }
.opportunityMetrics small { color: #7b8599; font-size: 9.5px; }
.opportunityMetrics b { color: #253048; font-size: 10.5px; }
.opportunityCard p { min-height: 42px; margin: 12px 0 8px; color: #59667e; font-size: 10.5px; line-height: 1.8; }
.opportunitySource { min-height: 42px; padding: 7px 0; display: grid; gap: 4px; color: #8490a4; font-size: 9px; border-top: 1px solid var(--line); }
.opportunityCard > a { margin-top: 7px; display: flex; align-items: center; justify-content: space-between; color: var(--primary); font-size: 10.5px; font-weight: 700; }
.opportunityEmpty { min-height: 146px; display: grid; place-content: center; gap: 7px; text-align: center; border: 1px dashed #dfe3ee; border-radius: 13px; background: #fbfcff; }
.opportunityEmpty strong { color: #2a354c; font-size: 11px; }
.opportunityEmpty small { color: var(--muted); font-size: 9px; }
.opportunityEmptyIcon { color: var(--primary); font-size: 30px; line-height: 1; }
.opportunityEmpty button { margin: 7px auto 0; padding: 7px 13px; color: var(--primary); border: 1px solid #dcd7ff; border-radius: 8px; background: #f4f2ff; }
.opportunityPending { min-height: 230px; display: grid; place-content: center; gap: 7px; text-align: center; border: 1px dashed #dcd8ff; border-radius: 14px; background: #faf9ff; }
.opportunityPending strong { color: #39435a; font-size: 12px; }
.opportunityPending small { color: var(--muted); font-size: 10px; }
.opportunityLoader { width: 25px; height: 25px; margin: 0 auto 3px; border: 3px solid #e8e5ff; border-top-color: var(--primary); border-radius: 50%; animation: opportunitySpin .8s linear infinite; }
@keyframes opportunitySpin { to { transform: rotate(360deg); } }

.analyticsGrid { display: grid; grid-template-columns: 1.05fr .96fr; gap: 16px; direction: ltr; }
.analyticsGrid > * { direction: rtl; }
.heatPanel, .indexPanel { min-height: 400px; padding: 17px 16px 15px; }
.heatPanel select {
  min-width: 95px;
  height: 39px;
  padding: 0 15px;
  color: #26324b;
  border: 1px solid var(--line);
  border-radius: 10px;
  outline: 0;
  background: #fff;
  font-size: 10px;
}
.referenceHeatmap {
  height: 272px;
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 3px;
  direction: ltr;
}
.referenceHeat {
  display: grid;
  place-content: center;
  gap: 7px;
  text-align: center;
  border-radius: 7px;
  transition: transform .18s ease, filter .18s ease;
}
.referenceHeat:hover { transform: translateY(-2px); filter: saturate(1.12); }
.referenceHeat.positive { background: linear-gradient(135deg, #e5f9ef, #dff7ea); }
.referenceHeat.negative { background: linear-gradient(135deg, #fff0f1, #fde6e9); }
.referenceHeat strong { font-size: 10px; font-weight: 600; }
.referenceHeat span { font-size: 10px; font-weight: 700; direction: ltr; }
.finalSignalChip {
  min-width: 72px;
  min-height: 26px;
  padding: 4px 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  direction: rtl !important;
  gap: 5px;
  border-radius: 999px;
  font-size: 9.5px !important;
  font-weight: 700;
  white-space: nowrap;
}
.finalSignalChip i { width: 6px; height: 6px; flex: 0 0 auto; border-radius: 50%; }
.finalSignalChip small { direction: ltr; opacity: .78; font-size: 8.5px; }
.finalSignalChip.buy { color: #08784c; background: #dcf7eb; }
.finalSignalChip.buy i { background: #10ad70; }
.finalSignalChip.sell { color: #bd2638; background: #ffe6ea; }
.finalSignalChip.sell i { background: #e83a4d; }
.finalSignalChip.hold { color: #7b5a13; background: #fff1d2; }
.finalSignalChip.hold i { background: #e5a31f; }
.finalSignalChip.compact { min-width: 64px; min-height: 23px; padding: 3px 6px; }
.referenceHeat .finalSignalChip { margin: 0 auto; }
.heatLegend { margin-top: 14px; display: flex; align-items: center; justify-content: space-between; direction: ltr; color: #64718a; font-size: 9px; }
.heatLegend div { flex: 1; max-width: 220px; margin: 0 14px; display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; direction: ltr; }
.heatLegend i { height: 7px; border-radius: 4px; }
.heatLegend i:nth-child(1) { background: #e93749; }
.heatLegend i:nth-child(2) { background: #f17d88; }
.heatLegend i:nth-child(3) { background: #f6b7bd; }
.heatLegend i:nth-child(4) { background: #f5dadd; }
.heatLegend i:nth-child(5) { background: #d9f2e7; }
.heatLegend i:nth-child(6) { background: #82d9b2; }
.heatLegend i:nth-child(7) { background: #12b875; }

.chartPanelHead { margin-bottom: 8px; }
.chartPanelHead strong { direction: ltr; font-size: 15px; }
.chartTabs { display: flex; direction: ltr; justify-content: flex-end; gap: 2px; margin-bottom: 6px; }
.chartTabs button {
  width: 39px;
  height: 35px;
  color: #6c7890;
  font-family: Arial, sans-serif;
  font-size: 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
}
.chartTabs button.active { color: var(--primary); background: #f1efff; }
.marketChartWrap { position: relative; height: 285px; direction: ltr; }
.marketChartWrap canvas { position: relative; z-index: 2; }
.chartFallback { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; }
.chartFallback[hidden] { display: none; }
.fallbackGrid path { fill: none; stroke: #edf1f6; stroke-width: 1; stroke-dasharray: 4 4; }
.fallbackArea { fill: url(#chartAreaFill); }
.fallbackLine { fill: none; stroke: #12b875; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.fallbackLabels { fill: #718096; font: 10px Arial, sans-serif; }
.panelAction {
  height: 39px;
  margin-top: 4px;
  display: flex;
  align-items: end;
  justify-content: center;
  gap: 9px;
  color: var(--primary);
  font-size: 10px;
  border-top: 1px solid var(--line);
}

.watchlistPanel { min-height: 460px; padding: 28px 24px 0; }
.watchHead {
  height: 52px;
  display: grid;
  grid-template-columns: 1.25fr .65fr .7fr .75fr 18px;
  align-items: end;
  padding: 0 3px 12px;
  color: #78849a;
  font-size: 10px;
  border-bottom: 1px solid var(--line);
}
.watchHead span:nth-child(2), .watchHead span:nth-child(3), .watchHead span:nth-child(4) { text-align: center; }
.watchlist { display: grid; }
.watchRow {
  min-height: 61px;
  display: grid;
  grid-template-columns: 1.25fr .65fr .68fr .75fr 18px;
  align-items: center;
  gap: 7px;
  border-bottom: 1px solid var(--line);
  transition: background .15s ease;
}
.watchRow:hover { background: #fafaff; }
.watchAsset { display: flex; align-items: center; direction: ltr; gap: 9px; }
.watchAsset > span { display: grid; direction: rtl; text-align: right; }
.watchAsset strong { font-size: 11px; }
.watchAsset small { margin-top: 2px; direction: ltr; color: #6f7b92; font-size: 9px; }
.assetRound {
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: #fff;
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
  border-radius: 50%;
}
.asset-gold { background: linear-gradient(145deg, #efc348, #d89a1f); }
.asset-bitcoin { background: linear-gradient(145deg, #ffa21c, #f08000); font-size: 16px; }
.asset-wti { background: #1f293b; }
.asset-sp500 { background: #4f2b9e; }
.asset-dxy { background: #1ea777; }
.watchPrice { direction: ltr; text-align: center; font-size: 10.5px; }
.watchChange { direction: ltr; text-align: center; font-size: 10.5px; font-weight: 600; }
.watchSpark svg { width: 100%; height: 31px; }
.watchSpark polyline { fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.watchSpark.sparkUp polyline { stroke: var(--green); }
.watchSpark.sparkDown polyline { stroke: var(--red); }
.star { color: #f6aa0d; font-size: 17px; line-height: 1; }
.watchRow:nth-child(n+3) .star { color: #8592a8; }
.addAsset {
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--primary);
  font-size: 10px;
}

.alertPanel { min-height: 304px; padding: 25px 24px 0; }
.activeAlerts { margin-top: 12px; display: grid; }
.activeAlertRow {
  min-height: 64px;
  display: grid;
  grid-template-columns: 32px 1fr 78px;
  align-items: center;
  direction: ltr;
  gap: 10px;
  border-bottom: 1px solid var(--line);
}
.activeAlertRow > span { display: grid; direction: rtl; text-align: right; }
.activeAlertRow > span strong { font-size: 9px; }
.activeAlertRow > span small { margin-top: 4px; color: #6e7990; font-size: 8px; }
.activeAlertRow > b { display: grid; direction: ltr; text-align: right; font-size: 9px; }
.activeAlertRow > b small { margin-top: 4px; display: flex; align-items: center; direction: rtl; gap: 4px; font-size: 8px; font-weight: 500; }
.activeAlertRow > b small i { width: 6px; height: 6px; border-radius: 50%; }
.activeState { color: var(--green); }
.activeState i { background: var(--green); }
.pausedState { color: #8f98a8; }
.pausedState i { background: var(--orange); }

.shortcutSection h2, .wealthSection h2 { margin: 2px 10px 11px 0; font-size: 13px; }
.shortcutGrid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; direction: ltr; }
.shortcutGrid > a {
  min-height: 92px;
  padding: 13px 8px 11px;
  display: grid;
  place-items: center;
  gap: 6px;
  direction: rtl;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(255,255,255,.91);
  box-shadow: var(--shadow);
  transition: transform .18s ease, box-shadow .18s ease;
}
.shortcutGrid > a:hover, .wealthCard:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); }
.shortcutGrid strong { font-size: 10px; font-weight: 500; }
.shortcutIcon { display: grid; place-items: center; }
.shortcutIcon .uiIcon { width: 28px; height: 28px; stroke-width: 1.8; }
.shortcutIcon.violet { color: var(--violet); }
.shortcutIcon.blue { color: var(--blue); }
.greenText { color: #0aa66a; }
.redText { color: #ef3547; }
.orangeText { color: var(--orange); }

.wealthGrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; direction: ltr; }
.wealthCard {
  min-height: 103px;
  padding: 16px 14px;
  display: grid;
  grid-template-columns: 48px minmax(0,1fr);
  align-items: start;
  direction: ltr;
  gap: 11px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,.91);
  box-shadow: var(--shadow);
  transition: transform .18s ease, box-shadow .18s ease;
}
.wealthIcon {
  width: 45px;
  height: 45px;
  display: grid;
  place-items: center;
  border-radius: 50%;
}
.wealthIcon.blue { color: var(--blue); background: #edf3ff; }
.wealthIcon .uiIcon { width: 23px; height: 23px; }
.wealthCard > span:last-child { min-width: 0; display: grid; direction: rtl; text-align: right; }
.wealthCard strong { font-size: 10px; }
.wealthCard small { margin-top: 4px; color: #78849a; font-size: 7px; white-space: nowrap; }
.wealthCard b { margin-top: 9px; color: var(--primary); font-size: 8px; }

/* Generic pages */
.pageHero { margin: 7px 0 16px; display: flex; align-items: center; justify-content: space-between; }
.pageHero h2 { margin: 0; font-size: 22px; }
.pageHero p { margin: 6px 0 0; color: var(--muted); font-size: 11px; }
.btn {
  padding: 10px 15px;
  color: #fff;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(135deg, #5d4df4, #7459fa);
}
.secondary { color: var(--primary); border: 1px solid #ddd8ff; background: #f1efff; }
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(185px, 1fr)); gap: 12px; }
.assetCard, .kpi {
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: var(--surface);
  box-shadow: var(--shadow);
}
.assetCard { cursor: pointer; transition: transform .18s ease, box-shadow .18s ease; }
.assetCard:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); }
.marketGroup { margin-bottom: 12px; padding: 18px; }
.marketAssetCard .assetTop { gap: 10px; }
.marketAssetCard .finalSignalChip { margin-right: auto; }
.assetSignalLine { margin-top: 9px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.assetSignalLine > span { direction: ltr; font-size: 10px; font-weight: 700; }
.assetSignalLine small { overflow: hidden; color: var(--muted); font-size: 9px; white-space: nowrap; text-overflow: ellipsis; }
.marketHorizonControl { margin-bottom: 12px; padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.marketHorizonControl h3 { margin: 5px 0 2px; font-size: 14px; }.marketHorizonControl p { margin: 0; color: var(--muted); font-size: 8px; }
.marketHorizonControl .tabs { flex: 0 0 auto; }
.marketAssetCard { cursor: pointer; transition: transform .18s ease,border-color .18s ease,box-shadow .18s ease; }.marketAssetCard:hover { transform: translateY(-3px); border-color: #d8c2a5; box-shadow: 0 12px 28px rgba(50,42,33,.08); }
.signalRange { margin-top: 9px; padding-top: 8px; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--muted); border-top: 1px solid var(--line); font-size: 7px; }.signalRange b { direction: ltr; color: #504a42; font-size: 7.5px; }
.assetTop { display: flex; align-items: center; justify-content: space-between; }
.ticker { color: var(--muted); font-size: 9px; direction: ltr; }
.price { margin-top: 12px; direction: ltr; text-align: right; font-size: 20px; font-weight: 800; }
.change { direction: ltr; font-size: 10px; font-weight: 700; }
.spark { height: 32px; margin: 8px 0; border-radius: 8px; background: linear-gradient(180deg, transparent, rgba(17,182,117,.07)); }
.assetFoot { display: flex; justify-content: space-between; color: var(--muted); font-size: 8px; }
.score { width: 31px; height: 31px; display: grid; place-items: center; color: var(--green); border: 2px solid var(--green); border-radius: 50%; }
.tabs, .filterRow { display: flex; gap: 8px; flex-wrap: wrap; }
.tab, .filterRow select, .tabs input {
  padding: 9px 12px;
  color: #5f6c84;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}
.tab.active, .tab:hover { color: #fff; background: var(--primary); }
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 14px; }
.kpi small { color: var(--muted); }
.kpi strong { display: block; margin-top: 7px; font-size: 22px; }
.detailGrid { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(280px,.7fr); gap: 12px; }
.detailGrid .panel, .lower .panel, #content > .panel { padding: 18px; }
.bigChart { height: 400px; }
.lower { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 12px; }
.detailPage { max-width: 1500px; }
.detailHero { margin-bottom: 10px; }
.detailTabs { margin-bottom: 14px; align-items: center; }
.detailTabs .forceButton { margin-right: auto; }
.modelLoading { min-height: 70px; align-items: center; justify-content: center; gap: 10px; }
.modelLoading .opportunityLoader { margin: 0; }
.detailChartPanel, .decisionPanel { padding: 20px !important; }
.detailChartPanel .panelHead small { color: var(--muted); font-size: 8px; }
.decisionHint, .notAdvice { padding: 5px 8px; color: #6d5aed; border-radius: 999px; background: #f0edff; font-size: 8px; }
.decisionPanel > h3 { margin: 20px 0 10px; font-size: 12px; }
.decisionPanel .riskItem, .lower .riskItem { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.decisionPanel .riskItem span, .lower .riskItem span { direction: ltr; }
.reason { display: flex; align-items: flex-start; gap: 8px; color: #4d5a73; font-size: 9px; line-height: 1.8; }
.reason + .reason { margin-top: 7px; }
.reason i { width: 19px; height: 19px; display: grid; place-items: center; flex: 0 0 auto; color: var(--green); font-size: 9px; font-style: normal; border-radius: 50%; background: var(--green-soft); }
.lower h3 { margin: 0 0 12px; font-size: 12px; }
.modelTransparency { margin-top: 12px; padding: 22px; }
.modelTransparencyHead { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.modelTransparencyHead h2 { margin: 5px 0 0; font-size: 16px; }
.modelExplainGrid { margin-top: 16px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.modelExplainCard { padding: 14px; display: grid; gap: 6px; border: 1px solid var(--line); border-radius: 12px; background: #fafbfe; }
.modelExplainCard small { color: var(--muted); font-size: 8px; }
.modelExplainCard strong { color: #263149; font-size: 11px; }
.modelExplainCard span { color: #6e7a91; font-size: 8px; }
.modelListBlock { margin-top: 19px; }
.modelListBlock h3 { margin: 0 0 11px; font-size: 11px; }
.modelWeights { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 16px; }
.modelWeight { padding: 10px 12px; border-radius: 10px; background: #f8f9fd; }
.modelWeight > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.modelWeight strong { font-size: 9px; }
.modelWeight span { color: var(--muted); font-size: 8px; }
.modelWeight > i { height: 5px; margin-top: 8px; display: block; overflow: hidden; direction: ltr; border-radius: 6px; background: #e9edf4; }
.modelWeight > i b { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, #6654f6, #12b875); }
.modelNote { margin: 16px 0 0; padding: 10px 12px; color: #68758c; border-right: 3px solid #7a67f7; border-radius: 8px; background: #f7f6ff; font-size: 8px; line-height: 1.9; }
.newsList, .riskList, .alerts { display: grid; gap: 9px; }
.newsItem, .riskItem, .alertItem, .reason {
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fbfcff;
}
.newsItem b { display: block; font-size: 11px; line-height: 1.8; }
.meta, .originalTitle { color: var(--muted); font-size: 8px; }
.originalTitle { display: block; margin-top: 5px; direction: ltr; text-align: left; }
.tag { display: inline-block; margin: 4px; padding: 2px 6px; color: var(--primary); border-radius: 999px; background: var(--primary-soft); }
.tableWrap { overflow: auto; }
.table { width: 100%; min-width: 640px; border-collapse: collapse; }
.table th, .table td { padding: 11px; text-align: right; font-size: 10px; border-bottom: 1px solid var(--line); }
.table th { color: var(--muted); }
.rankingSummary, .cacheInfo { padding: 12px; color: #5c69a1; border-radius: 10px; background: #f2f3ff; font-size: 10px; }
.empty, .loading { padding: 30px; color: var(--muted); text-align: center; }
.chartBox { height: 180px; }
.riskMetric { padding: 9px; display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); font-size: 10px; }

/* Cost-aware arbitrage workbench */
.arbWorkbench { padding: 22px; }
.arbIntro { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.arbIntro h3 { margin: 5px 0 0; font-size: 17px; }
.arbIntro p { margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.9; }
.arbSafety { padding: 7px 10px; flex: 0 0 auto; color: #8a5a0c; border-radius: 999px; background: #fff3d8; font-size: 10px; font-weight: 700; }
.arbControls { margin-top: 18px; display: grid; grid-template-columns: repeat(5, minmax(100px, 1fr)) auto; align-items: end; gap: 9px; }
.arbControls label { min-width: 0; display: grid; gap: 6px; color: #68758d; font-size: 10px; }
.arbControls input { width: 100%; height: 39px; padding: 0 10px; direction: ltr; text-align: right; color: #1e293f; border: 1px solid var(--line); border-radius: 9px; outline: 0; background: #fbfcff; }
.arbControls input:focus { border-color: #a9a0ff; box-shadow: 0 0 0 3px #f0eeff; }
.arbControls .btn { height: 39px; white-space: nowrap; }
.arbResults { margin-top: 13px; }
.arbKpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.arbKpis > div { padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow); }
.arbKpis small { display: block; color: var(--muted); font-size: 10px; }
.arbKpis strong { margin-top: 7px; display: block; direction: ltr; text-align: right; font-size: 17px; }
.arbWarning { margin: 11px 0; padding: 10px 12px; color: #805817; border-right: 3px solid #e5a21f; border-radius: 9px; background: #fff8e9; font-size: 10px; }
.arbCards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.arbCard { min-width: 0; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow); }
.arbCard.actionable { border-color: #bfead8; background: linear-gradient(155deg, #fff, #f6fffb); }
.arbCardHead { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.arbCardHead > span { min-width: 0; display: grid; gap: 5px; }
.arbCardHead small { color: var(--primary); font-size: 9px; }
.arbCardHead strong { overflow: hidden; font-size: 12px; white-space: nowrap; text-overflow: ellipsis; }
.arbDecision { padding: 5px 7px; flex: 0 0 auto; border-radius: 999px; font-size: 9px; }
.arbDecision.go { color: #08794d; background: #e1f8ed; }
.arbDecision.watch { color: #805c13; background: #fff2d3; }
.arbDecision.stop { color: #b12c3b; background: #ffebee; }
.arbNet { margin: 16px 0 11px; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.arbNet span { color: var(--muted); font-size: 10px; }
.arbNet strong { direction: ltr; font-size: 17px; }
.arbNumbers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.arbNumbers span { min-width: 0; padding: 8px; display: grid; gap: 4px; border-radius: 8px; background: #f7f9fc; }
.arbNumbers small { color: var(--muted); font-size: 9px; }
.arbNumbers b { direction: ltr; text-align: right; font-size: 10px; }
.arbConfidence { margin-top: 12px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px; color: #69758a; font-size: 9px; }
.arbConfidence i { height: 5px; overflow: hidden; direction: ltr; border-radius: 7px; background: #e9edf3; }
.arbConfidence i b { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, #6757f6, #11b675); }
.arbConfidence em { direction: ltr; font-style: normal; }
.arbCard p { min-height: 42px; margin: 12px 0; color: #58657d; font-size: 10px; line-height: 1.8; }
.arbCard footer { padding-top: 9px; display: flex; justify-content: space-between; color: var(--muted); border-top: 1px solid var(--line); font-size: 9px; }

/* Professional portfolio workspace */
.portfolioKpis { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 11px; margin-bottom: 12px; }
.portfolioKpis article { min-width: 0; padding: 15px; display: grid; grid-template-columns: 42px 1fr; align-items: center; gap: 3px 10px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow); }
.pfKpiIcon { width: 39px; height: 39px; grid-row: 1 / 4; display: grid; place-items: center; border-radius: 11px; }
.pfKpiIcon .uiIcon { width: 20px; height: 20px; }
.pfKpiIcon.violet { color: var(--violet); background: #f0edff; }
.pfKpiIcon.green { color: var(--green); background: var(--green-soft); }
.pfKpiIcon.orange { color: var(--orange); background: var(--orange-soft); }
.pfKpiIcon.blue { color: var(--blue); background: #edf3ff; }
.portfolioKpis small { color: var(--muted); font-size: 9px; }
.portfolioKpis strong { direction: ltr; text-align: right; font-size: 17px; }
.portfolioKpis em { color: #8994a8; font-size: 8px; font-style: normal; }
.portfolioWorkspace { display: grid; grid-template-columns: minmax(300px,.72fr) minmax(0,1.28fr); gap: 12px; direction: ltr; }
.portfolioWorkspace > * { direction: rtl; }
.positionComposer, .allocationPanel, .positionsPanel { padding: 19px; }
.pfSectionHead { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pfSectionHead h3 { margin: 4px 0 0; font-size: 15px; }
.pfSectionHead > small { color: var(--muted); font-size: 9px; }
.pfLive { padding: 6px 9px; display: inline-flex; align-items: center; gap: 6px; color: #087a4d; border-radius: 999px; background: #ebfaf3; font-size: 8px; }
.pfLive i { width: 6px; height: 6px; border-radius: 50%; background: var(--green); }
.positionForm { margin-top: 15px; display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.positionForm label { min-width: 0; display: grid; gap: 6px; color: #68758c; font-size: 9px; }
.positionForm .wide { grid-column: 1 / -1; }
.positionForm input, .positionForm select { width: 100%; height: 40px; padding: 0 10px; color: #1d273b; border: 1px solid var(--line); border-radius: 9px; outline: 0; background: #fafbfe; font-size: 10px; }
.positionForm input { direction: ltr; text-align: right; }
.positionForm input:focus, .positionForm select:focus { border-color: #a9a0ff; box-shadow: 0 0 0 3px #f0eeff; background: #fff; }
.pfFormMessage { grid-column: 1 / -1; margin: 1px 0; padding: 8px; color: #7b8598; border-radius: 8px; background: #f6f7fa; font-size: 8.5px; line-height: 1.7; }
.pfFormMessage.error { color: #b82d3e; background: #fff0f2; }
.pfFormMessage.success { color: #08794d; background: #eaf9f2; }
.allocationList { min-height: 300px; margin-top: 14px; display: grid; align-content: start; gap: 11px; }
.allocationRow { padding: 11px 12px; border: 1px solid #edf0f5; border-radius: 11px; background: #fbfcfe; }
.allocationRow > div { display: flex; justify-content: space-between; gap: 10px; font-size: 10px; }
.allocationRow > div span { direction: ltr; color: var(--primary); font-weight: 700; }
.allocationRow > i { height: 6px; margin: 8px 0 5px; display: block; overflow: hidden; direction: ltr; border-radius: 8px; background: #e9edf4; }
.allocationRow > i b { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, #6555f5, #11b675); }
.allocationRow > small { color: var(--muted); font-size: 8px; }
.positionsPanel { margin-top: 12px; }
.pfPositions { margin-top: 13px; }
.portfolioTable { width: 100%; min-width: 880px; border-collapse: collapse; }
.portfolioTable th, .portfolioTable td { padding: 11px 9px; text-align: right; border-bottom: 1px solid var(--line); font-size: 9.5px; }
.portfolioTable th { color: var(--muted); font-size: 8.5px; }
.portfolioTable td > strong, .portfolioTable td > small { display: block; }
.portfolioTable td > small { margin-top: 3px; direction: ltr; color: var(--muted); font-size: 8px; }
.sideBadge, .riskBadge { padding: 5px 8px; display: inline-block; border-radius: 999px; font-size: 8px; }
.sideBadge.long, .riskBadge.low { color: #08794d; background: #e6f8ef; }
.sideBadge.short, .riskBadge.high { color: #be2e3f; background: #ffeaed; }
.riskBadge.medium { color: #8b610f; background: #fff3da; }
.riskBadge.unknown { color: #6f798c; background: #eef1f5; }
.removePosition { width: 28px; height: 28px; color: #c52f40; border: 0; border-radius: 8px; background: #fff0f2; font-size: 18px; }
.pfEmpty { min-height: 210px; display: grid; place-content: center; gap: 7px; text-align: center; color: var(--muted); }
.pfEmpty > span { color: var(--primary); font-size: 29px; }
.pfEmpty strong { color: #2c374d; font-size: 11px; }
.pfEmpty small { font-size: 9px; }

/* Risk center */
.moduleWarming { min-height: 280px; padding: 30px; display: grid; place-content: center; gap: 8px; text-align: center; }
.moduleWarming strong { font-size: 13px; }
.moduleWarming small { color: var(--muted); font-size: 10px; }
.riskOverview { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(280px,.55fr); gap: 12px; margin-bottom: 12px; }
.riskScoreCard { padding: 20px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.riskScoreCard h3 { margin: 5px 0; font-size: 21px; }
.riskScoreCard p { margin: 0; color: var(--muted); font-size: 10px; }
.riskDial { --dial-color: #12b875; width: 104px; height: 104px; position: relative; display: grid; place-content: center; flex: 0 0 auto; text-align: center; border-radius: 50%; background: conic-gradient(var(--dial-color) calc(var(--risk-score) * 1%), #edf0f5 0); }
.riskDial:after { content: ''; position: absolute; inset: 9px; border-radius: 50%; background: #fff; }
.riskDial strong, .riskDial small { position: relative; z-index: 1; }
.riskDial strong { direction: ltr; font-size: 23px; }
.riskDial small { color: var(--muted); font-size: 8px; }
.riskScoreCard.caution .riskDial { --dial-color: #e6a321; }
.riskScoreCard.danger .riskDial { --dial-color: #e83b4d; }
.riskCoverage { padding: 18px; display: grid; grid-template-columns: repeat(3,1fr); align-items: center; gap: 8px; }
.riskCoverage span { min-width: 0; text-align: center; }
.riskCoverage small { display: block; color: var(--muted); font-size: 8px; }
.riskCoverage strong { margin-top: 7px; display: block; direction: ltr; font-size: 17px; }
.riskIndicatorGrid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.riskIndicator { padding: 15px; }
.riskIndicator header { display: flex; align-items: flex-start; justify-content: space-between; gap: 9px; }
.riskIndicator header > div { min-width: 0; display: grid; gap: 4px; }
.riskIndicator header span { font-size: 11px; font-weight: 700; }
.riskIndicator header small { overflow: hidden; color: var(--muted); font-size: 8px; white-space: nowrap; text-overflow: ellipsis; }
.riskIndicator header b { padding: 4px 7px; flex: 0 0 auto; border-radius: 999px; font-size: 8px; }
.riskIndicator.good header b { color: #08794d; background: #e7f8f0; }
.riskIndicator.caution header b { color: #8c610e; background: #fff3d9; }
.riskIndicator.danger header b { color: #bd2d3e; background: #ffeaed; }
.riskIndicatorValue { margin: 17px 0 11px; display: flex; align-items: baseline; justify-content: space-between; }
.riskIndicatorValue strong { direction: ltr; font-size: 20px; }
.riskIndicatorValue span { direction: ltr; font-size: 10px; }
.riskMeter { height: 6px; overflow: hidden; direction: ltr; border-radius: 8px; background: #edf0f5; }
.riskMeter i { height: 100%; display: block; border-radius: inherit; background: var(--green); }
.riskIndicator.caution .riskMeter i { background: #e6a321; }
.riskIndicator.danger .riskMeter i { background: #e83b4d; }
.riskIndicator footer { margin-top: 11px; display: grid; gap: 7px; }
.riskIndicator footer span { color: #3f4a61; font-size: 9px; font-weight: 700; }
.riskIndicator footer small { min-height: 35px; color: var(--muted); font-size: 8.5px; line-height: 1.75; }
.unavailableStrip { margin-top: 12px; padding: 13px 16px; display: grid; gap: 5px; color: #7b6040; background: #fffaf0; }
.unavailableStrip strong { font-size: 10px; }
.unavailableStrip span, .unavailableStrip small { color: #88755c; font-size: 8.5px; }

/* Relative-value radar */
.ratioHero { padding: 20px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.ratioHero h3 { margin: 5px 0; font-size: 18px; }
.ratioHero p { margin: 0; color: var(--muted); font-size: 10px; }
.ratioHeroStats { min-width: 390px; display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.ratioHeroStats span { min-width: 0; padding: 10px; text-align: center; border-radius: 10px; background: #f7f8fc; }
.ratioHeroStats small { display: block; color: var(--muted); font-size: 8px; }
.ratioHeroStats strong { margin-top: 6px; display: block; overflow: hidden; font-size: 11px; white-space: nowrap; text-overflow: ellipsis; }
.ratioGrid { margin-top: 12px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.ratioCard { padding: 15px; }
.ratioCard header { display: flex; align-items: flex-start; justify-content: space-between; gap: 9px; }
.ratioCard header > div { min-width: 0; display: grid; gap: 4px; }
.ratioCard header strong { font-size: 11px; }
.ratioCard header small { overflow: hidden; color: var(--muted); font-size: 8px; white-space: nowrap; text-overflow: ellipsis; }
.ratioCard header > span { padding: 4px 7px; flex: 0 0 auto; border-radius: 999px; font-size: 8px; }
.ratioCard.normal header > span { color: #08794d; background: #e7f8f0; }
.ratioCard.watch header > span { color: #8b600d; background: #fff3d9; }
.ratioCard.critical header > span { color: #bd2d3e; background: #ffeaed; }
.ratioCard.warming header > span { color: #6455d9; background: #efedff; }
.ratioMain { margin: 17px 0 13px; display: flex; align-items: baseline; justify-content: space-between; }
.ratioMain strong { direction: ltr; font-size: 21px; }
.ratioMain span { direction: ltr; color: var(--primary); font-size: 10px; font-weight: 700; }
.ratioScale { position: relative; padding-top: 2px; }
.ratioScale > i { height: 7px; display: block; border-radius: 8px; background: linear-gradient(90deg,#ef6977,#f2d4d8 33%,#dcefe7 50%,#bce8d4 67%,#16b778); }
.ratioScale > b { position: absolute; top: -2px; width: 3px; height: 16px; border: 2px solid #fff; border-radius: 3px; background: #27334a; box-shadow: 0 1px 5px rgba(20,30,50,.25); }
.ratioScale > small { margin-top: 6px; display: flex; justify-content: space-between; color: #8a95a7; font-size: 7px; }
.ratioCard > p { min-height: 34px; margin: 12px 0; color: #59667c; font-size: 9px; line-height: 1.75; }
.ratioCard footer { padding-top: 10px; display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; border-top: 1px solid var(--line); }
.ratioCard footer span { display: grid; gap: 3px; color: var(--muted); font-size: 7.5px; }
.ratioCard footer b { direction: ltr; font-size: 8.5px; }
.ratioSkeleton { min-height: 150px; display: grid; align-content: center; gap: 9px; }
.ratioSkeleton i { height: 12px; display: block; border-radius: 6px; background: linear-gradient(90deg,#f0f2f6,#fafbfc,#f0f2f6); background-size: 200% 100%; animation: shimmer 1.2s linear infinite; }
.ratioSkeleton i:nth-child(2) { width: 72%; }
.ratioSkeleton i:nth-child(3) { width: 88%; }
.ratioSkeleton small { color: var(--muted); font-size: 8px; }
@keyframes shimmer { to { background-position: -200% 0; } }

/* Strategy center and arbitrage averages */
.strategyGrid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.strategyCard { padding: 17px; }
.strategyCard header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.strategyCard h3 { margin: 4px 0 0; font-size: 15px; }
.strategyCard header > span { padding: 5px 8px; color: var(--primary); border-radius: 999px; background: #efedff; font-size: 8px; }
.strategyCard > p { margin: 10px 0 13px; color: var(--muted); font-size: 9px; }
.strategyAssets { display: grid; gap: 7px; }
.strategyAssets a { padding: 9px; display: grid; grid-template-columns: 25px 1fr auto; align-items: center; gap: 8px; border: 1px solid #edf0f5; border-radius: 10px; background: #fbfcfe; }
.strategyAssets a > i { width: 23px; height: 23px; display: grid; place-items: center; color: var(--primary); font-size: 8px; font-style: normal; border-radius: 7px; background: #efedff; }
.strategyAssets a > span { min-width: 0; display: grid; gap: 3px; }
.strategyAssets strong { font-size: 9.5px; }
.strategyAssets small { color: var(--muted); font-size: 7.5px; }
.strategyAssets a > b { direction: ltr; font-size: 10px; }
.strategyEmpty { padding: 25px; color: var(--muted); text-align: center; font-size: 9px; }
.arbitrageStrategy { margin-top: 12px; padding: 20px; }
.arbStrategyHead { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.arbStrategyHead h3 { margin: 5px 0 0; font-size: 17px; }
.arbStrategyHead p { max-width: 710px; margin: 7px 0 0; color: var(--muted); font-size: 10px; line-height: 1.8; }
.arbStrategyGrid { margin-top: 15px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.arbStrategyCard { padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: #fbfcfe; }
.arbStrategyCard.actionable { border-color: #bfe9d7; background: #f5fdf9; }
.arbStrategyCard header { display: flex; align-items: flex-start; justify-content: space-between; gap: 9px; }
.arbStrategyCard header > div { min-width: 0; display: grid; gap: 4px; }
.arbStrategyCard header small { color: var(--primary); font-size: 8px; }
.arbStrategyCard header strong { font-size: 11px; }
.executionRate { margin: 14px 0 10px; padding: 11px; display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 4px 10px; border-radius: 10px; background: #fff; }
.executionRate span { color: var(--muted); font-size: 9px; }
.executionRate strong { direction: ltr; font-size: 17px; }
.executionRate small { grid-column: 1/-1; direction: ltr; text-align: right; color: #7d889a; font-size: 8px; }
.rateAverages { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; }
.rateAverages span { padding: 8px; display: grid; gap: 4px; border-radius: 8px; background: #f1f3f7; }
.rateAverages small { color: var(--muted); font-size: 7.5px; }
.rateAverages b { direction: ltr; font-size: 9px; }
.dailyRange { margin-top: 9px; display: flex; justify-content: space-between; color: #657188; font-size: 8.5px; }
.dailyRange i { direction: ltr; font-style: normal; }
.arbStrategyCard > p { min-height: 35px; margin: 11px 0; color: #58657a; font-size: 8.5px; line-height: 1.75; }
.arbStrategyCard footer { padding-top: 8px; display: flex; justify-content: space-between; color: var(--muted); border-top: 1px solid var(--line); font-size: 8px; }
.arbStrategyEmpty { min-height: 220px; grid-column: 1/-1; display: grid; place-content: center; gap: 7px; text-align: center; }
.arbStrategyEmpty strong { font-size: 11px; }
.arbStrategyEmpty small { color: var(--muted); font-size: 9px; }

body.softNight {
  --bg: #eef1f8;
  --surface: #f8f9fd;
  --surface-soft: #f2f5fb;
  background: linear-gradient(180deg, #eef0f7, #e7ebf4);
}
body.softNight .sidebar, body.softNight .summaryCard, body.softNight .panel,
body.softNight .shortcutGrid > a, body.softNight .wealthCard { background: rgba(248,249,253,.95); }

@media (max-width: 1320px) {
  .dashboardWorkspace { grid-template-columns: minmax(0,1fr) 360px; }
  .watchlistPanel, .alertPanel { padding-right: 17px; padding-left: 17px; }
  .shortcutGrid { grid-template-columns: repeat(3,1fr); }
  .wealthGrid { grid-template-columns: repeat(2,1fr); }
  .opportunityGrid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .arbControls { grid-template-columns: repeat(3, minmax(120px, 1fr)); }
  .arbCards { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .riskIndicatorGrid, .ratioGrid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 1120px) {
  .shell { grid-template-columns: 218px minmax(0,1fr); }
  .sidebar { padding-right: 12px; padding-left: 12px; }
  .dashboardWorkspace { grid-template-columns: 1fr; }
  .dashboardRail { grid-template-columns: 1fr 1fr; }
  .watchlistPanel, .alertPanel { min-height: 0; }
  .portfolioKpis { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .strategyGrid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .strategyCard:last-child { grid-column: 1 / -1; }
}

@media (min-width: 841px) and (max-width: 1120px) {
  .sidebar { width: 218px; }
  .main { width: calc(100% - 218px); margin-left: 218px; }
}

@media (max-width: 840px) {
  .shell { display: block; }
  .sidebar {
    position: fixed;
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 72px;
    padding: 7px;
    overflow-x: auto;
    overflow-y: hidden;
    border-top: 1px solid var(--line);
    border-right: 0;
  }
  .brand, .premiumCard, .userCard, .sidebarSpacer { display: none; }
  .nav { display: flex; margin: 0; gap: 4px; direction: rtl; }
  .nav a { min-width: 75px; min-height: 56px; padding: 5px; flex-direction: column; justify-content: center; gap: 3px; font-size: 8px; }
  .nav a .uiIcon { width: 19px; height: 19px; }
  .main { padding: 10px 10px 92px; }
  .topbar { margin-bottom: 10px; flex-wrap: wrap; }
  .search { width: min(100%, 520px); flex: 1 1 300px; }
  .topActions .iconButton { display: none; }
  .marketStatus { min-width: 105px; }
  .analyticsGrid, .dashboardRail, .kpis, .detailGrid, .lower { grid-template-columns: 1fr; }
  .summaryGrid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .summaryGrid .summaryCard:last-child { grid-column: 1 / -1; }
  .opportunityHeader { align-items: stretch; flex-direction: column; }
  .opportunityTabs { width: 100%; }
  .opportunityTabs button { flex: 1; }
  .opportunityFormula { align-items: flex-start; flex-wrap: wrap; }
  .opportunityFormula small { width: 100%; margin-right: 0; }
  .opportunityGrid { grid-template-columns: 1fr; }
  .modelExplainGrid, .modelWeights { grid-template-columns: 1fr; }
  .modelTransparencyHead { align-items: flex-start; flex-direction: column; }
  .pageHero { align-items: flex-start; flex-wrap: wrap; gap: 10px; }
  .tradingDeskHead { align-items: flex-start; flex-wrap: wrap; }
  .tradeToolGrid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .tradeTool:last-child { grid-column: 1 / -1; }
  .cards { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .arbIntro { align-items: flex-start; flex-direction: column; }
  .arbControls { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .arbControls .btn { width: 100%; }
  .arbKpis { grid-template-columns: repeat(2, 1fr); }
  .arbCards { grid-template-columns: 1fr; }
  .portfolioWorkspace, .riskOverview { grid-template-columns: 1fr; }
  .allocationList { min-height: 0; }
  .riskIndicatorGrid, .ratioGrid, .strategyGrid, .arbStrategyGrid { grid-template-columns: 1fr; }
  .strategyCard:last-child { grid-column: auto; }
  .ratioHero, .arbStrategyHead { align-items: flex-start; flex-direction: column; }
  .ratioHeroStats { width: 100%; min-width: 0; }
  .summaryCard { min-height: 155px; }
  .shortcutGrid { grid-template-columns: repeat(2,1fr); }
  .wealthGrid { grid-template-columns: 1fr; }
  .referenceHeatmap { grid-template-columns: repeat(2,1fr); grid-template-rows: repeat(6,68px); height: auto; }
  .heatPanel { min-height: 550px; }
}

@media (max-width: 520px) {
  .topActions { display: none; }
  .summaryGrid { grid-template-columns: 1fr; gap: 10px; }
  .summaryGrid .summaryCard:last-child { grid-column: auto; }
  .tradingDesk { padding: 16px; }
  .tradingDeskHead { flex-direction: column; }
  .localCalc { align-self: flex-start; }
  .tradeToolGrid { grid-template-columns: 1fr; }
  .tradeTool:last-child { grid-column: auto; }
  .watchHead { display: none; }
  .watchRow { grid-template-columns: 1.1fr .62fr .58fr .62fr 15px; gap: 4px; }
  .watchRow .finalSignalChip small { display: none; }
  .watchRow .finalSignalChip { min-width: 48px; padding: 3px 4px; }
  .shortcutGrid { grid-template-columns: 1fr 1fr; }
  .cards { grid-template-columns: 1fr; }
  .arbWorkbench { padding: 16px; }
  .arbControls, .arbKpis { grid-template-columns: 1fr; }
  .arbNumbers { grid-template-columns: 1fr 1fr; }
  .portfolioKpis { grid-template-columns: 1fr; }
  .positionForm { grid-template-columns: 1fr; }
  .positionForm .wide, .pfFormMessage { grid-column: auto; }
  .riskScoreCard { align-items: flex-start; flex-direction: column; }
  .riskCoverage, .ratioHeroStats, .rateAverages { grid-template-columns: 1fr; }
  .ratioCard footer { grid-template-columns: 1fr; }
}

/* MarketNash NASH-02-80 — organizational prediction and trading product */

/* NASH-02-80: live markets and organization trading portal */
.liveTicker{direction:ltr;overflow:hidden;border:1px solid #e7ded0;border-radius:16px;background:#171d2c;color:#fff;margin:14px 0 22px;box-shadow:0 12px 30px rgba(18,25,42,.12)}
.tickerTrack{display:flex;width:max-content;animation:tickerFlow 55s linear infinite}.tickerTrack>div{display:flex;flex:none}.tickerCell{direction:rtl;display:grid;grid-template-columns:auto auto;column-gap:10px;align-items:center;min-width:230px;padding:12px 18px;border-left:1px solid rgba(255,255,255,.1)}.tickerCell b{font-size:12px}.tickerCell strong{font-size:13px}.tickerCell em{font-style:normal;font-size:11px}.tickerCell small{color:#8f9bb1;font-size:10px}.tickerCell .up{color:#65d7a1}.tickerCell .down{color:#ff8c8c}@keyframes tickerFlow{to{transform:translateX(-50%)}}
.marketGateway{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 24px}.marketGateway>a{position:relative;overflow:hidden;min-height:185px;padding:28px;border-radius:24px;color:#fff;text-decoration:none;box-shadow:0 18px 38px rgba(21,33,53,.14);transition:.3s}.marketGateway>a:hover{transform:translateY(-4px)}.iranGateway{background:linear-gradient(135deg,#0c6c5d,#18a27f)}.globalGateway{background:linear-gradient(135deg,#20294d,#6156aa)}.marketGateway span{opacity:.75;font-size:12px}.marketGateway h2{font-size:22px;margin:10px 0 6px}.marketGateway p{max-width:70%;font-size:12px;line-height:1.9;opacity:.82}.marketGateway b{display:inline-block;margin-top:12px;font-size:12px}.gatewayOrb{position:absolute;width:170px;height:170px;border-radius:50%;left:-30px;bottom:-60px;background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.45),rgba(255,255,255,.04) 68%);animation:orbFloat 4s ease-in-out infinite}.gatewayChart{position:absolute;display:flex;align-items:flex-end;gap:8px;left:28px;bottom:28px;height:95px}.gatewayChart em{width:10px;border-radius:8px;background:linear-gradient(#a8ffdc,#58b9ff);animation:barPulse 2.2s ease-in-out infinite}.gatewayChart em:nth-child(1){height:35%}.gatewayChart em:nth-child(2){height:68%;animation-delay:.2s}.gatewayChart em:nth-child(3){height:48%;animation-delay:.4s}.gatewayChart em:nth-child(4){height:90%;animation-delay:.6s}.gatewayChart em:nth-child(5){height:72%;animation-delay:.8s}@keyframes orbFloat{50%{transform:translateY(-10px) scale(1.04)}}@keyframes barPulse{50%{filter:brightness(1.35);transform:scaleY(.86)}}
.portalBody{margin:0;background:#f4f6fa;color:#172034;font-family:Vazirmatn,system-ui}.loginScene{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;background:linear-gradient(125deg,#121a31 0 58%,#f4f6fa 58%)}.loginBrand{color:#fff;padding:12vh 9vw}.loginBrand>span{color:#63d4af}.loginBrand h1{font-size:48px;max-width:560px;margin:22px 0}.loginBrand p{max-width:600px;color:#afbad0;line-height:2}.loginFeatures{display:flex;gap:12px;flex-wrap:wrap;margin-top:38px}.loginFeatures b{font-size:12px;padding:10px 14px;border:1px solid #34405d;border-radius:20px}.loginCard{align-self:center;justify-self:center;width:min(390px,80%);padding:38px;background:#fff;border-radius:25px;box-shadow:0 25px 70px rgba(12,23,45,.18)}.loginLogo,.tradeBrand i{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,#7267d5,#17a982);color:#fff;font-style:normal;font-weight:800}.loginCard h2{margin:22px 0 4px}.loginCard p{color:#7d879b;font-size:12px}.loginCard label,.orderForm label{display:grid;gap:7px;margin-top:16px;font-size:12px}.loginCard input,.orderForm input,.orderForm select,.compactForm input,.compactForm select{border:1px solid #dce1ea;border-radius:11px;padding:12px;font:inherit}.loginCard button,.orderForm button,.compactForm button{border:0;border-radius:11px;padding:13px;background:#5e57c8;color:#fff;font:inherit;font-weight:700;margin-top:18px}.loginCard>a{display:block;text-align:center;margin-top:18px;font-size:11px;color:#6f7890}.loginCard small,#orderMsg,.compactForm small{display:block;color:#d04e5d;margin-top:10px}
.tradeShell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.tradeSide{background:#151c2f;color:#fff;padding:24px 18px;display:flex;flex-direction:column}.tradeBrand{display:flex;gap:12px;align-items:center;color:#fff;text-decoration:none}.tradeBrand b{display:grid}.tradeBrand small{color:#75829e;font-size:9px}.userMini{display:flex;gap:10px;align-items:center;margin:35px 0;padding:13px;background:#202940;border-radius:14px}.userMini>span{display:grid;place-items:center;width:37px;height:37px;border-radius:50%;background:#5d58c4}.userMini b{display:grid;font-size:12px}.userMini small{font-size:9px;color:#8996b0}.tradeSide nav{display:grid;gap:6px}.tradeSide nav button,.logout{border:0;text-align:right;padding:12px;border-radius:10px;background:transparent;color:#8f9ab1;font:inherit}.tradeSide nav button.active{background:#5e57c8;color:#fff}.logout{margin-top:auto;color:#ff9099}.tradeMain{padding:32px;min-width:0}.tradeMain>header{display:flex;justify-content:space-between;align-items:center}.tradeMain header small{color:#7d879a}.tradeMain h1{margin:4px 0}.kycBadge{padding:9px 14px;border-radius:20px;background:#fff3d8;color:#936b12;font-size:11px}.kycBadge.approved{background:#daf6e9;color:#14704e}.walletGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:25px 0}.walletGrid article,.tradePanel{background:#fff;border:1px solid #e7eaf0;border-radius:18px;padding:20px;box-shadow:0 10px 30px rgba(23,32,52,.045)}.walletGrid article{display:grid;gap:5px}.walletGrid small{color:#8892a5}.walletGrid strong{font-size:24px}.walletGrid em{font-style:normal;color:#5e57c8;font-size:11px}.tradeColumns,.managementGrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.tradePanelHead{display:flex;justify-content:space-between;align-items:center}.tradePanelHead h2,.tradePanel h2{font-size:17px;margin:4px 0}.tradePanelHead span{color:#19a477;font-size:10px}.orderForm{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.orderForm button{grid-column:1/-1}.orderList{display:grid;margin-top:15px}.orderList>div{display:grid;grid-template-columns:1fr auto auto;align-items:center;border-top:1px solid #edf0f4;padding:12px 0}.orderList b,.orderList span{display:grid}.orderList small{font-size:9px;color:#8a94a7}.orderList em{font-style:normal;background:#eef0fa;color:#5e57c8;padding:5px 8px;border-radius:8px;font-size:9px}.compactForm{display:grid;grid-template-columns:1fr 1fr;gap:10px}.compactForm button{margin:0}.companyList{display:grid;gap:8px;margin-top:18px}.companyList span{display:flex;justify-content:space-between;padding:10px;background:#f7f8fb;border-radius:9px}.companyList small{color:#8b95a7}
@media(max-width:900px){.marketGateway,.tradeColumns,.managementGrid{grid-template-columns:1fr}.loginScene{display:block;background:#151c2f;padding:30px}.loginBrand{padding:30px 5vw}.loginBrand h1{font-size:30px}.loginCard{margin:20px auto}.tradeShell{grid-template-columns:1fr}.tradeSide{display:none}.walletGrid{grid-template-columns:1fr 1fr}.tradeMain{padding:16px}}@media(max-width:560px){.marketGateway p{max-width:100%}.walletGrid{grid-template-columns:1fr}.orderForm,.compactForm{grid-template-columns:1fr}.orderForm button{grid-column:auto}}
.predictionProduct {
  --bg: #f7f3ec; --surface: #fffdf9; --surface-soft: #faf6ef; --text: #142238;
  --muted: #776f65; --muted-2: #aaa196; --line: #e8dfd3; --primary: #17304c;
  --primary-soft: #edf1f3; --green: #158958; --green-soft: #eaf5ed;
  --red: #c9534f; --red-soft: #fbebE8; --orange: #c78a25; --orange-soft: #fff3df;
  background: radial-gradient(circle at 45% -15%, rgba(215,191,157,.16), transparent 31%), #f7f3ec;
}
.predictionProduct .sidebar { background: rgba(255,253,249,.96); border-color: #e4dacd; }
.predictionProduct .brandMark { color: #9d7d4f; letter-spacing: -3px; background: none; -webkit-text-fill-color: currentColor; filter: none; }
.predictionProduct .nav a { min-height: 51px; color: #425068; }
.predictionProduct .nav a:hover { color: #142b45; background: #f4eee5; }
.predictionProduct .nav a.active { color: #fff; background: linear-gradient(110deg,#0f2238,#1c3855); box-shadow: 0 10px 25px rgba(16,34,55,.14); }
.predictionProduct .panel { border-color: var(--line); background: rgba(255,253,249,.96); box-shadow: 0 12px 34px rgba(65,49,32,.045); }
.predictionAbout { padding: 16px; border: 1px solid #e6d9c7; border-radius: 14px; background: #faf3e8; }
.predictionAbout strong { font-size: 11px; }
.predictionAbout small { margin-top: 7px; display: block; color: #776c5d; font-size: 8.5px; line-height: 1.9; }
.predictionAbout a { margin-top: 13px; display: inline-block; color: #8d6329; font-size: 9px; font-weight: 700; }
.predictionProduct .search, .predictionProduct .marketStatus { border-color: var(--line); background: rgba(255,253,249,.9); box-shadow: none; }
.predictionProduct .iconButton { background: transparent; }
.predictionMain { max-width: 1720px; margin: 0 auto; }
.predictionToolbar { margin-bottom: 13px; display: flex; align-items: center; gap: 12px; direction: ltr; }
.toolbarGroup { min-height: 42px; padding: 3px; display: inline-flex; direction: rtl; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,253,249,.88); }
.toolbarGroup button { min-width: 62px; padding: 0 12px; color: #685f54; border: 0; border-radius: 7px; background: transparent; font-size: 9.5px; }
.toolbarGroup button.active { color: #6f4e20; background: #fff4e3; box-shadow: inset 0 0 0 1px #e8cfa8; font-weight: 700; }
.toolbarGroup a { min-width: 72px; padding: 0 11px; display: inline-flex; align-items: center; justify-content: center; color: #685f54; border-radius: 7px; font-size: 9px; transition: color .18s ease,background .18s ease,transform .18s ease; }.toolbarGroup a:hover { color: #fff; background: #17324e; transform: translateY(-1px); }
.marketFilters { flex: 1 1 auto; justify-content: center; }
.snapshotTime { margin-left: auto; display: flex; align-items: center; direction: rtl; gap: 8px; color: #555d62; }
.snapshotTime > i, .dataHealth i { width: 8px; height: 8px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(21,137,88,.1); }
.snapshotTime span { display: grid; gap: 2px; }
.snapshotTime small { color: var(--muted); font-size: 7.5px; }
.snapshotTime b { font-size: 9px; font-weight: 600; }
.forecastPageHead { margin: 7px 0 16px; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.forecastPageHead h1, .assetPredictionHead h1 { margin: 5px 0 0; font-size: 25px; letter-spacing: -.5px; }
.forecastPageHead p, .assetPredictionHead p { margin: 7px 0 0; color: var(--muted); font-size: 10px; }
.dataHealth { padding: 7px 10px; display: inline-flex; align-items: center; gap: 7px; border-radius: 999px; font-size: 8.5px; font-weight: 700; }
.dataHealth.healthy { color: #176d49; background: #eaf6ef; }
.dataHealth.warming { color: #8a642d; background: #fff3df; }
.dataHealth.warming i { background: #c58b2d; box-shadow: 0 0 0 4px rgba(197,139,45,.1); }
/* Compatibility guard: never expose the removed snapshot badge, even if an older HTML shell is restored. */
.dataHealth, .changePanel, .coveragePanel, .forecastMethod, .predictionAbout { display: none !important; }
.predictionWorkspaceFull { grid-template-columns: minmax(0,1fr) !important; }
.forecastSummary { display: grid; grid-template-columns: 1.3fr repeat(3,1fr); border: 1px solid #e6d6c2; border-radius: 14px; background: linear-gradient(90deg,#fffaf2,#fffdf9); overflow: hidden; }
.forecastSummaryCard { min-height: 105px; padding: 17px 23px; display: grid; align-content: center; gap: 7px; border-left: 1px solid #eadfD1; }
.forecastSummaryCard:last-child { border-left: 0; }
.forecastSummaryCard small { color: #756c60; font-size: 8.5px; }
.forecastSummaryCard strong { color: #142238; font-size: 23px; }
.forecastSummaryCard span { color: #8b8379; font-size: 8px; }
.forecastSummaryCard.dominant strong { color: var(--green); font-size: 20px; }
.forecastSummaryCard.actionable { position: relative; transition: transform .2s ease,box-shadow .2s ease; }.forecastSummaryCard.actionable:hover { z-index: 2; transform: translateY(-3px); box-shadow: 0 13px 28px rgba(30,45,57,.09); }.forecastSummaryCard.actionable b { color: #806139; font-size: 7.5px; }.forecastSummaryCard.opportunity { background: linear-gradient(135deg,#fffdf9,#eef8f1); }.forecastSummaryCard.opportunity strong { color: #177c53; }.forecastSummaryCard.warning { background: linear-gradient(135deg,#fffdf9,#fff2ee); }.forecastSummaryCard.warning strong { color: #b44f49; }.signalBalance strong { display: flex; align-items: center; gap: 7px; font-size: 13px; }.signalBalance strong em { font-style: normal; }.signalBalance strong i { color: #b0a89d; font-style: normal; }
.marketPulseCard { padding-block: 12px; grid-template-columns: 1fr 70px; align-items: center; gap: 12px; background: radial-gradient(circle at 15% 20%,rgba(25,132,91,.12),transparent 44%),#fffdf9; }.marketPulseCard > div { display: grid; gap: 6px; }.marketPulseCard strong { font-size: 14px; }.marketPulseGauge { width: 62px; height: 62px; position: relative; display: grid; place-content: center; border-radius: 50%; font-style: normal; box-shadow: 0 7px 18px rgba(31,59,61,.12); }.marketPulseGauge::before { content: ''; position: absolute; inset: 8px; border-radius: inherit; background: #fffdf9; }.marketPulseGauge b,.marketPulseGauge em { z-index: 1; position: relative; text-align: center; }.marketPulseGauge b { color: #17324e; font-size: 14px; }.marketPulseGauge em { color: #8b8379; font-size: 6px; font-style: normal; }
.summarySkeleton { min-height: 105px; background: linear-gradient(90deg,#faf6f0,#fffdf9,#faf6f0); background-size: 200% 100%; animation: shimmer 1.2s linear infinite; }
.staleBanner { display: none !important; }
.predictionWorkspace { margin-top: 13px; display: grid; grid-template-columns: minmax(0,1fr) 300px; align-items: start; gap: 12px; direction: ltr; }
.predictionWorkspace > * { direction: rtl; }
.forecastRadar { min-width: 0; padding: 0; overflow: hidden; }
.forecastPanelHead { min-height: 67px; padding: 14px 17px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.forecastPanelHead h2 { margin: 4px 0 0; font-size: 14px; }
.forecastPanelHead > small { color: var(--muted); font-size: 8.5px; }
.forecastTableWrap { overflow-x: auto; }
.forecastTableHead, .forecastRow { min-width: 1020px; display: grid; grid-template-columns: 1.25fr .78fr .72fr .68fr 1fr .65fr 1fr .82fr; align-items: center; gap: 9px; }
.forecastTableHead { min-height: 42px; padding: 0 14px; color: #847b70; border-bottom: 1px solid var(--line); font-size: 7.5px; }
.forecastRow { min-height: 72px; padding: 9px 14px; border-bottom: 1px solid #eee6dc; transition: background .15s ease; }
.forecastRow:hover { background: #fcf8f2; }
.forecastRow.unavailable { opacity: .68; }
.forecastRow > span { min-width: 0; display: grid; gap: 3px; }
.forecastRow small { color: var(--muted); font-size: 7.5px; }
.assetIdentity { grid-template-columns: 34px 1fr; align-items: center; }
.assetIdentity > i, .assetMonogram { width: 31px; height: 31px; grid-row: 1 / 3; display: grid; place-items: center; color: #785c35; border: 1px solid #e6d5be; border-radius: 50%; background: #f7ecdc; font-size: 10px; font-style: normal; font-weight: 800; }
.assetIdentity b { overflow: hidden; font-size: 9.5px; white-space: nowrap; text-overflow: ellipsis; }
.assetIdentity em { margin-right: 5px; padding: 2px 5px; color: #8a601f; border-radius: 5px; background: #fff0d6; font-size: 6.5px; font-style: normal; }
.assetPrice b, .probabilityCell b, .rangeCell b, .confidenceCell b { direction: ltr; text-align: right; font-size: 9.5px; }
.directionChip { width: max-content; padding: 6px 8px; display: inline-flex; align-items: center; gap: 5px; border-radius: 7px; font-size: 8.5px; }
.directionChip i { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.directionChip.up { color: #16734d !important; background: #e9f4ec; }
.directionChip.down { color: #b94e49 !important; background: #fae9e6; }
.directionChip.neutral { color: #746f68; background: #f0eeea; }
.confidenceCell > i { width: 54px; height: 4px; overflow: hidden; direction: ltr; border-radius: 5px; background: #e8e2d9; }
.confidenceCell > i em { height: 100%; display: block; border-radius: inherit; background: #193653; }
.freshnessChip { width: max-content; padding: 4px 6px; border-radius: 6px; font-size: 7px; }
.freshnessChip.online { color: #176f4a; background: #eaf5ed; }
.freshnessChip.cached { color: #805d28; background: #fff1d9; }
.freshnessChip.unavailable { color: #8a4a47; background: #fae8e5; }
.miniDistribution svg { width: 105px; height: 36px; direction: ltr; }
.viewPrediction { width: max-content; padding: 7px 9px; color: #8b4f3d; border: 1px solid #e1bbae; border-radius: 7px; font-size: 7.5px; font-weight: 700; }
.forecastLoading, .forecastEmpty, .forecastError { min-height: 330px; padding: 25px; display: grid; place-content: center; gap: 8px; text-align: center; }
.forecastLoading strong, .forecastEmpty strong, .forecastError strong { font-size: 11px; }
.forecastLoading small, .forecastEmpty small, .forecastError small { color: var(--muted); font-size: 8.5px; }
.forecastError button { margin: 8px auto 0; padding: 7px 11px; color: #fff; border: 0; border-radius: 7px; background: #193653; }
.predictionRail { display: grid; gap: 12px; }
.changePanel, .coveragePanel { overflow: hidden; }
.forecastChanges a { padding: 13px; display: grid; grid-template-columns: 25px 1fr; gap: 8px; border-bottom: 1px solid var(--line); }
.forecastChanges a > i { width: 23px; height: 23px; display: grid; place-items: center; color: #8a5d23; border-radius: 50%; background: #fff1d8; font-style: normal; }
.forecastChanges a span { display: grid; gap: 4px; }
.forecastChanges strong { font-size: 8.5px; }
.forecastChanges small, .forecastChanges time { color: var(--muted); font-size: 7px; }
.forecastChanges time { grid-column: 2; }
.noMeaningfulChange { min-height: 175px; padding: 22px; display: grid; place-content: center; gap: 6px; text-align: center; }
.noMeaningfulChange i { width: 32px; height: 32px; margin: auto; display: grid; place-items: center; color: #16734d; border-radius: 50%; background: #eaf5ed; font-style: normal; }
.noMeaningfulChange strong { font-size: 9.5px; }
.noMeaningfulChange small { color: var(--muted); font-size: 7.5px; line-height: 1.8; }
.coverageBody { padding: 18px; display: flex; align-items: center; justify-content: center; gap: 25px; }
.coverageDonut { width: 92px; height: 92px; display: grid; place-items: center; position: relative; border-radius: 50%; background: conic-gradient(#188958 var(--coverage),#e9dfd2 0); }
.coverageDonut:after { content: ''; position: absolute; inset: 10px; border-radius: 50%; background: #fffdf9; }
.coverageDonut span { position: relative; z-index: 1; display: grid; text-align: center; }
.coverageDonut b { font-size: 20px; }.coverageDonut small { color: var(--muted); font-size: 7px; }
.coverageLegend { display: grid; gap: 9px; font-size: 8px; }
.coverageLegend span { display: grid; grid-template-columns: 8px 1fr auto; align-items: center; gap: 6px; }
.coverageLegend i { width: 7px; height: 7px; border-radius: 50%; }.coverageLegend i.online { background: #168858; }.coverageLegend i.cached { background: #c58a2c; }.coverageLegend i.unavailable { background: #aaa49b; }
.forecastMethod { padding: 17px; border: 1px solid #e5d7c3; border-radius: 13px; background: #faf2e6; }
.forecastMethod strong { font-size: 10px; }.forecastMethod p { color: #746959; font-size: 8px; line-height: 2; }.forecastMethod a { color: #815a24; font-size: 8px; font-weight: 700; }
.predictionDisclaimer { margin-top: 14px; color: #857c71; font-size: 7.5px; text-align: center; }

/* Individual probabilistic forecast */
.assetPredictionHead { margin-bottom: 13px; display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.backLink { margin-bottom: 8px; display: inline-block; color: #8a642d; font-size: 8px; }
.assetHorizon { flex: 0 0 auto; }
.assetSnapshot { display: grid; grid-template-columns: 1.35fr repeat(3,1fr); border: 1px solid var(--line); border-radius: 13px; background: #fffdf9; }
.assetSnapshot article { min-height: 82px; padding: 14px 18px; display: grid; align-content: center; gap: 4px; border-left: 1px solid var(--line); }
.assetSnapshot article:first-child { grid-template-columns: 42px 1fr; align-items: center; }.assetSnapshot article:first-child > div { display: grid; gap: 3px; }
.assetSnapshot article:last-child { border-left: 0; }.assetSnapshot small { color: var(--muted); font-size: 7.5px; }.assetSnapshot strong { font-size: 13px; }.assetSnapshot em { color: var(--muted); font-size: 7px; font-style: normal; }
.assetMonogram { width: 40px; height: 40px; grid-row: 1; font-size: 13px; }
.dataStateText.online { color: var(--green); }.dataStateText.cached { color: var(--orange); }.dataStateText.unavailable { color: var(--red); }
.modelVerdict { margin-top: 12px; min-height: 130px; padding: 20px 24px; display: grid; grid-template-columns: 1.3fr repeat(4,1fr); align-items: center; border-color: #ead5b9; background: linear-gradient(90deg,#fff9ef,#fffdf9); }
.modelVerdict > div, .modelVerdict > span { min-width: 0; padding: 0 18px; display: grid; gap: 6px; border-left: 1px solid #eadfD1; }.modelVerdict > div { padding-right: 0; }.modelVerdict > span:last-child { border-left: 0; }
.modelVerdict h2 { margin: 0; font-size: 23px; }.modelVerdict h2.up { color: var(--green); }.modelVerdict h2.down { color: var(--red); }.modelVerdict h2.neutral { color: #6e6b66; }
.modelVerdict small { color: var(--muted); font-size: 8px; }.modelVerdict strong { direction: ltr; text-align: right; font-size: 17px; }
.engineConsensus { margin-top: 12px; min-height: 190px; padding: 20px 28px; display: grid; grid-template-columns: 1fr 310px; align-items: center; gap: 24px; overflow: hidden; border-color: #e6d5bf; background: linear-gradient(105deg,#fffdf9,#fbf4e9); }
.consensusCopy h2 { margin: 5px 0 0; font-size: 17px; }.consensusCopy p { margin: 7px 0 14px; color: var(--muted); font-size: 8.5px; }.consensusModels { display: flex; flex-wrap: wrap; gap: 6px; }.consensusModels span { padding: 5px 8px; color: #675c4d; border: 1px solid #e6d6c1; border-radius: 7px; background: #fffaf2; font-size: 7.5px; }
.consensusGauge { direction: ltr; }.consensusGauge svg { width: 100%; height: 135px; overflow: visible; }.consensusGauge line { stroke: #17283b; stroke-width: 3; stroke-linecap: round; }.consensusGauge circle { fill: #17283b; stroke: #fff; stroke-width: 2; }.consensusGauge text { fill: #17283b; font: 800 12px Vazirmatn; }.consensusScale { margin-top: -6px; display: grid !important; grid-template-columns: repeat(5,1fr); gap: 4px; direction: rtl; color: #918779; font-size: 6.5px; text-align: center; }.consensusScale span { padding: 5px 2px; border-radius: 6px; background: #f3eee7; }.consensusScale span.active { color: #fff; background: #17324e; box-shadow: 0 5px 12px rgba(23,50,78,.16); font-weight: 800; transform: translateY(-2px); }
.assetForecastGrid { margin-top: 12px; display: grid; grid-template-columns: minmax(0,1.6fr) minmax(320px,.8fr); gap: 12px; direction: ltr; }.assetForecastGrid > * { direction: rtl; }
.probabilityChartPanel, .returnDistribution, .modelDrivers, .modelTrackRecord { overflow: hidden; }.probabilityChartPanel, .returnDistribution { background: radial-gradient(circle at 85% 0,rgba(207,232,216,.35),transparent 35%),#fffdf9 !important; }
.chartLegend { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 7px; }.chartLegend i { width: 15px; height: 5px; border-radius: 5px; }.chartLegend .median { border-top: 2px dashed #173957; }.chartLegend .band50 { background: #bad9c5; }.chartLegend .band80 { background: #e3efe6; }
.probabilityChart { min-height: 370px; padding: 10px 12px 6px; direction: ltr; background: linear-gradient(180deg,rgba(255,255,255,.4),rgba(248,244,237,.28)); }.probabilityChart svg { width: 100%; height: 360px; overflow: visible; filter: drop-shadow(0 10px 20px rgba(28,55,72,.035)); }
.chartGrid path { stroke: #e8e0d5; stroke-width: 1; stroke-dasharray: 2 4; }.chartGrid text, .axisLabel { fill: #8a8177; font-size: 9px; font-family: Vazirmatn; }.band80Path { fill: rgba(43,145,91,.10); }.band50Path { fill: rgba(43,145,91,.23); filter: drop-shadow(0 8px 10px rgba(30,125,80,.06)); }.historyPath { fill: none; stroke: #17324e; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; }.medianPath { fill: none; stroke: #16835c; stroke-width: 2.8; stroke-dasharray: 8 5; stroke-linecap: round; }.forecastStart { stroke: #9d968d; stroke-dasharray: 3 4; }.invalidationLine { stroke: #cb5a52; stroke-width: 1.5; stroke-dasharray: 6 4; }.invalidationLabel { fill: #bd4c46; font-size: 9px; font-family: Vazirmatn; }.currentPoint { fill: #17324e; stroke: #fff; stroke-width: 3; filter: drop-shadow(0 3px 4px rgba(23,50,78,.3)); }
.forecastPointLabels circle { fill: #16835c; stroke: #fff; stroke-width: 2; filter: drop-shadow(0 2px 3px rgba(22,131,92,.25)); }.forecastPriceLabel { fill: #17324e; font: 800 8px Vazirmatn; }.forecastDayLabel { fill: #736b62; font: 8px Vazirmatn; }
.forecastNumbers { padding: 10px 14px 15px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(92px,1fr); gap: 7px; overflow-x: auto; border-top: 1px solid var(--line); direction: rtl; }.forecastNumbers article { min-width: 92px; padding: 9px; display: grid; gap: 4px; text-align: center; border: 1px solid #e8ddcf; border-radius: 8px; background: #fffaf3; }.forecastNumbers small { color: #765f40; font-size: 7.5px; }.forecastNumbers strong { direction: ltr; font-size: 11px; }.forecastNumbers span { direction: ltr; color: var(--muted); font-size: 6.5px; }
.chartWaiting { min-height: 330px; display: grid; place-content: center; gap: 7px; text-align: center; }.chartWaiting strong { font-size: 11px; }.chartWaiting small { color: var(--muted); font-size: 8px; }
.returnHistogram { padding: 18px 15px 0; direction: ltr; background: linear-gradient(180deg,rgba(255,255,255,.35),transparent); }.returnHistogram svg { width: 100%; height: 255px; filter: drop-shadow(0 8px 10px rgba(50,45,38,.05)); }.returnHistogram rect { transition: opacity .2s,transform .2s; transform-box: fill-box; transform-origin: bottom; }.returnHistogram rect:hover { opacity: .78; transform: scaleY(1.035); }.returnHistogram text { fill: #8a8177; font: 8px Vazirmatn; }.histAxis { stroke: #d9d0c5; stroke-dasharray: 3 3; }
.probabilityBreakdown { padding: 14px; display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; border-top: 1px solid var(--line); }.probabilityBreakdown span { text-align: center; }.probabilityBreakdown small { display: block; color: var(--muted); font-size: 7.5px; }.probabilityBreakdown strong { margin-top: 5px; display: block; font-size: 17px; }
.assetInsightGrid { margin-top: 12px; display: grid; grid-template-columns: minmax(0,1fr) 285px; gap: 12px; direction: ltr; }.assetInsightGrid > * { direction: rtl; }
.driverList { display: grid; grid-template-columns: repeat(5,1fr); }.driverList article { min-height: 145px; padding: 16px; border-left: 1px solid var(--line); }.driverList article:last-child { border-left: 0; }.driverList article > div { display: flex; justify-content: space-between; gap: 7px; }.driverList strong { font-size: 9.5px; }.driverList span { color: #8a6228; font-size: 8px; }.driverList i { height: 5px; margin: 14px 0 10px; display: block; direction: ltr; border-radius: 5px; background: #e9e1d7; }.driverList i em { height: 100%; display: block; border-radius: inherit; background: #b8873c; }.driverList small { color: var(--muted); font-size: 7.5px; line-height: 1.8; }
.invalidationCard { padding: 22px; display: grid; align-content: center; text-align: center; border: 1px solid #efc8bd; border-radius: 13px; background: #fff6f1; }.invalidationCard > span { color: #a95048; font-size: 9px; }.invalidationCard > strong { margin: 12px 0 5px; direction: ltr; color: #bc4e47; font-size: 24px; }.invalidationCard p { color: #846b64; font-size: 8px; }.invalidationCard button { margin-top: 17px; padding: 10px; color: #a94740; border: 1px solid #d9857d; border-radius: 8px; background: transparent; font-size: 9px; font-weight: 700; }
.modelTrackRecord { margin-top: 12px; }.engineBadge { padding: 5px 8px; color: #6f552e; border-radius: 7px; background: #f4eadb; font-size: 8px; }.performanceStats { display: grid; grid-template-columns: repeat(4,1fr); }.performanceStats span { min-height: 80px; padding: 15px 18px; display: grid; align-content: center; gap: 6px; border-left: 1px solid var(--line); }.performanceStats span:last-child { border-left: 0; }.performanceStats small { color: var(--muted); font-size: 7.5px; }.performanceStats strong { font-size: 13px; }
.reliabilityChart { padding: 0 18px 17px; }.reliabilityChart > div:first-child { height: 8px; direction: ltr; overflow: hidden; border-radius: 7px; background: #e8e1d8; }.reliabilityChart > div:first-child i { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg,#b78a49,#1c8658); }.reliabilityChart p { color: var(--muted); font-size: 7.5px; }.calibrationPending { min-height: 80px; display: grid !important; place-content: center; gap: 5px; text-align: center; background: transparent !important; }.calibrationPending strong { font-size: 9px; }.calibrationPending small { color: var(--muted); font-size: 7.5px; }
.trackRecordEmpty { min-height: 75px; padding: 15px; display: grid !important; place-content: center; gap: 5px; text-align: center; border-radius: 9px; background: #fbf7f1 !important; }.trackRecordEmpty strong { font-size: 9px; }.trackRecordEmpty small { color: var(--muted); font-size: 7.5px; }
.readinessCard > i, .readinessEmpty > i { height: 5px; margin-top: 8px; overflow: hidden; border-radius: 999px; background: #eee6da; }
.readinessCard > i em, .readinessEmpty > i em { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#b88a4b,#19885d); transition: width .35s ease; }
.readinessEmpty { min-height: 110px; padding-inline: 24px; }.readinessEmpty > i { width: min(360px,80vw); margin-inline: auto; }
.allAssetsLink { min-width: 220px; padding: 12px 15px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2px 14px; color: #fff; border-radius: 12px; background: linear-gradient(120deg,#132a43,#24644f); box-shadow: 0 10px 24px rgba(19,42,67,.12); }
.allAssetsLink span { font-size: 11px; font-weight: 800; }.allAssetsLink small { color: rgba(255,255,255,.7); font-size: 7.5px; }.allAssetsLink b { grid-column: 2; grid-row: 1/3; font-size: 18px; }
.radarActions { display: flex; align-items: center; gap: 12px; }.radarActions a { color: #75562d; font-size: 8px; font-weight: 800; }
.insightAlertControls { margin-bottom: 12px; padding: 10px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid var(--line); border-radius: 12px; background: #fffdf9; }
.insightAlertControls small { color: var(--muted); font-size: 8px; }
.alertInsightSummary { margin-bottom: 12px; display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; }
.alertInsightSummary article { min-height: 76px; padding: 14px 16px; display: grid; align-content: center; gap: 5px; border: 1px solid var(--line); border-radius: 12px; background: #fffdf9; }
.alertInsightSummary small { color: var(--muted); font-size: 8px; }.alertInsightSummary strong { font-size: 19px; }
.alertInsightSummary .positive { border-color: #cae5d5; background: #f3faf5; }.alertInsightSummary .positive strong { color: var(--green); }
.alertInsightSummary .negative { border-color: #efd1cc; background: #fff6f3; }.alertInsightSummary .negative strong { color: var(--red); }
.alertInsightSummary .conflict { border-color: #ead7b8; background: #fff9ee; }.alertInsightSummary .conflict strong { color: #a06b19; }
.alertMethod { margin-bottom: 12px; padding: 10px 14px; color: #6f6558; border: 1px solid #eadbc6; border-radius: 10px; background: #faf3e8; font-size: 8px; line-height: 1.9; }.alertMethod b { color: #6d4d21; }
.alertInsightGrid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.alertInsightCard { min-height: 285px; padding: 17px; display: grid; align-content: start; gap: 13px; overflow: hidden; border: 1px solid var(--line); border-top: 4px solid #aaa49b; border-radius: 13px; background: #fffdf9; box-shadow: 0 8px 24px rgba(43,39,34,.04); }
.alertInsightCard.positive { border-top-color: #22885a; }.alertInsightCard.negative { border-top-color: #c65c54; }.alertInsightCard.conflict { border-top-color: #d4932d; }.alertInsightCard.watch { border-top-color: #5d78a2; }.alertInsightCard.pending { border-top-color: #b2aba1; }
.alertInsightCard header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }.alertInsightCard h3 { margin: 5px 0 2px; font-size: 14px; }.alertInsightCard header small { color: var(--muted); font-size: 7.5px; }
.alertVerdict { width: max-content; padding: 4px 7px; color: #665d52; border-radius: 6px; background: #f0ece6; font-size: 7.5px; font-weight: 800; }.positive .alertVerdict { color: #176e49; background: #e9f5ed; }.negative .alertVerdict { color: #a84a44; background: #fbeae7; }.conflict .alertVerdict { color: #8a5b17; background: #fff0d8; }
.alertMetrics { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--line); border-radius: 9px; background: #fbf8f3; }.alertMetrics span { min-height: 65px; padding: 10px; display: grid; align-content: center; gap: 5px; border-left: 1px solid var(--line); }.alertMetrics span:last-child { border-left: 0; }.alertMetrics small { color: var(--muted); font-size: 7px; }.alertMetrics strong { direction: ltr; text-align: right; font-size: 10px; }
.newsBalance { padding: 10px 11px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-radius: 9px; background: #f5f1eb; }.newsBalance > div { display: grid; gap: 4px; }.newsBalance b { font-size: 8px; }.newsBalance small { color: var(--muted); font-size: 7px; line-height: 1.8; }.newsBalance > span { padding: 4px 7px; border-radius: 6px; background: #fffdf9; font-size: 7px; }.newsBalance.warming { background: #f6f4f0; }
.alertHeadlines { margin: 0; padding: 0 16px 0 0; display: grid; gap: 5px; color: #514b44; font-size: 7.5px; line-height: 1.8; }
.alertInsightCard footer { margin-top: auto; padding-top: 9px; display: flex; justify-content: space-between; color: #79582a; border-top: 1px solid var(--line); font-size: 8px; font-weight: 800; }
.assetNewsPanel { margin-top: 12px; overflow: hidden; }.assetNewsList { display: grid; grid-template-columns: repeat(3,1fr); }.assetNewsList > a { min-height: 150px; padding: 16px; display: grid; align-content: start; gap: 7px; border-left: 1px solid var(--line); border-bottom: 1px solid var(--line); }.assetNewsList > a:nth-child(3n) { border-left: 0; }.assetNewsList > a:hover { background: #fcf8f2; }.assetNewsList > a > div { display: flex; align-items: center; justify-content: space-between; gap: 7px; }.assetNewsList strong { font-size: 9.5px; line-height: 1.8; }.assetNewsList p { margin: 0; color: #6f685f; font-size: 7.5px; line-height: 1.9; }.assetNewsList small,.assetNewsList time { color: var(--muted); font-size: 6.8px; }.newsImpact { padding: 3px 6px; border-radius: 5px; font-size: 6.8px; }.newsImpact.positive { color: #16734d; background: #e9f4ec; }.newsImpact.negative { color: #b94e49; background: #fae9e6; }.newsImpact.neutral { color: #766f65; background: #f0ece6; }.newsSkeleton,.newsEmpty { min-height: 150px; padding: 25px; display: grid; place-content: center; gap: 7px; text-align: center; }.newsSkeleton strong,.newsEmpty strong { font-size: 9.5px; }.newsEmpty small { color: var(--muted); font-size: 7.5px; }
.modelPerformanceList { margin-top: 13px; overflow: hidden; }.modelPerformanceList > a { min-height: 62px; padding: 10px 16px; display: grid; grid-template-columns: 1.3fr .7fr .7fr .9fr .7fr; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); }.modelPerformanceList > a:hover { background: #fcf8f2; }.modelPerformanceList > a > span { display: grid; gap: 3px; }.modelPerformanceList small { color: var(--muted); font-size: 7.5px; }.modelPerformanceList strong { font-size: 9.5px; }.modelPerformanceList em { color: #766c60; font-size: 8px; font-style: normal; }

@media (min-width: 841px) {
  .predictionProduct .sidebar { inset: 0 0 0 auto; width: 220px; border-right: 0; border-left: 1px solid #e4dacd; }
  .predictionProduct .main { width: calc(100% - 220px); margin: 0 auto 0 0; }
}
@media (max-width: 1350px) {
  .forecastTableHead, .forecastRow { min-width: 880px; grid-template-columns: 1.25fr .75fr .72fr .68fr 1fr .65fr .75fr; }
  .forecastTableHead > :nth-child(7), .forecastRow > :nth-child(7) { display: none; }
  .predictionWorkspace { grid-template-columns: minmax(0,1fr) 270px; }
  .driverList { grid-template-columns: repeat(3,1fr); }.driverList article { border-bottom: 1px solid var(--line); }
}
@media (max-width: 1080px) {
  .marketFilters button, .marketFilters a { min-width: 0; padding: 0 7px; }.predictionWorkspace, .assetForecastGrid, .assetInsightGrid { grid-template-columns: 1fr; }.predictionRail { grid-template-columns: 1fr 1fr; }.forecastMethod { grid-column: 1/-1; }.assetSnapshot, .modelVerdict { grid-template-columns: repeat(2,1fr); }.modelVerdict > div, .modelVerdict > span, .assetSnapshot article { border-bottom: 1px solid var(--line); }.performanceStats { grid-template-columns: repeat(2,1fr); }.engineConsensus { grid-template-columns: 1fr 280px; }.assetNewsList { grid-template-columns: repeat(2,1fr); }.assetNewsList > a:nth-child(3n) { border-left: 1px solid var(--line); }.assetNewsList > a:nth-child(2n) { border-left: 0; }
}
@media (max-width: 840px) {
  .predictionProduct .main { width: 100%; margin: 0; }.predictionToolbar { align-items: stretch; flex-direction: column; }.marketFilters { overflow-x: auto; justify-content: flex-start; }.marketFilters button, .marketFilters a { min-width: 85px; }.snapshotTime { margin-left: 0; }.forecastPageHead, .assetPredictionHead { align-items: flex-start; flex-direction: column; }.forecastSummary { grid-template-columns: repeat(2,1fr); }.forecastSummaryCard { border-bottom: 1px solid var(--line); }.predictionRail { grid-template-columns: 1fr; }.forecastTableHead { display: none; }.forecastTableWrap { overflow: visible; }.forecastRows { padding: 10px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }.forecastRow { min-width: 0; min-height: 280px; padding: 13px; display: grid; grid-template-columns: 1fr 1fr; gap: 11px; border: 1px solid var(--line); border-radius: 11px; }.forecastRow > span { display: grid !important; }.forecastRow .assetIdentity { grid-column: 1/-1; }.forecastRow .miniDistribution { grid-column: 1/-1; }.forecastRow .viewPrediction { grid-column: 1/-1; width: 100%; text-align: center; }.assetSnapshot, .modelVerdict { grid-template-columns: 1fr 1fr; }.driverList { grid-template-columns: repeat(2,1fr); }.engineConsensus { grid-template-columns: 1fr; }.assetNewsList { grid-template-columns: 1fr; }.assetNewsList > a { border-left: 0 !important; }
}
@media (max-width: 560px) {
  .forecastSummary, .forecastRows, .assetSnapshot, .modelVerdict, .performanceStats, .driverList { grid-template-columns: 1fr; }.forecastRow { grid-template-columns: 1fr 1fr; }.modelVerdict > div, .modelVerdict > span { padding: 13px 0; border-left: 0; }.probabilityChart { min-height: 260px; padding: 4px; }.probabilityChart svg { height: 270px; }.chartLegend { display: none; }.probabilityBreakdown { grid-template-columns: 1fr; }.assetHorizon { width: 100%; }.assetHorizon button { flex: 1; }
}
@media (max-width: 840px) { .alertInsightGrid { grid-template-columns: 1fr; }.alertInsightSummary { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px) { .insightAlertControls { align-items: stretch; flex-direction: column; }.alertMetrics { grid-template-columns: 1fr; }.alertMetrics span { border-left: 0; border-bottom: 1px solid var(--line); }.alertMetrics span:last-child { border-bottom: 0; } }
.directionPanel{background:linear-gradient(155deg,#fff 0,#f7fbff 55%,#f0fdf4 100%)}.directionCompass{display:grid;grid-template-columns:1fr 130px;align-items:center;min-height:245px;padding:18px}.directionCompass svg{width:100%;max-height:210px}.directionCompass svg text{font:800 18px Vazirmatn;fill:#172033}.directionNeedle{stroke:#111827;stroke-width:6;stroke-linecap:round;filter:drop-shadow(0 3px 3px #0004);transform-origin:150px 128px;animation:needleSweep .8s ease both}.directionReturn{display:flex;flex-direction:column;gap:8px;text-align:center}.directionReturn strong{font-size:30px}.directionReturn small,.directionReturn span{color:#64748b}@keyframes needleSweep{from{transform:rotate(-40deg)}to{transform:rotate(0)}}
.driverList{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px}.driverList .indicatorGauge{display:flex;flex-direction:column;align-items:center;border:1px solid #e2e8f0;border-radius:14px;background:#fff;padding:12px;box-shadow:0 8px 24px rgba(15,23,42,.05)}.indicatorGauge>strong{align-self:flex-start;color:#334155}.indicatorGauge svg{width:100%;max-width:220px}.indicatorGauge .gaugeBase{fill:none;stroke:#e2e8f0;stroke-width:18;stroke-linecap:round}.indicatorGauge .gaugeColor{fill:none;stroke:url(#gaugeGradient);stroke-width:12;stroke-linecap:round}.indicatorGauge line{stroke:#111827;stroke-width:5;stroke-linecap:round;animation:needleSweep .7s ease both}.indicatorGauge circle{fill:#111827}.indicatorGauge text{font:800 15px Vazirmatn;fill:#172033}.indicatorGauge small{color:#64748b;text-align:center}
.comparisonHead,.comparisonLegend{display:flex;align-items:center;justify-content:space-between;gap:16px}.comparisonHead span{background:#eff6ff;color:#1d4ed8;padding:6px 10px;border-radius:8px}.comparisonChart{width:100%;height:230px;background:#0b1220;border-radius:12px;margin:12px 0}.comparisonChart g path{stroke:#1e293b;stroke-dasharray:3 5}.comparisonChart .actualLine{fill:none;stroke:#22c55e;stroke-width:2.6}.comparisonChart .predictedLine{fill:none;stroke:#38bdf8;stroke-width:2.3;stroke-dasharray:7 4}.comparisonLegend{justify-content:flex-start;color:#64748b;font-size:12px}.comparisonLegend span:before{content:'';display:inline-block;width:18px;height:3px;margin-left:6px;vertical-align:middle;background:#94a3b8}.comparisonLegend .actual:before{background:#22c55e}.comparisonLegend .predicted:before{background:#38bdf8}
@media(max-width:840px){.driverList{grid-template-columns:repeat(2,1fr)}.directionCompass{grid-template-columns:1fr}}@media(max-width:520px){.driverList{grid-template-columns:1fr}}
.indicatorGauge .gaugeTick{stroke:#fff;stroke-width:1.4;animation:none}.indicatorGauge .gaugeTickLabel{font:8px Vazirmatn;fill:#64748b}.indicatorGauge .gaugeNeedleLine{stroke:#172033;stroke-width:5;stroke-linecap:round;animation:needleSweep .7s ease both;filter:drop-shadow(0 2px 2px #0003)}.indicatorGauge .gaugeValue{font:800 15px Vazirmatn;fill:#172033}.indicatorGauge circle{fill:#172033;stroke:#fff;stroke-width:2}
.predictionProduct{width:100%;max-width:100vw;overflow-x:hidden}.predictionProduct .shell{width:100%;max-width:100vw;overflow-x:hidden}.predictionProduct .predictionMain{min-width:0;max-width:none}.predictionProduct .predictionWorkspaceFull,.predictionProduct .forecastRadar,.predictionProduct .forecastTableWrap{width:100%;max-width:100%;min-width:0}.predictionProduct .forecastTableWrap{overscroll-behavior-inline:contain;scrollbar-width:thin;direction:rtl}.predictionProduct .forecastTableHead,.predictionProduct .forecastRow{direction:rtl}.predictionGaugeMini{place-items:center}.predictionGaugeMini svg{width:112px;height:58px;overflow:visible}.predictionGaugeTrack{fill:none;stroke:#ece5dc;stroke-width:12;stroke-linecap:round}.predictionGaugeColor{fill:none;stroke-width:8;stroke-linecap:round}.predictionGaugeTicks path{fill:none;stroke:#fff;stroke-width:1.5}.predictionGaugeNeedle{stroke:#17304c;stroke-width:3.5;stroke-linecap:round;filter:drop-shadow(0 2px 2px rgba(23,48,76,.25));transform-origin:60px 42px;animation:predictionNeedleIn .65s cubic-bezier(.2,.8,.2,1) both}.predictionGaugeHub{fill:#17304c;stroke:#fff;stroke-width:1.5}.predictionGaugeMini text{font:700 8px Vazirmatn;fill:#596372}@keyframes predictionNeedleIn{from{transform:rotate(-35deg);opacity:.2}to{transform:rotate(0);opacity:1}}
@media(min-width:841px){.predictionProduct .sidebar{inset:0 auto 0 0!important;width:220px}.predictionProduct .main{width:calc(100vw - 220px)!important;max-width:calc(100vw - 220px);margin:0 0 0 220px!important}.predictionProduct .forecastTableHead,.predictionProduct .forecastRow{min-width:920px}}
@media(max-width:840px){.predictionProduct .main{width:100%!important;max-width:100vw;margin:0!important}.predictionGaugeMini svg{width:100%;max-width:150px;height:auto}}
.signalHeatmapPanel,.marketHeatmapPanel{margin-top:13px;overflow:hidden}.signalHeatmap,.marketHeatmap{padding:12px;display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:8px}.marketHeatmap{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));max-height:430px;overflow:auto}.signalHeatCell{position:relative;min-height:88px;padding:12px;display:flex;flex-direction:column;justify-content:flex-end;gap:3px;overflow:hidden;color:#fff;border-radius:12px;background:var(--heat);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 7px 18px rgba(40,46,55,.07);animation:heatCellIn .45s ease both;animation-delay:var(--delay);transition:transform .18s ease,filter .18s ease}.signalHeatCell:before{content:'';position:absolute;inset:0;background:linear-gradient(150deg,rgba(255,255,255,.2),transparent 48%,rgba(0,0,0,.14));pointer-events:none}.signalHeatCell:hover{z-index:2;transform:translateY(-3px) scale(1.018);filter:saturate(1.12)}.signalHeatCell span,.signalHeatCell strong,.signalHeatCell small{position:relative;z-index:1}.signalHeatCell span{font-size:9px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.signalHeatCell strong{direction:ltr;text-align:right;font-size:16px}.signalHeatCell small{color:rgba(255,255,255,.82);font-size:7px}.heatmapLegend{display:flex;align-items:center;gap:7px;color:#7b7369;font-size:7.5px}.heatmapLegend i{width:32px;height:7px;border-radius:9px;background:linear-gradient(90deg,#c9534f,#c9aa67,#158958)}.heatmapLegend .bearish{color:#b64c48}.heatmapLegend .bullish{color:#147a51}@keyframes heatCellIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@media(max-width:1080px){.signalHeatmap{grid-template-columns:repeat(3,1fr)}}@media(max-width:560px){.signalHeatmap,.marketHeatmap{grid-template-columns:repeat(2,minmax(0,1fr));padding:8px}.signalHeatCell{min-height:82px}.heatmapLegend{display:none}}
.terminalToolbar{display:flex;align-items:center;gap:10px;background:#111827;color:#94a3b8;padding:10px 14px;border-radius:12px 12px 0 0;font-size:12px}.terminalToolbar span{color:#fff;font-weight:800;margin-left:auto}.terminalToolbar span i{display:inline-block;width:7px;height:7px;background:#22c55e;border-radius:50%;margin-left:7px;box-shadow:0 0 10px #22c55e}.terminalToolbar b{border:1px solid #334155;border-radius:6px;padding:5px 9px;color:#cbd5e1}.terminalToolbar em{font-style:normal;color:#38bdf8}.marketTerminal{display:block;width:100%;background:#0b1220;border-radius:0 0 12px 12px}.terminalBg{fill:#0b1220}.terminalGrid path{stroke:#1e293b;stroke-width:1;stroke-dasharray:3 5}.terminalGrid text{fill:#94a3b8;font:10px Vazirmatn}.terminalBand{fill:rgba(56,189,248,.13)}.terminalForecast{fill:none;stroke:#38bdf8;stroke-width:2.4;stroke-dasharray:6 4}.terminalDivider{stroke:#475569;stroke-dasharray:4 5}.candle path{stroke:currentColor;stroke-width:1.2}.candle rect{fill:currentColor}.candle .volume{opacity:.18}.candle.bull{color:#22c55e}.candle.bear{color:#ef4444}.candle{opacity:0;animation:candleIn .35s ease forwards;animation-delay:calc(var(--i) * 8ms)}@keyframes candleIn{to{opacity:1}}.marketGroup.domestic{border-top:3px solid #0f766e;background:linear-gradient(180deg,#f0fdfa 0,#fff 120px)}.marketGroup.global{border-top:3px solid #2563eb;background:linear-gradient(180deg,#eff6ff 0,#fff 120px)}.marketFilters .domesticFilter{color:#0f766e}.marketFilters .globalFilter{color:#1d4ed8}

/* NASH-03-85: explicit observation / forecast theme */
.assetForecastGrid{grid-template-columns:minmax(0,1fr)}
.forecastSummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;background:#121e31;color:#e7eef9;padding:20px;border-radius:12px 12px 0 0}
.forecastSummary>div{display:flex;flex-direction:column;gap:9px;min-width:0}.forecastSummary small,.forecastSummary span{color:#afbed2;font-size:12px}.forecastSummary strong{font-size:23px;overflow-wrap:anywhere}
.probabilityChartPanel{min-width:0}.forecastChartScroll{direction:ltr;overflow-x:auto;background:#0b1220}.forecastTerminal{min-width:720px;border-radius:0}.forecastTerminal text{font:12px Vazirmatn;fill:#afbed2}.forecastTerminal .terminalLabels text{fill:#d9e5f5}.forecastTerminal .terminalGrid text{text-anchor:start}.forecastTerminal .candle{opacity:1;animation:none}.terminalHistoryLine{fill:none;stroke:#37cf9a;stroke-width:2}.terminalCurrentLine{stroke:#93a7c4;stroke-width:1;stroke-dasharray:3 6;opacity:.5}.terminalCurrentPoint{fill:#e7eef9;stroke:#43c9ff;stroke-width:2}.forecastHit{fill:transparent;stroke:none}.terminalLegend{display:flex;flex-wrap:wrap;gap:20px;background:#111827;color:#d9e5f5;padding:14px;border-radius:0 0 12px 12px;font-size:12px}.forecastLegend{color:#43c9ff}.terminalNotice{padding:12px;color:#64748b}.forecastNumbers article{min-width:0}.forecastNumbers strong{overflow-wrap:anywhere}
@media(max-width:600px){.forecastSummary{grid-template-columns:1fr;gap:18px}.forecastSummary strong{font-size:21px}.terminalLegend{gap:12px}.terminalToolbar{flex-wrap:wrap}}
