.brand-loading { min-height:100vh; display:grid; place-content:center; gap:9px; color:#63708a; background:#f3f7fb; font-size:14px; text-align:center; }
.brand-loading strong { color:#1d2e4b; font-size:17px; }.brand-loading span { font-size:12px; }
.test-card { opacity:.48; filter:saturate(.55); }.test-badge,.real-pill { display:inline-block; padding:2px 5px; margin-left:5px; border-radius:3px; font-size:9px; line-height:12px; letter-spacing:.5px; vertical-align:middle; }.test-badge { color:#68778e; background:#e7edf4; }.real-pill { color:#08774e; background:#e0f6ec; }
.brand-select { display:inline-flex; align-items:center; gap:5px; height:34px; padding:0 8px 0 10px; color:#53647d; border:1px solid #dbe5f0; border-radius:7px; background:#fff; font-size:12px; }.brand-select select { border:0; outline:0; color:#24324c; background:transparent; font:inherit; }
.brand-filter-row { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:45px; padding:5px 0 10px; color:#68768d; font-size:12px; }.grain-tabs { display:flex; gap:5px; }.grain-tabs button { display:grid; gap:1px; min-width:78px; height:37px; color:#65738d; border:1px solid #dce5ef; border-radius:7px; background:#f8fafc; cursor:pointer; font-size:12px; }.grain-tabs button small { color:inherit; font-size:9px; }.grain-tabs button.selected { color:#fff; border-color:#287ced; background:#3386f3; }.source-note { padding:12px 3px; color:#53647d; font-size:12px; line-height:1.6; }.source-note p { margin:8px 0; }.source-note small { display:block; color:#8a96a8; }.trend-axis { display:flex; justify-content:space-between; margin:0 12px 0 39px; color:#7b8799; font-size:10px; }.side-nav-item:disabled { opacity:.48; cursor:default; }
@media (max-width:980px) { body { min-width:0; }.sidebar { position:static; width:100%; min-height:auto; }.dashboard-shell { display:block; }.dashboard-main { width:100%; margin-left:0; }.dashboard-header { grid-template-columns:1fr; }.header-meta { justify-items:start; margin-top:8px; }.toolbar { flex-wrap:wrap; }.channel-grid { grid-template-columns:1fr; }.kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.brand-filter-row { align-items:flex-start; flex-direction:column; }.lower-grid { grid-template-columns:1fr; } }
:root { --ink:#101b35; --muted:#65738d; --line:#e6edf5; --panel:#fff; --canvas:#f3f7fb; --blue:#428df2; --violet:#a66ae9; --pink:#ee6192; --green:#079a63; --sidebar:#111a2a; font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif; color:var(--ink); background:var(--canvas); }
* { box-sizing:border-box; }
body { margin:0; min-width:1120px; background:var(--canvas); }
button { font:inherit; }
.icon { width:20px; height:20px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.9; flex:0 0 auto; }
.dashboard-shell { min-height:100vh; display:flex; }
.sidebar { position:fixed; inset:0 auto 0 0; z-index:2; width:192px; display:flex; flex-direction:column; padding:17px 12px 20px; color:#f5f8ff; background:var(--sidebar); }
.brand { display:flex; align-items:flex-start; gap:10px; padding:0 5px 21px; }
.brand-spark { color:#8cc1ff; font-size:28px; line-height:28px; text-shadow:0 0 10px #437dcb; }
.brand strong { display:block; font-size:16px; line-height:20px; letter-spacing:-.3px; }
.side-nav { display:grid; gap:4px; }
.side-nav-item { display:flex; align-items:center; width:100%; min-height:48px; gap:12px; padding:8px 12px; color:#dbe4f4; border:0; border-radius:8px; background:transparent; text-align:left; cursor:pointer; }
.side-nav-item:hover { background:#1c2c47; }
.side-nav-item.active { color:#fff; background:#2c4d82; box-shadow:inset 0 0 0 1px rgba(157,194,255,.08); }
.side-nav-icon { display:grid; place-items:center; width:22px; height:22px; color:#dbe7fb; }
.side-nav-copy { min-width:0; }
.side-nav-copy strong,.side-nav-copy small { display:block; white-space:nowrap; }
.side-nav-copy strong { font-size:14px; line-height:19px; }
.side-nav-copy small { color:#98a5bc; font-size:12px; line-height:17px; }
.side-nav-item.active .side-nav-copy small { color:#c2d2ec; }
.data-note { display:flex; align-items:center; gap:14px; margin:auto 6px 0; padding:8px 3px; color:#9ba9c0; border:0; background:transparent; text-align:left; cursor:pointer; }
.data-note strong,.data-note small { display:block; font-size:12px; line-height:17px; font-weight:500; }
.dashboard-main { width:calc(100% - 192px); min-height:100vh; margin-left:192px; padding:0 12px 14px; background:var(--canvas); }
.dashboard-header { position:relative; display:grid; grid-template-columns:1fr auto; align-items:start; min-height:95px; padding:12px 8px 8px; background:rgba(255,255,255,.55); }
.dashboard-title h1 { margin:0; font-family:"PingFang SC","Microsoft YaHei",sans-serif; font-size:28px; line-height:37px; letter-spacing:.3px; }
.dashboard-title p { margin:2px 0 0; color:#63708a; font-size:14px; font-weight:600; letter-spacing:4px; }
.header-meta { display:grid; justify-items:end; gap:7px; }
.header-meta>span { color:#728097; font-size:11px; }
.toolbar { display:flex; gap:8px; }
.toolbar button,.chart-select { display:inline-flex; align-items:center; justify-content:center; gap:8px; height:34px; padding:0 12px; color:#24324c; border:1px solid #dbe5f0; border-radius:7px; background:rgba(255,255,255,.85); cursor:pointer; font-size:12px; white-space:nowrap; }
.toolbar .icon,.chart-select .icon { width:14px; height:14px; color:#60708b; }
.date-picker { min-width:224px; }.select-button { min-width:100px; }.select-button.currency { min-width:78px; }
.range-tabs { position:absolute; right:0; bottom:10px; display:flex; gap:5px; }
.range-tabs button { min-width:65px; height:35px; color:#65738d; border:1px solid #dce5ef; border-radius:8px; background:#f5f8fb; cursor:pointer; font-size:12px; }
.range-tabs button.selected { color:#fff; border-color:#287ced; background:#3386f3; box-shadow:0 4px 9px rgba(51,134,243,.22); }
.kpi-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:11px; padding:1px 0 11px; }
.kpi-card { display:flex; min-height:132px; align-items:flex-start; gap:14px; padding:15px 15px 12px; border-radius:8px; overflow:hidden; }
.kpi-card.blue { background:#eef7ff; }.kpi-card.mint { background:#effbf6; }.kpi-card.violet { background:#f7f0ff; }.kpi-card.orange { background:#fff5ef; }.kpi-card.teal { background:#effbf8; }
.kpi-icon { display:grid; place-items:center; width:54px; height:54px; flex:0 0 auto; border-radius:50%; }.kpi-icon .icon { width:27px; height:27px; stroke-width:2.2; }
.blue .kpi-icon { color:#2b80ee; background:#d7ebff; }.mint .kpi-icon { color:#13a16b; background:#d4f5e4; }.violet .kpi-icon { color:#9154e6; background:#ebd9ff; }.orange .kpi-icon { color:#f17f1f; background:#ffead3; }.teal .kpi-icon { color:#0a9b68; background:#d5f5e8; }
.kpi-copy { min-width:0; }.kpi-copy span,.kpi-copy strong,.kpi-copy em,.kpi-copy small { display:block; }.kpi-copy span { color:#34415a; font-size:13px; white-space:nowrap; }.kpi-copy strong { margin-top:2px; font-size:26px; line-height:32px; letter-spacing:.2px; }.kpi-copy em { margin-top:1px; color:var(--green); font-size:16px; font-style:normal; }.kpi-copy small { margin-top:6px; color:#60708a; font-size:12px; white-space:nowrap; }
.panel { border-radius:9px; background:var(--panel); box-shadow:0 2px 12px rgba(32,63,103,.025); }.channel-section { padding:9px 14px 7px; }.section-title { display:flex; align-items:center; gap:11px; min-height:25px; }.section-title h2 { margin:0; font-size:16px; line-height:22px; }.section-title>span { color:#62708a; font-size:13px; }.section-title .chart-select { margin-left:auto; height:29px; min-width:80px; padding:0 9px; font-size:11px; }.view-all { display:inline-flex; align-items:center; gap:4px; margin-left:auto; padding:0; color:#2677e4; border:0; background:transparent; cursor:pointer; font-size:11px; }.view-all .icon { width:14px; height:14px; }
.channel-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:7px; }.channel-card { min-width:0; padding:9px 14px 12px; border:1px solid #e2eaf3; border-radius:9px; background:#fff; }.channel-head { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:32px; }.channel-title { display:flex; align-items:center; gap:8px; min-width:0; }.channel-title strong { font-size:16px; white-space:nowrap; }.channel-title>span:last-child { color:#79869b; font-size:12px; white-space:nowrap; }.channel-icon { display:grid; place-items:center; width:34px; height:34px; flex:0 0 auto; border-radius:50%; }.channel-icon .icon { width:21px; height:21px; }.channel-icon.blue { color:#348cf5; background:#e3efff; }.channel-icon.mint { color:#0aa67b; background:#d8f8eb; }.channel-icon.pink { color:#11182c; background:#f7e5fa; }
.link-button { display:inline-flex; align-items:center; gap:3px; padding:0; color:#2879ec; border:0; background:transparent; cursor:pointer; font-size:12px; white-space:nowrap; }.link-button .icon { width:15px; height:15px; }
.channel-total { display:flex; align-items:baseline; gap:14px; padding:9px 4px 7px; border-bottom:1px solid #edf1f6; }.channel-total>span { color:#3c4d6a; font-size:13px; }.channel-total strong { font-size:25px; line-height:29px; }.channel-total em { color:var(--green); font-size:15px; font-style:normal; }.positive { color:#069a61!important; }.negative { color:#fa3040!important; }
.stat-grid { display:grid; grid-template-columns:repeat(4,1fr); padding:7px 0 9px; }.stat-grid>div { min-width:0; padding:0 8px; border-right:1px solid #edf1f6; }.stat-grid>div:first-child { padding-left:4px; }.stat-grid>div:last-child { border-right:0; }.stat-grid span,.stat-grid strong { display:block; }.stat-grid span { color:#62728e; font-size:11px; white-space:nowrap; }.stat-grid strong { margin-top:4px; font-size:16px; line-height:18px; white-space:nowrap; }
.contribution-box { padding:7px 0 0; border-radius:7px; background:#f8fafc; }.contribution-box>strong { display:block; padding:0 8px 7px; font-size:13px; }.contribution-track { display:flex; height:14px; margin:0 4px; gap:1px; overflow:hidden; border-radius:4px; }.contribution-track i { display:block; height:100%; }.contribution-track .blue { background:#428ef4; }.contribution-track .violet { background:#a465ee; }.contribution-track .pink { background:#ef6592; }.contribution-track .gold { background:#f9b356; }.contribution-legend { display:flex; justify-content:space-between; gap:8px; padding:9px 7px 1px; }.contribution-legend span { display:grid; grid-template-columns:8px auto; column-gap:5px; color:#3f4f68; font-size:11px; line-height:16px; }.contribution-legend .dot { grid-row:span 2; align-self:center; }.contribution-legend em { color:#1d2e4b; font-style:normal; }.contribution-legend small { grid-column:2; color:#5c6b84; font-size:11px; }.dot { display:inline-block; width:9px; height:9px; border-radius:2px; }.dot.blue { background:#428ef4; }.dot.violet { background:#a465ee; }.dot.pink { background:#ef6592; }.dot.gold { background:#f9b356; }
.lower-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:12px; margin-top:12px; }.contribution-panel,.trend-panel,.yesterday-panel,.attention-panel { padding:10px 14px 12px; }.contribution-content { display:grid; grid-template-columns:168px 1fr; gap:22px; align-items:center; min-height:181px; padding:4px 5px 0; }.donut-wrap { display:grid; place-items:center; }.donut { display:grid; place-items:center; width:164px; height:164px; border-radius:50%; background:conic-gradient(#428ef4 0 62%,#a465ee 62% 85%,#ef6592 85% 100%); }.donut::after { content:""; position:absolute; width:104px; height:104px; border-radius:50%; background:#fff; }.donut>div { position:relative; z-index:1; display:grid; justify-items:center; }.donut strong { font-size:17px; }.donut span { margin-top:2px; color:#77849a; font-size:12px; }.donut-list { display:grid; gap:0; }.donut-list>div { display:grid; grid-template-columns:minmax(120px,1fr) 35px 80px 56px; align-items:center; gap:6px; min-height:49px; border-bottom:1px solid #edf1f6; font-size:12px; }.donut-list>div:last-child { border-bottom:0; }.donut-list span { display:flex; align-items:center; gap:8px; white-space:nowrap; }.donut-list span small { color:#687690; font-size:11px; }.donut-list strong { font-size:14px; }.donut-list em { font-style:normal; color:#253552; }.donut-list i { color:var(--green); font-style:normal; white-space:nowrap; }
.chart-legend { display:flex; justify-content:center; gap:24px; margin:6px 0 1px; color:#6c7890; font-size:11px; }.chart-legend span { display:inline-flex; align-items:center; gap:6px; }.chart-legend i { width:17px; height:3px; border-radius:3px; }.trend-chart { display:block; width:100%; height:165px; overflow:visible; margin:0 0 0 28px; max-width:calc(100% - 28px); }.chart-grid line { stroke:#edf2f7; stroke-width:1; }.chart-labels { fill:#68768d; font-size:10px; }.chart-line { fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }.today-line { stroke:#dce5ef; stroke-dasharray:3 3; }
.bottom-grid { margin-top:12px; }.table-wrap { overflow-x:auto; margin-top:7px; border:1px solid #e4ebf3; border-radius:8px; } table { width:100%; border-collapse:collapse; font-size:12px; } th,td { height:32px; padding:0 12px; text-align:center; white-space:nowrap; border-right:1px solid #e4ebf3; border-bottom:1px solid #e4ebf3; } th { color:#596982; font-weight:500; background:#f1f6fa; } th:first-child,td:first-child { text-align:left; } td { color:#192a49; } td strong { font-size:13px; } td span { color:#65738b; font-size:11px; } tr:last-child td { border-bottom:0; } th:last-child,td:last-child { border-right:0; }.status { display:inline-block; width:12px; height:12px; border-radius:50%; }.status.green { background:#099760; }.status.red { background:#fa3442; }.status.orange { background:#ff9d13; }
.attention-list { display:grid; gap:3px; margin-top:7px; }.attention-item { display:grid; grid-template-columns:29px minmax(0,1fr) auto 14px; align-items:center; gap:9px; min-height:43px; padding:5px 8px; color:var(--ink); border:1px solid #e6edf4; border-radius:8px; background:#fff; text-align:left; cursor:pointer; }.attention-item:hover { border-color:#c8daf2; background:#f8fbff; }.attention-icon { display:grid; place-items:center; width:25px; height:25px; border-radius:50%; }.attention-icon .icon { width:14px; height:14px; color:#fff; }.attention-icon.red { background:#fa3341; }.attention-icon.orange { background:#ff9e18; }.attention-icon.green { background:#079760; }.attention-item strong,.attention-item small { display:block; }.attention-item strong { font-size:13px; line-height:17px; }.attention-item small { color:#8591a4; font-size:11px; line-height:15px; }.attention-item time { color:#8390a4; font-size:11px; white-space:nowrap; }.right-chevron { width:15px; color:#53647e; transform:rotate(-90deg); }
.toast { position:fixed; z-index:10; right:22px; bottom:20px; padding:10px 16px; color:#fff; border-radius:7px; background:#172641; box-shadow:0 10px 30px rgba(15,30,56,.25); font-size:12px; opacity:0; transform:translateY(8px); pointer-events:none; transition:.18s ease; }.toast.visible { opacity:1; transform:translateY(0); }
@media (max-width:1280px) { body { min-width:960px; }.kpi-card { gap:9px; padding-left:10px; padding-right:10px; }.kpi-icon { width:46px; height:46px; }.kpi-copy strong { font-size:22px; }.kpi-copy span { font-size:12px; }.contribution-content { grid-template-columns:132px 1fr; gap:12px; }.donut { width:132px; height:132px; }.donut::after { width:84px; height:84px; }.donut-list>div { grid-template-columns:minmax(90px,1fr) 32px 68px; }.donut-list i { grid-column:3; }.toolbar { gap:5px; }.toolbar button { padding:0 8px; } }
@media (max-width:980px) { body { min-width:760px; }.sidebar { width:166px; }.dashboard-main { width:calc(100% - 166px); margin-left:166px; }.brand strong { font-size:13px; }.side-nav-copy strong { font-size:12px; }.side-nav-copy small { font-size:10px; }.dashboard-header { grid-template-columns:1fr; gap:8px; }.header-meta { justify-items:start; }.range-tabs { right:8px; top:76px; bottom:auto; }.kpi-grid { grid-template-columns:repeat(3,1fr); }.channel-grid,.lower-grid { grid-template-columns:1fr; }.bottom-grid { grid-template-columns:1fr; } }


/* Dashboard interaction refinements */
.side-nav { width: 100%; min-width: 0; }
.side-nav-item { min-width: 0; overflow: hidden; }
.side-nav-copy { min-width: 0; flex: 1 1 auto; overflow: hidden; }
.side-nav-copy strong, .side-nav-copy small { max-width: 100%; white-space: normal; overflow-wrap: anywhere; word-break: break-word; }
.range-tabs { align-items: center; }
.range-tabs .date-picker { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 218px; height: 35px; padding: 0 10px; color: #51617a; border: 1px solid #dce5ef; border-radius: 8px; background: #fff; cursor: pointer; font-size: 11px; white-space: nowrap; }
.range-tabs .date-picker .icon { width: 14px; height: 14px; }
.range-tabs .date-picker .icon:last-child { color: #697993; }
.date-popover { position: absolute; z-index: 8; top: 77px; right: 0; display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 10px; min-width: 430px; padding: 12px; border: 1px solid #dce5ef; border-radius: 9px; background: #fff; box-shadow: 0 14px 34px rgba(32, 55, 88, .18); }
.date-popover[hidden] { display: none; }
.date-popover label { display: grid; gap: 5px; color: #697790; font-size: 11px; }
.date-popover input { height: 32px; padding: 0 8px; color: #22324e; border: 1px solid #dbe4ee; border-radius: 6px; background: #f9fbfd; font-size: 12px; }
.date-popover button { height: 32px; padding: 0 12px; color: #fff; border: 0; border-radius: 6px; background: #347ff0; cursor: pointer; font-size: 12px; }
.social-panel[hidden] { display: none; }
.social-panel { min-height: calc(100vh - 125px); margin-top: 12px; padding: 12px; }
.red-os-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 2px 10px; }
.red-os-head h2 { margin: 0; font-size: 18px; }
.red-os-head span { color: #77849a; font-size: 12px; }
.red-os-head a { display: inline-flex; align-items: center; gap: 5px; color: #2879ec; font-size: 12px; text-decoration: none; }
.red-os-head a .icon { width: 15px; height: 15px; }
.social-panel iframe { display: block; width: 100%; height: calc(100vh - 185px); min-height: 620px; border: 1px solid #dce5ef; border-radius: 7px; background: #fff; }
@media (max-width: 980px) {
  .range-tabs { flex-wrap: wrap; justify-content: flex-end; max-width: 100%; }
  .range-tabs .date-picker { min-width: 190px; }
  .date-popover { top: 116px; min-width: 390px; }
}


/* Date control layout */
.toolbar { align-items: center; }
.date-control { position: relative; flex: 0 0 auto; }
.date-popover { top: calc(100% + 8px); right: auto; left: 0; min-width: 430px; grid-template-columns: 1fr; gap: 10px; }
.date-presets { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.date-presets button { min-width: 0; height: 32px; padding: 0 8px; color: #65738d; border: 1px solid #dce5ef; border-radius: 6px; background: #f5f8fb; cursor: pointer; font-size: 12px; }
.date-presets button.selected { color: #fff; border-color: #287ced; background: #3386f3; }
.date-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; gap: 10px; }
@media (max-width: 980px) { .date-popover { top: calc(100% + 8px); right: 0; left: auto; min-width: 390px; } }

/* Module views */
.source-badge { display:inline-flex; align-items:center; gap:5px; color:#4d6b8d; font-size:11px; white-space:nowrap; }
.source-badge .icon { width:14px; height:14px; color:#2d86ee; }
.module-view { padding:0 0 14px; }
.module-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:15px 14px 17px; margin-bottom:12px; border-radius:9px; background:#fff; }
.module-kicker { color:#6a7890; font-size:11px; font-weight:700; letter-spacing:2px; }
.module-heading h2 { margin:4px 0 0; font-size:25px; line-height:32px; }
.module-heading p { margin:4px 0 0; color:#748198; font-size:12px; }
.empty-state { display:grid; justify-items:center; gap:8px; min-height:380px; padding:90px 20px; border:1px dashed #bfd1e5; border-radius:9px; background:linear-gradient(180deg,#fff,#f9fbfd); text-align:center; }
.empty-icon,.kol-mark { display:grid; place-items:center; width:62px; height:62px; color:#428df2; border-radius:50%; background:#e8f3ff; }
.empty-icon .icon,.kol-mark .icon { width:29px; height:29px; }
.empty-state strong { font-size:21px; }
.empty-state p { margin:0; color:#70809a; font-size:13px; }
.empty-state span { color:#9aa7b9; font-size:11px; }
.module-summary-grid,.module-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; margin-bottom:12px; }
.module-summary-grid article,.module-kpi-grid article { min-height:108px; padding:15px; border-radius:8px; background:#fff; box-shadow:0 2px 12px rgba(32,63,103,.025); }
.module-summary-grid span,.module-summary-grid strong,.module-summary-grid small,.module-kpi-grid span,.module-kpi-grid strong,.module-kpi-grid small { display:block; }
.module-summary-grid span,.module-kpi-grid span { color:#64738b; font-size:12px; }
.module-summary-grid strong,.module-kpi-grid strong { margin-top:8px; font-size:25px; line-height:31px; }
.module-summary-grid small,.module-kpi-grid small { margin-top:4px; color:#8491a5; font-size:11px; }
.embed-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px; padding:0 12px; border:1px solid #e1e9f2; border-bottom:0; border-radius:8px 8px 0 0; background:#f8fbfd; color:#687891; font-size:11px; }
.embed-toolbar a,.kol-intro a { display:inline-flex; align-items:center; gap:5px; color:#2879ec; font-size:12px; text-decoration:none; }
.embed-toolbar .icon,.kol-intro a .icon { width:14px; height:14px; }
.external-dashboard-frame { display:block; width:100%; height:calc(100vh - 190px); min-height:880px; border:1px solid #dce5ef; border-radius:0 0 8px 8px; background:#fff; }
.brand-embedded-frame-store { position:fixed; right:0; bottom:0; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }
.module-filters { display:flex; align-items:center; gap:8px; margin-bottom:12px; }
.module-filters button { display:inline-flex; align-items:center; gap:6px; height:34px; padding:0 11px; color:#30415c; border:1px solid #dbe5ef; border-radius:7px; background:#fff; cursor:pointer; font-size:12px; }
.module-filters button .icon { width:14px; height:14px; color:#68809d; }
.module-filters span { margin-left:auto; color:#8491a4; font-size:11px; }
.tiktok-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:12px; }
.tiktok-main,.tiktok-side { min-width:0; }
.tiktok-side { display:grid; align-content:start; gap:12px; }
.module-kpi-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.module-panel { padding:13px 14px; border-radius:9px; background:#fff; box-shadow:0 2px 12px rgba(32,63,103,.025); }
.module-panel h3 { margin:0; font-size:15px; }
.module-panel .section-title span { color:#728199; font-size:11px; }
.overview-chart { display:flex; align-items:end; gap:10px; height:176px; padding:24px 20px 18px; margin-top:8px; border-top:1px solid #edf2f7; background:repeating-linear-gradient(to bottom,#fff 0,#fff 34px,#edf2f7 35px); }
.overview-chart i { flex:1; min-width:9px; max-width:50px; border-radius:4px 4px 1px 1px; background:linear-gradient(180deg,#6daaf7,#3f8df4); }
.overview-chart i:nth-child(3n) { background:linear-gradient(180deg,#ca9af4,#a466e8); }
.overview-chart i:nth-child(4n) { background:linear-gradient(180deg,#f78eae,#ed5d8d); }
.overview-chart.wide { height:220px; }
.action-panel { margin-top:12px; }
.action-row { display:grid; grid-template-columns:105px 90px 1fr; gap:12px; align-items:center; min-height:48px; border-bottom:1px solid #edf2f7; font-size:12px; }
.action-row:last-child { border-bottom:0; }
.action-row time { color:#6d7b91; font-variant-numeric:tabular-nums; }
.action-row strong { color:#293a55; }
.action-row span { color:#78869a; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.store-snapshot { padding:16px; color:#fff; border-radius:9px; background:#111827; }
.snapshot-head,.snapshot-values,.snapshot-list span { display:flex; justify-content:space-between; align-items:center; }
.snapshot-head { color:#fff; font-size:13px; }
.snapshot-head span { color:#9ca9ba; font-size:11px; }
.snapshot-values { justify-content:flex-start; gap:32px; margin:20px 0 15px; }
.snapshot-values div span,.snapshot-values div strong { display:block; }
.snapshot-values div span { color:#9ca9ba; font-size:11px; }
.snapshot-values div strong { margin-top:4px; font-size:25px; }
.stacked-bar { display:flex; height:8px; overflow:hidden; border-radius:4px; background:#263244; }
.stacked-bar i:nth-child(1) { background:#f43f5e; }.stacked-bar i:nth-child(2) { background:#f59e0b; }.stacked-bar i:nth-child(3) { background:#3b82f6; }
.snapshot-list { display:grid; gap:8px; margin-top:15px; }
.snapshot-list span { color:#d8e0eb; font-size:11px; }.snapshot-list b { color:#fff; font-weight:500; }
.risk-row { display:grid; grid-template-columns:1fr auto 68px; align-items:center; gap:10px; min-height:45px; border-bottom:1px solid #edf2f7; font-size:12px; }.risk-row:last-child { border-bottom:0; }.risk-row b { color:#ee5d72; }.risk-row span { color:#8290a4; font-size:11px; text-align:right; }
.kol-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:12px; }.kol-intro { display:grid; justify-items:start; gap:10px; min-height:245px; }.kol-intro h3 { font-size:19px; }.kol-intro p { max-width:560px; margin:0; color:#718097; font-size:13px; line-height:1.7; }.kol-intro>span { color:#91a0b3; font-size:11px; }.kol-metrics { min-height:245px; }.kol-metric-list { display:grid; grid-template-columns:repeat(3,1fr); margin-top:20px; }.kol-metric-list div { padding:8px 12px; border-right:1px solid #e8eef5; }.kol-metric-list div:last-child { border-right:0; }.kol-metric-list span,.kol-metric-list strong,.kol-metric-list small { display:block; }.kol-metric-list span { color:#697890; font-size:12px; }.kol-metric-list strong { margin:19px 0 4px; font-size:27px; }.kol-metric-list small { color:#9aa6b6; font-size:11px; }
@media (max-width:1280px) { .tiktok-layout { grid-template-columns:minmax(0,1fr) 270px; }.module-heading h2 { font-size:22px; }.module-summary-grid strong,.module-kpi-grid strong { font-size:21px; } }
@media (max-width:980px) { .module-summary-grid,.module-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.tiktok-layout,.kol-grid { grid-template-columns:1fr; }.module-filters { flex-wrap:wrap; }.module-filters span { margin-left:0; }.external-dashboard-frame { min-height:700px; }.action-row { grid-template-columns:90px 80px 1fr; } }


/* EDM compact integrated view */
.dashboard-shell:not(.overview) .dashboard-header .toolbar { display: none; }
.edm-view { padding-bottom: 14px; }
.edm-module-tags { display: flex; align-items: center; gap: 6px; padding: 8px 10px; margin-bottom: 10px; overflow-x: auto; border: 1px solid #e2eaf3; border-radius: 8px; background: #f8fbfd; }
.edm-module-tags span { display: inline-flex; align-items: center; gap: 5px; min-height: 24px; padding: 0 8px; color: #6b7a91; border-radius: 5px; font-size: 10px; white-space: nowrap; }
.edm-module-tags span.active { color: #236fdb; background: #e8f2ff; }
.edm-module-tags b { color: #93a1b3; font-size: 9px; font-weight: 700; }
.edm-module-tags .active b { color: #347ff0; }
.edm-kpi-strip { display: grid; grid-template-columns: 1.35fr repeat(4, 1fr); gap: 9px; margin-bottom: 10px; }
.edm-kpi-strip article { min-width: 0; min-height: 78px; padding: 11px 12px; border: 1px solid #e4ebf3; border-radius: 8px; background: #fff; }
.edm-kpi-strip article span, .edm-kpi-strip article strong, .edm-kpi-strip article small { display: block; }
.edm-kpi-strip article span { color: #65748d; font-size: 11px; }
.edm-kpi-strip article strong { margin-top: 7px; color: #1a2a45; font-size: 21px; line-height: 24px; }
.edm-kpi-strip article small { margin-top: 5px; color: #8996a8; font-size: 10px; white-space: nowrap; }
.edm-kpi-strip .edm-primary-metric { border-color: #c7dcfb; box-shadow: inset 3px 0 #3789ed; }
.edm-kpi-strip .edm-primary-metric strong { color: #2677df; }
.edm-board-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.edm-board-panel { min-width: 0; padding: 12px 14px; border: 1px solid #e3eaf2; border-radius: 8px; background: #fff; }
.edm-overview-panel { grid-column: span 2; }
.edm-trend-panel { grid-column: span 2; }
.edm-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; min-height: 30px; }
.edm-section-mark { color: #6e7d94; font-size: 10px; font-weight: 700; letter-spacing: 1.1px; }
.edm-panel-head h3 { margin: 3px 0 0; color: #21324e; font-size: 15px; line-height: 20px; }
.edm-panel-meta { color: #93a0b0; font-size: 10px; white-space: nowrap; }
.edm-breakdown { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 12px; }
.edm-breakdown div { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 8px; }
.edm-breakdown span { color: #6d7c92; font-size: 11px; }
.edm-breakdown strong { color: #223552; font-size: 18px; }
.edm-breakdown em { grid-column: 2; color: #4387dd; font-size: 11px; font-style: normal; }
.edm-progress { display: flex; height: 8px; gap: 2px; margin-top: 11px; overflow: hidden; border-radius: 4px; background: #edf2f7; }
.edm-progress i { display: block; height: 100%; }
.edm-progress i:first-child { background: #438ef4; }
.edm-progress i:last-child { background: #a46be8; }
.edm-inline-stats { display: flex; gap: 20px; margin-top: 11px; color: #7c899c; font-size: 10px; }
.edm-inline-stats b { color: #2b3d59; font-size: 12px; }
.edm-rank-list, .edm-campaign-list { display: grid; gap: 0; margin-top: 7px; }
.edm-rank-list div, .edm-campaign-list div { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: center; gap: 8px; min-height: 34px; border-bottom: 1px solid #edf2f7; font-size: 11px; }
.edm-rank-list div:last-child, .edm-campaign-list div:last-child { border-bottom: 0; }
.edm-rank-list b { color: #9ba7b7; font-size: 10px; }
.edm-rank-list span, .edm-campaign-list span { overflow: hidden; color: #4c5d75; text-overflow: ellipsis; white-space: nowrap; }
.edm-rank-list strong, .edm-campaign-list strong { color: #253753; font-size: 12px; }
.edm-campaign-list div { grid-template-columns: minmax(0, 1fr) auto auto; }
.edm-campaign-list em { min-width: 35px; color: #0b9b6a; font-size: 10px; font-style: normal; text-align: right; }
.edm-campaign-list div:last-child em { color: #a08b56; }
.edm-content-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 10px 0 8px; }
.edm-content-grid div { padding: 8px; border-radius: 6px; background: #f7faff; }
.edm-content-grid strong, .edm-content-grid span { display: block; }
.edm-content-grid strong { color: #2778df; font-size: 18px; }
.edm-content-grid span { margin-top: 3px; color: #7c899b; font-size: 10px; white-space: nowrap; }
.edm-link-row { display: grid; grid-template-columns: minmax(0, 1fr) auto 15px; gap: 8px; align-items: center; min-height: 25px; border-top: 1px solid #edf2f7; color: #6d7b90; font-size: 10px; }
.edm-link-row b { color: #3d8ae8; font-weight: 600; }
.edm-link-row span:last-child { color: #a4afbd; text-align: right; }
.edm-radar { display: grid; gap: 9px; margin-top: 10px; }
.edm-radar div { display: grid; grid-template-columns: 68px minmax(100px, 1fr) 48px 56px; align-items: center; gap: 8px; color: #65748a; font-size: 10px; }
.edm-radar i { display: block; height: 7px; overflow: hidden; border-radius: 4px; background: #edf2f7; }
.edm-radar i b { display: block; height: 100%; border-radius: 4px; background: #4a91ef; }
.edm-radar strong { color: #273956; font-size: 11px; text-align: right; }
.edm-radar em { font-size: 10px; font-style: normal; text-align: right; }
@media (max-width: 1280px) { .edm-kpi-strip { grid-template-columns: 1.3fr repeat(4, 1fr); }.edm-kpi-strip article strong { font-size: 18px; }.edm-inline-stats { gap: 10px; } }
@media (max-width: 980px) { .edm-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }.edm-kpi-strip .edm-primary-metric { grid-column: span 2; }.edm-board-grid { grid-template-columns: 1fr; }.edm-overview-panel, .edm-trend-panel { grid-column: auto; }.edm-radar div { grid-template-columns: 60px minmax(70px, 1fr) 44px 48px; }.edm-inline-stats { flex-wrap: wrap; gap: 7px 14px; } }
/* Live cockpit responsive overrides must follow the legacy fixed-width rules. */
@media (max-width:980px) {
  body { min-width:0; }
  .dashboard-shell { display:block; min-width:0; }
  .sidebar { position:static; width:100%; min-height:auto; }
  .dashboard-main { width:100%; margin-left:0; }
  .dashboard-header { grid-template-columns:1fr; }
  .header-meta { justify-items:start; margin-top:8px; }
  .toolbar { flex-wrap:wrap; }
  .channel-grid,.lower-grid { grid-template-columns:1fr; }
  .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .brand-filter-row { align-items:flex-start; flex-direction:column; }
}

/* Keep GMV granularity controls attached to the trend chart, not global filters. */
.trend-heading { align-items:flex-start; }
.trend-heading > div:first-child { min-width:0; }
.trend-date-range { display:block; margin-top:3px; color:#7b8799; font-size:11px; }
.chart-grain-tabs { flex:0 0 auto; margin-left:auto; gap:3px; }
.chart-grain-tabs button { width:38px; min-width:38px; height:29px; padding:0; font-size:11px; }
@media (max-width:520px) { .trend-heading { gap:8px; }.chart-grain-tabs button { width:34px; min-width:34px; } }
/* The trend grain control is a compact, centered three-button group. */
.chart-grain-tabs { align-items:center; }
.chart-grain-tabs button { display:grid; place-items:center; align-content:center; gap:0; line-height:1; text-align:center; }
/* Let the EDM application use the full main canvas instead of sitting inside a second card. */
.edm-embedded-view .dashboard-main { padding:0 0 8px; }
.edm-embedded-view .dashboard-header { min-height:64px; padding:7px 12px 5px; }
.edm-embedded-view .module-view { padding:0 0 8px; }
.edm-embedded-view .embed-toolbar { min-height:32px; padding:0 10px; border-radius:0; }
.edm-embedded-view .external-dashboard-frame { height:calc(100vh - 104px); min-height:880px; border-right:0; border-bottom:0; border-left:0; border-radius:0; }

.trend-native-view .dashboard-main{padding-bottom:24px}.market-analysis-button{display:inline-flex;align-items:center;gap:7px;height:35px;padding:0 13px;color:#fff;border:0;border-radius:7px;background:#2d83eb;cursor:pointer}.market-analysis-button:disabled{opacity:.75}.trend-radar-page{display:grid;gap:12px}.trend-overview-row,.weekly-directions{padding:17px;border:1px solid #e1eaf3;border-radius:8px;background:#fff}.trend-overview-row{display:flex;justify-content:space-between;gap:20px}.trend-overview-row h2,.weekly-directions h2{margin:5px 0;color:#1b2c49;font-size:21px}.trend-overview-row p,.weekly-directions p{margin:0;color:#738198;font-size:12px;line-height:19px}.trend-slicer-row{display:flex;gap:6px;overflow:auto}.trend-slicer{flex:0 0 auto;height:31px;padding:0 11px;color:#607089;border:1px solid #dbe5ef;border-radius:6px;background:#fff;cursor:pointer;font-size:11px}.trend-slicer.selected{color:#fff;border-color:#2d83eb;background:#2d83eb}.signal-grid,.direction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.signal-card,.direction-card{padding:14px;border:1px solid #e1e9f2;border-top:3px solid #458ceb;border-radius:8px;background:#fff}.signal-card header,.direction-card header{display:flex;justify-content:space-between;gap:12px}.signal-card h3,.direction-card h3{margin:5px 0;color:#20314d;font-size:16px}.signal-card p,.direction-card p{color:#65748a;font-size:11px;line-height:18px}.signal-card header span,.direction-card header span{color:#637a99;font-size:9px;font-weight:700}.signal-card header>b{color:#1f70d4;font-size:21px;text-align:right}.signal-card header small{display:block;color:#16805c;font-size:9px}.platform-heat{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding-top:9px;border-top:1px solid #edf2f6}.platform-heat span{display:grid;grid-template-columns:15px 1fr;gap:3px;font-size:9px}.platform-heat b{display:grid;place-items:center;width:15px;height:15px;color:#3979c5;border-radius:50%;background:#eef5fe;font-size:8px}.platform-heat i{height:4px;overflow:hidden;border-radius:3px;background:#e8eef5}.platform-heat em{display:block;height:100%;background:#4a90eb}.platform-heat small{grid-column:2}.weekly-directions{display:block}.direction-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px}.direction-card{display:flex;flex-direction:column;min-height:205px;border-top-color:#9b65d6}.direction-card small{color:#8b98a9;font-size:9px}.direction-card button{margin-top:auto;height:29px;color:#236fca;border:1px solid #bed6f2;border-radius:5px;background:#fff;cursor:pointer;font-size:10px}.platform-coverage{display:flex;flex-wrap:wrap;gap:6px;color:#758398;font-size:10px}.platform-coverage b{padding:3px 6px;border:1px solid #dce7f1;border-radius:4px;background:#fff;font-size:9px}.platform-coverage small{margin-left:auto}@media(max-width:980px){.trend-overview-row{flex-direction:column}.signal-grid,.direction-grid{grid-template-columns:1fr}.platform-coverage small{width:100%;margin-left:0}}

/* Trend Radar v2 */
.trend-radar-v2 .dashboard-main{padding-bottom:32px}.radar-v2-content{display:grid;gap:16px}.radar-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px;border:1px solid #dfe7ef;border-radius:8px;background:#fff}.radar-intro>div>span,.section-heading>div>span{color:#2877cb;font-size:10px;font-weight:800;letter-spacing:.08em}.radar-intro h2,.section-heading h2{margin:5px 0 7px;color:#162b4a;font-size:22px;line-height:1.2}.radar-intro p,.section-heading p{margin:0;max-width:640px;color:#718097;font-size:12px;line-height:19px}.radar-intro>b{min-width:125px;padding:9px 12px;color:#2976cb;border-left:2px solid #4b92e8;background:#f4f8fd;font-size:13px;line-height:20px}.radar-intro>b small{color:#77869a;font-size:10px;font-weight:600}.radar-jump-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.radar-jump-grid button{display:grid;grid-template-columns:1fr auto;gap:4px;padding:14px;text-align:left;border:1px solid #dde7f0;border-radius:7px;background:#fff;cursor:pointer}.radar-jump-grid button:hover{border-color:#72a8e6;box-shadow:0 2px 8px #1c579014}.radar-jump-grid span{color:#60728b;font-size:11px;font-weight:700}.radar-jump-grid b{grid-row:span 2;color:#1d69be;font-size:26px;line-height:28px}.radar-jump-grid small{color:#8491a2;font-size:10px;line-height:15px}.radar-section{scroll-margin-top:15px;padding:18px;border:1px solid #dde7ef;border-radius:8px;background:#fff}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}.period-controls{display:grid;gap:6px;justify-items:end}.period-controls>div{display:flex;gap:4px}.period-controls button{height:28px;padding:0 10px;color:#62738d;border:1px solid #d8e3ee;border-radius:4px;background:#fff;font-size:10px;font-weight:700;cursor:pointer}.period-controls button.selected{color:#fff;border-color:#2e7ed6;background:#2e7ed6}.keyword-workbench{display:grid;grid-template-columns:minmax(245px,.8fr) minmax(0,2.2fr);min-height:350px;border:1px solid #e0e8f0;border-radius:6px;overflow:hidden}.term-list{display:flex;flex-direction:column;border-right:1px solid #e0e8f0;background:#f9fbfd}.term-list>div{display:flex;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #e0e8f0}.term-list>div span,.term-list>div small{color:#78889d;font-size:10px;font-weight:700}.radar-term-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px;padding:8px 12px;text-align:left;border:0;border-bottom:1px solid #edf1f5;background:transparent;cursor:pointer}.radar-term-row:hover,.radar-term-row.is-active{background:#edf6ff}.radar-term-row span{overflow:hidden;color:#31445f;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.radar-term-row small{color:#8695a9;font-size:9px}.radar-term-row b{grid-column:2;grid-row:span 2;color:#16835e;font-size:10px}.trend-chart-panel{display:flex;flex-direction:column;padding:17px}.chart-caption{display:flex;justify-content:space-between;gap:12px}.chart-caption span{color:#5d81aa;font-size:9px;font-weight:800;letter-spacing:.08em}.chart-caption h3{margin:4px 0;color:#1d3150;font-size:17px}.chart-caption>div:last-child{text-align:right}.chart-caption b{display:block;color:#16805c;font-size:17px}.chart-caption small{color:#7c8a9d;font-size:10px}.trend-bar-chart{display:flex;align-items:flex-end;gap:4px;flex:1;min-height:195px;margin-top:13px;padding:0 2px 1px;border-bottom:1px solid #dce6ef;background:repeating-linear-gradient(to bottom,transparent 0,transparent 48px,#edf2f6 49px)}.trend-bar{display:flex;align-items:flex-end;flex:1;min-width:2px;height:100%}.trend-bar i{display:block;width:100%;min-height:3px;border-radius:2px 2px 0 0;background:#4c93e9}.trend-bar:nth-child(3n) i{background:#74b0f0}.chart-axis{display:flex;justify-content:space-between;padding-top:7px;color:#8a97a8;font-size:9px}.chart-note{margin:12px 0 0;color:#7c899b;font-size:10px}.rising-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.rising-grid button,.hot-term{display:flex;flex-direction:column;gap:5px;min-height:112px;padding:12px;text-align:left;border:1px solid #e1e9f1;border-radius:6px;background:#fbfcfe;cursor:pointer}.rising-grid button:hover,.hot-term:hover{border-color:#76ace5;background:#f3f8fe}.rising-grid span,.hot-term span{color:#6d86a4;font-size:9px;font-weight:800}.rising-grid b,.hot-term b{color:#283d5a;font-size:12px;line-height:16px}.rising-grid small,.hot-term small{color:#16815f;font-size:10px;font-weight:700}.rising-grid i{margin-top:auto;color:#8290a1;font-size:9px;font-style:normal}.hot-term-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.platform-signal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:13px}.platform-signal{display:grid;grid-template-columns:84px 1fr 23px;align-items:center;gap:7px;padding:9px 10px;border-top:1px solid #e8eef4}.platform-signal span{color:#3f5470;font-size:10px;font-weight:700}.platform-signal i{height:5px;overflow:hidden;border-radius:4px;background:#e6eef6}.platform-signal i b{display:block;height:100%;border-radius:4px;background:#4790e7}.platform-signal strong{color:#246fc6;font-size:10px}.platform-signal small{grid-column:2 / 4;color:#8592a2;font-size:9px}.weekly-directions-v2{background:#fcfdff}.weekly-directions-v2>.section-heading>small{padding:5px 7px;color:#75879d;border:1px solid #dfe8f0;border-radius:4px;font-size:9px}.edm-direction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.edm-direction-card{display:flex;flex-direction:column;padding:15px;border:1px solid #dfe7f0;border-top:3px solid #7e61b9;border-radius:7px;background:#fff}.edm-direction-card header{display:flex;justify-content:space-between;align-items:center}.edm-direction-card header span{color:#7356ad;font-size:13px;font-weight:800}.edm-direction-card header small{padding:3px 5px;color:#6a7d96;border-radius:3px;background:#f1f5f9;font-size:9px}.edm-direction-card h3{margin:8px 0 12px;color:#243b5a;font-size:17px}.edm-direction-card section{padding:9px 0;border-top:1px solid #edf1f5}.edm-direction-card section strong{color:#536d8d;font-size:10px}.edm-direction-card section p{margin:4px 0 0;color:#62728a;font-size:11px;line-height:18px}.direction-evidence{display:flex;flex-wrap:wrap;gap:5px;margin:11px 0}.direction-evidence button{padding:4px 6px;color:#2b70be;border:1px solid #cae0f6;border-radius:4px;background:#f4f9fe;font-size:9px;cursor:pointer}.direction-evidence button small{margin-left:4px;color:#198260;font-size:9px;font-weight:700}.campaign-reference{display:grid;gap:3px;margin-top:auto;padding-top:10px;border-top:1px solid #eaf0f5}.campaign-reference span{color:#8794a6;font-size:9px;font-weight:700}.campaign-reference b{color:#36506e;font-size:10px;line-height:15px}.campaign-reference small{color:#718198;font-size:9px}.radar-platform-footer{display:flex;align-items:center;flex-wrap:wrap;gap:6px;color:#8190a4;font-size:10px}.radar-platform-footer>span{font-weight:700}.radar-platform-footer b{padding:4px 6px;color:#5c718c;border:1px solid #dbe5ee;border-radius:4px;background:#fff;font-size:9px}.radar-platform-footer small{margin-left:auto;color:#8190a2;font-size:9px}
@media(max-width:1040px){.radar-jump-grid,.rising-grid,.hot-term-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-signal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.edm-direction-grid{grid-template-columns:1fr}}@media(max-width:700px){.radar-intro,.section-heading{flex-direction:column}.radar-intro>b{min-width:0}.keyword-workbench{grid-template-columns:1fr}.term-list{border-right:0;border-bottom:1px solid #e0e8f0;max-height:290px;overflow:auto}.platform-signal-grid{grid-template-columns:1fr}.radar-jump-grid,.rising-grid,.hot-term-grid{grid-template-columns:1fr}.period-controls{justify-items:start}.radar-platform-footer small{width:100%;margin-left:0}}

/* Annotated keyword trend line */
.trend-line-chart{display:flex;flex:1;min-height:215px;margin-top:13px;border-bottom:1px solid #dce6ef}.trend-line-chart svg{display:block;width:100%;height:100%;overflow:visible}.trend-line-grid line{stroke:#e8eef4;stroke-width:1}.trend-line-area{fill:#4c93e9;fill-opacity:.1}.trend-line-path{fill:none;stroke:#347fd7;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.trend-chart-point circle{fill:#fff;stroke:#2878d2;stroke-width:3}.trend-chart-point text{fill:#5e7088;font-size:10px;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.trend-chart-point text tspan:last-child{fill:#176bc3;font-size:11px}

.trend-line-legend{display:flex;align-items:center;gap:6px;margin-top:12px;color:#64758b;font-size:10px;font-weight:700}.trend-line-legend i{display:block;width:18px;height:3px;border-radius:3px;background:#347fd7}.trend-line-legend small{margin-left:auto;color:#8a98a9;font-size:9px;font-weight:600}.market-analysis-progress{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:7px;padding:10px 12px;border:1px solid #c7def6;border-radius:6px;background:#f4f9ff;color:#2677cc;font-size:11px;font-weight:700}.market-analysis-progress i{height:6px;overflow:hidden;border-radius:4px;background:#d8e8f8}.market-analysis-progress i b{display:block;width:42%;height:100%;border-radius:4px;background:#3c8ee4;animation:market-analysis-loading 1s ease-in-out infinite alternate}.market-analysis-progress small{grid-column:1 / -1;color:#74869d;font-size:9px;font-weight:600}.market-analysis-progress.complete{border-color:#bce2d2;background:#f2fbf7;color:#188260}.market-analysis-progress.complete i b{width:100%;background:#2fa77a;animation:none}@keyframes market-analysis-loading{from{transform:translateX(-35%)}to{transform:translateX(120%)}}

.trend-line-chart{overflow-x:auto;overflow-y:hidden}.trend-line-chart svg{height:270px}.trend-line-chart.is-dense svg{min-width:1120px}.trend-series-point circle{fill:#347fd7;stroke:#fff;stroke-width:1.5}.trend-series-point text{fill:#75869a;font-size:8px;font-weight:600}.trend-series-point:hover circle{r:4;fill:#145fae}.trend-series-point:hover text{fill:#145fae;font-weight:800}
