/* Research workspace: independent density, neutral palette, native theme. */
#priceForecast {--fc-bg:#fff;--fc-soft:#f5f6f8;--fc-ink:#16191c;--fc-muted:#646b75;--fc-line:#e1e5e9;--fc-inverse:#fff;color:var(--fc-ink);background:transparent;min-width:0;padding:8px 0 28px;font-size:13px;}
#priceForecast *,#priceForecast *::before,#priceForecast *::after {box-sizing:border-box;}
#priceForecast[hidden],#priceForecast [hidden] {display:none!important;}
#priceForecast h2 {font-size:clamp(25px,2.2vw,34px);letter-spacing:-.04em;line-height:1.25;margin:7px 0 10px;}
#priceForecast h3 {font-size:18px;line-height:1.4;margin:0;}
#priceForecast h4 {font-size:15px;line-height:1.4;margin:0;}
#priceForecast p {font-size:12px;line-height:1.7;color:var(--fc-muted);margin:7px 0;}
#priceForecast button,#priceForecast select,#priceForecast input {font:600 12px/1.4 'JetBrains Mono',monospace;color:var(--fc-ink);background:var(--fc-bg);border:1px solid var(--fc-line);border-radius:8px;min-height:40px;padding:9px 12px;}
#priceForecast button {cursor:pointer;}
#priceForecast button:hover {border-color:var(--fc-ink);}
#priceForecast button:disabled {opacity:.45;cursor:default;}
#priceForecast :is(button,input,select,summary):focus-visible {outline:2px solid var(--fc-ink);outline-offset:3px;}
#priceForecast .forecast-search-card,#priceForecast .forecast-summary-card {min-width:0;padding:20px;border:1px solid var(--fc-line);border-radius:12px;background:var(--fc-bg);margin:0 0 16px;}
#priceForecast .forecast-search-card #forecastSearchStatus:empty {display:none;}
#priceForecast .forecast-search-card #forecastSearchStatus {margin-bottom:0;}
#priceForecast .forecast-search-card .forecast-results:not(:empty) {margin-top:12px;}
#priceForecast .forecast-heading {display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px;}
#priceForecast .forecast-eyebrow {font-size:10px;letter-spacing:.13em;color:var(--fc-muted);}
#priceForecast .forecast-badge {font-size:9px;padding:7px 10px;border:1px solid var(--fc-line);border-radius:6px;white-space:normal;margin-top:12px;}
#priceForecast .forecast-search {max-width:740px;}
#priceForecast .forecast-search>label {display:block;font-size:11px;color:var(--fc-muted);margin-bottom:8px;}
#priceForecast .forecast-search>div {display:flex;gap:10px;}
#priceForecast #forecastSearch {min-width:0;flex:1;font-size:15px;min-height:48px;}
#priceForecast #forecastSearchButton {background:var(--fc-ink);color:var(--fc-inverse);white-space:nowrap;}
#priceForecast .forecast-results {display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:8px;}
#priceForecast .forecast-results:empty {display:none;}
#priceForecast .forecast-results button {text-align:left;padding:14px;display:grid;gap:6px;min-width:0;}
#priceForecast .forecast-results strong {font-size:18px;overflow-wrap:anywhere;}
#priceForecast .forecast-results span,#priceForecast .forecast-results small {font-size:10px;color:var(--fc-muted);overflow-wrap:anywhere;}
#priceForecast .forecast-empty {min-height:350px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;margin-top:24px;padding:24px;border:1px dashed var(--fc-line);border-radius:14px;background:var(--fc-soft);}
#priceForecast .forecast-empty>span {font-size:60px;font-weight:400;line-height:1.4;}
#priceForecast .forecast-empty>p {max-width:460px;}
#priceForecast .forecast-token-heading {display:flex;gap:22px;align-items:center;padding:0 0 14px;border-bottom:1px solid var(--fc-line);flex-wrap:wrap;}
#priceForecast .forecast-token-heading>div {min-width:0;}
#priceForecast #forecastAsset {font-size:29px;}
#priceForecast #forecastContract {font-size:11px;overflow-wrap:anywhere;}
#priceForecast #forecastPrice {font-size:clamp(22px,2vw,30px);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
#priceForecast #forecastSource {display:block;font-size:10px;color:var(--fc-muted);}
#priceForecast #forecastRefresh {margin-left:auto;}
#priceForecast .forecast-note {min-height:20px;font-size:11px;}
#priceForecast .forecast-market-metrics {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:14px 0 0;margin:0;}
#priceForecast .forecast-market-metrics>div {min-width:0;}
#priceForecast .forecast-chart-layout {display:grid;grid-template-columns:minmax(0,1fr) clamp(285px,23vw,360px);gap:16px;align-items:start;}
#priceForecast .forecast-chart-panel,#priceForecast .forecast-tools {min-width:0;border:1px solid var(--fc-line);border-radius:12px;background:var(--fc-bg);padding:16px;}
#priceForecast .forecast-chart-panel {position:relative;}
#priceForecast .forecast-chart-controls {display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
#priceForecast #forecastFrames {display:flex;gap:4px;}
#priceForecast #forecastFrames button {min-height:40px;padding:8px 12px;}
#priceForecast #forecastFrames button[aria-pressed=true] {background:var(--fc-ink);color:var(--fc-inverse);border-color:var(--fc-ink);}
#priceForecast .forecast-density {display:flex;align-items:center;gap:6px;margin-left:auto;}
#priceForecast .forecast-density label {display:flex;align-items:center;gap:8px;color:var(--fc-muted);font-size:12px;}
#priceForecast .forecast-density>button {min-width:40px;font-size:16px;padding:6px;}
#priceForecast .forecast-chart-controls select {min-height:40px;padding:7px;}
#priceForecast #forecastExpand {order:3;}
#priceForecast .forecast-chart {min-width:0;min-height:330px;position:relative;}
#priceForecast svg {width:100%;height:auto;display:block;overflow:hidden;fill:none;stroke:none;}
#priceForecast svg text {font:500 13px 'JetBrains Mono',monospace;fill:var(--fc-muted);stroke:none;stroke-width:0;paint-order:normal;}
#priceForecast svg.is-compact text {font-size:12px;}
#priceForecast svg :is(line,path,rect,circle) {vector-effect:non-scaling-stroke;}
#priceForecast svg .forecast-axis-caption {font-size:11px;letter-spacing:.03em;}
#priceForecast svg .forecast-axis-price,#priceForecast svg .forecast-horizon-label {fill:var(--fc-ink);}
#priceForecast .forecast-grid {stroke:var(--fc-line);stroke-width:1;}
#priceForecast .forecast-candle {stroke:var(--fc-ink);stroke-width:1;fill:var(--fc-ink);}
#priceForecast .forecast-candle.is-up {fill:var(--fc-bg);}
#priceForecast .forecast-candle.is-forming {stroke-dasharray:2 2;opacity:.7;}
#priceForecast .forecast-indicator-line {fill:none;stroke:var(--fc-ink);stroke-width:1.6;}
#priceForecast .indicator-ema50,#priceForecast .indicator-ma50 {stroke-width:2;opacity:.65;}
#priceForecast .indicator-ema200 {stroke-width:2.5;}
#priceForecast .indicator-bbUpper,#priceForecast .indicator-bbLower {stroke:var(--fc-muted);stroke-width:1;}
#priceForecast .forecast-fib line {stroke:var(--fc-muted);stroke-dasharray:4 5;stroke-width:1;opacity:.4;}
#priceForecast .forecast-fib.is-selected line {stroke:var(--fc-ink);stroke-width:1.5;opacity:.9;}
#priceForecast svg .forecast-fib-focus {font-size:12px;fill:var(--fc-ink);}
#priceForecast .forecast-crosshair {pointer-events:none;}
#priceForecast .forecast-crosshair line {stroke:var(--fc-muted);stroke-width:1;stroke-dasharray:3 3;}
#priceForecast .forecast-crosshair circle {fill:var(--fc-ink);stroke:var(--fc-bg);stroke-width:2;}
#priceForecast .forecast-volume {fill:var(--fc-muted);opacity:.35;}
#priceForecast .forecast-readout {min-height:87px;padding:12px 0;font-variant-numeric:tabular-nums;border-top:1px solid var(--fc-line);}
#priceForecast .forecast-readout-date {display:block;font-size:12px;color:var(--fc-muted);margin-bottom:10px;}
#priceForecast .forecast-readout dl {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;}
#priceForecast .forecast-readout dt {font-size:11px;}
#priceForecast .forecast-readout dd {font-size:14px;}
#priceForecast .forecast-fib-levels {border:1px solid var(--fc-line);border-radius:8px;padding:0 10px;margin:0 0 14px;background:var(--fc-soft);}
#priceForecast .forecast-fib-levels>summary {min-height:44px;padding:11px 0;font-size:12px;font-weight:600;color:var(--fc-ink);}
#priceForecast .forecast-fib-levels[open] {padding-bottom:10px;}
#priceForecast #forecastFibHint {font-size:12px;color:var(--fc-muted);}
#priceForecast #forecastFibValues {display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:8px;}
#priceForecast #forecastFibValues button {display:grid;gap:5px;text-align:left;padding:10px;min-width:0;}
#priceForecast #forecastFibValues button[aria-pressed=true] {border-color:var(--fc-ink);background:var(--fc-soft);}
#priceForecast #forecastFibValues span {font-size:11px;color:var(--fc-muted);}
#priceForecast #forecastFibValues strong {font-size:13px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;}
#priceForecast .forecast-chart-navigation {display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--fc-line);padding-top:12px;}
#priceForecast .forecast-chart-navigation button {font-size:12px;min-height:40px;white-space:nowrap;}
#priceForecast #forecastChartNote {font-size:11px;line-height:1.5;color:var(--fc-muted);}
#priceForecast .forecast-tools h3 {font-size:15px;}
#priceForecast .forecast-tools p {font-size:11px;}
#priceForecast .forecast-tools>section+section {padding-top:18px;margin-top:18px;border-top:1px solid var(--fc-line);}
#priceForecast .forecast-study-toolbar {display:flex;align-items:center;gap:12px;margin:0 0 12px;}
#priceForecast #forecastStudyToggle {white-space:nowrap;flex-shrink:0;background:var(--fc-soft);}
#priceForecast .forecast-active-studies {display:flex;gap:6px;flex-wrap:wrap;min-width:0;font-size:11px;color:var(--fc-muted);}
#priceForecast .forecast-active-studies span {padding:3px 6px;border:1px solid var(--fc-line);border-radius:4px;}
#priceForecast .forecast-active-studies [data-open-fib] {font-size:11px;padding:3px 7px;min-height:32px;color:var(--fc-muted);border-radius:4px;}
#priceForecast .forecast-study-menu {position:absolute;top:108px;left:12px;z-index:6;width:min(620px,calc(100% - 24px));max-height:min(620px,70dvh);overflow:auto;overscroll-behavior:contain;border:1px solid var(--fc-muted);border-radius:12px;padding:16px 16px 0;background:var(--fc-bg);box-shadow:0 15px 50px rgb(0 0 0 / .18);}
#priceForecast .forecast-study-menu>header {display:flex;justify-content:space-between;gap:12px;}
#priceForecast #forecastStudyClose {padding:4px 12px;align-self:flex-start;}
#priceForecast #forecastStudySearch {width:100%;margin:8px 0 10px;}
#priceForecast .forecast-study-presets {display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
#priceForecast .forecast-study-presets button {min-height:36px;padding:6px 10px;font-size:11px;}
#priceForecast #forecastOverlayOptions {display:grid;gap:14px;}
#priceForecast #forecastOverlayOptions fieldset {padding:0;margin:0;border:0;min-width:0;}
#priceForecast #forecastOverlayOptions legend {font-size:11px;color:var(--fc-muted);margin-bottom:6px;padding:0;}
#priceForecast #forecastOverlayOptions fieldset>div {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;}
#priceForecast #forecastOverlayOptions label {display:flex;align-items:center;gap:8px;font-size:12px;min-height:44px;cursor:pointer;border:1px solid var(--fc-line);border-radius:6px;padding:8px;min-width:0;}
#priceForecast #forecastOverlayOptions label:has(input:checked) {background:var(--fc-soft);border-color:var(--fc-muted);}
#priceForecast #forecastOverlayOptions label span {min-width:0;overflow-wrap:anywhere;}
#priceForecast #forecastOverlayOptions label small {margin-left:auto;font-size:9px;white-space:nowrap;color:var(--fc-muted);}
#priceForecast #forecastOverlayOptions input {width:16px;height:16px;min-height:0;accent-color:var(--fc-ink);padding:0;margin:0;}
#priceForecast .forecast-study-menu>footer {position:sticky;bottom:0;display:flex;flex-direction:row;align-items:center;gap:8px;margin:16px -16px 0;padding:12px 16px;background:var(--fc-bg);border-top:1px solid var(--fc-line);}
#priceForecast #forecastStudyCount {font-size:11px;color:var(--fc-muted);margin-right:auto;}
#priceForecast #forecastStudyApply {background:var(--fc-ink);color:var(--fc-inverse);}
#priceForecast .forecast-mtf-row {width:100%;display:grid;grid-template-columns:32px minmax(48px,1fr) auto 52px;align-items:center;gap:6px;padding:10px 7px;margin-top:7px;text-align:left;font-size:11px;}
#priceForecast .forecast-mtf-row[aria-pressed=true] {border-color:var(--fc-ink);background:var(--fc-soft);}
#priceForecast .forecast-mtf-row strong {font-size:11px;}
#priceForecast .forecast-mtf-row>span:last-child {font-size:10px;text-align:right;color:var(--fc-muted);}
#priceForecast .forecast-mtf-row svg {height:26px;}
#priceForecast .forecast-return-rows {display:grid;gap:13px;margin-top:15px;}
#priceForecast .forecast-return-rows>div {display:grid;grid-template-columns:30px minmax(0,1fr) 68px;align-items:center;gap:10px;font-size:12px;}
#priceForecast .forecast-return-rows strong {font-size:12px;text-align:right;font-variant-numeric:tabular-nums;}
#priceForecast .forecast-return-track {height:14px;position:relative;background:var(--fc-soft);border-radius:2px;}
#priceForecast .forecast-return-track::after {content:'';position:absolute;left:50%;top:-3px;bottom:-3px;border-left:1px solid var(--fc-muted);}
#priceForecast .forecast-return-track i {position:absolute;height:100%;background:var(--fc-ink);opacity:.65;border-radius:2px;}
#priceForecast .forecast-structure-scale {height:7px;margin:23px 4px 15px;background:var(--fc-line);border-radius:4px;position:relative;}
#priceForecast .forecast-structure-scale>span {position:absolute;top:-4px;height:15px;width:3px;background:var(--fc-ink);}
#priceForecast .forecast-structure-values {display:grid;grid-template-columns:1fr 1fr;gap:10px;}
#priceForecast .forecast-structure-values>div:last-child {text-align:right;}
#priceForecast .forecast-perspectives {margin-top:22px;}
#priceForecast .forecast-perspectives>header {display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px;}
#priceForecast #forecastStudyAsOf {font-size:11px;color:var(--fc-muted);}
#priceForecast .forecast-study-cards {display:grid;gap:12px;}
#priceForecast .forecast-study-card {min-width:0;border:1px solid var(--fc-line);border-radius:12px;padding:14px;background:var(--fc-soft);}
#priceForecast .forecast-study-card>header {display:flex;align-items:start;justify-content:space-between;gap:8px;margin-bottom:12px;}
#priceForecast .forecast-study-card h4 {font-size:13px;}
#priceForecast .forecast-study-card strong {font-size:17px;white-space:nowrap;font-variant-numeric:tabular-nums;}
#priceForecast .forecast-mini-line {stroke:var(--fc-ink);fill:none;stroke-width:1.5;}
#priceForecast .forecast-mini-line.line-1 {stroke-dasharray:6 3;opacity:.7;}
#priceForecast .forecast-mini-line.line-2 {stroke-dasharray:2 3;opacity:.65;}
#priceForecast .forecast-mini-bar {fill:var(--fc-muted);opacity:.5;}
#priceForecast .forecast-mini-bar.is-negative {fill:none;stroke:var(--fc-muted);stroke-width:1;}
#priceForecast svg.forecast-mini-svg text {font-size:12px;}
#priceForecast .forecast-mini-legend {font-size:10px;color:var(--fc-muted);margin:6px 0;}
#priceForecast .forecast-study-card p {font-size:11px;line-height:1.6;margin-bottom:0;}
#priceForecast .forecast-pane-empty {min-height:174px;display:grid;place-items:center;text-align:center;color:var(--fc-muted);font-size:12px;}
#priceForecast dl {margin:0;}
#priceForecast dt {display:block;color:var(--fc-muted);font-size:12px;line-height:1.5;}
#priceForecast dd {display:block;color:var(--fc-ink);font-size:13px;font-weight:600;line-height:1.5;margin:5px 0 0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;}
#priceForecast .forecast-scenarios {margin-top:28px;}
#priceForecast .forecast-scenarios>header {display:flex;align-items:start;justify-content:space-between;gap:20px;}
#priceForecast .forecast-scenarios>header p {max-width:600px;margin:0;font-size:11px;}
#priceForecast .forecast-range-chart:empty {display:none;}
#priceForecast .forecast-range-chart {width:100%;min-width:0;margin:16px 0 8px;border:1px solid var(--fc-line);border-radius:12px;padding:16px;background:var(--fc-soft);}
#priceForecast .forecast-range line {stroke:var(--fc-ink);stroke-width:1.5;}
#priceForecast .forecast-range rect {fill:var(--fc-muted);opacity:.2;}
#priceForecast .forecast-range circle {fill:var(--fc-ink);stroke:var(--fc-bg);stroke-width:2;}
#priceForecast .forecast-reference-line {stroke:var(--fc-muted);stroke-width:1;stroke-dasharray:4 4;}
#priceForecast #forecastRangeLegend {font-size:12px;}
#priceForecast .forecast-horizon-cards {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px;align-items:start;}
#priceForecast .forecast-horizon {min-width:0;padding:18px;border:1px solid var(--fc-line);border-radius:12px;background:var(--fc-bg);}
#priceForecast .forecast-horizon>header {display:flex;flex-wrap:wrap;gap:6px;justify-content:space-between;align-items:center;margin-bottom:20px;}
#priceForecast .forecast-horizon>header span {font-size:11px;padding:4px 7px;background:var(--fc-soft);border-radius:5px;}
#priceForecast .forecast-field-label {display:block;font-size:12px;color:var(--fc-muted);}
#priceForecast .forecast-horizon>strong {display:block;font-size:24px;margin-top:5px;overflow-wrap:anywhere;}
#priceForecast .forecast-horizon>strong.forecast-insufficient {font-size:16px;margin:20px 0;}
#priceForecast .forecast-change {display:block;font-size:12px;margin:4px 0 18px;color:var(--fc-muted);}
#priceForecast .forecast-horizon dl {display:grid;gap:14px;}
#priceForecast .forecast-horizon details {border-top:1px solid var(--fc-line);margin-top:16px;padding-top:12px;}
#priceForecast summary {font-size:12px;line-height:1.7;color:var(--fc-muted);cursor:pointer;}
#priceForecast .forecast-conditions {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:26px;padding:22px;border:1px solid var(--fc-line);border-radius:12px;background:var(--fc-soft);}
#priceForecast .forecast-conditions:empty {display:none;}
#priceForecast .forecast-conditions h4 {font-size:13px;}
#priceForecast .forecast-conditions p {margin-bottom:0;}
#priceForecast .forecast-method {margin-top:22px;border-top:1px solid var(--fc-line);padding-top:16px;}
#priceForecast .forecast-method p {max-width:1100px;}
body.forecast-dialog-open {overflow:hidden;}
#priceForecast #forecastChartDialog {width:min(1800px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--fc-line);border-radius:14px;color:var(--fc-ink);background:var(--fc-bg);overflow:auto;overscroll-behavior:contain;}
#priceForecast #forecastChartDialog::backdrop {background:rgb(0 0 0 / .65);}
#priceForecast #forecastChartDialog>header {position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--fc-bg);border-bottom:1px solid var(--fc-line);}
#priceForecast #forecastDialogTitle {font-size:16px;}
#priceForecast #forecastDialogBody .forecast-chart-panel {border:0;border-radius:0;}
#priceForecast .forecast-size-controls,#priceForecast .forecast-resize-handle {display:none;}
#priceForecast .forecast-overview,#priceForecast .forecast-workbench {min-width:0;}
/* Desktop workbench. Phone/tablet keep the single-column, touch-first layout. */
@media(min-width:1001px) {
  #priceForecast {max-width:none;width:100%;margin-inline:0;}
  #priceForecast .forecast-search-card {display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);column-gap:32px;align-items:center;}
  #priceForecast .forecast-heading {display:block;margin:0;}
  #priceForecast h2 {font-size:26px;margin:5px 0;}
  #priceForecast .forecast-heading p {margin:4px 0;}
  #priceForecast .forecast-badge {display:inline-block;margin-top:6px;padding:4px 7px;}
  #priceForecast .forecast-search {max-width:none;}
  #priceForecast #forecastSearchStatus,#priceForecast #forecastResults {grid-column:1/-1;}
  #priceForecast .forecast-summary-card {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:'identity metrics' 'status metrics';column-gap:24px;align-items:center;}
  #priceForecast .forecast-token-heading {grid-area:identity;border:0;padding:0;gap:12px 18px;}
  #priceForecast #forecastAsset {font-size:24px;}
  #priceForecast #forecastPrice {font-size:25px;}
  #priceForecast #forecastLoadStatus {grid-area:status;margin:8px 0 0;font-size:10px;}
  #priceForecast .forecast-market-metrics {grid-area:metrics;padding:6px 0 6px 24px;border-left:1px solid var(--fc-line);gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));}
  #priceForecast .forecast-market-metrics dd {font-size:15px;}
  #priceForecast .forecast-size-controls {display:flex;align-items:center;gap:20px;min-height:48px;margin-bottom:10px;color:var(--fc-muted);font-size:11px;}
  #priceForecast #forecastSizeTitle {font-weight:600;margin-right:auto;}
  #priceForecast .forecast-size-controls label {display:flex;align-items:center;gap:8px;white-space:nowrap;}
  #priceForecast .forecast-size-controls input {width:110px;height:24px;min-height:24px;padding:0;border:0;background:transparent;accent-color:var(--fc-ink);cursor:pointer;}
  #priceForecast .forecast-size-controls output {width:46px;text-align:right;font-variant-numeric:tabular-nums;color:var(--fc-ink);}
  #priceForecast #forecastResetSize {min-height:34px;padding:6px 10px;font-size:11px;}
  #priceForecast .forecast-chart-layout {grid-template-columns:minmax(0,var(--forecast-chart-width,64%)) 14px minmax(300px,1fr);gap:0;}
  #priceForecast .forecast-chart-layout>#forecastChartPanel {grid-column:1;grid-row:1;}
  #priceForecast .forecast-chart {min-height:0;}
  #priceForecast .forecast-resize-handle {display:flex;align-items:center;justify-content:center;touch-action:none;user-select:none;border-radius:6px;outline-offset:-2px;}
  #priceForecast .forecast-resize-handle span {display:block;background:var(--fc-line);border-radius:3px;transition:background .15s;}
  #priceForecast .forecast-resize-handle:hover span,#priceForecast .forecast-resize-handle:focus-visible span {background:var(--fc-muted);}
  #priceForecast .forecast-resize-handle:focus-visible {outline:2px solid var(--fc-ink);}
  #priceForecast .forecast-width-handle {grid-column:2;grid-row:1;align-self:stretch;cursor:col-resize;}
  #priceForecast .forecast-width-handle span {width:3px;height:48px;}
  #priceForecast .forecast-height-handle {height:18px;margin:4px 0;cursor:row-resize;}
  #priceForecast .forecast-height-handle span {width:48px;height:3px;}
  #priceForecast.forecast-resizing-width,#priceForecast.forecast-resizing-height {user-select:none;}
  #priceForecast.forecast-resizing-width .forecast-width-handle span,#priceForecast.forecast-resizing-height .forecast-height-handle span {background:var(--fc-ink);}
  #priceForecast #forecastChartDialog .forecast-height-handle {display:none;}
  #priceForecast .forecast-tools {grid-column:3;grid-row:1;display:grid;gap:12px;border:0;padding:0;background:transparent;}
  #priceForecast .forecast-tools>section {padding:16px;border:1px solid var(--fc-line);border-radius:12px;background:var(--fc-bg);min-width:0;}
  #priceForecast .forecast-tools>section+section {margin:0;padding:16px;}
  #priceForecast .forecast-tools>section h4 {font-size:14px;}
  #priceForecast .forecast-perspectives {padding-top:22px;border-top:1px solid var(--fc-line);margin-top:24px;}
  #priceForecast .forecast-study-card {background:var(--fc-bg);}
  #priceForecast .forecast-scenarios {border-top:1px solid var(--fc-line);padding-top:22px;}
  #priceForecast .forecast-scenario-grid {display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:16px;align-items:start;}
  #priceForecast .forecast-range-summary {min-width:0;}
  #priceForecast .forecast-horizon-cards {grid-template-columns:repeat(2,minmax(0,1fr));}
  #priceForecast .forecast-horizon {padding:16px;}
  #priceForecast .forecast-horizon>header {margin-bottom:12px;}
  #priceForecast .forecast-horizon>strong {font-size:22px;}
  #priceForecast .forecast-change {margin-bottom:12px;}
  #priceForecast .forecast-horizon dl {gap:10px;}
  #priceForecast .forecast-conditions {background:none;border:0;padding:0;gap:12px;}
  #priceForecast .forecast-conditions>article {min-width:0;padding:18px;border:1px solid var(--fc-line);border-radius:12px;background:var(--fc-soft);}
  #priceForecast .forecast-conditions>p {grid-column:1/-1;}
}
/* Wide screens use the room for token context, not oversized candles or gutters.
   display:contents keeps the DOM reading order and a single set of controls. */
@media(min-width:1600px) {
  #priceForecast {display:grid;grid-template-columns:clamp(320px,20vw,420px) minmax(0,1fr);column-gap:20px;align-items:start;}
  #priceForecast .forecast-overview {grid-column:1;grid-row:1;}
  #priceForecast #forecastContent:not([hidden]) {display:contents;}
  #priceForecast .forecast-workbench,#priceForecast .forecast-empty {grid-column:2;grid-row:1;}
  #priceForecast .forecast-empty {margin-top:0;min-height:400px;}
  #priceForecast :is(.forecast-perspectives,.forecast-scenarios,.forecast-conditions,.forecast-method) {grid-column:1/-1;}
  #priceForecast .forecast-search-card,#priceForecast .forecast-summary-card {display:block;padding:18px;}
  #priceForecast .forecast-search {margin-top:20px;}
  #priceForecast .forecast-search>div {flex-wrap:wrap;gap:8px;}
  #priceForecast #forecastSearch {flex:1 1 100%;width:100%;}
  #priceForecast #forecastSearchButton {width:100%;min-height:40px;}
  #priceForecast .forecast-results {grid-template-columns:minmax(0,1fr);max-height:310px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;}
  #priceForecast .forecast-token-heading {align-items:start;gap:12px;}
  #priceForecast .forecast-token-heading>div:first-child {flex:1 1 45%;}
  #priceForecast .forecast-token-heading>div:nth-child(2) {order:3;width:100%;}
  #priceForecast #forecastRefresh {font-size:10px;padding:7px 10px;}
  #priceForecast #forecastPrice {font-size:24px;}
  #priceForecast #forecastLoadStatus {margin:12px 0;padding:10px 0;border-block:1px solid var(--fc-line);line-height:1.7;}
  #priceForecast .forecast-market-metrics {padding:0;border:0;gap:18px 12px;}
  #priceForecast .forecast-market-metrics dt {font-size:11px;}
  #priceForecast .forecast-market-metrics dd {font-size:14px;}
  #priceForecast .forecast-size-controls {margin-top:0;min-height:40px;}
}
@media(prefers-color-scheme:dark) {#priceForecast {--fc-bg:#17191b;--fc-soft:#202326;--fc-ink:#eff0f1;--fc-muted:#a8adb5;--fc-line:#34383d;--fc-inverse:#16191c;background:var(--fc-bg);}}
@media(min-width:901px) and (max-width:1399px) {.topbar {flex-wrap:wrap;}.nav-rail {order:3;width:100%;margin-right:0;}.actions {margin-left:auto;}}
@media(max-width:1000px) {
  #priceForecast .forecast-chart-layout {grid-template-columns:minmax(0,1fr);}
  #priceForecast .forecast-tools {display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  #priceForecast .forecast-tools>section+section {border:0;margin:0;padding:0;}
  #priceForecast .forecast-tools>section:first-child {grid-row:span 2;}
  #priceForecast .forecast-horizon-cards {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:720px) {
  .nav-rail nav {grid-template-columns:repeat(5,minmax(0,1fr));}
  .nav-rail nav a {flex-direction:column;gap:5px;align-items:center;}
  .nav-rail nav a span {text-align:center;white-space:normal;font-size:10px;}
  #priceForecast .forecast-heading {display:block;margin-bottom:20px;}
  #priceForecast .forecast-search-card,#priceForecast .forecast-summary-card {padding:14px;margin-bottom:12px;}
  #priceForecast .forecast-badge {display:inline-block;margin-top:5px;}
  #priceForecast .forecast-search>div {gap:7px;}
  #priceForecast #forecastSearch {font-size:16px;}
  #priceForecast #forecastSearchButton {font-size:11px;padding:10px;}
  #priceForecast .forecast-token-heading {gap:12px;align-items:flex-start;}
  #priceForecast .forecast-token-heading>div:first-child {flex:1 1 55%;}
  #priceForecast .forecast-token-heading>div:nth-child(2) {order:3;width:100%;}
  #priceForecast #forecastRefresh {font-size:10px;}
  #priceForecast .forecast-chart-panel,#priceForecast .forecast-tools {padding:12px;}
  #priceForecast .forecast-chart {min-height:280px;}
  #priceForecast .forecast-chart-controls {gap:10px;}
  #priceForecast #forecastFrames button {font-size:12px;padding:7px 9px;min-height:44px;}
  #priceForecast #forecastExpand {order:0;padding:7px 9px;min-height:44px;}
  #priceForecast .forecast-density {width:100%;justify-content:flex-end;}
  #priceForecast .forecast-density label {margin-right:auto;}
  #priceForecast .forecast-density select {font-size:16px;min-height:44px;max-width:180px;}
  #priceForecast .forecast-density>button {min-width:44px;min-height:44px;}
  #priceForecast svg text {font-size:12px;}
  #priceForecast .forecast-readout dl {grid-template-columns:repeat(3,minmax(0,1fr));row-gap:12px;}
  #priceForecast .forecast-readout dl>div:last-child {grid-column:span 2;}
  #priceForecast #forecastFibValues {grid-template-columns:repeat(2,minmax(0,1fr));}
  #priceForecast .forecast-chart-navigation button {min-height:44px;}
  #priceForecast .forecast-range-chart {padding:10px;}
  #priceForecast #forecastChartNote {order:3;width:100%;}
  #priceForecast .forecast-chart-navigation {flex-wrap:wrap;}
  #priceForecast .forecast-study-toolbar {flex-wrap:wrap;gap:8px;}
  #priceForecast .forecast-study-menu {top:165px;}
  #priceForecast #forecastOverlayOptions fieldset>div {grid-template-columns:1fr;}
  #priceForecast #forecastStudySearch {font-size:16px;}
  #priceForecast .forecast-study-menu>footer button {min-height:44px;}
  #priceForecast .forecast-perspectives>header {display:block;}
  #priceForecast .forecast-tools {grid-template-columns:1fr;gap:18px;}
  #priceForecast .forecast-tools>section:first-child {grid-row:auto;}
  #priceForecast .forecast-tools>section+section {padding-top:16px;border-top:1px solid var(--fc-line);}
  #priceForecast .forecast-indicators dl {grid-template-columns:repeat(2,minmax(0,1fr));}
  #priceForecast .forecast-scenarios>header {display:block;}
  #priceForecast .forecast-scenarios>header p {margin-top:8px;}
  #priceForecast .forecast-horizon {padding:14px;}
  #priceForecast .forecast-horizon-cards {gap:10px;}
  #priceForecast .forecast-horizon>strong {font-size:20px;}
  #priceForecast .forecast-horizon>header {min-height:53px;}
  #priceForecast .forecast-horizon dd {font-size:13px;}
  #priceForecast .forecast-conditions {grid-template-columns:1fr;gap:16px;padding:16px;}
  #priceForecast .forecast-market-metrics {grid-template-columns:repeat(2,minmax(0,1fr));}
  #priceForecast #forecastChartDialog {width:100%;max-height:100dvh;height:100dvh;margin:0;border:0;border-radius:0;}
  #priceForecast #forecastChartDialog>header {padding-top:max(12px,env(safe-area-inset-top));}
  #priceForecast #forecastDialogBody {padding-bottom:env(safe-area-inset-bottom);}
}
@media(max-width:360px) {#priceForecast .forecast-horizon-cards {grid-template-columns:1fr;}}
@media(max-width:420px) {
  #priceForecast .forecast-density label {min-width:0;flex:1;}
  #priceForecast #forecastBarsLabel {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
  #priceForecast .forecast-density select {width:100%;max-width:none;min-width:0;}
  #priceForecast .forecast-readout dl {grid-template-columns:repeat(2,minmax(0,1fr));}
}
