/* Page layout and webinterface-specific compositions. Tokens only. */
.ik-page { padding-top: var(--ik-space-8); }  /* top only: the container's side padding stays */
.ik-page__head { margin-bottom: var(--ik-space-6); }
.ik-page__head .ik-title-rule { margin-bottom: var(--ik-space-6); }

.ik-banner { padding: var(--ik-space-2) var(--ik-space-8); font-size: var(--ik-text-sm); background: var(--ik-warning-bg); color: var(--ik-pill-warn-ink); border-bottom: 1px solid var(--ik-pill-warn-line); }

.ik-messages { list-style: none; margin: 0 0 var(--ik-space-6); padding: 0; }
.ik-messages li { margin-bottom: var(--ik-space-2); }

.ik-auth { max-width: 28rem; margin: var(--ik-space-16) auto; }
.ik-auth .ik-card__body > p { margin-top: 0; }

.ik-definition { counter-reset: stage; margin: 0; padding: 0; list-style: none; }
.ik-definition > li { position: relative; padding: var(--ik-space-3) 0 var(--ik-space-3) var(--ik-space-10); border-bottom: var(--ik-border-soft); }
.ik-definition > li:last-child { border-bottom: 0; }
.ik-definition > li::before { counter-increment: stage; content: counter(stage); position: absolute; left: 0; top: var(--ik-space-3); font-family: var(--ik-font-serif); font-size: var(--ik-text-xl); color: var(--ik-gold-ink); line-height: var(--ik-leading-tight); }
.ik-definition__label { font-weight: var(--ik-weight-semibold); color: var(--ik-navy); }
.ik-definition__prose { margin: var(--ik-space-1) 0; max-width: var(--ik-measure); }
.ik-fields { font-size: var(--ik-text-xs); color: var(--ik-gray); }
.ik-fields code { font-family: var(--ik-font-mono); font-size: var(--ik-text-xs); background: var(--ik-row); padding: 0 var(--ik-space-1); border-radius: var(--ik-radius-sm); color: var(--ik-ink); }

.ik-strategy-grid { display: grid; gap: var(--ik-space-5); grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 900px) { .ik-strategy-grid { grid-template-columns: 1fr; } }

.ik-kv { display: grid; grid-template-columns: max-content 1fr; gap: var(--ik-space-1) var(--ik-space-4); margin: 0; font-size: var(--ik-text-sm); }
.ik-kv dt { color: var(--ik-gray); }
.ik-kv dd { margin: 0; font-variant-numeric: tabular-nums; min-width: 0; overflow-wrap: anywhere; }

.ik-overrides { margin-top: var(--ik-space-4); padding-top: var(--ik-space-4); border-top: var(--ik-border-soft); }
.ik-overrides[hidden] { display: none; }
.ik-overrides fieldset { border: 0; margin: 0 0 var(--ik-space-4); padding: 0; }
.ik-overrides legend { font-weight: var(--ik-weight-semibold); color: var(--ik-navy); margin-bottom: var(--ik-space-2); padding: 0; }
.ik-param-grid { display: grid; gap: var(--ik-space-3) var(--ik-space-5); grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); }

.ik-chart { width: 100%; height: 26rem; }
.ik-chart--sm { height: 18rem; }
.ik-chart--empty { height: auto; color: var(--ik-ink-muted); font-size: var(--ik-text-sm); }

.ik-downloads { display: flex; gap: var(--ik-space-2); flex-wrap: wrap; }
.ik-inline-form { display: inline; margin: 0; }

.ik-status-dot { display: inline-block; width: 0.5rem; height: 0.5rem; border-radius: var(--ik-radius-pill); background: var(--ik-gray-soft); margin-right: var(--ik-space-2); }
.ik-status-dot--ok { background: var(--ik-success); }
.ik-status-dot--bad { background: var(--ik-danger); }
.ik-status-dot--warn { background: var(--ik-gold); }

.ik-mono { font-family: var(--ik-font-mono); font-size: var(--ik-text-xs); overflow-wrap: anywhere; }
.ik-muted { color: var(--ik-ink-muted); }
.ik-nowrap { white-space: nowrap; }
.ik-mt-0 { margin-top: 0; }
.ik-mt-4 { margin-top: var(--ik-space-4); }
.ik-mt-8 { margin-top: var(--ik-space-8); }
.ik-positive { color: var(--ik-success); }
.ik-negative { color: var(--ik-danger); }

details.ik-details > summary { cursor: pointer; color: var(--ik-navy); font-weight: var(--ik-weight-semibold); font-size: var(--ik-text-sm); padding: var(--ik-space-2) 0; }
pre.ik-pre { white-space: pre-wrap; font-family: var(--ik-font-mono); font-size: var(--ik-text-xs); background: var(--ik-row); padding: var(--ik-space-3); border-radius: var(--ik-radius-sm); max-height: 24rem; overflow: auto; }
/* multi-select lists (exchanges, ~100 sectors): full row, columns, long lists scroll in a box */
.ik-param-grid .ik-field--wide { grid-column: 1 / -1; }
.ik-checks > div { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: var(--ik-space-1) var(--ik-space-4); max-height: 16rem; overflow-y: auto; padding: var(--ik-space-2); border: var(--ik-border-soft); border-radius: var(--ik-radius-md); background: var(--ik-surface); }
.ik-checks label { display: flex; align-items: flex-start; gap: var(--ik-space-2); font-size: var(--ik-text-sm); line-height: var(--ik-leading-snug); }
.ik-checks input[type="checkbox"] { flex: none; margin: 0.1rem 0 0; }
.ik-param-grid .ik-field { min-width: 0; }

/* Generated result tables (candidates, trades, stages, legacy result lists): one line per row,
   long lists scroll inside their own box with the column heads kept in view. */
.ik-table--data td { white-space: nowrap; }
.ik-table-wrap--scroll { max-height: 38rem; overflow: auto; border-bottom: var(--ik-border); }
.ik-table-wrap--scroll thead th { position: sticky; top: 0; z-index: 1; }
details.ik-details--section { margin-top: var(--ik-space-6); }
details.ik-details--section > summary { font-size: var(--ik-heading-sub); }
@media (max-width: 600px) {
  .ik-banner { padding: var(--ik-space-2) var(--ik-space-4); }
  .ik-kv { grid-template-columns: 1fr; }
  .ik-kv dd { margin-bottom: var(--ik-space-2); }
}

/* Admin-Center user list (accounts/templates/accounts/admin_center.html) */
.ik-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.ik-users td { white-space: nowrap; }
.ik-users th, .ik-users td { position: relative; }  /* keeps the visually hidden labels inside the scroll box */
.ik-users__role { display: flex; align-items: center; gap: var(--ik-space-2); margin: 0; }
.ik-users__role .ik-select { width: auto; min-height: 2rem; padding-top: var(--ik-space-1); padding-bottom: var(--ik-space-1); }
.ik-users__action { text-align: right; }
@media (max-width: 600px) {
  /* phone: one block per user, the column name in front of each value */
  .ik-users thead { display: none; }
  .ik-users, .ik-users tbody, .ik-users tr, .ik-users td { display: block; width: 100%; }
  .ik-users tbody tr { padding: var(--ik-space-3) var(--ik-space-4); border-bottom: var(--ik-border-soft); }
  .ik-users tbody td { display: flex; align-items: center; gap: var(--ik-space-3); height: auto; min-height: 1.75rem; padding: var(--ik-space-1) 0; border-bottom: 0; white-space: normal; overflow-wrap: anywhere; }
  .ik-users tbody td.ik-num { text-align: left; }
  .ik-users tbody td::before { content: attr(data-label); flex: none; width: 6.5rem; font-size: var(--ik-text-xs); color: var(--ik-gray); }
  .ik-users__action { justify-content: flex-start; }
  .ik-users__action:empty { display: none; }
}
