/* Market research desk. Shared composition, not another per-page theme.
   Colors inherit the existing theme/contrast/region settings contract. */
:root {
  --workspace-gap: 24px;
  --workspace-reading: 72ch;
  --rail-w: 208px;
  --maxw-data: 1600px;
  --maxw-data-wide: 1800px;
  --fs-title-page: 30px;
}
.tl-page { background-image: none; }
html[data-theme="light"] .tier-admin, html[data-theme="light"] .tl-nav-auth .admin-btn { color:var(--blue-bright); }
html[data-theme="light"] .page-nix .rchip-as { color:var(--green); }
html[data-theme="light"] .page-nix .g-AAA { color:var(--gold); }
.tl-page main { min-width: 0; }
/* Keep the footer below the initial viewport while asynchronous market/account data loads. */
:is(.page-database,.page-deals,.page-dashboard) main { min-height: 100vh; min-height: 100svh; }
.tl-page h1 { letter-spacing: -.025em; text-wrap: balance; }
.tl-page :is(.page-titlebar,.pg-head,.ah,.sup-hero,.st-hero) { padding-top: 26px; margin-bottom: 22px; }
.tl-page :is(.page-titlebar,.pg-head,.ah,.sup-hero,.st-hero) h1 { font-size: var(--fs-title-page); line-height: 1.15; }
.tl-page :is(.page-titlebar,.pg-head,.ah,.sup-hero,.st-hero) p { max-width: var(--workspace-reading); }
.tl-page :is(.section-card,.table-wrap,.me-card) { box-shadow: none; background-image: none; }
.tl-page :is(table,.num,.price-card-value) { font-variant-numeric: tabular-nums; }
.tl-page table th { font-family: var(--font-body); letter-spacing: 0; }
.tl-page :is(input,select,textarea) { caret-color: var(--accent); }
.tl-page :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.tl-page ::selection { background: var(--accent); color: var(--accent-contrast); }
.tl-page a { text-underline-offset: .2em; }
.tl-nav .tl-nav-group-title { letter-spacing: 0; text-transform: none; }

/* Discovery: leave the width to the market, disclose the filtering tools. */
.page-database .db-explorer { display: block; }
.page-database .db-filter-toggle { display: inline-flex; width: auto; padding-inline: 14px; }
.page-database .db-filter-toggle span:not(.vs-n) { display: inline; }
.page-database .db-filter-dock { display: none; }
.page-database.db-filters-open .db-filter-dock { display: grid; }
.page-database .db-filter-kicker { display: none; }
.page-database .db-table-wrap { max-height: calc(100dvh - 300px); min-height: 240px; }
.page-database .db-table td { padding-block: 10px; }
@media (min-width: 881px) {
  .page-database .db-filter-dock { position: static; grid-template-columns: minmax(0,1fr) minmax(0,1fr); max-height: none; margin-bottom: 18px; border-top-width: 1px; }
  .page-database .db-filter-head { grid-column: 1 / -1; padding-bottom: 8px; }
  .page-database .db-filter-dock .toolbar-actions { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .page-database .db-filter-dock .db-axes { padding: 0; border: 0; grid-template-columns: repeat(2,minmax(0,1fr)); align-content: start; }
  .page-database .db-filter-close { display: inline-grid; place-items: center; width: 32px; height: 32px; color: var(--content-secondary); background: var(--surface-input); border: 1px solid var(--border-default); border-radius: var(--r-sm); }
  .page-database .db-filter-close svg { width: 18px; }
}

/* Deals: explicit drill-down, never sacrifice 306px of every result row. */
.page-deals .deals-workspace { display: flex; flex-direction: column; gap: 14px; }
.page-deals .deals-workspace > * { width: 100%; min-width: 0; }
.workspace-deal-brief { border: 1px solid var(--border-default); border-radius: var(--r-md); background: var(--surface-card); }
.workspace-deal-brief > summary { cursor: pointer; padding: 14px 16px; color: var(--content-secondary); font-size: 13px; }
.page-deals .deal-inspector { display: grid; position: static; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; border: 0; border-radius: 0; background: transparent; padding: 16px; }
.page-deals .deal-inspector > * { grid-column: auto; grid-row: auto; }
.page-deals .deal-inspector-kicker { display: none; }
.page-deals .deal-inspector-profit { background: transparent; border: 0; padding: 0; }
.page-deals .deal-inspector-breakdown { grid-column: 3; grid-row: 1 / span 2; }
.page-deals .deal-inspector-actions { grid-column: 1 / 3; display: flex; }

/* Item analysis: current state and history share one decision surface. */
.workspace-item-overview { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 20px; align-items: stretch; margin-bottom: 24px; }
.workspace-item-overview > .price-rail { grid-column: 2; grid-row: 1; margin: 0; }
.workspace-item-overview > .item-chart-card { grid-column: 1; grid-row: 1; margin: 0; min-width: 0; }
.workspace-item-overview .price-cards { display: grid; grid-template-columns: 1fr; gap: 0; }
.workspace-item-overview .price-card { padding: 16px 0; border: 0; border-bottom: 1px solid var(--border-subtle); border-radius: 0; background: transparent; }
.workspace-item-overview .price-card:last-child { border-bottom: 0; }
.workspace-item-overview .price-card:not([data-market-rank])::after,
.workspace-item-overview .price-card[data-market-rank=""]::after { display: none; }
.workspace-item-overview .price-rail-head { display: block; }
.workspace-item-overview .price-rail-head .section-sub { display: block; margin-top: 6px; }
.workspace-item-overview .market-verdict { grid-template-columns: minmax(0,1fr); }
.workspace-item-overview .market-verdict > div { border-left: 0; border-top: 1px solid var(--border-subtle); }
.workspace-item-overview .market-verdict > div:first-child { border-top: 0; }

/* Personal dashboard: activity first, supporting collections second. */
.page-dashboard #paneOverview #mePanels { grid-template-columns: minmax(0,1.4fr) minmax(280px,1fr); gap: 20px; }
.page-dashboard #paneOverview #mePanels > .me-col { display: contents; }
.page-dashboard #meCaught { grid-column: 1; grid-row: 1; }
.page-dashboard #meNearCard { grid-column: 2; grid-row: 1; }
.page-dashboard #meRecentCard { grid-column: 1; }
.page-dashboard #meFavCard { grid-column: 2; }
.page-dashboard #meHead h1 { font-size: var(--fs-title-page); }

/* Landing: product evidence accompanies the promise in the first viewport. */
.page-home .lp-hero { padding-top: 38px; }
.page-home .lp-hero-top { display: grid; grid-template-columns: minmax(0,1fr) minmax(360px,1fr) !important; gap: 36px; align-items: center; text-align: left; }
.page-home .lp-hero-top > .lp-hero-copy { max-width: none; margin: 0; text-align: left; }
.page-home .lp-h1::after { display: none; }
.page-home .lp-proof-title { max-width: none; }
.page-home #lpAlertProof .lp-proof-embed { padding: 18px; }
.page-home .lp-discord-window #lpAlertProof { padding: 18px; }
.page-home .lp-proof-actions p { font-size: 12px; line-height: 1.5; }
.page-deals.deals-guest .workspace-deal-brief { display: none; }
.set-category-nav { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; padding: 0 22px 16px; border-bottom: 1px solid var(--border-default); flex-shrink: 0; }
.set-category-nav button { min-height: 38px; padding: 7px 5px; background: var(--surface-input); border: 1px solid var(--border-default); border-radius: var(--r-sm); font: 600 12px var(--font-body); color: var(--content-secondary); cursor: pointer; }
.set-category-nav button[aria-pressed="true"] { color: var(--accent); background: var(--accent-soft); border-color: var(--accent-border); }
/* The drawer's display:flex overrides the UA [hidden] rule; closed controls must leave the tab order. */
.set-drawer[hidden] { display: none; }
.page-home .lp-h1 { font-size: clamp(38px,4vw,62px) !important; line-height: 1.04; max-width: 12ch; margin-inline: 0; letter-spacing: -.03em; }
.page-home .lp-lede { font-size: 17px; line-height: 1.6; max-width: 44ch; margin-inline: 0; }
.page-home .lp-cta { justify-content: flex-start; gap: 10px; }
.page-home .lp-hero-assurance { text-align: left; }
.page-home .lp-hero-top .lp-proof-section { display: block; margin: 0; padding: 0; border: 0; min-width: 0; }
.page-home .lp-proof-title { font-size: 20px; }
.page-home .lp-proof-sub { font-size: 12px; line-height: 1.5; }
.page-home .lp-proof-intro { margin-bottom: 14px; }
.page-home .lp-discord-proof { width: 100%; }
.page-home main > .lp-pulse { display: grid; grid-template-columns: minmax(220px,1fr) minmax(0,1.5fr); gap: 24px; margin: 30px 0 0; padding: 20px 0; border-width: 1px 0; border-radius: 0; box-shadow: none; background: transparent; }
.page-home main > .lp-pulse #lpPulseRows { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.page-home main > .lp-pulse .lp-pulse-live { display: none; }

/* Pricing: real tiers and the real price precede the supporting evidence. */
.workspace-pricing-head { padding: 32px 0 24px; }
.workspace-pricing-head h1 { font-size: clamp(30px,3.2vw,44px); margin: 0 0 12px; }
.workspace-pricing-head p { max-width: 65ch; color: var(--content-secondary); line-height: 1.65; }
.page-pricing #plans { margin-top: 0; padding-top: 0; }
.page-pricing .uh {
  max-width: 1040px;
  margin-inline: auto;
  padding: 40px clamp(20px, 5vw, 56px) 48px;
  border-top: 1px solid var(--border-default);
}
.page-pricing .uh-title { font-size: 32px; max-width: 24ch; margin-inline: auto; text-align: center; }
.page-pricing .uh-sub { max-width: 65ch; margin-inline: auto; text-align: center; }

@media (max-width: 1100px) {
  .workspace-item-overview { grid-template-columns: minmax(0,1fr) 240px; gap: 14px; }
  .page-home .lp-hero-top { grid-template-columns: 1fr !important; gap: 26px; }
  .page-home .lp-h1 { max-width: 18ch; }
  .page-home .lp-lede { max-width: 60ch; }
}
@media (max-width: 880px) {
  :root { --workspace-gap: 16px; --fs-title-page: 26px; }
  html:not(.rail-open) .tl-nav { transform: translateX(-100%); visibility: hidden; }
  html.rail-open .tl-nav { transform: translateX(0); visibility: visible; }
  .page-database .db-table-wrap { max-height: none; }
  .page-deals .deal-inspector { grid-template-columns: 1fr 1fr; }
  .page-deals .deal-inspector-breakdown { grid-column: 1 / -1; grid-row: auto; }
  .workspace-item-overview { display: flex; flex-direction: column; }
  .workspace-item-overview .price-cards { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .workspace-item-overview .price-card { border-bottom: 0; padding: 12px 8px; }
  .page-dashboard #paneOverview #mePanels { display: flex; flex-direction: column; }
  .page-home main > .lp-pulse { grid-template-columns: 1fr; gap: 12px; }
}
@media (max-width: 520px) {
  .page-home .lp-hero { padding-top: 24px; }
  .page-home .lp-h1 { font-size: 38px !important; max-width: 14ch; }
  .page-home .lp-lede { font-size: 15px; }
  .page-home .lp-proof-sub { max-width: 46ch; }
  .page-home main > .lp-pulse #lpPulseRows { gap: 8px; }
  .workspace-item-overview .price-cards { grid-template-columns: 1fr; }
  .workspace-item-overview .price-card { padding: 12px 0; gap: 6px 12px; border-bottom: 1px solid var(--border-subtle); }
  .workspace-item-overview .price-card::after { grid-row: 2; }
  .page-deals .deal-inspector { grid-template-columns: 1fr; }
  .page-deals .deal-inspector-actions,.page-deals .deal-inspector-breakdown { grid-column: auto; }
  .workspace-pricing-head { padding-top: 24px; }
}
/* The shared 42px data-header height must not constrain a complete plan description. */
.page-pricing .ladder th { height: auto; }

/* Foreground follows the Premium surface in both supported themes. */
:root { --on-premium: #160c2d; }
html[data-theme="light"] { --on-premium: #ffffff; }
/* Small figures sit on tinted floor/selection backgrounds, not plain white. */
html[data-theme="light"] .book-rung.is-floor :is(.bprice, .bpos) { color: var(--gold-hover); }
html[data-theme="light"]:not([data-colorblind="1"]) .route-glyph .rg-jp { color: #076858; }
.page-pricing #ctaBannerBtn,
.page-pricing #ctaBannerBtn:hover {
  background: var(--premium); border-color: var(--premium); color: var(--on-premium);
}

/* The first guide step uses the same legible accent foreground as primary actions. */
.page-guide .flip-step:first-child .flip-num { color: var(--accent-contrast); }

/* Premium remains available in navigation; a floating duplicate obscures market rows. */
body.has-mobile-nav .tl-up-chip { display: none; }
.page-database .db-trade-region { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 12px; border-bottom: 1px solid var(--border-subtle); color: var(--content-secondary); font-size: 13px; }
.page-database .db-trade-region .db-treg { flex: 0 0 auto; border-radius: var(--r-sm); }
.page-database .db-trade-region .db-treg-btn { flex: 0 0 44px; min-width: 44px; min-height: 44px; font-size: 12px; }

@media (max-width: 880px) {
  .page-database .db-treg {
    flex-wrap: nowrap; justify-content: center;
  }
  .page-database .db-treg-btn {
    min-width: 44px; min-height: 44px; padding: 4px; font-size: 11px;
  }
  .page-potentials :is(#viewRail button, .pot-regseg button),
  .page-alert-feed .view-strip > a { min-height: 44px; min-width: 44px; }
  .page-potentials .pl-star,
  .page-potentials .pl-act .row-bell {
    width: 44px; min-width: 44px; height: 44px; flex: 0 0 44px;
  }
  .page-potentials .pot-grid.one-region { --act-w: 100px; }
}
@media (max-width: 760px) {
  .page-pricing .ladder thead th { display: block; min-width: 0; }
  .page-pricing .ladder thead th.lh-blank { display: none; }
  .page-pricing .lh-in { height: auto; min-height: 100%; }
}
@media (prefers-reduced-motion: reduce) { .tl-page * { scroll-behavior: auto; } }

/* Shared finish: product actions and plan information use the same semantic palette. */
.page-pricing .btn-plan-mid,
.page-admin .btn-primary {
  background: var(--accent); border-color: var(--accent); color: var(--accent-contrast);
  box-shadow: none;
}
.page-pricing .btn-plan-mid:hover,
.page-admin .btn-primary:hover {
  background: var(--accent-hover); border-color: var(--accent-hover);
  color: var(--accent-contrast); box-shadow: none; transform: none;
}
.page-pricing .lh-tag.prem {
  background: var(--premium-soft); border-color: var(--premium);
  color: var(--premium);
}
/* A plan limitation is not an error. Keep actual failures/destructive actions red. */
.page-pricing .ladder td.is-down .v { color: var(--content-secondary); }

/* Legal pages share one reading measure and start at the same height. */
.ux-section-nav { display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 16px 0; margin-bottom: 32px; border-block: 1px solid var(--border-subtle); }
.ux-section-nav a { display: inline-flex; align-items: center; min-height: 44px; color: var(--content-secondary); text-underline-offset: 4px; }
.ux-section-nav a:hover { color: var(--accent); }
.acad-section h2[id] { scroll-margin-top: 96px; }
.sup-figs > summary { cursor: pointer; min-height: 44px; line-height: 1.6; }
.sup-figs[open] > summary { margin-bottom: 16px; }
.sup-figs:not([open]) { padding-bottom: 12px; margin-bottom: 16px; }
.tl-page .legal-shell { padding-top: 32px; }
.tl-page .legal-hero {
  max-width: 760px; margin: 0 auto 24px; padding: 0;
}
.tl-page .legal-hero .section-header { margin: 0; padding: 0; }
.tl-page .legal-hero h1 { margin-bottom: 8px; }
.tl-page .legal-body { margin-inline: auto; }

/* Historical alert examples have extra time/region cells absent from live region columns. */
.page-alert-feed #guestShowcase .b-row {
  grid-template-columns: 48px 48px 32px minmax(0, 1fr) auto;
  gap: 12px; align-items: center; padding: 14px 16px;
}
.page-alert-feed #guestShowcase .b-l2 { padding-right: 0; justify-content: flex-start; }
.page-alert-feed #guestShowcase .b-name { font-size: 13px; white-space: normal; }
.page-alert-feed #guestShowcase .b-num { flex-wrap: wrap; justify-content: flex-end; }

/* Do not let a secondary performance suggestion cover the consent choice. */
body:has(#ckBanner.is-in) .perf-hint { visibility: hidden; pointer-events: none; }

/* Navigation stays below dialog backdrops; it must never cover form footer controls. */
.tl-mobile-nav { z-index: 90; }
/* Percentages exclude the reserved scrollbar gutter; 100vw did not. */
.set-drawer { max-width: 100%; }

/* A permission prompt should explain the next action, not occupy a second hero. */
.page-potentials .pot-gate { padding: 24px; margin-top: 20px; text-align: left; }
.page-potentials .pot-gate p { max-width: 76ch; margin: 0 0 18px; }
.page-potentials .pot-gate .gate-btns { justify-content: flex-start; }
.page-potentials #guestPreview .pl-state { padding: 24px; text-align: left; }
.page-potentials #guestPreview .pl-state p { margin: 0; }
.page-item .stats-range-empty { padding: 20px; color: var(--content-secondary); white-space: normal; line-height: 1.6; }
/* Missing history is a compact state, not a blank chart. Keep the price rail and
   independently loaded supply / completed-trade sections available. */
.page-item #content > .item-chart-card .chart-frame:has(#chartEmpty:not(.hidden)) { height: auto; min-height: 0; }
.page-item #content .chart-frame #chartEmpty { min-height: 0; padding: 24px; text-align: left; }
.page-item #chartEmpty .state-icon { display: none; }
.page-item #chartEmpty .state-msg { max-width: 65ch; margin: 0; line-height: 1.6; }
.workspace-item-overview:has(#chartEmpty:not(.hidden)) { align-items: start; }

/* Rewards navigation is a compact selector, not eight full-width primary actions. */
.page-admin #rwNav {
  display: flex; flex-wrap: wrap; gap: 6px; min-width: 0;
}
.page-admin #rwNav .btn {
  width: auto; flex: 0 1 auto; white-space: normal;
  background: var(--surface-input); color: var(--content-secondary);
  border-color: var(--border-default);
}
.page-admin #rwNav .btn-primary {
  background: var(--accent-soft); border-color: var(--accent-border); color: var(--accent);
}
@media (max-width: 880px) {
  .page-admin :is(.adm-range button, #adRefresh, .adm-status, #adAttn) { min-height: 44px; }
  .page-admin #rwNav .btn { min-height: 44px; }
  .set-category-nav button { min-height: 44px; }
}
@media (max-width: 560px) {
  .tl-page .legal-shell { padding-top: 24px; }
  .page-alert-feed #guestShowcase .b-row {
    grid-template-columns: 32px minmax(0, 1fr) auto; gap: 6px 10px; padding: 12px;
  }
  .page-alert-feed #guestShowcase .b-ico { grid-column: 1; grid-row: 1 / 3; }
  .page-alert-feed #guestShowcase .b-main { grid-column: 2 / 4; grid-row: 1; }
  .page-alert-feed #guestShowcase .b-rg { grid-column: 2; grid-row: 2; }
  .page-alert-feed #guestShowcase .b-time { grid-column: 3; grid-row: 2; text-align: right; }
  .page-alert-feed #guestShowcase .b-num { grid-column: 2 / 4; grid-row: 3; justify-content: flex-start; }
}
.alert-review { margin-top:20px; padding-top:16px; border-top:1px solid var(--border); }
.alert-review h3 { margin:0 0 8px; font-size:15px; }
.alert-review p { margin:0; color:var(--text-2); line-height:1.6; }
.market-language { margin:12px 0 20px; color:var(--text-2); font-size:14px; line-height:1.6; }
.market-language summary { cursor:pointer; min-height:44px; padding:10px 0; }
.market-language dl { max-width:72ch; margin:8px 0; }
.market-language dt { color:var(--text); font-weight:600; margin-top:12px; }
.market-language dd { margin:2px 0 0; }
.gaps-rows .pd-card, .gaps-rows .pd-lhead { grid-template-columns:28px 32px minmax(0,1fr) minmax(100px,auto); }
.gaps-rows .pd-lhead .h-reg, .gaps-rows .pd-lhead .h-pct { display:none; }
.gaps-rows .pd-lhead { grid-template-areas:". . pot net"; }
.gaps-rows .pd-lhead > span:nth-child(1), .gaps-rows .pd-lhead > span:nth-child(2) { display:none; }
.gaps-rows .h-pot { grid-area:pot; }
.gaps-rows .h-net { grid-area:net; }
.gaps-rows .pd-card { grid-template-areas:"star icon body net" ". . detail detail"; }
.gaps-rows .pd-card > .fav-star { grid-area:star; }
.gaps-rows .pd-card > .pd-icon, .gaps-rows .pd-card > .pd-icon-ph { grid-area:icon; }
.gaps-rows .pd-body { grid-area:body; }
.gaps-rows .pd-net { grid-area:net; }
.gaps-rows .pd-calculation { grid-area:detail; }
.pd-route-summary { color:var(--text-2); font-size:12px; font-variant-numeric:tabular-nums; margin:6px 0 0; }
.pd-calculation { grid-column:3 / -1; min-width:0; color:var(--text-2); font-size:13px; }
.pd-calculation summary { cursor:pointer; min-height:44px; padding:12px 0; }
.pd-calculation p { max-width:72ch; white-space:normal; line-height:1.6; }
.pd-calculation .pd-slots { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:700px) { .pd-calculation { grid-column:1 / -1; } .gaps-rows .pd-card, .gaps-rows .pd-lhead { grid-template-columns:24px 28px minmax(0,1fr) 88px; } }
@container pdg (max-width:540px) { .gaps-rows .pd-card { grid-template-areas:"star icon body body" ". . . net" "detail detail detail detail"; } }
