/* Shared research controls. Keep layout fixes scoped; never conceal page overflow. */
#main-content details > summary {
  box-sizing: border-box;
  cursor: pointer;
  display: block;
  list-style: none;
  min-height: 48px;
  padding: 12px 16px 12px 44px;
  position: relative;
  width: auto;
  max-width: 100%;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

#main-content details > summary::-webkit-details-marker { display: none; }
#main-content details > summary::marker { content: ""; }
#main-content details > summary::after { content: none; }
#main-content details > summary::before {
  border: solid currentColor;
  border-width: 0 1.5px 1.5px 0;
  content: "";
  height: 7px;
  left: 18px;
  position: absolute;
  top: 20px;
  transform: rotate(-45deg);
  width: 7px;
}
#main-content details[open] > summary::before { transform: rotate(45deg); top: 18px; }
#main-content details > summary:focus-visible {
  outline: 2px solid var(--pi-blue-600);
  outline-offset: 2px;
  border-radius: 4px;
}
#main-content details > summary:hover { background-color: var(--pi-surface-muted); }
.pi-parameter-universe__summary-action i { display: none; }
.pi-selection-review summary { border: 1px solid var(--pi-rule); border-radius: 6px; }
.pi-selection-review[open] summary { border-radius: 6px 6px 0 0; }
.pi-selection-review__list { margin-top: 0; border-top: 0; border-radius: 0 0 6px 6px; }

.pi-builder-summary.pi-panel { display: block; padding: 0; }
.pi-builder-summary summary h2 { display: inline; font-size: 1rem; margin: 0; }
.pi-builder-summary__content { padding: 0 16px 16px; }
.pi-builder-summary__content .pi-builder-summary__note { margin: 16px 0 0; padding-top: 12px; }
.pi-builder-summary__content .pi-evidence-ledger { grid-template-columns: minmax(0, 1fr); }
.pi-builder-summary__content .pi-evidence-ledger > div { padding: 10px 0; }
.pi-quote-facts-review { grid-column: 1 / -1; min-width: 0; border-top: 1px solid var(--pi-rule); }
.pi-quote-facts-review .pi-quote-facts { margin: 0; border-top: 0; }
.pi-quote-facts-review summary { font-size: .875rem; font-weight: 600; }

/* The record table keeps its semantics and its desktop columns. */
.pi-breakout-history { max-width: 1200px; }
.pi-breakout-history .pi-record-table { width: 100%; }
.pi-record-table__name a { font-weight: 600; }
.pi-record-table td { overflow-wrap: anywhere; }

@media (max-width: 767.98px) {
  .pi-page--builder { padding-top: 24px; }
  .pi-builder-header { margin-bottom: 20px; }
  .pi-builder-header h1 { font-size: clamp(1.5rem, 5.8vw, 2rem); line-height: 1.2; }
  .pi-builder-header__intro { margin-bottom: 0; }
  .pi-builder { gap: 16px; }
  .pi-builder-summary__content .pi-evidence-ledger--compact > div { border-left: 0; }
  .pi-builder-step { box-shadow: none; }
  .pi-builder-step .pi-benchmark-picker {
    background: transparent;
    border: 0;
    border-top: 1px solid var(--pi-rule);
    border-radius: 0;
    box-shadow: none;
    margin: 24px 0;
    padding: 24px 0 0;
  }
  .pi-builder-step .pi-benchmark-picker__header { gap: 12px; }
  .pi-benchmark-picker__input { font-size: 16px; min-height: 48px; }
  .pi-selection { margin: 16px 0; padding: 16px 0; }
  .pi-selection-review { margin-top: 12px; }
  .pi-selection__preview { overflow-wrap: anywhere; }
  .pi-builder-step .pi-ma-crossover { padding: 20px 0; border-width: 1px 0 0; border-radius: 0; }
  .pi-ma-bulk { margin: 16px 0; border: 0; border-radius: 6px; padding: 16px; }
  .pi-ma-rule-row { border: 0; border-top: 1px solid var(--pi-rule); padding: 16px 0; gap: 12px; }
  .pi-ma-rule-row > [role="cell"]::before { font-family: var(--pi-font-ui); font-size: .8125rem; letter-spacing: 0; text-transform: none; }
  .pi-ma-rule-row__instrument strong { display: block; margin-bottom: 4px; }
  .pi-ma-rule-row .form-control, .pi-ma-bulk .form-control { min-height: 48px; font-size: 16px; }
  .pi-builder-step .pi-universe-actions { grid-template-columns: minmax(0, 1fr) 48px; gap: 12px; }
  .pi-builder-step #portfolio-actions-button { min-width: 48px; min-height: 48px; }
  .pi-builder-step .pi-universe-actions__choices .pi-button { width: 100%; white-space: normal; text-align: left; justify-content: flex-start; }
  .pi-builder-step input[type="submit"], .pi-builder-step button[type="submit"] { width: 100%; min-height: 48px; }
  .pi-builder-step .pi-advanced-settings__content { padding: 16px; }
  .pi-builder-step .form-group { margin-bottom: 20px; }
  .pi-custom-strategy .pit-universe, .pi-ai-builder .pit-universe { padding: 16px; }

  .pi-instrument-picker__header { padding: 12px 16px; gap: 8px; align-items: flex-start; }
  .pi-instrument-picker__header .modal-title { font-size: 1.25rem; line-height: 1.25; }
  .pi-instrument-picker__intro { font-size: .875rem; margin: 6px 0 0; }
  .pi-instrument-picker__close { flex: 0 0 44px; min-width: 44px; min-height: 44px; margin: 0; }
  .pi-instrument-picker__body { padding: 16px; min-height: 0; }
  .pi-instrument-picker__footer { padding: 10px 16px; gap: 8px; }
  .pi-instrument-picker__feedback { width: 100%; }
  .pi-instrument-picker__selection { margin: 0; font-family: var(--pi-font-ui); letter-spacing: 0; text-transform: none; }
  .pi-instrument-picker__save-status:empty { display: none; }
  .pi-instrument-picker__actions { display: flex; justify-content: flex-end; width: 100%; gap: 8px; }
  .pi-instrument-search__field input { font-size: 16px; }
  #stock_list .modal-dialog { margin: 8px; min-height: calc(100% - 16px); }
  #stock_list .pi-instrument-picker { max-height: calc(100dvh - 16px); }

  /* Names/status lead, comparable metrics share a row, metadata stays readable. */
  .pi-page--results .pi-management-table tbody tr.pi-linked-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 16px;
    padding: 16px;
    box-shadow: none;
  }
  .pi-page--results .pi-management-table tbody td {
    min-width: 0;
    grid-column: 1 / -1;
    padding: 8px 0;
    grid-template-columns: minmax(65px, .35fr) minmax(0, 1fr);
    gap: 8px;
    font-size: .875rem;
  }
  .pi-page--results .pi-management-table tbody .pi-table-cell--name {
    display: block; order: -3; padding-top: 0; border-bottom: 0; font-size: 1rem;
  }
  .pi-page--results .pi-management-table .pi-table-cell--name::before { content: none; }
  .pi-page--results .pi-management-table tbody .pi-table-cell--status { order: -2; display: block; border-bottom: 0; }
  .pi-page--results .pi-management-table .pi-table-cell--status::before { content: none; }
  .pi-page--results .pi-management-table tbody .pi-table-cell--metric {
    order: -1; grid-column: auto; grid-template-columns: minmax(0, 1fr); gap: 4px;
    border-top: 1px solid var(--pi-rule); font-family: var(--pi-font-data); font-size: 1.05rem; padding: 12px 0;
  }
  .pi-page--results .pi-management-table td::before { text-transform: none; letter-spacing: 0; font-family: var(--pi-font-ui); font-size: .8125rem; }
  .pi-backtest-activity { gap: 12px; margin: 16px 0; }
  .pi-backtest-activity__item { padding: 16px; box-shadow: none; }
  .pi-backtest-activity__item .pi-eyebrow { margin-bottom: 6px; }
  .pi-backtest-activity__item h3 { margin-bottom: 6px; }
  .pi-backtest-activity__item p:not(.pi-eyebrow) { margin-bottom: 8px; }
  .pi-backtest-activity__link { margin-top: 0; min-height: 44px; display: inline-flex; align-items: center; }
  .pi-backtest-activity__item--idle { border: 0; border-left: 3px solid var(--pi-rule); border-radius: 0; background: transparent; padding: 8px 12px; }
  .pi-backtest-activity__item--idle::before { content: none; }
  .pi-backtest-activity__item--idle h3 { font-size: .875rem; margin: 0; }
  .pi-backtest-activity__item--idle .pi-eyebrow { font-size: .6875rem; }
  .pi-management-list > .pi-toolbar { gap: 12px; padding: 0; margin: 16px 0; }
  .pi-management-list > .pi-toolbar .pi-toolbar__field { padding: 0; }
  #main-content button[aria-label="Edit backtest name"] { min-width: 44px; min-height: 44px; }

  .pi-record-table, .pi-record-table tbody { display: block; }
  .pi-record-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .pi-record-table tbody tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; padding: 16px; margin-bottom: 12px; border: 1px solid var(--pi-rule); border-radius: 8px; background: var(--pi-paper); }
  .pi-record-table tbody td { min-width: 0; border: 0; padding: 8px 0; }
  .pi-record-table td::before { display: block; content: attr(data-title); font-size: .8125rem; color: var(--pi-ink-650); margin-bottom: 4px; }
  .pi-record-table .pi-record-table__name { grid-column: 1 / -1; font-size: 1.125rem; padding-top: 0; }
  .pi-record-table .pi-record-table__name::before { content: none; }
  .pi-record-table .pi-record-table__status { grid-column: 1 / -1; }
  .pi-breakout-history .pi-toolbar { padding: 0; margin: 20px 0; }

  /* All editor contexts use the same targets; CKEditor owns overflow grouping. */
  #main-content .ck.ck-button { min-width: 44px; min-height: 44px; }
  #main-content .ck.ck-toolbar_grouping > .ck-toolbar__items { flex-wrap: nowrap !important; }
  #main-content .ck-dropdown__panel .ck-toolbar > .ck-toolbar__items { flex-wrap: wrap !important; }
  #main-content .ck.ck-toolbar .ck-toolbar__separator { margin: 4px; }
  #main-content .ck.ck-editor { min-width: 0; max-width: 100%; }
  #main-content .ck.ck-editor__editable { font-size: 16px; overflow-wrap: anywhere; }

  .pi-quote-rail { padding: 16px; gap: 16px; }
  .pi-quote-rail__title { font-size: 1.5rem; }
  .pi-quote-rail__action { padding-top: 12px; }
  .pi-instrument-page .pi-instrument-workspace { margin-top: 20px; }
  #main-content .pi-tutorial-hero h1, #main-content .pi-forum-article h1 { font-size: clamp(1.75rem, 7vw, 2.25rem); line-height: 1.2; }
  #main-content .pi-tutorial-hero { padding-top: 28px; padding-bottom: 28px; }
}

@media (max-width: 399.98px) {
  .pi-ma-rule-row, .pi-ma-shared { grid-template-columns: minmax(0, 1fr); }
  .pi-ma-rule-row > [role="cell"] { grid-column: 1; }
  .pi-builder-step .pi-ma-bulk { padding: 12px; }
}

@media (max-width: 575.98px) {
  .pi-builder-step { padding: 20px 16px !important; }
  .pi-builder-step .pi-benchmark-picker { padding: 20px 0 0; }
  .pi-builder-step .pi-ma-crossover { padding-left: 0; padding-right: 0; }
  .pi-quote-facts-review .pi-quote-facts { padding: 8px 0 0; }
}
