/* رایزن — صفحه خلاصه امروز: نمای یک‌نگاه زمردی، اسطرلاب تقاضا، نبض، جریان پول و شواهد */

/* ---------- نمای یک‌نگاه ---------- */
.bx-hero {
  --h-ink: #f1f7f3;
  --h-muted: #a9c6b9;
  --h-line: rgba(255, 255, 255, 0.12);
  --h-card: rgba(255, 255, 255, 0.055);
  --h-copper: #f0a36b;
  --h-sand: #f6c9a4;
  --h-mint: #8ee0b5;
  --h-rose: #ffb3a6;
  position: relative; isolation: isolate; overflow: hidden;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 490px);
  grid-template-areas: 'story astro' 'pulse pulse';
  gap: 6px 34px; padding: 30px 34px 16px; border-radius: 24px;
  background:
    radial-gradient(70% 90% at 22% 0%, rgba(62, 140, 111, 0.42) 0%, rgba(62, 140, 111, 0) 60%),
    radial-gradient(55% 70% at 88% 38%, rgba(33, 102, 80, 0.55) 0%, rgba(33, 102, 80, 0) 70%),
    linear-gradient(165deg, #174a3b 0%, #113a2e 48%, #0b2921 100%);
  color: var(--h-ink);
  box-shadow: 0 34px 70px -40px rgba(8, 36, 28, 0.85);
}
.bx-hero::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: var(--marble) 0 0 / 1000px 1000px; opacity: 0.08; filter: invert(1); mix-blend-mode: screen;
}
.bx-hero::after {
  content: ''; position: absolute; z-index: -1; pointer-events: none; width: 420px; height: 420px; inset-inline-start: -150px; bottom: -170px;
  background: var(--star) center / contain no-repeat; opacity: 0.06; filter: invert(1);
}

.bx-story { grid-area: story; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.bx-greet { color: var(--h-muted); font-size: 13.5px; }
.bx-lede { font-size: 27px; line-height: 1.6; font-weight: 800; letter-spacing: -0.3px; color: #fff; text-wrap: pretty; margin-top: -10px; }
.bx-lede span { display: inline-block; }

.bx-lede-sub { font-size: 15.5px; line-height: 1.85; color: #d7e9df; margin-top: -8px; text-wrap: pretty; }
.bx-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 4px; }
.bx-tile {
  display: grid; gap: 3px; align-content: start; text-align: start; min-width: 0; padding: 13px 16px 12px; border-radius: 16px;
  border: 1px solid var(--h-line); background: var(--h-card); color: inherit; transition: background 0.15s, border-color 0.15s;
}
.bx-tile:hover { background: rgba(255, 255, 255, 0.095); border-color: rgba(255, 255, 255, 0.24); }
.bx-tile:focus-visible { outline-color: var(--h-mint); }
.t-label { font-size: 12.5px; color: var(--h-muted); }
.t-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; min-height: 58px; }
.t-val { font-size: 38px; font-weight: 800; line-height: 1.15; letter-spacing: -0.5px; color: #fff; white-space: nowrap; }
.t-val em { font-style: normal; font-size: 12.5px; font-weight: 500; color: var(--h-muted); margin-inline-start: 6px; letter-spacing: 0; }
.t-val.neg { color: var(--h-rose); }
.t-val.pos { color: var(--h-mint); }
.t-side { font-size: 12px; color: var(--h-ink); line-height: 1.55; text-align: end; padding-bottom: 4px; }
.bx-tile small { font-size: 11.5px; color: var(--h-muted); line-height: 1.65; }

.gauge { width: 116px; flex: none; margin-bottom: -2px; overflow: visible; }
.g-track { fill: none; stroke: rgba(255, 255, 255, 0.12); stroke-width: 11; stroke-linecap: round; }
.g-fill { fill: none; stroke: url(#gauge-g); stroke-width: 11; stroke-linecap: round; filter: drop-shadow(0 0 5px rgba(142, 224, 181, 0.45)); }
.g-tick { stroke: var(--h-copper); stroke-width: 3.2; stroke-linecap: round; }
.pace { width: 138px; flex: none; overflow: visible; margin-bottom: 4px; }
.pc-ly { fill: none; stroke: rgba(255, 255, 255, 0.5); stroke-width: 1.6; stroke-dasharray: 4 3; }
.pc-cur { fill: none; stroke: var(--h-rose); stroke-width: 2.4; stroke-linejoin: round; }
.pc-ly-dot { fill: #fff; opacity: 0.75; }
.pc-cur-dot { fill: var(--h-rose); }
.dstrip { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 2px; margin: 6px 0 2px; }
.dstrip i { height: 12px; border-radius: 3px; background: rgba(255, 255, 255, 0.2); }
.dstrip i.off { background: var(--h-copper); }

.bx-legend { display: flex; align-items: center; gap: 6px 14px; flex-wrap: wrap; font-size: 12px; color: var(--h-muted); margin-top: auto; padding-top: 2px; }
.bx-hero .prov { color: var(--h-muted); }
.bx-hero button.prov:hover { color: #fff; }
.bx-hero .prov.obs i { background: #fff; }
.bx-hero .prov.gen i { background: linear-gradient(90deg, var(--h-copper) 50%, transparent 50%); box-shadow: inset 0 0 0 1.5px var(--h-copper); }
.bx-hero .prov.sim i { box-shadow: inset 0 0 0 1.5px var(--h-mint); }

/* ---------- اسطرلاب تقاضا ---------- */
.bx-astro { grid-area: astro; margin: 0; display: grid; justify-items: center; align-content: start; gap: 4px; min-width: 0; }
.astro-svg { width: 100%; max-width: 470px; height: auto; overflow: visible; }
.astro-svg text { direction: rtl; font-family: var(--font-ui); text-anchor: middle; }
.astro-svg .d { cursor: pointer; }
.astro-svg .d.p { opacity: 0.88; }
.astro-svg .d:hover { filter: brightness(1.4) saturate(1.1); }
.astro-svg .fz { pointer-events: none; }
.astro-svg .orbit { fill: none; stroke: rgba(255, 255, 255, 0.08); }
.astro-svg .mline { stroke: #0d3027; stroke-width: 1.4; pointer-events: none; }
.astro-svg .mline.season { stroke: rgba(255, 255, 255, 0.42); stroke-width: 1.1; }
.astro-svg .tick { stroke: rgba(255, 255, 255, 0.24); }
.astro-svg .mlab { font-size: 13px; font-weight: 600; fill: #d3e6dc; }
.astro-svg .blk { fill: none; stroke: var(--h-copper); stroke-width: 3.6; stroke-linecap: round; }
.astro-svg .hol { fill: var(--h-sand); }
.astro-svg .shock { fill: none; stroke: #ff8f7e; stroke-width: 2.6; stroke-linecap: round; }
.astro-svg .core { fill: rgba(7, 30, 24, 0.5); stroke: rgba(255, 255, 255, 0.14); }
.astro-svg .c-year { font-family: var(--font-brand); font-size: 26px; fill: #f3bd92; }
.astro-svg .c-big { font-size: 52px; font-weight: 800; fill: #fff; letter-spacing: -1px; }
.astro-svg .c-lab { font-size: 12.5px; fill: #d3e6dc; }
.astro-svg .c-sub { font-size: 12px; fill: #9dbcaf; }
.astro-svg .needle { transform-box: view-box; transform-origin: 260px 260px; transform: rotate(var(--deg)); pointer-events: none; }
.astro-svg .needle line { stroke: var(--h-copper); stroke-width: 2.4; }
.astro-svg .needle circle { fill: var(--h-copper); stroke: #fff4ea; stroke-width: 2; filter: drop-shadow(0 0 7px rgba(240, 163, 107, 0.95)); }
.bx-astro figcaption { display: grid; justify-items: center; gap: 3px; text-align: center; max-width: 430px; font-size: 12px; color: var(--h-muted); line-height: 1.8; margin-top: -2px; }
.bx-astro figcaption b { color: #fff; font-size: 14px; }
.bx-scale { display: flex; align-items: center; justify-content: center; gap: 8px 10px; flex-wrap: wrap; margin-top: 2px; }
.bx-scale em { font-style: normal; }
.bx-scale i { width: 118px; height: 8px; border-radius: 99px; }
.bx-scale .k-hol, .bx-scale .k-shock { display: inline-flex; align-items: center; gap: 5px; margin-inline-start: 6px; }
.bx-scale .k-hol::before { content: ''; width: 7px; height: 7px; border-radius: 99px; background: var(--h-sand); }
.bx-scale .k-shock::before { content: ''; width: 15px; height: 3px; border-radius: 2px; background: #ff8f7e; }

/* ---------- نبض ---------- */
.bx-pulse { grid-area: pulse; min-width: 0; margin-top: 10px; padding-top: 14px; border-top: 1px solid var(--h-line); }
.bx-pulse-head { display: flex; align-items: center; gap: 6px 18px; flex-wrap: wrap; }
.bx-pulse-head h3 { font-size: 15px; color: #fff; }
.bx-keys { display: flex; gap: 4px 14px; flex-wrap: wrap; font-size: 12px; color: var(--h-muted); margin-inline-start: auto; }
.bx-keys span { display: inline-flex; align-items: center; gap: 6px; }
.bx-keys i { display: inline-block; width: 16px; height: 3px; border-radius: 2px; }
.bx-keys .k-act { background: #fff; }
.bx-keys .k-fc { background: var(--h-mint); box-shadow: 0 0 6px var(--h-mint); }
.bx-keys .k-band { height: 10px; background: rgba(142, 224, 181, 0.3); }
.bx-keys .k-otb { width: 8px; height: 12px; background: rgba(255, 255, 255, 0.3); border-radius: 2px 2px 0 0; }
.bx-keys .k-arch { width: 16px; height: 8px; border-radius: 8px 8px 0 0; background: var(--h-copper); }
.bx-pulse svg text { font-family: var(--font-ui); }
.p-fri { fill: rgba(255, 255, 255, 0.04); }
.p-grid { stroke: rgba(255, 255, 255, 0.08); }
.p-base { stroke: rgba(255, 255, 255, 0.24); }
.p-yl { font-size: 10.5px; fill: #9dbcaf; text-anchor: end; direction: ltr; }
.p-xl { font-size: 10.5px; fill: #bcd5ca; text-anchor: middle; }
.p-otb { fill: rgba(255, 255, 255, 0.17); }
.p-band { fill: rgba(142, 224, 181, 0.16); }
.p-act { fill: none; stroke: #fff; stroke-width: 2.2; stroke-linejoin: round; stroke-linecap: round; }
.p-fc { fill: none; stroke: var(--h-mint); stroke-width: 2.6; stroke-linejoin: round; stroke-linecap: round; }
.p-arch { fill: rgba(240, 163, 107, 0.22); stroke: var(--h-copper); stroke-width: 1.4; }
.p-archl { font-size: 10.5px; font-weight: 600; fill: var(--h-sand); text-anchor: middle; }
.p-today { stroke: var(--h-copper); stroke-width: 1.5; stroke-dasharray: 3 3; }
.p-todayl { font-size: 11px; font-weight: 700; fill: var(--h-copper); text-anchor: start; }
.p-hol { fill: var(--h-sand); }
.p-holl { font-size: 10.5px; fill: var(--h-sand); text-anchor: middle; }
.p-cross { stroke: rgba(255, 255, 255, 0.38); }
.p-dot { fill: #0f3228; stroke: #fff; stroke-width: 2; }
.p-hit { cursor: pointer; }

/* ---------- حرکت ورود: یک لحظه هماهنگ ---------- */
@keyframes bxFade { from { opacity: 0; } }
@keyframes bxNeedle { from { transform: rotate(0deg); } }
@keyframes bxGauge { from { stroke-dashoffset: var(--len); } }
@keyframes bxGrow { from { width: 0; } }
.bx-hero.play .ring-prev .d { animation: bxFade 0.45s ease-out both; animation-delay: calc(var(--i) * 1.5ms); }
.bx-hero.play .ring-cur .d { animation: bxFade 0.45s ease-out both; animation-delay: calc(var(--i) * 1.6ms + 180ms); }
.bx-hero.play .marks, .bx-hero.play .shock, .bx-hero.play .fz { animation: bxFade 0.7s ease-out 0.9s both; }
.bx-hero.play .needle { animation: bxNeedle 1.6s cubic-bezier(0.22, 0.8, 0.24, 1) 0.2s both; }
.bx-hero.play .g-fill { animation: bxGauge 1.4s cubic-bezier(0.22, 0.8, 0.24, 1) 0.3s both; }
.bx-hero.play .bullet .b-fill { animation: bxGrow 1.2s cubic-bezier(0.22, 0.8, 0.24, 1) 0.3s both; }
@media (prefers-reduced-motion: reduce) { .bx-hero.play * { animation: none !important; } }

/* ---------- نوار سنجش (مقدار، هدف، دوره قبل) ---------- */
.bullet { position: relative; height: 10px; border-radius: 99px; background: var(--surface-3); margin: 9px 0 5px; }
.bullet .b-fill { position: absolute; inset-block: 0; inset-inline-start: 0; width: var(--v); border-radius: 99px; background: var(--turq); }
.bullet.short .b-fill { background: var(--brass); }
.bullet .b-target { position: absolute; top: -5px; bottom: -5px; inset-inline-start: var(--t); width: 3px; margin-inline-start: -1.5px; border-radius: 2px; background: var(--ink); }
.bullet .b-prev { position: absolute; top: 50%; inset-inline-start: var(--p); width: 9px; height: 9px; margin-top: -4.5px; margin-inline-start: -4.5px; border-radius: 99px; background: var(--surface); border: 2px solid var(--ink-2); }
.bullet.on-deep { background: rgba(255, 255, 255, 0.13); }
.bullet.on-deep .b-fill { background: linear-gradient(to left, #3dbd8c, #b8f0cf); }
.bullet.on-deep.short .b-fill { background: linear-gradient(to left, #c4733f, #f3b489); }
.bullet.on-deep .b-target { background: #fff; }
.bullet.on-deep .b-prev { background: #12392e; border-color: #fff; }

/* ---------- سه موضوع با تصویر ---------- */
.issue.has-viz { grid-template-columns: 54px minmax(0, 1fr) minmax(250px, 310px); }
.issue-viz { margin: 0; padding: 16px 18px; background: var(--surface-2); border-inline-start: 1px solid var(--line); display: grid; align-content: center; gap: 10px; min-width: 0; }
.issue-viz figcaption { font-size: 12.5px; font-weight: 700; color: var(--ink-2); }
.issue-viz small { font-size: 11.5px; color: var(--muted); line-height: 1.6; }
.bx-dvg { display: grid; gap: 12px; }
.bx-dvg-row { display: grid; grid-template-columns: 82px minmax(0, 1fr) 42px; align-items: center; gap: 8px; font-size: 12.5px; }
.bx-dvg-row b { text-align: end; font-size: 13.5px; font-weight: 800; }
.bx-dvg-row b.ok { color: var(--leaf); }
.bx-dvg-row b.bad { color: var(--pom); }
.bx-dvg-track { position: relative; height: 24px; background: linear-gradient(90deg, transparent calc(50% - 0.5px), var(--line-strong) calc(50% - 0.5px), var(--line-strong) calc(50% + 0.5px), transparent calc(50% + 0.5px)); }
.bx-dvg-track i { position: absolute; top: 3px; bottom: 3px; width: var(--w); border-radius: 5px; }
.bx-dvg-track i.pos { inset-inline-start: 50%; }
.bx-dvg-track i.neg { inset-inline-end: 50%; }
.bx-dvg-track i.ok { background: var(--leaf); }
.bx-dvg-track i.bad { background: var(--pom); }
.drift-weeks { width: 100%; height: auto; overflow: visible; }
.drift-weeks text { font-family: var(--font-ui); }
.drift-weeks rect.neg { fill: var(--pom); opacity: 0.88; }
.drift-weeks rect.pos { fill: var(--leaf); }
.drift-weeks .zero { stroke: var(--line-strong); }
.drift-weeks .avg { stroke: var(--ink); stroke-dasharray: 4 3; stroke-width: 1.3; }
.drift-weeks .avg-l { font-size: 11.5px; font-weight: 800; fill: var(--ink); }
.drift-weeks .wl { font-size: 10.5px; fill: var(--muted); }
.bstrip { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 3px; }
.bs-col { display: grid; justify-items: center; gap: 0; padding: 5px 0 2px; border-radius: 9px; border: 1.5px solid transparent; min-width: 0; }
.bs-col.in { border-color: var(--brass); background: var(--brass-tint); }
.bs-col em { font-style: normal; font-size: 11px; font-weight: 700; color: var(--ink-2); }
.bs-bar { width: 100%; height: 66px; display: flex; align-items: flex-end; justify-content: center; }
.bs-bar i { width: 60%; height: var(--h); background: var(--c); border-radius: 4px 4px 2px 2px; }
.bs-col.fut .bs-bar i { opacity: 0.62; }
.bs-col b { font-size: 11.5px; line-height: 1.6; }
.bs-col.now b { color: var(--turq); }
.bs-col small { font-size: 10.5px; color: var(--muted); line-height: 1.3; }
.bs-col u { text-decoration: none; font-size: 9.5px; font-weight: 700; min-height: 15px; line-height: 15px; }
.bs-hol { color: var(--pom); }
.bs-bridge { color: var(--brass-strong); }

/* ---------- جریان پول و تصمیم‌ها ---------- */
.bx-money { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(290px, 1fr); gap: 16px; align-items: stretch; }
.bx-decs { display: flex; flex-direction: column; }
.bx-decs > .btn { margin-top: auto; align-self: flex-start; }
.bx-money .panel-head .hint { flex-basis: 100%; order: 3; }
.sk-link { fill-opacity: 0.3; transition: fill-opacity 0.15s; }
.sk-link.hero { fill-opacity: 0.4; }
.sk-link.on { fill-opacity: 0.62; }
.sk-lab { position: absolute; transform: translateY(-50%); display: grid; line-height: 1.4; pointer-events: none; }
.sk-lab b { font-size: 12.5px; font-weight: 700; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sk-lab span { font-size: 11.5px; color: var(--muted); white-space: nowrap; }
.sk-lab.src { text-align: left; }
.sk-lab.dst { text-align: right; }
.sk-lab.hero b { color: var(--leaf); font-size: 14px; }
.sk-lab.hero span { color: var(--ink-2); font-weight: 600; }
.sk-lab.mid { transform: translate(-50%, -100%); text-align: center; }
.sk-lab.mid b { font-size: 13.5px; }
.bx-decs ul { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 16px; }
.bx-dec { display: grid; gap: 1px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.bx-dec:last-child { border-bottom: 0; padding-bottom: 0; }
.bx-dec-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.bx-dec-top b { font-size: 14.5px; }
.bx-dec-act { font-size: 12.5px; color: var(--muted); }
.bx-dec-kpi { display: flex; justify-content: space-between; gap: 4px 10px; font-size: 12.5px; margin-top: 10px; color: var(--ink-2); flex-wrap: wrap; }
.bx-dec-kpi b { font-size: 12.5px; }
.bx-dec small { color: var(--faint); font-size: 11.5px; }

/* ---------- شواهد امروز ---------- */
.kbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow); overflow: hidden; }
.kb { display: grid; gap: 1px; align-content: start; text-align: start; min-width: 0; padding: 14px 18px; border: 0; border-inline-start: 1px solid var(--line); border-top: 1px solid var(--line); background: transparent; color: var(--ink); }
.kb:nth-child(4n + 1) { border-inline-start: 0; }
.kb:nth-child(-n + 4) { border-top: 0; }
.kb:hover { background: var(--surface-2); }
.kb-label { font-size: 12.5px; color: var(--ink-2); }
.kb-val { font-size: 25px; font-weight: 700; line-height: 1.35; white-space: nowrap; letter-spacing: -0.2px; }
.kb-val small { font-size: 12.5px; font-weight: 500; color: var(--muted); margin-inline-start: 4px; }
.kb-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12px; color: var(--muted); }

/* ---------- سیگنال‌ها ---------- */
.signal { grid-template-columns: 38px minmax(0, 1fr); }
.sig-ic { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--surface-3); color: var(--ink-2); }
.signal .sig-ic svg { width: 19px; height: 19px; margin: 0; color: currentColor; }
.signal.tone-pom .sig-ic { background: var(--pom-tint); color: var(--pom); }
.signal.tone-amber .sig-ic { background: var(--amber-tint); color: var(--amber); }
.signal.tone-leaf .sig-ic { background: var(--leaf-tint); color: var(--leaf); }
.signal.tone-brass .sig-ic { background: var(--brass-tint); color: var(--brass-strong); }
.signal.tone-turq .sig-ic { background: var(--turq-tint); color: var(--turq); }

/* ---------- واکنش‌گرا ---------- */
@media (max-width: 1320px) {
  .bx-hero { grid-template-columns: minmax(0, 1fr) minmax(320px, 420px); gap: 6px 26px; padding: 26px 26px 14px; }
  .bx-lede { font-size: 24px; }
  .t-val { font-size: 32px; }
  .gauge { width: 100px; }
  .pace { width: 112px; }
}
@media (max-width: 1180px) {
  .bx-hero { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'story' 'astro' 'pulse'; }
  .bx-astro { justify-self: center; width: min(480px, 100%); margin-top: 8px; }
  .bx-money { grid-template-columns: minmax(0, 1fr); }
  .issue.has-viz { grid-template-columns: 54px minmax(0, 1fr); }
  .issue.has-viz .issue-viz { grid-column: 1 / -1; border-inline-start: 0; border-top: 1px solid var(--line); }
  .kbs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kb:nth-child(n) { border-top: 1px solid var(--line); border-inline-start: 1px solid var(--line); }
  .kb:nth-child(2n + 1) { border-inline-start: 0; }
  .kb:nth-child(-n + 2) { border-top: 0; }
}
@media (max-width: 900px) {
  .issue.has-viz { grid-template-columns: 40px minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .bx-hero { padding: 18px 16px 12px; border-radius: 18px; }
  .bx-lede { font-size: 21px; }
  .bx-tiles { grid-template-columns: minmax(0, 1fr); }
  .t-val { font-size: 32px; }
  .bx-keys { margin-inline-start: 0; }
  .kb { padding: 12px 14px; }
  .kb-val { font-size: 20px; }
  .kb-foot { flex-wrap: wrap; }
}
