/* Mobile interaction layer, shared by every dashboard page. */
.trader-mobile-only, .trader-trade-cards { display: none; }
@media (max-width: 991.98px) {
  html { scroll-padding-block: 5rem; }
  body { --trader-viewport-height: 100dvh; }
  body .layout-page, body .content-wrapper, body .container-p-y { min-width: 0; }
  body .container-p-y { padding-inline: max(.75rem, env(safe-area-inset-left), env(safe-area-inset-right)) !important; }
  body .card-body, body .trade-detail-box { min-width: 0; }
  body .card-body > .d-flex, body .rank-head > .d-flex { flex-wrap: wrap; gap: .65rem; }
  body .card-body > .d-flex > *, body .row > * { min-width: 0; }
  body .btn, body .btn-sm, body .btn-icon, body summary, body .menu-link { min-height: 44px; }
  body .btn { white-space: normal; overflow-wrap: anywhere; }
  body .btn-icon { min-width: 44px; }
  body .btn-close { flex: 0 0 44px; width: 44px; height: 44px; padding: 0; margin: 0 !important; background-size: 14px; }
  body .form-control, body .form-select, body .select2-selection { font-size: 16px !important; min-height: 44px; max-width: 100%; }
  body .form-switch .form-check-input { width: 2.75rem; min-width: 2.75rem; height: 1.5rem; }
  body .form-check, body .switch { min-height: 44px; align-content: center; }
  body .switch-label { white-space: normal; }
  body .input-group { flex-wrap: wrap; }
  body .input-group > .form-control { min-width: 4rem; }
  body .btn-group { flex-wrap: wrap; gap: .25rem; }
  body .btn-group > .btn { border-radius: .375rem !important; margin: 0; }
  body .exchange-switch { display: flex; flex-wrap: wrap; width: 100%; }
  body .exchange-switch form { flex: 1 1 45%; }
  body .exchange-switch .btn { min-width: 0; width: 100%; }
  body .exchange-card-meta { flex-wrap: wrap; gap: .5rem; }
  body .exchange-key-hint { overflow-wrap: anywhere; }
  body .scanner-model-bar, body .scanner-filter-groups { grid-template-columns: minmax(0, 1fr); }
  body .scanner-model-actions { flex-wrap: wrap; }
  body .scanner-model-actions .form-select { min-width: 0; flex: 1 1 12rem; }
  body .scanner-scenario-filter { flex-wrap: wrap; }
  body .filter-chip-grid { grid-template-columns: minmax(0, 1fr) !important; }
  body .stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body .stat-value, body .badge { overflow-wrap: anywhere; white-space: normal; }
  body .table-responsive, body .operations-table-wrap, body .rank-table {
    width: 100%; max-width: 100%; margin-inline: 0; padding-inline: 0;
    overflow-x: auto; overscroll-behavior-x: contain; touch-action: pan-x pan-y;
  }
  .trader-scroll-hint { color: var(--bs-secondary-color); font-size: .8rem; margin: .5rem 0; }
  body .modal, body #scannerPairChartModal, body #scannerInvestmentSimulatorModal { padding: 0 !important; }
  body .modal .modal-dialog, body #scannerPairChartModal .modal-dialog, body #scannerInvestmentSimulatorModal .modal-dialog {
    width: 100% !important; max-width: 100% !important; margin: 0 !important;
    height: var(--trader-viewport-height, 100dvh) !important; min-height: 0 !important;
  }
  body .modal .modal-content, body #scannerPairChartModal .modal-content, body #scannerInvestmentSimulatorModal .modal-content {
    display: flex; flex-direction: column; height: 100% !important; min-height: 0 !important;
    max-height: 100% !important; border-radius: 0 !important; overflow: hidden;
  }
  body .modal-header { flex: 0 0 auto; padding: max(.75rem,env(safe-area-inset-top)) .75rem .5rem !important; gap: .5rem; }
  body .modal-header > div { min-width: 0; }
  body .modal-body { flex: 1 1 auto; min-height: 0; overflow-y: auto !important; padding: .75rem !important; overscroll-behavior-y: contain; }
  body .modal-footer { flex: 0 0 auto; position: static; padding: .5rem .75rem max(.5rem,env(safe-area-inset-bottom)) !important; gap: .5rem; }
  body .modal-footer, body .modal-footer > .d-flex { display: flex !important; flex-wrap: wrap !important; }
  body .modal-footer > *, body .modal-footer > .d-flex > * { flex: 1 1 auto; width: auto !important; margin: 0 !important; }
  body .modal-footer > .d-flex { width: 100% !important; }
  body #scannerPairChartModal .modal-header { padding-right: 3.5rem !important; flex-wrap: wrap; }
  body #scannerPairChartModal .modal-header > .btn-close { right: .5rem; top: .5rem; transform: none; }
  body .chart-indicator-panel, body .chart-ema-hover-panel { max-width: calc(100vw - 2rem); max-height: calc(var(--trader-viewport-height,100dvh) - 6rem); overflow: auto; }
  body .chart-indicator-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body .chart-indicator-panel .btn { white-space: normal; min-height: 44px; }
  body .trade-replay-bar, body .scanner-replay-bar { display: flex; flex-wrap: wrap; padding: .5rem; }
  body .trade-replay-progress, body .scanner-replay-progress { flex: 1 0 100%; min-height: 32px; }
  body .trade-replay-bar .trade-replay-date, body .scanner-replay-bar .scanner-replay-date { min-width: 0; flex: 1 1 9rem; }
  body .trade-replay-strategy-grid { grid-template-columns: minmax(0,1fr); }
  body .trade-replay-simulator:not(.is-minimized) {
    position: fixed !important; inset: 0 !important; width: 100% !important;
    height: var(--trader-viewport-height,100dvh) !important; max-height: var(--trader-viewport-height,100dvh) !important;
    border-radius: 0; z-index: 21000;
  }
  body .trade-replay-simulator:not(.is-minimized) > .p-3 {
    height: 100%; max-height: 100% !important; overflow-y: auto !important;
    padding: max(.75rem,env(safe-area-inset-top)) .75rem max(1rem,env(safe-area-inset-bottom)) !important;
  }
  body .trade-replay-simulator .trade-replay-simulator-handle { touch-action: pan-y; cursor: default; flex-wrap: wrap; gap: .5rem; top: -.75rem; }
  body #tradeReplayStrategyExpander[open], body .trade-replay-simulator [data-scanner-strategy-settings][open] { max-height: none; overflow: visible; }
  body .trade-replay-simulator.is-minimized { position: fixed !important; top: auto !important; left: auto !important; right: .75rem !important; bottom: max(.75rem,env(safe-area-inset-bottom)) !important; z-index: 21000; }
  body .trade-replay-capital-dialog, body .scanner-replay-capital-dialog {
    height: var(--trader-viewport-height,100dvh) !important; align-items: center; padding: .75rem;
  }
  body .trade-replay-capital-card, body .scanner-replay-capital-card { width: 100%; max-height: calc(var(--trader-viewport-height,100dvh) - 1.5rem); overflow-y: auto; }
  body .scanner-investment-results { max-width: calc(100vw - 2rem); left: 1rem !important; right: auto !important; }
  body .swal2-popup { max-width: calc(100vw - 1.5rem); max-height: calc(var(--trader-viewport-height,100dvh) - 1.5rem); overflow-y: auto; }
  body .swal2-input { font-size: 16px; min-width: 0; max-width: 100%; }
  body .trader-mobile-only { display: flex; }
  .trader-trade-cards { gap: .75rem; }
  body .trader-trade-cards.is-active { display: grid; }
  body .operations-table-wrap.mobile-list-active { display: none; }
  .trader-trade-card { display: block; width: 100%; text-align: left; border: 1px solid var(--bs-border-color); border-radius: .75rem; padding: 1rem; background: var(--bs-paper-bg); color: var(--bs-body-color); }
  .trader-trade-card:focus-visible { outline: 3px solid var(--bs-primary); outline-offset: 2px; }
  .trader-trade-card header { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem; margin-bottom: .75rem; }
  .trader-trade-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin: 0; }
  .trader-trade-card dt { color: var(--bs-secondary-color); font-size: .75rem; font-weight: 400; }
  .trader-trade-card dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
  .trader-trade-card footer { color: var(--bs-primary); margin-top: .75rem; font-size: .8rem; }
  body .column-option { flex-wrap: wrap; padding: .65rem !important; }
  .column-move-actions { margin-left: auto; display: flex; gap: .25rem; }
  body #columnsConfigModal .modal-body > .d-flex { flex-wrap: wrap; gap: .5rem; }
}
@media (max-width: 359.98px) {
  body .kpi-grid, body .stats-grid { grid-template-columns: minmax(0,1fr) !important; }
}
@media (max-width: 991.98px) and (max-height: 500px) {
  body .modal-header small { font-size: .75rem; }
  body .modal-footer .btn { padding-block: .35rem; }
  body .modal-header h5 { margin: 0; }
}
@media (max-width: 991.98px) {
  body .chart-ema-hover-menu .chart-ema-hover-panel {
    position: fixed; left: .75rem; right: .75rem; top: var(--mobile-menu-top,5rem);
    width: auto; max-width: none; transform: none !important;
    max-height: calc(var(--trader-viewport-height,100dvh) - var(--mobile-menu-top,5rem) - .75rem);
    opacity: 0 !important; visibility: hidden !important; pointer-events: none;
  }
  body .chart-ema-hover-menu.is-mobile-open .chart-ema-hover-panel { opacity: 1 !important; visibility: visible !important; pointer-events: auto; }
}
@media (max-width: 991.98px) {
  body .trader-chart-toolbar { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; align-items: stretch !important; }
  body .trader-chart-toolbar > *, body .trader-chart-toolbar > .chart-ema-hover-menu > .btn { width: 100%; min-width: 0; margin: 0 !important; }
  body .trader-chart-toolbar .btn { overflow-wrap: normal; }
  body #tradeDetailModal .modal-header { display: grid; grid-template-columns: minmax(0,1fr) 44px; align-items: start !important; }
  body #tradeDetailModal .modal-header > div { grid-column: 1; }
  body #tradeDetailModal .modal-header > .btn-close { grid-column: 2; grid-row: 1; }
  body #tradeInvestmentBadge { grid-column: 1 / -1; margin: 0 !important; justify-self: start; }
  body #tradeModalFullscreen, body #scannerModalFullscreen { display: none !important; }
  body #scannerPairChartModal .modal-header { min-height: 0; }
  body .chart-ema-hover-menu.is-mobile-open { z-index: 500; }
  body .chart-ema-hover-menu .chart-ema-hover-panel { background: var(--bs-paper-bg,#192c42); transition: none; }
}
@media (max-width: 991.98px) {
  body input, body textarea, body select { scroll-margin-block: 6rem; }
  body .trade-replay-simulator-handle [data-replay-simulator-minimize] { width: auto !important; min-width: 7.5rem; height: 44px !important; flex-shrink: 0; gap: .35rem; border: 1px solid var(--bs-border-color); color: var(--bs-body-color); }
  body .trade-replay-simulator-handle [data-replay-simulator-reset] { display: none; }
  body .trade-replay-simulator-handle > .d-flex { flex-wrap: wrap; }
}
@media (max-width: 575.98px) {
  body .trade-replay-simulator [data-scanner-strategy-settings] .row > .col-4 { width: 100%; }
}
@media (max-width: 991.98px) {
  body .btn { overflow-wrap: normal; }
  body form.d-flex { flex-wrap: wrap; }
  body form.d-flex > .btn { flex-shrink: 0; }
  body .rank-table th:first-child, body .rank-table td:first-child {
    width: 10rem; min-width: 9rem; max-width: 10rem;
    white-space: normal !important; overflow-wrap: anywhere;
  }
  body .modal-header { position: relative; }
  body .modal-header > .btn-close { position: static; transform: none; }
  body .trade-replay-simulator-handle [data-replay-simulator-minimize] { font-size: .875rem; }
}
@media (max-width: 991.98px) {
  body #tradeChartModule:fullscreen, body #scannerPairChartModule:fullscreen { overflow-y: auto; min-height: 0; }
}
