.tracking-layout:has(.technical-main) {
  grid-template-areas: "workspace" "main";
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr);
  gap: 12px;
}

.tracking-layout:has(.technical-main) .watchlist { display: none; }
.tracking-main.technical-main { min-width: 0; padding: 0 0 22px; }

.technical-analysis-page {
  --ta-panel: #050606;
  --ta-line: rgba(255, 255, 255, .09);
  --ta-line-strong: rgba(255, 255, 255, .14);
  --ta-text: #f5f6fb;
  --ta-muted: #9496a0;
  --ta-blue: #7891ff;
  --ta-purple: #a278ff;
  --ta-mint: #4ee0bc;
  --ta-green: #38e79f;
  --ta-orange: #ffb447;
  --ta-red: #ff6b78;
  position: relative;
  min-width: 0;
  overflow: visible;
  padding: 17px;
  border-radius: 24px;
  color: var(--ta-text);
  background:
    radial-gradient(circle at 87% 19%, rgba(71, 145, 255, .32), transparent 29%),
    radial-gradient(circle at 61% 5%, rgba(111, 78, 224, .27), transparent 25%),
    radial-gradient(circle at 77% 88%, rgba(40, 216, 189, .19), transparent 28%),
    #2b292d;
  font-family: "Segoe UI", "Microsoft YaHei UI", "PingFang SC", sans-serif;
}

.technical-analysis-page::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(115deg, rgba(255, 255, 255, .035), transparent 26% 74%, rgba(255, 255, 255, .018));
}

.technical-analysis-page *, .technical-analysis-page *::before, .technical-analysis-page *::after { box-sizing: border-box; }
.technical-analysis-page button, .technical-analysis-page input { font: inherit; }
.technical-analysis-page button { color: inherit; }
.technical-analysis-page button:focus-visible, .technical-analysis-page input:focus-visible { outline: 2px solid #b3c0ff; outline-offset: 3px; }
.technical-analysis-page h1, .technical-analysis-page h2, .technical-analysis-page p { margin: 0; }

.ta-technical-shell {
  position: relative;
  z-index: 1;
  min-width: 0;
  display: grid;
  grid-template-columns: clamp(232px, 18vw, 280px) minmax(0, 1fr);
  align-items: start;
  gap: 14px;
}

.market-technical-analysis-page .ta-technical-shell { grid-template-columns: minmax(0, 1fr); }
.market-technical-analysis-page.ta-state-page .ta-search-wrap { display: none; }

.ta-stock-detail { min-width: 0; }

.ta-market-overview-grid { min-width: 0; display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(440px, .92fr); align-items: stretch; gap: 14px; margin-top: 14px; }
.ta-market-price { min-width: 0; overflow: hidden; border-radius: 20px; }
.ta-market-price-heading { align-items: flex-start; padding-bottom: 8px; }
.ta-market-price-heading > div:first-child { min-width: 0; }
.ta-market-price-heading > div:first-child p { margin-top: 5px; text-align: left; }
.ta-market-period-control { flex: 0 0 278px; display: flex; flex-direction: column; gap: 5px; }
.ta-market-period-control > span { color: var(--ta-muted); font-size: 9px; text-align: right; }
.ta-signal-brief .ta-market-period-control { margin-left: auto; }
.ta-market-price-chart { min-width: 0; height: 330px; margin: 0 8px 8px; }
.ta-market-price-tooltip span { align-items: center; }
.ta-market-price-tooltip i { width: 14px; height: 2px; flex: 0 0 auto; border-radius: 2px; }
.ta-market-price-tooltip b { margin-left: auto; }

.ta-dashboard-header, .ta-score-summary, .ta-market-price, .ta-market-score-matrix, .ta-radar-panel, .ta-trade-panel, .ta-score-trend, .ta-signal-brief, .ta-state-header, .ta-loading, .ta-error-state {
  position: relative;
  z-index: 1;
  border: 1px solid var(--ta-line);
  background: linear-gradient(180deg, rgba(8, 9, 11, .99), rgba(3, 4, 5, .985));
  box-shadow: 0 18px 42px rgba(0, 0, 0, .22);
}

.ta-market-score-matrix { min-width: 0; display: flex; flex-direction: column; overflow: hidden; border-radius: 20px; }
.ta-market-matrix-heading { align-items: flex-start; padding-bottom: 8px; }
.ta-market-matrix-heading time { flex: 0 0 auto; color: var(--ta-muted); font-size: 11px; line-height: 1.4; }
.ta-market-matrix-scroll { min-width: 0; flex: 1; overflow-x: auto; padding: 0 14px 8px; }
.ta-market-score-matrix table { width: 100%; height: 100%; border-collapse: collapse; table-layout: fixed; }
.ta-market-score-matrix th, .ta-market-score-matrix td { height: 52px; border-bottom: 1px solid var(--ta-line); padding: 7px 5px; text-align: center; }
.ta-market-score-matrix thead th { height: 34px; color: var(--ta-muted); font-size: 10px; font-weight: 650; }
.ta-market-score-matrix tbody tr:last-child > * { border-bottom: 0; }
.ta-market-score-matrix tbody th { width: 62px; text-align: center; }
.ta-market-score-matrix tbody th strong { display: block; color: var(--ta-text); font-size: 15px; }
.ta-market-matrix-score { min-width: 34px; display: inline-grid; place-items: center; border-radius: 9px; padding: 6px 4px; color: #aab8ff; background: rgba(120, 145, 255, .1); font-size: 15px; font-weight: 750; }
.ta-market-matrix-score.total { min-width: 38px; font-size: 18px; }
.ta-market-matrix-score.strong { color: #ff8e9a; background: rgba(255, 107, 120, .1); }
.ta-market-matrix-score.weak { color: #78e6c2; background: rgba(56, 231, 159, .09); }
.ta-market-matrix-empty { color: #656873; }
.ta-market-score-matrix tr.is-error { opacity: .55; }
.ta-market-score-matrix > footer { display: flex; flex-wrap: wrap; gap: 12px; padding: 9px 18px 12px; border-top: 1px solid var(--ta-line); color: var(--ta-muted); font-size: 10px; }
.ta-market-score-matrix > footer span::before { content: ""; width: 7px; height: 7px; display: inline-block; margin-right: 5px; border-radius: 2px; background: #7891ff; }
.ta-market-score-matrix > footer .strong::before { background: #ff6b78; }
.ta-market-score-matrix > footer .weak::before { background: #4ee0bc; }
.ta-market-matrix-state { min-height: 300px; display: grid; place-items: center; align-content: center; gap: 9px; color: var(--ta-muted); text-align: center; }
.ta-market-matrix-state strong { color: var(--ta-text); font-size: 14px; }
.ta-market-matrix-state small { font-size: 11px; }

.ta-dashboard-header {
  min-height: 84px;
  display: grid;
  grid-template-columns: minmax(330px, 1.45fr) auto auto minmax(170px, auto);
  align-items: center;
  gap: 18px;
  padding: 14px 18px;
  border-radius: 20px;
}

.ta-identity { min-width: 0; display: flex; align-items: center; gap: 12px; }
.ta-back { width: 36px; height: 36px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid var(--ta-line); border-radius: 11px; background: #111216; cursor: pointer; }
.ta-back:hover { border-color: rgba(120, 145, 255, .55); background: #171925; }
.ta-back svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ta-brand-mark { width: 44px; height: 44px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 13px; background: linear-gradient(145deg, #6e68f5, #5ba7ef); box-shadow: 0 8px 22px rgba(82, 112, 255, .25); }
.ta-brand-mark svg { width: 24px; height: 24px; fill: none; stroke: white; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ta-identity h1 { overflow: hidden; color: #fbfbfd; font-size: clamp(18px, 1.65vw, 26px); font-weight: 720; letter-spacing: -.025em; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.ta-identity p { margin-top: 5px; overflow: hidden; color: var(--ta-muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }

.ta-search-wrap { position: relative; min-width: 0; }
.ta-stock-search { min-height: 38px; display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 0 11px; border: 1px solid var(--ta-line); border-radius: 12px; background: rgba(255, 255, 255, .04); }
.ta-stock-search:focus-within { border-color: rgba(120, 145, 255, .62); background: rgba(120, 145, 255, .07); }
.ta-stock-search svg { width: 17px; height: 17px; fill: none; stroke: #9a9da7; stroke-width: 1.7; stroke-linecap: round; }
.ta-stock-search input { min-width: 0; border: 0; outline: 0; color: #f5f6fb; background: transparent; font-size: 12px; }
.ta-stock-search input::placeholder { color: #757984; }
.ta-stock-search button { width: 22px; height: 22px; border: 0; background: transparent; color: #9da0aa; cursor: pointer; }
.ta-search-results { position: absolute; z-index: 30; top: calc(100% + 7px); right: 0; left: 0; overflow: hidden; border: 1px solid var(--ta-line-strong); border-radius: 13px; background: #0a0b0e; box-shadow: 0 18px 38px rgba(0, 0, 0, .45); }
.ta-search-results > button { width: 100%; min-height: 46px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 7px 11px; border: 0; border-bottom: 1px solid rgba(255, 255, 255, .06); background: transparent; text-align: left; cursor: pointer; }
.ta-search-results > button:hover { background: rgba(120, 145, 255, .11); }
.ta-search-results span { display: flex; align-items: baseline; gap: 8px; }
.ta-search-results strong { font-size: 12px; }
.ta-search-results small, .ta-search-results em { color: var(--ta-muted); font-size: 10px; font-style: normal; }
.ta-search-empty { padding: 14px; color: var(--ta-muted); font-size: 12px; text-align: center; }

.ta-live-quote { display: flex; align-items: baseline; gap: 12px; white-space: nowrap; }
.ta-live-quote strong { font-variant-numeric: tabular-nums; font-size: clamp(26px, 2.4vw, 38px); font-weight: 690; letter-spacing: -.025em; }
.ta-live-quote span { font-size: 13px; font-weight: 650; }
.ta-live-quote.rise { color: #ff6f77; }
.ta-live-quote.fall { color: #45dba0; }
.ta-status-stack { display: flex; align-items: center; gap: 7px; }
.ta-status-chip { padding: 7px 11px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.ta-status-chip.market { border: 1px solid rgba(52, 237, 164, .24); color: #73efbd; background: rgba(52, 237, 164, .08); }
.ta-status-chip.score { border: 1px solid rgba(120, 145, 255, .25); color: #aab8ff; background: rgba(120, 145, 255, .10); }
.ta-update { display: flex; align-items: center; justify-content: flex-end; gap: 8px; color: var(--ta-muted); font-size: 10px; white-space: nowrap; }
.ta-update button { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--ta-line); border-radius: 10px; background: rgba(255, 255, 255, .035); cursor: pointer; }
.ta-update button:hover { border-color: rgba(78, 224, 188, .45); color: var(--ta-mint); }
.ta-update button:disabled { opacity: .55; cursor: wait; }
.ta-update svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

.ta-score-summary { position: sticky; z-index: 2; top: 12px; max-height: calc(100vh - 24px); display: flex; flex-direction: column; overflow: hidden; border-radius: 20px; }
.ta-panel-title.ta-summary-heading { align-items: flex-start; flex-direction: column; gap: 12px; padding: 16px 16px 13px; }
.ta-summary-heading > div { min-width: 0; }
.ta-summary-heading p { margin-top: 4px; text-align: left; }
.ta-summary-controls { width: 100%; flex: 0 0 auto; display: flex; flex-direction: column; align-items: stretch; gap: 8px; }
.ta-summary-controls > span { color: var(--ta-muted); font-size: 10px; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.ta-timeframe-switch { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 3px; padding: 3px; border: 1px solid var(--ta-line); border-radius: 12px; background: #0f1014; }
.ta-timeframe-switch button { min-width: 0; height: 28px; border: 0; border-radius: 8px; background: transparent; color: #858995; font-size: 11px; font-weight: 680; cursor: pointer; transition: color 140ms ease-out, background 140ms ease-out, box-shadow 140ms ease-out; }
.ta-timeframe-switch button:hover { color: #d9dded; background: rgba(255, 255, 255, .055); }
.ta-timeframe-switch button[aria-pressed="true"] { color: #dce3ff; background: rgba(120, 145, 255, .16); box-shadow: inset 0 0 0 1px rgba(120, 145, 255, .3); }
.ta-timeframe-switch button:focus-visible { outline: 2px solid #b3c0ff; outline-offset: 2px; }
.ta-summary-scroll { min-height: 0; overflow-y: auto; border-top: 1px solid var(--ta-line); scrollbar-color: rgba(120, 145, 255, .45) transparent; }
.ta-summary-scroll table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 11px; }
.ta-summary-scroll th { padding: 9px 16px; color: #7f838f; background: rgba(255, 255, 255, .025); font-size: 9px; font-weight: 650; letter-spacing: .02em; text-align: left; white-space: nowrap; }
.ta-summary-scroll td { padding: 11px 16px; border-top: 1px solid rgba(255, 255, 255, .055); color: #c8cad3; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ta-summary-scroll th:last-child, .ta-summary-scroll td:last-child { width: 82px; text-align: right; }
.ta-summary-scroll tbody tr { cursor: pointer; transition: background 160ms ease-out; }
.ta-summary-scroll tbody tr:hover { background: rgba(120, 145, 255, .065); }
.ta-summary-scroll tbody tr.is-current { background: rgba(120, 145, 255, .095); }
.ta-summary-scroll tbody tr:focus-visible { outline: 2px solid #b3c0ff; outline-offset: -2px; }
.ta-summary-stock { display: flex; flex-direction: column; gap: 2px; color: #edf0f8; }
.ta-summary-stock strong { font-size: 12px; font-weight: 650; }
.ta-summary-stock small, .ta-summary-scroll time { color: var(--ta-muted); font-family: "Cascadia Mono", Consolas, monospace; font-size: 9px; }
.ta-summary-score { display: inline-block; min-width: 34px; font-size: 20px; font-weight: 690; letter-spacing: -.025em; }
.ta-summary-score.strong { color: var(--ta-red); }
.ta-summary-score.neutral { color: var(--ta-blue); }
.ta-summary-score.weak { color: var(--ta-mint); }
.ta-summary-error-row { opacity: .72; }
.ta-summary-state { min-height: 86px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; border-top: 1px solid var(--ta-line); color: #dfe1e8; text-align: center; }
.ta-summary-state strong { font-size: 12px; }
.ta-summary-state small { color: var(--ta-muted); font-size: 10px; }
.ta-summary-loader { width: 18px; height: 18px; margin-bottom: 2px; border: 2px solid rgba(120, 145, 255, .22); border-top-color: var(--ta-blue); border-radius: 50%; animation: ta-spin 700ms linear infinite; }

.ta-analysis-workspace { display: contents; }
.ta-dashboard-grid { position: relative; z-index: 1; min-width: 0; display: grid; grid-template-areas: "trade radar"; grid-template-columns: minmax(300px, .9fr) minmax(0, 1.7fr); gap: 14px; margin-top: 14px; }
.ta-radar-panel, .ta-trade-panel, .ta-score-trend { border-radius: 20px; }
.ta-radar-panel { grid-area: radar; min-width: 0; overflow: visible; }
.ta-panel-title { min-width: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding: 18px 20px 0; }
.ta-panel-title h2 { color: #f3f4f9; font-size: 16px; font-weight: 680; letter-spacing: -.015em; }
.ta-panel-title h2 span { color: var(--ta-muted); font-size: 11px; font-weight: 500; }
.ta-panel-title p { max-width: 48ch; color: var(--ta-muted); font-size: 10px; line-height: 1.45; text-align: right; }

.ta-radar-stage { position: relative; min-height: 420px; margin: 0 12px; }
.ta-radar-stage::after { content: ""; position: absolute; z-index: 2; top: 195px; left: 50%; width: 126px; height: 94px; border-radius: 50%; background: radial-gradient(circle, rgba(17, 22, 46, .96) 0 46%, rgba(6, 8, 13, .72) 68%, transparent 70%); transform: translate(-50%, -50%); pointer-events: none; }
.ta-radar-chart { position: absolute; z-index: 3; top: 42px; left: 50%; width: min(44%, 430px); height: 330px; transform: translateX(-50%); }
.ta-total-score { position: absolute; z-index: 4; top: 195px; left: 50%; width: 126px; min-height: 94px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: transparent; transform: translate(-50%, -50%); cursor: help; }
.ta-total-score strong { color: #8da2ff; font-size: 46px; font-weight: 670; font-variant-numeric: tabular-nums; letter-spacing: -.04em; line-height: 1; }
.ta-total-score > span:not(.ta-score-tooltip) { margin-top: 5px; color: #b6c0ff; font-size: 14px; font-weight: 660; }

.ta-dimension { position: absolute; z-index: 5; width: 230px; min-height: 102px; display: grid; grid-template-columns: 43px minmax(0, 1fr); align-items: start; gap: 11px; padding: 8px; border: 0; background: transparent; text-align: left; cursor: help; }
.ta-dimension-trend { top: 0; left: 50%; transform: translateX(-50%); }
.ta-dimension-structure { top: 78px; right: 2.5%; }
.ta-dimension-momentum { right: 2.5%; bottom: 14px; }
.ta-dimension-volumePrice { top: 78px; left: 2.5%; }
.ta-dimension-volatility { bottom: 14px; left: 2.5%; }
.ta-dimension-icon { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 50%; color: currentColor; background: color-mix(in srgb, currentColor 18%, #090a0c); }
.ta-dimension-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ta-dimension-copy { min-width: 0; display: flex; flex-direction: column; }
.ta-dimension-title { color: #e8eaf2; font-size: 17px; font-weight: 650; white-space: nowrap; }
.ta-dimension-title strong { margin-left: 5px; color: currentColor; font-size: 22px; font-weight: 650; font-variant-numeric: tabular-nums; }
.ta-dimension small { overflow: hidden; color: var(--ta-muted); font-size: 10px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.ta-dimension.tone-blue { color: var(--ta-blue); }
.ta-dimension.tone-mint { color: var(--ta-mint); }
.ta-dimension.tone-green { color: var(--ta-green); }
.ta-dimension.tone-purple { color: var(--ta-purple); }
.ta-dimension.tone-orange { color: var(--ta-orange); }
.ta-spark { width: 118px; height: 34px; overflow: visible; }
.ta-spark path { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ta-spark.bars rect.positive { fill: var(--ta-green); }
.ta-spark.bars rect.negative { fill: var(--ta-red); }
.ta-spark.bars .baseline { stroke: rgba(255, 255, 255, .12); stroke-width: 1; }
.ta-spark.combo rect { fill: color-mix(in srgb, currentColor 50%, transparent); }
.ta-spark.combo path { stroke-width: 1.4; }
.ta-spark.boll path { stroke-width: 1.35; }
.ta-spark.boll .upper, .ta-spark.boll .lower { stroke: rgba(255, 180, 71, .72); }
.ta-spark.boll .middle { stroke: #f0c574; stroke-width: 1.8; }

.ta-radar-panel:has(.is-tooltip-open) { z-index: 80; }
.ta-dimension.is-tooltip-open, .ta-total-score.is-tooltip-open { z-index: 120; }
.ta-score-tooltip { position: fixed; z-index: 2147483000; inset: auto; width: 246px; max-height: min(70vh, 430px); display: none; overflow: auto; margin: 0; padding: 12px; border: 1px solid var(--ta-line-strong); border-radius: 12px; color: #eff1f8; background: rgba(7, 8, 11, .985); box-shadow: 0 18px 42px rgba(0, 0, 0, .58); text-align: left; pointer-events: none; overscroll-behavior: contain; }
.ta-score-tooltip:popover-open, .ta-dimension.is-tooltip-open .ta-score-tooltip:not([popover]), .ta-total-score.is-tooltip-open .ta-score-tooltip:not([popover]) { display: block; }
.ta-score-tooltip strong { display: block; margin-bottom: 8px; color: #fff; font-size: 12px; }
.ta-score-tooltip span { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0 2px; color: #d7dae5; font-size: 10px; }
.ta-score-tooltip span b { font-weight: 600; }
.ta-score-tooltip span em { color: #aeb6d7; font-style: normal; font-variant-numeric: tabular-nums; }
.ta-score-tooltip small { display: block; color: #777b87; font-size: 9px; line-height: 1.35; }
.ta-total-tooltip { width: 220px; }
.ta-total-tooltip > small { margin-top: 8px; color: #92a3ff; font-size: 16px; font-weight: 700; text-align: right; }

.ta-conclusions { min-height: 62px; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 18px; padding: 11px 20px; border-top: 1px solid rgba(255, 255, 255, .065); background: rgba(255, 255, 255, .018); }
.ta-conclusions > strong { color: #e9eaf1; font-size: 12px; }
.ta-conclusions > div { display: flex; align-items: center; justify-content: space-around; gap: 8px; flex-wrap: wrap; }
.ta-conclusions span { padding: 7px 14px; border: 1px solid currentColor; border-color: color-mix(in srgb, currentColor 22%, transparent); border-radius: 999px; font-size: 11px; font-weight: 650; }
.ta-conclusions .tone-blue { color: #91a5ff; background: rgba(120, 145, 255, .08); }
.ta-conclusions .tone-green, .ta-conclusions .tone-mint { color: #69e9bf; background: rgba(78, 224, 188, .08); }
.ta-conclusions .tone-purple { color: #b396ff; background: rgba(162, 120, 255, .08); }
.ta-conclusions .tone-yellow { color: #ffc56b; background: rgba(255, 180, 71, .08); }
.ta-conclusions .tone-muted { color: #979aa5; background: rgba(255, 255, 255, .035); }

.ta-trade-panel { grid-area: trade; min-width: 0; display: flex; flex-direction: column; overflow: hidden; }
.ta-trade-panel .ta-panel-title { display: block; }
.ta-trade-panel .ta-panel-title p { margin-top: 5px; text-align: left; }
.ta-trade-list { flex: 1; display: grid; grid-template-rows: repeat(4, minmax(0, 1fr)); gap: 7px; padding: 14px 16px 16px; }
.ta-trade-item { min-height: 60px; display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; gap: 9px; padding: 8px 10px; border: 1px solid color-mix(in srgb, currentColor 20%, transparent); border-radius: 13px; background: color-mix(in srgb, currentColor 7%, #070809); }
.ta-trade-icon { width: 34px; height: 34px; display: grid; place-items: center; }
.ta-trade-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ta-trade-item > div { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.ta-trade-item strong { color: currentColor; font-size: 12px; }
.ta-trade-item span:not(.ta-trade-icon) { overflow: hidden; color: #f0f1f6; font-size: clamp(15px, .8vw, 18px); font-weight: 680; line-height: 1.25; text-overflow: ellipsis; }
.ta-trade-item small { overflow: hidden; color: #777b86; font-size: 9px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.ta-trade-item.tone-mint { color: var(--ta-mint); }
.ta-trade-item.tone-green { color: var(--ta-green); }
.ta-trade-item.tone-red { color: var(--ta-red); }
.ta-trade-item.tone-blue { color: var(--ta-blue); }
.ta-trade-item.tone-purple { color: var(--ta-purple); }
.ta-trade-item.tone-orange { color: var(--ta-orange); }

.ta-score-trend { grid-area: trend; min-height: 344px; display: grid; grid-template-columns: minmax(0, 1fr) 174px; grid-template-rows: auto 1fr; margin-top: 14px; overflow: hidden; }
.ta-score-trend .ta-panel-title { grid-column: 1 / -1; }
.ta-score-heading { align-items: flex-start; }
.ta-score-heading > div:first-child { min-width: 0; }
.ta-score-heading p { margin-top: 4px; text-align: left; }
.ta-score-legend { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px 13px; color: var(--ta-muted); font-size: 11px; white-space: nowrap; }
.ta-score-legend span::before { width: 7px; height: 7px; display: inline-block; margin-right: 5px; border-radius: 2px; content: ""; }
.ta-score-legend .score-bullish::before { background: var(--ta-red); }
.ta-score-legend .score-neutral::before { background: var(--ta-blue); }
.ta-score-legend .score-bearish::before { background: var(--ta-mint); }
.ta-score-legend .rise::before { background: var(--ta-red); }
.ta-score-legend .fall::before { background: var(--ta-green); }
.ta-score-legend strong { padding: 5px 8px; border-radius: 10px; color: #aab8ff; background: rgba(120, 145, 255, .09); font-size: 11px; }
.ta-score-trend-chart { min-width: 0; height: 302px; margin: 0 0 6px 4px; }
.ta-signal-brief { margin-top: 14px; overflow: hidden; border-radius: 20px; }
.ta-signal-brief .ta-panel-title { align-items: end; padding: 18px 20px 15px; }
.ta-signal-brief .ta-panel-title h2 { font-size: 19px; }
.ta-signal-brief .ta-panel-title p { max-width: 62ch; font-size: 12px; line-height: 1.5; }
.ta-insight-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ta-line); }
.ta-insight-row { min-width: 0; padding: 18px 20px 20px; }
.ta-insight-row + .ta-insight-row { border-inline-start: 1px solid var(--ta-line); }
.ta-insight-row > span { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; color: var(--ta-muted); font-size: 18px; font-weight: 740; letter-spacing: -.015em; line-height: 1.25; }
.ta-insight-row > span svg { width: 20px; height: 20px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.9; }
.ta-insight-row > strong { display: block; color: #f4f5fa; font-size: clamp(17px, 1.35vw, 21px); font-weight: 700; letter-spacing: -.018em; line-height: 1.4; }
.ta-insight-row > p { margin-top: 9px; color: #a5a8b2; font-size: 12px; line-height: 1.6; }
.ta-insight-row.tone-strong > span { color: #ff9ea8; }
.ta-insight-row.tone-neutral > span { color: #aab8ff; }
.ta-insight-row.tone-weak > span { color: #79e7c0; }
.ta-insight-row.insight-score > span { color: #8da2ff; }
.ta-score-validation { align-self: stretch; display: flex; flex-direction: column; justify-content: center; margin: 14px 16px 16px 0; padding: 16px; border: 1px solid rgba(120, 145, 255, .18); border-radius: 16px; background: rgba(120, 145, 255, .055); }
.ta-validation-primary span { display: block; color: #d5d6d2; font-size: 11px; }
.ta-validation-primary strong { display: block; margin-top: 6px; color: #aab8ff; font-size: 29px; font-weight: 680; font-variant-numeric: tabular-nums; line-height: 1; }
.ta-score-validation dl { display: grid; gap: 7px; margin: 16px 0 0; }
.ta-score-validation dl div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ta-score-validation dt { color: var(--ta-muted); font-size: 11px; }
.ta-score-validation dd { margin: 0; color: #d5d6d2; font-size: 12px; font-variant-numeric: tabular-nums; }
.ta-score-validation p { margin-top: 15px; color: var(--ta-muted); font-size: 11px; line-height: 1.55; }
.ta-data-foot { position: relative; z-index: 1; margin: 10px 8px 0; color: rgba(229, 231, 241, .48); font-size: 9px; text-align: right; }

.ta-state-page { min-height: min(720px, calc(100vh - 110px)); }
.ta-state-header { min-height: 68px; display: flex; align-items: center; gap: 14px; padding: 12px 16px; border-radius: 18px; }
.ta-state-header .ta-search-wrap { width: min(360px, 70vw); }
.ta-loading, .ta-error-state { min-height: 430px; display: flex; flex-direction: column; align-items: center; justify-content: center; margin-top: 14px; border-radius: 20px; text-align: center; }
.ta-loading h2, .ta-error-state h2 { margin-top: 18px; font-size: 22px; }
.ta-loading p, .ta-error-state p { max-width: 58ch; margin-top: 8px; color: var(--ta-muted); font-size: 12px; line-height: 1.6; }
.ta-loader { width: 38px; height: 38px; border: 2px solid rgba(255, 255, 255, .09); border-top-color: var(--ta-mint); border-radius: 50%; animation: ta-spin .8s linear infinite; }
.ta-error-state > span { padding: 6px 11px; border-radius: 999px; color: #ff8b94; background: rgba(255, 107, 120, .1); font-size: 11px; }
.ta-error-state button { margin-top: 20px; padding: 10px 16px; border: 1px solid rgba(120, 145, 255, .35); border-radius: 11px; color: #dce2ff; background: rgba(120, 145, 255, .11); cursor: pointer; }
.ta-error-state button:hover { background: rgba(120, 145, 255, .18); }
.ta-echart-tooltip { min-width: 200px; padding: 10px 12px; }
.ta-echart-tooltip strong { display: block; margin-bottom: 6px; font-size: 12px; }
.ta-echart-tooltip span { display: flex; justify-content: space-between; gap: 14px; padding: 3px 0; color: #b9bdc9; font-size: 10px; }
.ta-echart-tooltip b { color: #dbe1ff; font-weight: 650; }

@keyframes ta-spin { to { transform: rotate(360deg); } }
@media (max-width: 1320px) {
  .ta-dashboard-header { grid-template-columns: minmax(300px, 1.4fr) auto auto; gap: 13px; }
  .ta-update { grid-column: 1 / -1; justify-content: flex-end; min-height: 0; margin-top: -8px; }
  .ta-radar-stage { min-height: 440px; }
  .ta-radar-stage::after { top: 210px; }
  .ta-radar-chart { top: 52px; width: min(45%, 410px); height: 340px; }
  .ta-total-score { top: 210px; }
  .ta-dimension { width: 206px; }
  .ta-dimension-structure, .ta-dimension-momentum { right: 0; }
  .ta-dimension-volumePrice, .ta-dimension-volatility { left: 0; }
}

@media (max-width: 1040px) {
  .technical-analysis-page { padding: 12px; border-radius: 20px; }
  .ta-technical-shell { grid-template-columns: minmax(0, 1fr); }
  .ta-score-summary { position: relative; top: auto; max-height: none; }
  .ta-summary-scroll { max-height: 280px; }
  .ta-dashboard-header { grid-template-columns: minmax(0, 1fr) auto auto; }
  .ta-identity { grid-column: 1 / -1; }
  .ta-search-wrap { grid-column: 1; }
  .ta-update { grid-column: 1 / -1; }
  .ta-dashboard-grid { grid-template-areas: "radar" "trade"; grid-template-columns: 1fr; }
  .ta-market-overview-grid { grid-template-columns: minmax(0, 1fr); }
  .ta-trade-panel { display: block; }
  .ta-trade-list { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; }
  .ta-radar-stage { min-height: 560px; }
}

@media (max-width: 720px) {
  .tracking-layout:has(.technical-main) { padding: 8px; gap: 8px; }
  .tracking-main.technical-main { padding-bottom: 10px; }
  .technical-analysis-page { padding: 8px; border-radius: 17px; }
  .ta-dashboard-header { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 12px; border-radius: 16px; }
  .ta-identity { grid-column: 1 / -1; }
  .ta-back { width: 32px; height: 32px; }
  .ta-brand-mark { width: 38px; height: 38px; border-radius: 11px; }
  .ta-identity h1 { font-size: 18px; }
  .ta-identity p { font-size: 9px; }
  .ta-search-wrap { grid-column: 1 / -1; }
  .ta-live-quote { grid-column: 1; gap: 7px; }
  .ta-live-quote strong { font-size: 29px; }
  .ta-live-quote span { font-size: 10px; }
  .ta-status-stack { grid-column: 2; flex-direction: column; align-items: flex-end; }
  .ta-status-chip { padding: 5px 8px; font-size: 9px; }
  .ta-update { grid-column: 1 / -1; margin-top: 0; justify-content: space-between; }
  .ta-summary-heading { align-items: flex-start; flex-direction: column; gap: 11px; }
  .ta-summary-controls { width: 100%; justify-content: space-between; gap: 8px; }
  .ta-timeframe-switch { grid-template-columns: repeat(5, minmax(38px, 1fr)); flex: 1 1 auto; }
  .ta-panel-title { display: block; padding: 15px 15px 0; }
  .ta-panel-title p { margin-top: 5px; text-align: left; }
  .ta-market-price-heading { padding-bottom: 10px; }
  .ta-market-period-control { width: 100%; margin: 12px 0 0; }
  .ta-market-period-control > span { text-align: left; }
  .ta-market-price-chart { height: 310px; margin: 0 2px 7px; }
  .ta-market-matrix-heading { display: flex; align-items: flex-start; }
  .ta-market-matrix-heading time { margin-left: auto; padding-left: 12px; text-align: right; }
  .ta-market-matrix-scroll { padding-inline: 8px; }
  .ta-market-score-matrix table { min-width: 560px; }
  .ta-market-score-matrix th, .ta-market-score-matrix td { height: 48px; }
  .ta-summary-heading { display: flex; align-items: flex-end; padding-bottom: 12px; }
  .ta-summary-heading > span { text-align: right; }
  .ta-summary-scroll table { min-width: 0; }
  .ta-summary-scroll th, .ta-summary-scroll td { padding-right: 11px; padding-left: 11px; }
  .ta-radar-stage { min-height: 540px; margin: 0 5px; }
  .ta-radar-stage::after { top: 182px; width: 110px; height: 86px; }
  .ta-radar-chart { top: 52px; width: 96%; height: 280px; }
  .ta-total-score { top: 182px; width: 110px; min-height: 86px; }
  .ta-total-score strong { font-size: 42px; }
  .ta-total-score > span:not(.ta-score-tooltip) { font-size: 11px; }
  .ta-dimension { width: calc(50% - 5px); min-height: 88px; grid-template-columns: 34px minmax(0, 1fr); gap: 7px; padding: 5px; }
  .ta-dimension-icon { width: 34px; height: 34px; }
  .ta-dimension-icon svg { width: 18px; height: 18px; }
  .ta-dimension-title { font-size: 13px; }
  .ta-dimension-title strong { font-size: 17px; }
  .ta-dimension small {
    display: -webkit-box;
    overflow: hidden;
    font-size: 9px;
    line-height: 1.35;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  .ta-spark { width: 92px; height: 28px; }
  .ta-dimension-trend { top: 0; width: 190px; }
  .ta-dimension-structure { top: 334px; right: 0; }
  .ta-dimension-volumePrice { top: 334px; left: 0; }
  .ta-dimension-momentum { right: 0; bottom: 4px; }
  .ta-dimension-volatility { left: 0; bottom: 4px; }
  .ta-score-tooltip { width: min(280px, calc(100vw - 24px)); max-height: min(62vh, 420px); }
  .ta-conclusions { grid-template-columns: 1fr; gap: 10px; padding: 12px 14px; }
  .ta-conclusions > div { justify-content: flex-start; }
  .ta-conclusions span { padding: 6px 10px; font-size: 10px; }
  .ta-trade-list { grid-template-columns: 1fr; padding: 14px; }
  .ta-trade-item { min-height: 70px; }
  .ta-score-trend { grid-template-columns: 1fr; min-height: 480px; }
  .ta-score-heading { display: block; }
  .ta-score-legend { justify-content: flex-start; margin-top: 10px; white-space: normal; }
  .ta-score-trend-chart { height: 340px; margin-right: 2px; }
  .ta-score-validation { display: grid; grid-template-columns: minmax(110px, .7fr) minmax(150px, 1fr); align-items: center; gap: 8px 16px; margin: 0 14px 14px; padding: 13px 14px; }
  .ta-score-validation dl { margin-top: 0; }
  .ta-score-validation p { grid-column: 1 / -1; margin-top: 2px; }
  .ta-insight-list { grid-template-columns: 1fr; }
  .ta-insight-row + .ta-insight-row { border-inline-start: 0; border-top: 1px solid var(--ta-line); }
  .ta-data-foot { text-align: left; line-height: 1.5; }
}

@media (max-width: 410px) {
  .ta-radar-stage { min-height: 540px; }
  .ta-radar-chart { height: 280px; }
  .ta-total-score { top: 182px; }
  .ta-dimension { width: calc(50% - 2px); }
  .ta-dimension-copy small { max-width: 122px; }
}

@media (prefers-reduced-motion: reduce) { .technical-analysis-page, .ta-loader { animation: none; } }
