.market-main { max-width: 1180px; margin: 0 auto; padding: 30px 4px 48px; }
.market-brand-link { color: inherit; text-decoration: none; }
.market-topbar { flex-wrap: wrap; }
.market-nav { margin-right: auto; margin-left: 20px; }
.market-nav__link { color: var(--gside-text); font-size: 13px; font-weight: 650; text-decoration: none; }
.market-page-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 0 0 24px; }
.market-page-heading h1 { margin: 0; font-size: 32px; font-weight: 680; letter-spacing: -.035em; line-height: 1.2; }
.market-page-heading p { font-size: 14px; line-height: 1.5; }
.market-company-name { display: block; margin-top: 8px; color: var(--gside-muted); font-size: 16px; font-weight: 450; letter-spacing: 0; }
.market-muted, .market-caption { color: var(--gside-muted); }
.market-caption { font-size: 12px; line-height: 1.65; }
.market-panel { margin-bottom: 18px; overflow: hidden; border: 1px solid var(--gside-border); border-radius: 12px; background: var(--gside-surface); }
.market-panel h2 { margin: 0; font-size: 15px; font-weight: 650; letter-spacing: -.01em; }
.market-panel--padded, .market-search-panel { padding: 22px; }
.market-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; border-bottom: 1px solid var(--gside-border); }
.market-panel-heading p { margin: 5px 0 0; color: var(--gside-muted); font-size: 12px; line-height: 1.5; }
.market-panel-footer { padding: 12px 22px; margin: 0; color: var(--gside-muted); font-size: 12px; border-top: 1px solid var(--gside-border); }
.market-search-form { display: flex; align-items: end; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.market-field { display: grid; gap: 7px; min-width: 170px; }
.market-field--grow { flex: 1 1 280px; }
.market-label { font-size: 12px; font-weight: 650; }
.market-input { width: 100%; min-height: 42px; padding: 10px 12px; color: var(--gside-text); background: var(--gside-surface); border: 1px solid var(--gside-border-strong); border-radius: 7px; font: inherit; font-size: 14px; }
.market-input:focus { outline: 3px solid var(--gside-focus); border-color: var(--gside-accent); }
.market-search-options { flex-basis: 100%; display: flex; align-items: center; flex-wrap: wrap; gap: 7px; font-size: 12px; color: var(--gside-muted); }
.market-search-options input { accent-color: var(--gside-accent); }
.market-search-options [role="status"] { margin-left: auto; }
.market-button { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 10px 14px; border: 1px solid var(--gside-border-strong); border-radius: 7px; background: var(--gside-surface); color: var(--gside-text); font: inherit; font-size: 12px; font-weight: 650; cursor: pointer; text-decoration: none; white-space: nowrap; }
.market-button:hover { background: var(--gside-surface-subtle); }
.market-button--primary { border-color: var(--gside-accent); background: var(--gside-accent); color: #fff; }
.market-button--primary:hover { background: var(--gside-accent-dark); }
.market-button--small { min-height: 32px; padding: 7px 10px; }
.market-button:disabled { cursor: not-allowed; opacity: .5; }
.market-button:focus-visible, .market-text-link:focus-visible, .market-range:focus-visible, .market-chart svg:focus-visible { outline: 3px solid var(--gside-focus); outline-offset: 3px; }
.market-text-link { color: var(--gside-accent-dark); text-decoration: none; font-size: 12px; font-weight: 650; }
.market-text-link:hover { text-decoration: underline; }
.market-back { display: inline-block; margin-bottom: 24px; }
.market-table-wrap { width: 100%; overflow-x: auto; }
.market-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 13px; }
.market-table th, .market-table td { padding: 13px 20px; border-bottom: 1px solid #edf1f4; vertical-align: middle; }
.market-table th { background: #fafbfc; color: var(--gside-muted); font-size: 10px; font-weight: 650; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.market-table tbody tr:last-child td { border-bottom: 0; }
.market-table tbody tr:hover { background: #fafcfd; }
.market-table .numeric { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.market-symbol { font-size: 13px; font-weight: 700; letter-spacing: .015em; white-space: nowrap; }
.market-badge { display: inline-flex; align-items: center; padding: 5px 8px; border: 1px solid var(--gside-border); border-radius: 6px; background: #f9fafb; color: var(--gside-muted); font-size: 11px; line-height: 1.3; }
.market-badge--completed { color: var(--gside-success); background: var(--gside-success-soft); border-color: #cce8d9; }
.market-badge--running { color: #0d7089; background: #ecf9fc; border-color: #b9e2ed; }
.market-badge--failed, .market-badge--blocked { color: var(--gside-danger); background: var(--gside-danger-soft); border-color: #f0c7c2; }
.market-badge--waiting { color: #885c0b; background: #fff9eb; border-color: #eedcb2; }
.market-notice { padding: 13px 16px; margin: 0 0 18px; border: 1px solid #b9e2ed; border-radius: 8px; background: #eef9fc; color: #17556a; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.market-notice--warning { background: #fffbef; border-color: #eedcb2; color: #805b13; }
.market-notice--error { background: var(--gside-danger-soft); border-color: #f0c7c2; color: var(--gside-danger); }
.market-notice code { font-size: 12px; }
.market-empty { padding: 42px 24px; text-align: center; color: var(--gside-muted); }
.market-empty strong { display: block; color: var(--gside-text); font-size: 15px; font-weight: 650; }
.market-empty p { max-width: 510px; margin: 8px auto 0; font-size: 13px; line-height: 1.65; }
.market-empty-mark { display: block; margin-bottom: 14px; color: var(--gside-accent); font-size: 28px; }
.market-pagination { display: flex; justify-content: flex-end; align-items: center; gap: 14px; padding: 14px 20px; border-top: 1px solid var(--gside-border); }
.market-footnote { max-width: 850px; }
.market-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.market-kpi { padding: 20px; border: 1px solid var(--gside-border); border-radius: 10px; background: var(--gside-surface); }
.market-kpi > span { display: block; color: var(--gside-muted); font-size: 11px; line-height: 1.5; }
.market-kpi > strong { display: block; margin: 12px 0 8px; font-size: 26px; font-weight: 650; letter-spacing: -.035em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.market-kpi > strong small { font-size: 11px; color: var(--gside-muted); font-weight: 500; letter-spacing: 0; }
.market-kpi > .market-kpi__compact { font-size: 19px; padding-top: 5px; }
.market-kpi > p { margin: 0; color: var(--gside-muted); font-size: 11px; line-height: 1.6; }
.market-positive { color: var(--gside-success); }
.market-negative { color: var(--gside-danger); }
.market-ranges { display: flex; flex-wrap: wrap; gap: 3px; }
.market-range { padding: 7px 9px; border-radius: 6px; color: var(--gside-muted); font-size: 11px; font-weight: 650; text-decoration: none; }
.market-range:hover { background: var(--gside-surface-subtle); }
.market-range.is-active { color: #0c647b; background: #eaf6f9; }
.market-chart { padding: 20px 22px 16px; }
.market-chart-summary { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; min-height: 42px; color: var(--gside-muted); font-size: 11px; }
.market-chart-summary strong { color: var(--gside-text); font-weight: 600; }
.market-chart-summary output { color: var(--gside-text); font-variant-numeric: tabular-nums; }
.market-chart svg { display: block; width: 100%; height: auto; overflow: visible; cursor: crosshair; }
.market-chart-grid { fill: none; stroke: #e9eef2; stroke-width: 1; vector-effect: non-scaling-stroke; }
.market-chart-line { fill: none; stroke: var(--gside-accent); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.market-chart-dot { fill: #ff2bd6; stroke: #fff; stroke-width: 2; vector-effect: non-scaling-stroke; }
.market-chart-axis { display: flex; justify-content: space-between; gap: 8px; margin-top: 12px; color: var(--gside-muted); font-size: 10px; }
.market-details-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 18px; }
.market-description { color: var(--gside-muted); font-size: 13px; line-height: 1.75; max-height: 210px; overflow-y: auto; }
.market-facts { margin: 16px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.market-facts dt { margin: 0 0 5px; color: var(--gside-muted); font-size: 11px; }
.market-facts dd { margin: 0; color: var(--gside-text); font-size: 12px; font-weight: 600; overflow-wrap: anywhere; }
.market-import-status { padding: 18px 22px; }
.market-import-status__main { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.market-import-status__main p { margin: 6px 0 0; }
.market-eyebrow { color: var(--gside-muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 5px !important; }
.market-import-status progress { width: 100%; height: 5px; margin-top: 16px; accent-color: var(--gside-accent); }
.market-import-error { margin: 12px 0; color: var(--gside-danger); font-size: 12px; line-height: 1.6; }
.market-refresh-form { margin-top: 18px; }
.market-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
@media (max-width: 1000px) {
  .market-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-details-grid { grid-template-columns: 1fr; gap: 0; }
  .market-panel-heading { align-items: flex-start; flex-wrap: wrap; }
}
@media (max-width: 640px) {
  .market-main { padding-top: 24px; }
  .market-nav { margin: 0; }
  .market-page-heading { display: block; }
  .market-page-heading > .market-badge { margin-top: 12px; }
  .market-kpis { grid-template-columns: 1fr; }
  .market-kpi { padding: 16px; }
  .market-table th, .market-table td { padding: 12px; }
  .market-panel--padded, .market-search-panel, .market-chart, .market-import-status { padding: 16px; }
  .market-facts { gap: 12px; }
  .market-import-status__main { display: block; }
  .market-import-status__main > .market-badge { margin-top: 10px; }
  .market-chart-axis span:nth-child(2) { display: none; }
  .market-search-form > .market-button { flex: 1; }
}

/* Database-first symbol workspace. Scoped additions leave authentication styling intact. */
.market-positive { color: #047857; }
.market-negative { color: #b91c1c; }
.market-button--danger { color: #991b1b; background: #fef2f2; border-color: #fecaca; }
.market-button--danger:hover { background: #fee2e2; }
.market-table-secondary { display: block; color: var(--gside-muted); margin-top: 5px; font-size: 11px; }
.market-library-stats { display: flex; flex-wrap: wrap; gap: 24px; margin: 0 0 18px; font-size: 12px; color: var(--gside-muted); }
.market-library-stats strong { color: var(--gside-text); font-size: 16px; margin-right: 5px; }
.market-inline-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.market-inline-actions form { margin: 0; }
.market-symbol-navigation { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 24px; }
.market-inline-search { display: flex; gap: 8px; max-width: 400px; }
.market-history-filters { display: flex; gap: 12px; align-items: end; flex-wrap: wrap; padding: 16px 22px; border-bottom: 1px solid var(--gside-border); }
.market-history-filters .market-field { min-width: 110px; flex: 1; }
.market-history-filters .market-input { font-size: 12px; }
.market-price-table { font-variant-numeric: tabular-nums; min-width: 650px; }
.market-price-table td { font-size: 14px; padding-top: 15px; padding-bottom: 15px; }
.market-price-table tbody tr:nth-child(even) { background: #fbfcfd; }
.market-price-table tbody tr:hover { background: #f1f7fa; }
.market-price-table th { background: #f5f7f9; text-transform: none; letter-spacing: 0; font-size: 12px; }
.market-chart-legend { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-bottom: 20px; }
.market-legend-item { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; color: var(--gside-muted); cursor: pointer; }
.market-legend-item input { accent-color: #7c3aed; }
.market-legend-key { display: inline-block; width: 22px; height: 3px; border-radius: 3px; }
.market-legend-key--close { background: linear-gradient(90deg, #ff2bd6, #c026ff, #7c3aed); }
.market-legend-key--ma20 { background: linear-gradient(90deg, #00d4ff, #0066ff, #4f46e5); }
.market-legend-key--ema20 { background: linear-gradient(90deg, #a3ff12, #00e676, #00b8d9); }
.market-legend-key--ma50 { background: linear-gradient(90deg, #ffd600, #ff9100, #ff3d00); }
.market-legend-key--ma200 { background: linear-gradient(90deg, #8b5cf6, #7c3aed, #ec4899); }
.market-chart-series { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.market-chart-series--price { stroke-width: 3; }
.market-chart-series.is-hidden, .market-chart-dot.is-hidden { display: none; }
.market-chart-tick { fill: #64748b; font-size: 11px; font-variant-numeric: tabular-nums; }
.market-chart-crosshair { stroke: #94a3b8; stroke-width: 1; stroke-dasharray: 4 4; pointer-events: none; vector-effect: non-scaling-stroke; }
.market-audit > summary { padding: 18px 22px; cursor: pointer; font-size: 13px; font-weight: 600; }
.market-badge--review { background: #fffbeb; border-color: #fde68a; color: #92400e; }
@media (max-width: 640px) {
  .market-symbol-navigation { align-items: stretch; flex-direction: column; }
  .market-inline-search { max-width: none; }
  .market-history-filters { padding: 14px; }
  .market-history-filters .market-field { flex-basis: calc(50% - 12px); min-width: 100px; }
  .market-price-table td { font-size: 13px; }
}

/* v4: Massive current-state + Mila analytical research panels. */
.market-current-state { margin-bottom: 18px; overflow: hidden; }
.market-current-state.is-stale { border-color: #f3d4a2; }
.market-live-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--gside-border); }
.market-live-grid article { min-width: 0; padding: 17px 20px; border-right: 1px solid var(--gside-border); }
.market-live-grid article:last-child { border-right: 0; }
.market-live-grid span, .market-live-grid small { display: block; color: var(--gside-muted); font-size: 10px; line-height: 1.5; }
.market-live-grid strong { display: block; margin: 7px 0 4px; color: var(--gside-text); font-size: 18px; font-weight: 650; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.market-live-actions { padding: 0 20px 18px; }
.market-live-actions form { margin: 0; }
.market-badge--waiting { background: #fffbeb; border-color: #fde68a; color: #92400e; }

.market-analysis { margin: 18px 0; overflow: hidden; }
.market-analysis__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 20px 22px; border-bottom: 1px solid var(--gside-border); }
.market-analysis__header h2 { margin: 2px 0 6px; color: var(--gside-text); font-size: 18px; font-weight: 650; letter-spacing: -.02em; }
.market-analysis__header p { margin: 0; }
.market-analysis__status { min-width: 170px; padding: 11px 13px; border: 1px solid var(--gside-border); border-radius: 8px; background: #fafbfc; text-align: right; }
.market-analysis__status span, .market-analysis__status small { display: block; color: var(--gside-muted); font-size: 10px; line-height: 1.45; }
.market-analysis__status strong { display: block; margin: 4px 0; color: var(--gside-text); font-size: 13px; }
.market-analysis__status--above-upper-band strong { color: #047857; }
.market-analysis__status--below-lower-band strong { color: #b91c1c; }
.market-analysis-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--gside-border); }
.market-analysis-metrics--five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.market-analysis-metrics--poly { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.market-analysis-metrics article { min-width: 0; padding: 15px 18px; border-right: 1px solid var(--gside-border); }
.market-analysis-metrics article:last-child { border-right: 0; }
.market-analysis-metrics span, .market-analysis-metrics small { display: block; color: var(--gside-muted); font-size: 10px; line-height: 1.45; }
.market-analysis-metrics strong { display: block; margin: 5px 0 3px; color: var(--gside-text); font-size: 15px; font-weight: 650; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.market-analysis-metrics .is-lower strong { color: #e11d48; }
.market-analysis-metrics .is-upper strong { color: #059669; }
.market-analysis-metrics .is-fit strong { color: #2563eb; }
.market-analysis-legend { display: flex; flex-wrap: wrap; gap: 15px 22px; padding: 14px 22px 0; color: var(--gside-muted); font-size: 10px; }
.market-analysis-legend span { display: inline-flex; align-items: center; gap: 7px; }
.market-analysis-legend i { width: 22px; height: 3px; border-radius: 4px; background: #94a3b8; }
.market-analysis-legend i.is-actual { background: #ff2bd6; }
.market-analysis-legend i.is-fit { background: #0066ff; }
.market-analysis-legend i.is-lower { background: #ff1744; }
.market-analysis-legend i.is-upper { background: #00b86b; }
.market-analysis-chart { padding: 12px 22px 16px; }
.market-analysis-chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.market-analysis-line { fill: none; stroke-width: 2.25; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.market-analysis-line--actual { stroke: #ff2bd6; stroke-width: 3; }
.market-analysis-line--fit { stroke: #0066ff; stroke-width: 2.7; }
.market-analysis-line--lower { stroke: #ff1744; stroke-width: 2; }
.market-analysis-line--upper { stroke: #00b86b; stroke-width: 2; }
.market-analysis-note { padding: 0 22px 18px; margin: 0; }

.market-polynomial-form { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)) auto; gap: 12px; align-items: end; padding: 18px 22px; border-bottom: 1px solid var(--gside-border); background: #fafbfc; }
.market-polynomial-form .market-button { min-height: 38px; }
.market-polynomial-equation { margin: 18px 22px 0; padding: 12px 14px; border: 1px solid var(--gside-border); border-radius: 7px; background: #f8fafc; color: #334155; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 12px; overflow-x: auto; }
.market-polynomial-notes { padding: 0 22px 18px; }
.market-polynomial-notes p { margin: 8px 0 0; padding: 8px 10px; border-left: 3px solid #cbd5e1; background: #fafbfc; color: var(--gside-muted); font-size: 11px; line-height: 1.55; }
.market-polynomial-chart { min-height: 250px; }
.market-polynomial-chart svg:empty::after { content: "Chart unavailable"; }

@media (max-width: 1000px) {
  .market-live-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-live-grid article:nth-child(2) { border-right: 0; }
  .market-live-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--gside-border); }
  .market-analysis-metrics, .market-analysis-metrics--five, .market-analysis-metrics--poly { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-polynomial-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-polynomial-form .market-button { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .market-analysis__header { display: block; padding: 16px; }
  .market-analysis__status { margin-top: 12px; text-align: left; }
  .market-live-grid, .market-analysis-metrics, .market-analysis-metrics--five, .market-analysis-metrics--poly, .market-polynomial-form { grid-template-columns: 1fr; }
  .market-live-grid article, .market-analysis-metrics article { border-right: 0; border-bottom: 1px solid var(--gside-border); }
  .market-analysis-metrics article:last-child, .market-live-grid article:last-child { border-bottom: 0; }
  .market-polynomial-form, .market-analysis-chart, .market-analysis-legend, .market-polynomial-notes { padding-left: 16px; padding-right: 16px; }
}
