.cash-visual-reports { margin: 22px 0; }
.cash-report-tabs { display: flex; gap: 6px; padding: 0 20px 14px; overflow-x: auto; scrollbar-width: thin; }
.cash-report-tabs > button { flex: none; padding: 8px 13px; min-height: 36px; border: 1px solid transparent; border-radius: 9px; background: #f6f8fc; color: #7b8da8; font-size: 11px; }
.cash-report-tabs > button[aria-selected=true] { color: #2864d7; background: #edf3ff; border-color: #dce8ff; font-weight: 650; }
.cash-report-pane { padding: 4px 22px 22px; border-top: 1px solid #edf1f8; }
.cash-report-intro { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 0; }
.cash-report-intro p,.cash-report-caption { font-size: 11px; color: #8b9bb0; line-height: 1.9; }
.cash-report-caption { margin: 14px 0 4px; }
.cash-report-intro select { height: 35px; border: 1px solid #e0e8f5; border-radius: 8px; background: #fff; color: #567097; padding: 5px 9px; font-size: 11px; max-width: 160px; flex: none; }
.cash-chart-legend { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; font-size: 10px; color: #8a9bb2; margin-top: 6px; }
.cash-chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.cash-chart-legend i { width: 9px; height: 9px; border-radius: 3px; display: inline-block; }
.cash-chart-legend .receive { background: #2c9b85; }
.cash-chart-legend .pay { background: #d17882; }
.cash-chart-legend .negative { background: #d66c77; }
.cash-chart-legend .low { background: #deb35d; }
.cash-chart-legend .safe { background: #84b7a6; }
.cash-chart-legend .pending { background: #e7edf8; }
.cash-chart-legend .unknown { background: #a6b2c6; }
.cash-chart-legend .realized { background: #5285dd; }
.cash-visual-scroll { width: 100%; overflow-x: auto; scrollbar-width: thin; overscroll-behavior-inline: contain; }
.cash-volume-svg { display: block; min-width: 100%; max-width: none; height: 258px; }
.cash-visual-axis { fill: #95a4bb; font: 10px Vazir,Tahoma,sans-serif; }
.cash-visual-axis-unit { font-size: 8px; }
.cash-visual-grid { stroke: #e9eef7; stroke-width: 1; }
.cash-volume-in { fill: #2d9d88; }
.cash-volume-out { fill: #d5818a; }
.cash-volume-hit { fill: transparent; stroke: none; cursor: pointer; }
.cash-volume-point.selected > .cash-volume-hit,.cash-volume-point:hover > .cash-volume-hit { fill: #edf3ff; }
.cash-volume-point:focus-visible,.cash-bridge-point:focus-visible,.cash-trend-point:focus-visible { outline: 2px solid #7ba1e9; outline-offset: 2px; }
.cash-volume-point,.cash-bridge-point,.cash-trend-point { outline: none !important; }
.cash-volume-point:focus-visible > .cash-volume-hit,.cash-bridge-point:focus-visible > .cash-volume-hit { fill: #edf3ff; stroke: #7ba1e9; stroke-width: 1; }
.cash-trend-point:focus-visible .cash-trend-dot { fill: #3972ce; stroke-width: 3; }
.cash-swipe-hint { display: flex; align-items: center; justify-content: center; gap: 5px; color: #a0aec2; font-size: 9px; margin-top: 4px; }
.cash-swipe-hint .icon { width: 13px; height: 13px; }
.cash-chart-detail { background: #f8faff; border: 1px solid #eaf0fa; border-radius: 11px; padding: 13px 15px; margin-top: 13px; }
.cash-detail-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; color: #5b749b; font-size: 11px; margin-bottom: 10px; }
.cash-detail-title > span { font-size: 10px; color: #93a2b8; }
.cash-chart-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.cash-chart-facts > div { min-width: 0; }
.cash-chart-facts span { display: block; font-size: 10px; color: #91a1b9; }
.cash-chart-facts strong { display: block; margin-top: 4px; font-size: 15px; font-weight: 650; color: #3d5e91; overflow-wrap: anywhere; }
.cash-chart-facts strong.good { color: #318b75; }
.cash-chart-facts strong.bad { color: #c36d79; }
.cash-chart-facts small { font-size: 9px; font-weight: 400; color: #9aa8bd; }
.cash-calendar-layout { display: grid; grid-template-columns: minmax(250px,1.35fr) minmax(180px,.7fr); gap: 24px; align-items: start; }
.cash-calendar-weekdays,.cash-calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 6px; text-align: center; }
.cash-calendar-weekdays { color: #91a2b9; font-size: 9px; padding-bottom: 8px; }
.cash-calendar-day { position: relative; height: 39px; border: 1px solid transparent; border-radius: 8px; font-size: 12px; color: #629b86; background: #eff7f3; }
.cash-calendar-day.low { background: #fff6e4; color: #ad873b; }
.cash-calendar-day.negative { background: #fdf0f0; color: #c56a75; }
.cash-calendar-day.outside { background: #f8f9fc; color: #c6ceda; opacity: 1; cursor: default; }
.cash-calendar-day.selected { border-color: #5f91e8; box-shadow: 0 0 0 1px #5f91e8; }
.cash-calendar-day > span { position: absolute; top: 1px; inset-inline-end: 4px; font-size: 9px; font-weight: 700; }
.cash-calendar-day > i { position: absolute; bottom: 4px; left: calc(50% - 2px); width: 4px; height: 4px; background: #d5a84e; border-radius: 50%; }
.cash-risk-summary { display: grid; gap: 9px; }
.cash-risk-summary > div { display: flex; align-items: center; gap: 12px; background: #f8faff; padding: 12px 14px; border-radius: 10px; }
.cash-risk-summary b { font-size: 23px; color: #5273a3; line-height: 1.4; }
.cash-risk-summary span { font-size: 10px; color: #8fa0b8; }
.cash-risk-summary p { color: #a2aec0; font-size: 10px; line-height: 2; }
.cash-bridge-svg { display: block; width: 100%; max-height: 260px; }
.bridge-opening { fill: #9ab6e7; }
.bridge-incoming { fill: #55ab96; }
.bridge-outgoing { fill: #d88993; }
.bridge-closing { fill: #386ac2; }
.bridge-negative { fill: #cc6d7b; }
.cash-bridge-connector { stroke: #c4d1e6; stroke-width: 1; stroke-dasharray: 4 4; }
.cash-bridge-point.selected > rect:not(.cash-volume-hit) { stroke: #264d8c; stroke-width: 2; }
.cash-bridge-labels { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); text-align: center; direction: ltr; gap: 7px; }
.cash-bridge-labels > div { direction: rtl; min-width: 0; }
.cash-bridge-labels span { display: block; color: #8d9db5; font-size: 10px; }
.cash-bridge-labels b { display: block; color: #6480a8; font-size: 11px; margin-top: 5px; overflow-wrap: anywhere; }
.cash-bridge-exact { color: #3b619a; font-size: 21px; font-weight: 650; overflow-wrap: anywhere; }
.cash-bridge-exact small { font-size: 10px; font-weight: 400; color: #98a8be; }
.cash-performance-row { border: 1px solid #e9eff8; border-radius: 12px; padding: 17px; margin-top: 14px; }
.cash-performance-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.cash-performance-title b { font-size: 12px; color: #55739d; }
.cash-performance-title > span { color: #91a3ba; font-size: 10px; }
.cash-performance-track { width: 100%; height: 12px; display: block; margin-bottom: 16px; transform: scaleX(-1); }
.performance-pending { fill: #edf1f9; }
.performance-receive,.performance-pay { fill: #5285dd; }
.performance-unknown { fill: #a6b2c6; }
.cash-performance-overdue { color: #b08c50; font-size: 10px; margin-top: 12px; }
.cash-scenario-legend { display: flex; gap: 7px; flex-wrap: wrap; padding: 0 23px 12px; }
.cash-scenario-legend > button { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; background: transparent; color: #94a3b9; border: 1px solid transparent; border-radius: 8px; font-size: 10px; }
.cash-scenario-legend > button.selected { border-color: #dce6f8; background: #f0f5ff; color: #5c78a3; }
.cash-scenario-legend i { width: 14px; height: 3px; border-radius: 2px; }
.cash-scenario-legend .icon { width: 12px; height: 12px; }
.cash-scenario-legend .scenario-expected { background: #3475df; }
.cash-scenario-legend .scenario-cautious { background: #c99943; }
.cash-scenario-legend .scenario-all { background: #31a28a; }
.cash-trend-line { fill: none; stroke-width: 1.8; stroke-dasharray: 5 5; opacity: .8; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.cash-trend-line.scenario-expected { stroke: #3475df; }
.cash-trend-line.scenario-cautious { stroke: #c99943; }
.cash-trend-line.scenario-all { stroke: #31a28a; }
.cash-trend-line.active { stroke-width: 3; stroke-dasharray: none; opacity: 1; }
.cash-chart-zero { stroke: #d8a5ac; stroke-width: 1; stroke-dasharray: 3 5; }
.cash-trend-hit { fill: transparent; stroke: none; cursor: pointer; }
.cash-trend-dot { fill: #fff; stroke: #5485d5; stroke-width: 2; vector-effect: non-scaling-stroke; pointer-events: none; }
.cash-trend-point.selected .cash-trend-dot { fill: #3972ce; }
.cash-trend-detail { margin: 0 22px 20px; }
.cash-trend-scrubber { display: flex; align-items: center; gap: 12px; margin: 0 23px 14px; font-size: 10px; color: #91a2bc; }
.cash-trend-scrubber input { flex: 1; min-width: 0; accent-color: #3972ce; direction: ltr; }
.cash-trend-scrubber output { min-width: 80px; text-align: left; }
.cash-trend-cursor { stroke: #9cb9e5; stroke-width: 1; stroke-dasharray: 3 5; vector-effect: non-scaling-stroke; pointer-events: none; }
.cash-print-title,.cash-print-month,.cash-print-context { display: none; }
@media (max-width: 800px) {
  .cash-calendar-layout { grid-template-columns: 1fr; gap: 18px; }
  .cash-risk-summary { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
  .cash-risk-summary > div { display: block; padding: 10px; }
  .cash-risk-summary span { display: block; font-size: 9px; }
  .cash-risk-summary p { grid-column: 1 / -1; }
}
@media (max-width: 650px) {
  .cash-visual-reports { margin: 18px 0; }
  .cash-visual-reports .panel-head { padding: 17px 15px 14px; align-items: start; }
  .cash-visual-reports .panel-head h2 { font-size: 13px; }
  .cash-visual-reports .panel-head p { font-size: 9px; max-width: 210px; }
  .cash-visual-reports .panel-head .btn { font-size: 10px; padding: 7px 9px; min-width: 0; }
  .cash-report-tabs { padding: 0 12px 12px; gap: 5px; }
  .cash-report-tabs > button { min-height: 42px; padding: 8px 12px; font-size: 11px; }
  .cash-report-pane { padding: 0 13px 16px; }
  .cash-report-intro { gap: 9px; padding: 13px 0; }
  .cash-report-intro p { font-size: 10px; }
  .cash-report-intro select { max-width: 140px; height: 42px; font-size: 16px; padding: 5px 7px; }
  .cash-chart-facts { gap: 7px; }
  .cash-chart-facts span { font-size: 9px; }
  .cash-chart-facts strong { font-size: 13px; }
  .cash-chart-facts small { font-size: 8px; }
  .cash-chart-detail { padding: 12px 10px; }
  .cash-detail-title { font-size: 10px; gap: 6px; }
  .cash-detail-title > span { font-size: 9px; }
  .cash-calendar-weekdays,.cash-calendar-grid { gap: 5px; }
  .cash-calendar-weekdays { font-size: 8px; }
  .cash-calendar-day { height: 40px; font-size: 12px; }
  .cash-chart-legend { gap: 11px; font-size: 9px; }
  .cash-risk-summary b { font-size: 21px; }
  .cash-bridge-labels { gap: 5px; }
  .cash-bridge-labels span { font-size: 9px; }
  .cash-bridge-labels b { font-size: 10px; }
  .cash-bridge-exact { font-size: 18px; }
  .cash-performance-row { padding: 13px 11px; }
  .cash-performance-title { flex-wrap: wrap; margin-bottom: 12px; }
  .cash-performance-title b { font-size: 11px; }
  .cash-performance-title > span { font-size: 9px; }
  .cash-scenario-legend { padding: 0 13px 8px; gap: 3px; }
  .cash-scenario-legend > button { font-size: 9px; padding: 6px; min-height: 36px; }
  .cash-trend-detail { margin: 0 13px 16px; }
  .cash-trend-scrubber { margin: 0 13px 12px; gap: 8px; flex-wrap: wrap; }
  .cash-trend-scrubber > span { flex-basis: 100%; font-size: 9px; }
  .cash-trend-scrubber input { height: 26px; }
  .cash-trend-scrubber output { font-size: 10px; }
}
@media print {
  .cash-report-tabs,.cash-report-intro select,.cash-swipe-hint,.cash-trend-scrubber { display: none !important; }
  .cash-report-pane[hidden],.cash-liquidity-month[hidden] { display: block !important; }
  .cash-report-pane { break-inside: avoid; border-top: 1px solid #ddd; padding: 16px 12px; }
  .cash-print-title { display: block; font-size: 15px; margin-bottom: 15px; }
  .cash-print-context { display: block; margin: 0 20px 12px; font-size: 11px; color: #7184a0; }
  .cash-print-month { display: block; font-size: 12px; margin: 16px 0 8px; }
  .cash-liquidity-month { break-inside: avoid; }
  .cash-visual-scroll { overflow: visible; }
  .cash-volume-svg { width: 100%; min-width: 0; max-width: 100%; height: auto; }
  .cash-calendar-layout { grid-template-columns: 1.4fr 1fr; }
  .cash-calendar-day { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .cash-scenario-legend > button { display: inline-flex; }
}
