.shell { width: min(1500px, calc(100% - 40px)); margin-inline: auto; }
.app-header { position: sticky; top: 0; z-index: 40; border-bottom: 1px solid var(--border); background: rgba(7, 11, 20, .94); backdrop-filter: blur(18px); }
.header-row { min-height: 72px; display: grid; grid-template-columns: minmax(180px, 1fr) minmax(0, auto) minmax(120px, 1fr); align-items: center; gap: var(--space-5); }
.brand { display: inline-flex; align-items: center; gap: var(--space-3); justify-self: start; }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--blue); border-radius: var(--radius-sm); color: var(--blue); font-family: var(--font-mono); font-weight: 850; }
.brand strong, .brand small { display: block; }
.brand small { margin-top: 1px; font-size: .72rem; }
.main-nav { display: flex; align-items: center; gap: var(--space-2); }
.main-nav a { min-height: 40px; display: inline-flex; align-items: center; padding: 0 var(--space-3); border-radius: var(--radius-sm); color: var(--text-secondary); }
.main-nav a:hover, .main-nav a[aria-current="page"] { background: var(--surface-2); color: var(--text-primary); }
.header-actions { justify-self: end; display: flex; align-items: center; gap: var(--space-3); }
.refresh-button { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--border); border-radius: var(--radius-sm); background: transparent; color: var(--text-secondary); cursor: pointer; font-size: 1.15rem; }
.refresh-button:hover { color: var(--blue); border-color: var(--blue); }
.page-main { min-height: calc(100vh - 180px); padding-block: var(--space-8) var(--space-12); }
.app-footer { margin-top: var(--space-12); border-top: 1px solid var(--border); color: var(--text-muted); }
.footer-row { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); font-size: .75rem; }

.page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-6); margin-bottom: var(--space-6); }
.page-header p:last-child { margin-top: var(--space-2); color: var(--text-secondary); }
.page-header-actions { display: flex; align-items: center; gap: var(--space-3); }
.page-count { padding: var(--space-2) var(--space-3); border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text-secondary); }
.section-block { margin-top: var(--space-8); }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-4); }

.hero-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(320px, .8fr); gap: var(--space-4); }
.decision-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(310px, .75fr); gap: var(--space-4); margin-top: var(--space-4); align-items: stretch; }
.decision-grid > div { min-width: 0; }
.decision-grid .trade-plan-side { height: 100%; }
.trade-plan-side { padding: var(--space-6); }
.engine-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); }
.portfolio-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-4); }
.home-bottom-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, .65fr); gap: var(--space-4); }
.diagnosis-answers { display: grid; gap: var(--space-3); }
.diagnosis-answer { padding: var(--space-3) 0; border-bottom: 1px solid var(--border); }
.diagnosis-answer span { display: block; color: var(--text-secondary); font-size: .72rem; text-transform: uppercase; }
.diagnosis-answer strong { display: block; margin-top: 3px; }

.metric-strip { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin-bottom: var(--space-4); border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface-1); overflow: hidden; }
.metric-strip > div { padding: var(--space-4); border-right: 1px solid var(--border); }
.metric-strip > div:last-child { border-right: 0; }
.metric-strip span { display: block; color: var(--text-secondary); font-size: .68rem; text-transform: uppercase; }
.metric-strip strong { display: block; margin-top: var(--space-2); font-size: 1.35rem; }
.engine-main-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, .55fr); gap: var(--space-4); }
.engine-side { display: grid; align-content: start; gap: var(--space-4); }
.funnel { display: grid; grid-template-columns: repeat(6, 1fr); gap: var(--space-2); }
.funnel-step { position: relative; padding: var(--space-3); border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg-secondary); }
.funnel-step span { display: block; color: var(--text-secondary); font-size: .65rem; text-transform: uppercase; }
.funnel-step strong { display: block; margin-top: 4px; font-size: 1.15rem; }
.btc-context-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--space-2); margin: 0 0 var(--space-5); }
.metric-card.compact { padding: var(--space-3); }
.metric-card.compact span { font-size: .65rem; }
.metric-card.compact strong { margin-top: 4px; font-size: .92rem; }
.chart-switch-list { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-3); }
.chart-switch { min-height: 36px; padding: 0 var(--space-3); border: 1px solid var(--border); border-radius: 999px; background: var(--bg-secondary); color: var(--text-secondary); cursor: pointer; }
.chart-switch:hover, .chart-switch.is-active { border-color: var(--blue); color: var(--blue); }

.asset-header { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-4); }
.asset-meta { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); margin-top: var(--space-2); color: var(--text-secondary); }
.asset-grid { display: grid; grid-template-columns: minmax(330px, 35%) minmax(0, 65%); gap: var(--space-4); align-items: start; }
.asset-grid .chart-stage, .asset-grid .tradingview-widget-container__widget, .asset-grid .tradingview-widget-container__widget iframe, .asset-grid .chart-stage > iframe { height: 590px !important; min-height: 590px !important; }
.history-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
.history-panel { padding: var(--space-5, 20px); }
.not-found-layout { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: var(--space-4); align-items: start; }
.not-found { padding: var(--space-8); }
.not-found ul { color: var(--text-secondary); }
.asset-search { display: flex; gap: var(--space-2); margin-top: var(--space-4); }
.asset-search input { min-width: 0; flex: 1; min-height: 42px; padding: 0 var(--space-3); border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg-secondary); color: var(--text-primary); }

.watchlist-metrics, .signal-metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--space-3); margin-bottom: var(--space-4); }
.table-panel { padding: var(--space-4); }
.diagnostic-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
.health-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); }
.reason-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }

@media (max-width: 1180px) {
  .header-row { grid-template-columns: 1fr auto; }
  .main-nav { grid-column: 1 / -1; justify-content: center; order: 3; padding-bottom: var(--space-2); }
  .engine-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .health-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .filter-bar { grid-template-columns: repeat(3, 1fr); }
  .filter-bar label:first-child { grid-column: span 2; }
}

@media (max-width: 900px) {
  .shell { width: min(100% - 28px, 900px); }
  .security-items { justify-content: flex-start; }
  .hero-grid, .decision-grid, .home-bottom-grid, .engine-main-grid, .asset-grid, .not-found-layout { grid-template-columns: 1fr; }
  .metric-strip { grid-template-columns: repeat(3, 1fr); }
  .metric-strip > div:nth-child(3) { border-right: 0; }
  .asset-grid .chart-stage, .asset-grid .tradingview-widget-container__widget, .asset-grid .tradingview-widget-container__widget iframe, .asset-grid .chart-stage > iframe { height: 520px !important; min-height: 520px !important; }
  .diagnostic-grid, .history-grid { grid-template-columns: 1fr; }
  .health-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .watchlist-metrics, .signal-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  body { font-size: 14px; }
  .shell { width: min(100% - 20px, 680px); }
  .app-header { position: static; }
  .header-row { min-height: auto; grid-template-columns: 1fr auto; padding-block: var(--space-3); }
  .brand small { display: none; }
  .header-actions .sync-indicator { display: none; }
  .main-nav { justify-content: flex-start; overflow-x: auto; padding-bottom: 0; }
  .main-nav a { min-height: 44px; }
  .security-items { min-height: 44px; }
  .page-main { padding-block: var(--space-6); }
  .page-header, .asset-header { align-items: flex-start; flex-direction: column; }
  .hero-grid, .engine-grid, .portfolio-grid, .health-grid, .reason-grid { grid-template-columns: 1fr; }
  .manual-signal-card, .opportunity-card, .trade-plan-side { padding: var(--space-4); }
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chart-toolbar { align-items: flex-start; padding: var(--space-4); }
  .chart-toolbar .button-link { display: none; }
  .chart-stage, .tradingview-widget-container__widget, .tradingview-widget-container__widget iframe, .chart-stage > iframe, .asset-grid .chart-stage, .asset-grid .tradingview-widget-container__widget, .asset-grid .tradingview-widget-container__widget iframe, .asset-grid .chart-stage > iframe { height: 360px !important; min-height: 360px !important; }
  .fallback-chart, .chart-fallback, .chart-unavailable { min-height: 360px; }
  .metric-strip { grid-template-columns: repeat(2, 1fr); }
  .metric-strip > div { border-right: 1px solid var(--border) !important; }
  .metric-strip > div:nth-child(even) { border-right: 0 !important; }
  .funnel { grid-template-columns: repeat(3, 1fr); }
  .btc-context-grid { grid-template-columns: repeat(2, 1fr); }
  .watchlist-metrics, .signal-metrics { grid-template-columns: repeat(2, 1fr); }
  .filter-bar { grid-template-columns: 1fr; }
  .filter-bar label:first-child { grid-column: auto; }
  .desktop-table { display: none; }
  .mobile-list { display: grid; gap: var(--space-3); }
  .mobile-row { padding: var(--space-4); border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-1); }
  .mobile-row-head { display: flex; justify-content: space-between; gap: var(--space-3); }
  .mobile-row-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-3); margin-top: var(--space-3); }
  .mobile-row-grid span { display: block; color: var(--text-secondary); font-size: .66rem; text-transform: uppercase; }
  .mobile-row p { margin-top: var(--space-3); color: var(--text-secondary); }
  .timeline-row { grid-template-columns: 1fr 1fr; }
  .footer-row { align-items: flex-start; flex-direction: column; justify-content: center; }
}
