/* Space and contrast for the shared readable type scale. Keep text at its
   intended size on small screens; reflow cards and scroll wide data tables. */
:root { --rail: 288px; --muted: #606975; }
body { font-size: var(--text-body); line-height: 1.6; }
.sidebar { padding-left: 18px; padding-right: 18px; }
.brand { font-size: var(--text-title); }
.brand small { font-size: .75rem; letter-spacing: 1px; color: #b0b7c0; }
.brand-mark, .brand-mark img { width: 36px; height: 36px; flex-shrink: 0; }
.sidebar .nav-label { font-size: var(--text-caption); color: #a3aab4; letter-spacing: 1px; }
.sidebar nav a { font-size: var(--text-small); min-height: 46px; padding: 10px 12px; gap: 10px; }
.nav-tag { font-size: .75rem; letter-spacing: 0; }
.sidebar-bottom > a { font-size: var(--text-small); }
.topbar { min-height: 76px; height: auto; padding-top: 14px; padding-bottom: 14px; gap: 16px; }
.topbar-right { min-width: 0; }
.breadcrumbs { min-width: 0; font-size: var(--text-small); }
.breadcrumbs span { padding: 0 7px; }
.topbar-link { flex-shrink: 0; }
main, .workspace, .panel, .panel-heading > div { min-width: 0; }
.data-intro p, .page-intro > p { font-size: var(--text-body); line-height: 1.7; }
.eyebrow { letter-spacing: 1px; }
.button, select, input:not([type=checkbox]) { min-height: 44px; }
.button { line-height: 1.45; }
.fine, .source-line, .table-heading p, .chart-axis,
.data-table th, .data-table th button, .data-table small,
.derivatives-subvalue, .asset-link small, .market-summary small,
.coin-title small, .coin-card-value small, .coin-card-ratios small,
.coin-card-secondary, .coin-card-value > span, .coin-card-ratios > div > span,
.coin-account-grid .panel > small, .footer p, .footer-links {
    color: #606975;
}
.offer-strip .fine, .offer-strip .eyebrow { color: #bfc5cf; }
/* Neutral labels on light surfaces must remain readable at caption sizes. */
#global-status, .breadcrumbs, .breadcrumbs > span,
.data-intro .eyebrow, .section-heading .eyebrow, .panel-heading .eyebrow,
.pulse-heading > span, .segmented button:not(.active),
.table-controls > .fine, .popular-coins > span,
.chart-panel .subtle, .timeframes button:not(.active), .chart-metrics span,
.trader-preview .rank, .trader-preview-row small {
    color: #606975;
}
.data-table { font-size: var(--text-body); }
.data-table th, .data-table th button { font-size: var(--text-caption); line-height: 1.6; }
.data-table .number { font-size: var(--text-body); letter-spacing: 0; }
.data-table td { padding: 20px 18px; line-height: 1.6; }
.data-table th { padding: 18px; }
.asset-link strong, .trader-select strong { font-size: var(--text-body); }
.asset-link small, .derivatives-subvalue { font-size: var(--text-caption); line-height: 1.6; margin-top: 6px; }
.asset-avatar { width: 36px; height: 36px; }
.position-bar { height: 7px; margin-top: 12px; }
.table-scroll { scrollbar-width: auto; scrollbar-color: #b6bec9 #f2f4f7; }
.table-heading, .panel-heading, .section-heading, .table-bottom { flex-wrap: wrap; }
.table-heading h2 { line-height: 1.35; }
.table-bottom, .explorer-pagination { row-gap: 16px; }
.chart-axis { font-size: var(--text-caption); gap: 14px; flex-wrap: wrap; line-height: 1.6; }
.chart-wrap, .liquidation-chart-panel .chart-wrap { min-height: 240px; height: 260px; }
.chart-wrap svg, .trader-chart-panel .chart-wrap svg { display: block; width: 100%; height: 100%; }
.chart-toolbar, .derivatives-legend, .liquidation-legend { flex-wrap: wrap; }
.derivatives-chart-toolbar select { min-width: 0; }
.market-summary small { line-height: 1.7; }
.market-pulse { grid-template-columns: repeat(auto-fit,minmax(min(100%,280px),1fr)); }
.pulse-heading { flex-wrap: wrap; }
.pulse-list { min-block-size: 8rem; }
.pulse-row { gap: 12px; }
.coin-directory { grid-template-columns: repeat(auto-fit,minmax(min(100%,290px),1fr)); }
.coin-card-top { flex-wrap: wrap; }
.coin-card-ratios strong, .coin-card-secondary, .coin-account-grid .panel > div { flex-wrap: wrap; }
.coin-breadcrumbs, .coin-stream-heading { flex-wrap: wrap; }
.coin-card-links a { font-size: var(--text-small); line-height: 1.5; }
.coin-tools { grid-template-columns: repeat(auto-fit,minmax(min(100%,290px),1fr)); }
.coin-tools strong { flex-wrap: wrap; gap: 8px; }
.catalog-toolbar form { flex-wrap: wrap; }
.catalog-toolbar label { min-width: 0; }
.catalog-toolbar input, .catalog-toolbar select { max-width: 100%; }
.liquidation-toolbar, .liquidation-source-heading, .pressure-heading { flex-wrap: wrap; }
.liquidation-source > div { flex-wrap: wrap; }
.liquidation-filters input { width: 180px; }
.liquidation-tape-clock { white-space: normal; }
.liquidation-sources { grid-template-columns: repeat(auto-fit,minmax(min(100%,290px),1fr)); }
.pressure-summary { grid-template-columns: repeat(3,minmax(0,1fr)); }
.pressure-summary strong { overflow-wrap: anywhere; }
.offers-page .offer-account { padding: 26px 22px; }
.offers-page .offer-card-rules { font-variant-numeric: tabular-nums; }
.offers-page .offer-card-rules > div { gap: 16px; padding-top: 7px; padding-bottom: 7px; }

@media (max-width:1450px) {
    .offers-page .offer-accounts { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .pressure-workspace { grid-template-columns: minmax(0,1fr); }
}
@media (max-width:1100px) {
    :root { --rail: 0px; }
    .sidebar { width: 288px; max-width: calc(100vw - 24px); transform: translateX(-100%); transition: transform .2s; box-shadow: 10px 0 30px #0002; }
    .sidebar.open { transform: translateX(0); }
    .mobile-menu { display: flex; background: none; border: 0; padding: 8px; margin-right: 0; flex-shrink: 0; }
    .topbar-status { display: none; }
    .topbar { padding-left: 18px; padding-right: 18px; }
    .breadcrumbs { margin-right: auto; }
    .data-chart-grid { grid-template-columns: minmax(0,1fr); }
    .planner-layout { grid-template-columns: minmax(0,1fr); }
    .planner-results { display: flex; flex-direction: column; gap: 20px; }
    .planner-results .result-primary { margin-bottom: 0; }
}
@media (max-width:760px) {
    .topbar { gap: 8px; padding-left: 12px; padding-right: 12px; }
    .breadcrumbs { font-size: var(--text-caption); }
    .breadcrumbs span { padding: 0 4px; }
    .topbar-link { font-size: var(--text-caption); padding: 8px; }
    main { padding-left: 16px; padding-right: 16px; }
    .data-intro h1, .coin-intro h1 { font-size: var(--text-stat); letter-spacing: -.8px; overflow-wrap: anywhere; }
    .data-tabs { gap: 24px; }
    .data-tabs a { font-size: var(--text-small); }
    .chart-wrap, .liquidation-chart-panel .chart-wrap { min-height: 240px; height: 240px; }
    .table-bottom { flex-direction: column; align-items: flex-start; }
    .chart-metrics { flex-wrap: wrap; gap: 18px; }
    .pulse-list { grid-template-columns: minmax(0,1fr); gap: 0; min-block-size: 10rem; }
    .pulse-row { flex-direction: row; align-items: center; padding: 12px 0; border-bottom: 1px solid #eee; }
    .pulse-asset .asset-avatar { width: 28px; height: 28px; }
    .offer-strip { grid-template-columns: minmax(0,1fr); }
    .offer-strip .button { grid-column: 1; white-space: normal; }
    .offer-logo { display: none; }
    .offers-page .offer-accounts { grid-template-columns: minmax(0,1fr); }
    .offers-page .offer-account { padding: 26px 22px; }
    .liquidation-filters select, .liquidation-filters input { font-size: var(--text-small); width: 100%; }
    .liquidation-actions { width: 100%; }
    .liquidation-actions .button { flex: 1 1 auto; }
    .liquidation-coverage summary, .explorer-coverage summary { flex-wrap: wrap; }
    .pressure-summary { grid-template-columns: minmax(0,1fr); }
    .pressure-summary > div { border-left: 0; border-top: 1px solid #eee; padding: 16px 0; }
    .pressure-summary > div:first-child { border-top: 0; }
    .form-grid input, .form-grid select { font-size: var(--text-body); }
}
@media (max-width:540px) {
    .topbar .breadcrumbs { flex: 1; line-height: 1.45; }
    .topbar .breadcrumbs > span { display: none; }
    .topbar .breadcrumbs strong { display: block; }
    .topbar-link { max-width: 110px; text-align: center; }
    .market-summary { grid-template-columns: minmax(0,1fr); }
    .market-summary section { border-right: 0; border-bottom: 1px solid #e8e8e8; padding: 22px; }
    .market-summary section:last-child { border-bottom: 0; }
    .market-summary strong { font-size: var(--text-stat); }
    .coin-account-grid .panel > div { gap: 18px; }
    .coin-account-grid .panel > div > strong { font-size: var(--text-section); }
    .coin-account-grid .panel > div > strong small { font-size: var(--text-caption); }
    .chart-axis span:nth-child(2) { display: none; }
    .form-grid { grid-template-columns: minmax(0,1fr); }
    .liquidation-filters { grid-template-columns: minmax(0,1fr); }
    .trader-controls label { width: 100%; }
}
