/* Keep chart density; the native picker provides a separate touch target. */
.position-detail-card label { display: block; color: #a5bbc5; font-size: 13px; letter-spacing: 0; }
#positionBandSelect {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  margin: 10px 0;
  padding: 8px;
  border: 1px solid #34566a;
  border-radius: 6px;
  background: #091721;
  color: #eaf4f8;
  font: inherit;
  font-size: 16px;
  color-scheme: dark;
}
.position-side-picker { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.position-side-picker button { min-height: 44px; padding: 8px; border: 1px solid #34566a; border-radius: 6px; background: transparent; color: #a5bbc5; font: inherit; font-size: 14px; cursor: pointer; }
.position-side-picker button[aria-pressed="true"] { color: #eef8fb; background: #17415a; border-color: #2b87b8; }
.position-side-picker button:disabled, #positionBandSelect:disabled { opacity: .5; cursor: default; }
.position-map-row.is-selected { background: rgba(255, 189, 34, .12); box-shadow: inset 0 1px #bb913c; }
.position-map-row.is-selected .position-map-price { color: #ffdc7c; }
.position-map-panel :focus-visible { outline: 2px solid #ffbd22; outline-offset: 2px; }

@media (max-width: 1366px) {
  body { -webkit-text-size-adjust: 100%; }
  main { padding: max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left)); }
  h1 { font-size: 32px; letter-spacing: 0; overflow-wrap: anywhere; }
  h2 { font-size: 22px; letter-spacing: 0; }
  .direction-card h2 { font-size: 26px; }
  header, .section-head { flex-wrap: wrap; gap: 12px; }
  #status { flex: 0 0 auto; margin-bottom: 16px; }
  main > *, .expectancy-body > *, .validation-body > *, .split > *, .direction-overview { min-width: 0; }
  .verdict-headline strong { font-size: 28px; letter-spacing: 0; }
  .position-map-summary strong { font-size: 22px; letter-spacing: 0; }
  .position-map-summary .position-current-card strong { font-size: 28px; }
  .position-map-summary span, .position-market-panels span { font-size: 12px; letter-spacing: 0; }
  .position-market-panels { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .position-map-disclaimer, .position-source-card p, .position-controls small, .position-detail-card dl { font-size: 13px; line-height: 1.6; }
  .position-asset-tabs button, .position-controls button, .position-map-mode button { min-height: 44px; min-width: 44px; font-size: 14px; }
  .position-controls > div { flex-wrap: wrap; }
  .position-map-headings, .position-quadrants, .position-map-chart, .position-map-axis-labels { min-width: 0; }
  .position-map-headings, .position-quadrants, .position-map-row { grid-template-columns: minmax(0, 1fr) 80px minmax(0, 1fr); }
  .position-map-price.is-tick { font-size: 12px; }
  .position-map-axis-labels { font-size: 11px; height: auto; min-height: 30px; gap: 12px; padding: 8px; }
  .position-map-axis-labels > span { min-width: 0; }
  .position-source-card > div { flex-wrap: wrap; gap: 8px; }
  .position-map-empty { max-width: 100%; padding: 16px; line-height: 1.6; }
  .table-wrap { max-width: 100%; overscroll-behavior-x: contain; }
  th, td { padding: 14px 12px; font-size: 14px; }
  .table-wrap th:first-child, .table-wrap td:first-child { position: sticky; left: 0; background: #101b24; z-index: 1; }
  dl { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  dt, dd, .readiness-panel p, .direction-detail-card { overflow-wrap: anywhere; }
  .readiness-panel summary { min-height: 44px; padding-block: 12px; }
  button, a, summary { touch-action: manipulation; }
  input, select, textarea { max-width: 100%; font-size: 16px; }
}

@media (max-width: 1099px) {
  .position-map-body { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .position-map-main { border-right: 0; }
  .position-map-side { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid #1c3442; }
  .position-detail-card { grid-column: 1 / -1; grid-row: 1; }
  .position-source-card, .position-detail-card, .position-controls { min-width: 0; border-right: 0; border-bottom: 1px solid #1c3442; }
  .expectancy-body, .validation-body { grid-template-columns: minmax(0, 1fr); }
  .direction-summary-grid, .spot-metrics, .research-summary-grid, .accuracy-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  main { padding-inline: max(12px, env(safe-area-inset-left)) max(12px, env(safe-area-inset-right)); }
  h1 { font-size: 26px; }
  .verdict-panel, .split { grid-template-columns: minmax(0, 1fr); }
  .grid, .expectancy-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .position-map-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .position-map-summary .position-current-card { grid-column: 1 / -1; grid-row: 1; }
  .position-asset-tabs { display: flex; overflow-x: auto; gap: 8px; }
  .position-asset-tabs button { flex: 0 0 auto; min-width: 88px; padding: 8px 12px; }
  .position-quadrants small { display: none; }
  .position-quadrants > span { padding-inline: 8px; }
  .position-market-panels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .readiness-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 479px) {
  .position-map-side, .readiness-checks, .direction-summary-grid, .research-summary-grid { grid-template-columns: minmax(0, 1fr); }
  .position-map-toolbar h2 { font-size: 20px; }
  .position-map-toolbar { padding-inline: 12px; }
  .position-map-headings small { display: none; }
}

@media (pointer: coarse) {
  .position-asset-tabs button, .position-controls button, .position-map-mode button { min-height: 44px; }
  .position-tooltip { display: none; }
}
