/* Category Charts v1: clear app-scoped Top Free analytics, visually aligned with Keyword Monitor. */
body[data-page="trends"] #page-trends>.ctx-scoped-panel:not(.cat-page){display:none!important}
body[data-page="trends"] #page-trends>.cat-page{display:block!important}
body[data-page="trends"] .main-col{max-width:1600px;padding:24px 28px 54px}
.cat-page{--cat-border:var(--line,#e4eaf4);--cat-muted:var(--secondary,#6b7890);
 --cat-accent:#526fe6;--cat-soft:var(--soft,#f7f9fc);
 min-width:0;color:var(--ink,#24334b);font-variant-numeric:tabular-nums}
.cat-page .cat-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:17px}
.cat-kicker{font-size:10px;letter-spacing:1px;font-weight:840;color:#6170cb}
.cat-head h2{font-size:27px;line-height:1.28;letter-spacing:-.6px;font-weight:820;color:var(--ink-strong,#15243a);margin:6px 0}
.cat-head p{font-size:12px;line-height:1.55;color:var(--cat-muted);margin:0;max-width:760px}
.cat-head-tools{display:flex;gap:8px;flex:0 0 auto}
.cat-head-tools button{min-height:40px;border:1px solid var(--cat-border);border-radius:8px;
 background:var(--paper,#fff);color:var(--ink,#24334b);padding:8px 13px;
 font-size:11.5px;font-weight:775;cursor:pointer}
.cat-head-tools button:hover{background:var(--blue-bg,#eef1ff);border-color:#c7cff2;color:var(--cat-accent)}
.cat-head-tools button:disabled{opacity:.5}
.cat-source{min-height:47px;display:flex;flex-wrap:wrap;align-items:center;gap:9px 17px;
 background:var(--paper,#fff);border:1px solid var(--cat-border);border-radius:10px;
 padding:10px 15px;margin-bottom:13px;color:var(--cat-muted);font-size:11.5px;line-height:1.5}
.cat-source strong{color:var(--ink-strong,#15243a);font-weight:780}
.cat-state{font-size:10.5px;display:inline-flex;align-items:center;gap:5px;padding:5px 8px;
 border-radius:7px;border:1px solid transparent;white-space:nowrap;font-weight:770}
.cat-state.good{color:#267f65;background:#e9f8f1;border-color:#cbeadd}
.cat-state.warning{color:#a66b2c;background:#fff6e9;border-color:#f1dfbd}
.cat-state.bad{color:#bc4b52;background:#fff0f1;border-color:#f2d0d4}
.cat-filters{display:flex;flex-wrap:wrap;align-items:end;gap:9px;padding:17px 18px;
 background:var(--paper,#fff);border:1px solid var(--cat-border);border-radius:11px;margin-bottom:14px}
.cat-filters>label{display:flex;flex-direction:column;gap:6px;color:var(--cat-muted);
 font-weight:750;font-size:10.5px;min-width:0;flex:1 1 160px}
.cat-filters>label:first-child{flex:2 1 220px}
.cat-filters select{width:100%;height:42px;min-width:0;border:1px solid var(--cat-border);
 background:var(--paper,#fff);color:var(--ink-strong,#15243a);border-radius:8px;
 padding:7px 11px;font-size:12px;font-weight:700;cursor:pointer;text-overflow:ellipsis}
.cat-filters select:disabled{opacity:.63;cursor:default}
.cat-filters select:focus-visible,.cat-filters button:focus-visible,
.cat-page button:focus-visible,.cat-page a:focus-visible{outline:3px solid #a0aeff;outline-offset:2px}
.cat-chart-type{display:flex;flex-direction:column;gap:6px;min-width:236px;flex:1 1 250px}
.cat-chart-type>span{font-size:10.5px;font-weight:750;color:var(--cat-muted)}
.cat-type-tabs{display:flex;gap:3px;background:var(--cat-soft);border:1px solid var(--cat-border);
 border-radius:8px;padding:3px;height:42px}
.cat-type-tabs button{border:0;border-radius:6px;background:transparent;color:var(--cat-muted);
 padding:6px 13px;font-size:11.5px;white-space:nowrap;font-weight:730;cursor:default}
.cat-type-tabs button.active{background:#526fe6;color:white;box-shadow:0 1px 5px #526fe622}
.cat-type-tabs button:disabled{opacity:.5}
.cat-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:11px;margin-bottom:13px}
.cat-card{display:flex;align-items:flex-start;flex-direction:column;gap:8px;text-align:left;
 padding:16px 17px;background:var(--paper,#fff);border:1px solid var(--cat-border);
 border-radius:10px;color:var(--ink-strong,#15243a);cursor:pointer;min-width:0;transition:border .15s}
.cat-card.active{border-color:#8498ef;background:var(--blue-bg,#eff1ff);box-shadow:0 0 0 1px #b5befd}
.cat-card:hover{border-color:#859eec}
.cat-card-label{font-size:11.5px;font-weight:760;color:var(--cat-muted);line-height:1.35}
.cat-card strong{font-size:25px;letter-spacing:-.5px;line-height:1.15;font-weight:850;word-break:break-word}
.cat-card-foot{display:flex;width:100%;justify-content:space-between;gap:8px;
 font-size:10px;color:var(--cat-muted);font-weight:700;margin-top:3px}
.cat-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:15px}
.cat-kpi{display:flex;flex-direction:column;gap:7px;min-width:0;background:var(--paper,#fff);
 border:1px solid var(--cat-border);border-radius:10px;padding:16px 17px}
.cat-kpi strong{font-size:24px;letter-spacing:-.5px;font-weight:850;line-height:1.15;
 color:var(--ink-strong,#15243a)}
.cat-kpi span{font-size:11.5px;font-weight:760;line-height:1.45}
.cat-kpi small{font-size:10px;color:var(--cat-muted);line-height:1.55}
.cat-surface{min-width:0;background:var(--paper,#fff);border:1px solid var(--cat-border);
 border-radius:11px;overflow:hidden;margin-bottom:15px}
.cat-section-head{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:18px 20px 13px}
.cat-section-head h3{font-size:18px;line-height:1.3;margin:5px 0 4px;letter-spacing:-.25px;
 font-weight:820;color:var(--ink-strong,#15243a)}
.cat-section-head p{font-size:11px;color:var(--cat-muted);line-height:1.6;margin:0}
.cat-graph-meta{font-size:10.5px;color:var(--cat-muted);background:var(--cat-soft);
 border:1px solid var(--cat-border);padding:8px 10px;border-radius:7px;white-space:nowrap}
.cat-plot{padding:5px 18px 7px;min-height:225px;display:grid;place-items:center;color:var(--cat-muted)}
.cat-plot svg{display:block;width:100%;max-height:360px;min-height:215px;height:auto;color:var(--cat-muted)}
.cat-plot-empty{max-width:590px;margin:auto;text-align:center;font-size:12px;line-height:1.8;
 color:var(--cat-muted);padding:38px 20px}
.cat-graph-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;
 padding:12px 20px;font-size:10.5px;color:var(--cat-muted);line-height:1.55;
 background:var(--cat-soft);border-top:1px solid var(--cat-border)}
.cat-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:14px;align-items:start}
.cat-bottom>.cat-surface{margin-bottom:0}
.cat-bottom .cat-section-head{padding-bottom:14px}
.cat-table-holder{max-width:100%;overflow:auto;max-height:425px;scrollbar-color:#c9d2e3 transparent}
.cat-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;min-width:340px;
 color:var(--ink,#24334b)}
.cat-table th{background:var(--cat-soft);color:var(--cat-muted);text-align:left;
 font-weight:800;font-size:10.5px;position:sticky;top:0;z-index:2;white-space:nowrap}
.cat-table th,.cat-table td{border-top:1px solid var(--cat-border);padding:12px 14px;vertical-align:middle}
.cat-table td{font-size:11.7px;line-height:1.5}
.cat-table td b{color:var(--ink-strong,#15243a);font-size:12.4px;white-space:nowrap}
.cat-table td strong{font-size:11.7px;font-weight:765}
.cat-table tbody tr:hover td{background:var(--cat-soft)}
.cat-table tbody .cat-row-selected td{background:var(--blue-bg,#eef1ff)}
.cat-table tbody .cat-own-outside td{border-top:2px dashed #a4afe3;background:var(--cat-soft)}
.cat-table .cat-rank-emphasis{color:#455ece}
.cat-pill{display:inline-flex;margin-left:8px;border-radius:5px;padding:3px 6px;
 color:#5068cf;background:#e7edff;font-size:9px;font-weight:770;vertical-align:middle}
.cat-muted{color:var(--cat-muted)}
.cat-table a{color:var(--blue-strong,#5364db);font-weight:750;white-space:nowrap}
.cat-history-table{min-width:600px}
.cat-history-table .cat-tr-empty{color:var(--cat-muted)}
.cat-history-table .cat-tr-empty td b{color:var(--cat-muted);font-weight:630}
.cat-history-toggle{border-top:1px solid var(--cat-border)}
.cat-history-toggle summary{list-style:none;padding:11px 18px;cursor:pointer;color:var(--blue-strong,#5364db);
 font-size:11px;font-weight:780}
.cat-history-toggle summary::-webkit-details-marker{display:none}
.cat-history-toggle summary:hover{background:var(--cat-soft)}
.cat-method{border:1px solid var(--cat-border);border-radius:9px;color:var(--cat-muted);
 background:var(--cat-soft);padding:13px 16px;font-size:11px;line-height:1.7;margin:14px 0 25px}
.cat-empty{padding:23px;color:var(--cat-muted);font-size:12px;line-height:1.8}
@media (max-width:1200px){
 body[data-page="trends"] .main-col{padding:22px 20px}
 .cat-filters{gap:10px}
 .cat-bottom{grid-template-columns:1fr}
 .cat-table-holder{max-height:340px}
}
@media(max-width:900px){
 body[data-page="trends"] .main-col{padding:17px 14px 90px}
 .cat-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cat-head{flex-direction:column;align-items:stretch!important}
 .cat-head-tools{justify-content:flex-end}
}
@media(max-width:650px){
 body[data-page="trends"] .main-col{padding:14px 10px 92px}
 .cat-page .cat-head h2{font-size:22px}
 .cat-filters{padding:12px}
 .cat-filters>label{flex:1 1 calc(50% - 10px)}
 .cat-chart-type{flex:1 1 100%}
 .cat-type-tabs button{flex:1}
 .cat-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .cat-card{padding:12px}
 .cat-card strong{font-size:21px}
 .cat-kpis{gap:8px}
 .cat-kpi{padding:12px}
 .cat-kpi strong{font-size:21px}
 .cat-kpi small{font-size:9.5px}
 .cat-section-head{padding:13px;display:block}
 .cat-graph-meta{display:inline-block;margin-top:8px}
 .cat-plot{min-height:160px;padding:7px 8px}
 .cat-plot svg{min-height:160px}
 .cat-graph-foot{padding:11px 13px}
 .cat-bottom{gap:10px}
 .cat-method{font-size:10.5px}
}
body.dark .cat-page .cat-type-tabs button.active{background:#526fe6;color:white}
body.dark .cat-page .cat-card.active{background:var(--blue-bg);border-color:#798de1}
body.dark .cat-page .cat-state.good{background:#1c443b;color:#a2f1d3;border-color:#306554}
body.dark .cat-page .cat-state.warning{background:#4a3726;color:#ffdcba;border-color:#76563a}
body.dark .cat-page .cat-state.bad{background:#4d2a34;color:#ffb9c4;border-color:#704652}
body.dark .cat-table tbody .cat-row-selected td{background:var(--blue-bg)}
body.dark .cat-pill{background:#303d66;color:#b7c8ff}


/* Categories use the chart's period selector; collapse redundant global fields on phones. */
@media(max-width:650px){
 body[data-page="trends"] #contextBar{padding:9px 12px 10px;gap:6px}
 body[data-page="trends"] #contextBar .ctx-top{min-height:18px}
 body[data-page="trends"] #contextBar .ctx-fields{gap:7px}
 body[data-page="trends"] #contextBar .ctx-field:has(#ctxLanguage),
 body[data-page="trends"] #contextBar .ctx-field:has(#ctxPeriod){display:none!important}
 body[data-page="trends"] #contextBar .ctx-footer{display:none!important}
 body[data-page="trends"] #contextBar .ctx-app{grid-column:1/-1}
 body[data-page="trends"] #contextBar .ctx-app-field select{height:40px}
 .cat-head{margin-bottom:12px!important}
 .cat-head p{font-size:11.4px}
 .cat-head-tools button{min-height:37px;font-size:10.8px}
 .cat-source{margin-bottom:9px}
 .cat-filters{margin-bottom:11px}
}

/* Comparison chart v2 */
.cat-compare-field{flex:1 1 210px!important}
.cat-chart-legend{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:0 20px 8px;font-size:11.5px;font-weight:760;color:var(--ink)}
.cat-chart-legend>span{display:inline-flex;align-items:center;gap:7px}
.cat-chart-legend i{display:inline-block;width:19px;height:3px;border-radius:2px;background:#526fe6}
.cat-chart-legend .cat-legend-peer i{background:#b46a2a}
.cat-chart-legend small{margin-left:auto;color:var(--cat-muted);font-size:10px;font-weight:600}
.cat-plot{position:relative;display:block;min-height:300px;padding:0 16px 12px}
.cat-svg-wrap{position:relative;width:100%}
.cat-plot svg.cat-svg{width:100%;height:auto;min-height:260px;max-height:none;color:var(--cat-muted)}
.cat-chart-hit{cursor:crosshair}
.cat-hover-tooltip{position:absolute;z-index:5;top:15px;width:min(280px,85%);padding:12px 14px;background:var(--paper,#fff);border:1px solid var(--cat-border);border-radius:10px;box-shadow:0 10px 30px #14203122;color:var(--ink);pointer-events:none;font-size:11px}
.cat-hover-tooltip[hidden]{display:none}
.cat-tip-date{font-size:13px;display:block;margin-bottom:8px}
.cat-tip-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;justify-content:space-between;border-top:1px solid var(--cat-border);padding:8px 0}
.cat-tip-label{display:inline-flex;align-items:center;gap:6px;max-width:150px;overflow-wrap:anywhere}
.cat-tip-label i{display:inline-block;width:7px;height:7px;border-radius:100%;flex:0 0 auto}
.cat-tip-row strong{font-size:12px}
.cat-tip-row small{width:100%;text-align:right;color:var(--cat-muted)}
.cat-tip-source{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--cat-border);padding-top:8px;color:var(--cat-muted);font-size:10px}
.cat-outside-events{display:flex;flex-wrap:wrap;gap:6px 10px;padding:0 20px 13px}
.cat-outside-events:empty{display:none}
.cat-outside-label{width:100%;font-size:10px;color:var(--cat-muted);font-weight:760}
.cat-outside-event{font-size:10px;font-weight:680;border:1px solid var(--cat-border);border-radius:6px;padding:4px 8px;color:var(--cat-muted);background:var(--cat-soft)}
.cat-outside-event.primary{border-left:3px solid #526fe6}
.cat-outside-event.peer{border-left:3px solid #b46a2a}
@media(max-width:650px){
 .cat-compare-field{flex:1 1 100%!important}
 .cat-chart-legend{padding:0 10px 6px;gap:6px 12px}
 .cat-chart-legend small{width:100%;margin-left:0}
 .cat-plot{min-height:205px;padding:0 6px 8px}
 .cat-plot svg.cat-svg{min-height:180px}
 .cat-hover-tooltip{top:8px;width:min(250px,76vw)}
 .cat-outside-events{padding:0 10px 11px}
}

/* Compact category chart */
.cat-page #catPlot{min-height:0;padding:0 12px 5px}
.cat-page #catPlot svg.cat-svg{height:auto;min-height:0;max-height:none}
.cat-page #catGraphPanel .cat-section-head{padding:14px 18px 8px}
.cat-page #catGraphPanel .cat-chart-legend{padding:0 18px 6px;gap:6px 14px}
.cat-page #catGraphPanel .cat-chart-legend i{height:2px}
.cat-page #catGraphPanel .cat-outside-events{padding:0 18px 8px}
.cat-page #catGraphPanel .cat-graph-foot{padding:9px 18px}
@media(max-width:650px){
.cat-page #catPlot{min-height:0;padding:0 6px 5px}
.cat-page #catPlot svg.cat-svg{min-height:0}
.cat-page #catGraphPanel .cat-chart-legend{padding:0 10px 5px}
.cat-page #catGraphPanel .cat-graph-foot{padding:8px 11px}
}


/* Source-roster artwork and ownership badges */
.cat-roster-table th:first-child,.cat-roster-table td:first-child{width:65px}
.cat-roster-table .cat-app-line{display:flex;align-items:center;gap:10px;min-width:0}
.cat-app-icon{width:34px;height:34px;flex:0 0 34px;position:relative;display:grid;place-items:center;overflow:hidden;border:1px solid var(--cat-border,#e2e7ef);border-radius:9px;background:var(--cat-soft,#f3f6fa);color:var(--cat-muted,#727c8b)}
.cat-app-icon img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;background:var(--cat-soft,#f3f6fa)}
.cat-app-icon img[hidden]{display:none}
.cat-app-placeholder{font-size:13px;font-weight:800}
.cat-app-text{display:block;min-width:0;overflow-wrap:anywhere}
.cat-app-name{display:flex;align-items:center;flex-wrap:wrap;column-gap:7px;row-gap:4px}
.cat-roster-table .cat-app-name strong{font-size:12px;font-weight:750;line-height:1.35;overflow-wrap:anywhere}
.cat-app-publisher{display:block;margin-top:3px;font-size:10px;color:var(--cat-muted,#64748b)}
.cat-owner-badge{display:inline-flex;align-items:center;white-space:nowrap;border-radius:6px;background:#e8eefc;color:#405bb2;font-size:10px;line-height:1.2;font-weight:800;padding:4px 6px}
.cat-roster-table .cat-row-owned td{background:color-mix(in srgb,var(--blue-bg,#edf4ff) 55%,transparent)}
.cat-roster-table .cat-row-owned:hover td{background:var(--blue-bg,#edf4ff)}
.cat-roster-table .cat-row-selected td{background:var(--blue-bg,#edf4ff)}
.cat-outside-caption{display:block;padding:5px 0 0 44px;font-size:10px;color:var(--cat-muted,#64748b)}
body.dark .cat-owner-badge{background:#303d66;color:#b7c8ff}
@media(max-width:650px){.cat-roster-table .cat-app-line{gap:8px}.cat-roster-table .cat-app-icon{width:30px;height:30px;flex-basis:30px}.cat-roster-table td{padding:9px 11px}.cat-owner-badge{font-size:9px}}

/* Categories v2: entity colors are stable; movement has its own semantic color. */
.cat-page{--cat-peer:#a45e21;--cat-positive:#15734f;--cat-negative:#bb3548;--cat-muted:#58677d}
.cat-page [hidden]{display:none!important}
.cat-page .cat-period-field{display:none}
.cat-page .cat-filters{padding:14px 16px;gap:14px}
.cat-page .cat-filters>label:first-child{flex:1 1 220px}
.cat-page .cat-chart-type{flex:0 1 245px}
.cat-page .cat-head h2{font-size:28px}
.cat-page .cat-summary{margin:18px 0 14px}
.cat-page .cat-card.active{border-color:var(--cat-accent);box-shadow:inset 3px 0 var(--cat-accent)}
.cat-page .cat-card-label{font-size:13px;color:var(--ink-strong,#15243a)}
.cat-page .cat-card-foot{flex-wrap:wrap;font-size:11px;line-height:1.5}
.cat-page .cat-kpi{gap:8px;padding:18px}
.cat-page .cat-kpi strong{font-size:29px}
.cat-page .cat-kpi span{font-size:12px}
.cat-page .cat-kpi small{font-size:11px}
.cat-page .cat-kpi.cat-primary{border-top:3px solid var(--cat-accent)}
.cat-page .cat-kpi.cat-primary strong,.cat-page .cat-table .cat-primary-value{color:var(--cat-accent)}
.cat-page .cat-kpi.cat-up strong,.cat-page .cat-movement.up{color:var(--cat-positive)}
.cat-page .cat-kpi.cat-down strong,.cat-page .cat-movement.down{color:var(--cat-negative)}
.cat-page .cat-table .cat-peer-value{color:var(--cat-peer)}
.cat-movement{font-weight:800;white-space:nowrap}
.cat-movement.flat{color:var(--cat-muted)}
.cat-page .cat-bottom{grid-template-columns:1fr}
.cat-page .cat-table-holder{max-height:480px}
.cat-page .cat-table th{font-size:11.5px;padding:12px 16px}
.cat-page .cat-table td{font-size:12px;padding:12px 16px}
.cat-page .cat-roster-table .cat-app-name strong{font-size:13px}
.cat-roster-controls{display:flex;gap:12px;flex-wrap:wrap;padding:0 20px 12px;align-items:end}
.cat-roster-controls label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:750;color:var(--cat-muted);min-width:130px;flex:1}
.cat-roster-controls label.cat-search-field{flex:2;min-width:200px}
.cat-roster-controls select,.cat-roster-controls input{font:inherit;font-size:12px;height:42px;border:1px solid var(--cat-border);border-radius:8px;padding:8px 10px;background:var(--paper,#fff);color:var(--ink,#24334b);width:100%;min-width:0}
.cat-roster-controls :is(input,select):focus-visible,.cat-method-details summary:focus-visible,.cat-history-toggle summary:focus-visible{outline:3px solid #9aacf7;outline-offset:2px}
.cat-roster-controls select:disabled{opacity:.6}
.cat-roster-count{margin:0;padding:0 20px 12px;color:var(--cat-muted);font-size:11px;line-height:1.5}
.cat-page .cat-source{font-size:12px}
.cat-page .cat-graph-foot{font-size:11px}
.cat-page .cat-chart-legend small{font-size:11px}
.cat-gap-key{letter-spacing:2px;color:var(--cat-muted)}
.cat-method-details{margin:16px 0 24px;border:1px solid var(--cat-border);border-radius:10px;background:var(--paper,#fff);font-size:12px;color:var(--cat-muted)}
.cat-method-details summary{cursor:pointer;padding:14px 16px;font-weight:750}
.cat-method-details .cat-method{margin:0;border:0;border-top:1px solid var(--cat-border);border-radius:0;background:transparent}
body.dark .cat-page{--cat-positive:#83e4b6;--cat-negative:#ffa4b3;--cat-peer:#ffc78f;--cat-muted:#b1bdd0;--cat-accent:#a3b4ff}
body.dark .cat-page .cat-card.active{border-color:var(--cat-accent)}
@media(max-width:650px){
 .cat-page .cat-period-field{display:flex}
 .cat-page .cat-filters{gap:12px;padding:12px}
 .cat-page .cat-chart-type{flex:1 1 100%}
 .cat-page .cat-head h2{font-size:24px}
 .cat-page .cat-kpi{padding:14px}
 .cat-page .cat-kpi strong{font-size:24px}
 .cat-page .cat-card-label{font-size:12px}
 .cat-page .cat-card-foot{font-size:10px}
 .cat-roster-controls{padding:0 13px 12px;gap:10px}
 .cat-roster-controls label{min-width:110px}
 .cat-roster-controls label.cat-search-field{flex:1 1 100%}
 .cat-roster-count{padding:0 13px 12px}
 .cat-page .cat-table th,.cat-page .cat-table td{padding:11px 13px}
 .cat-page .cat-history-table{min-width:720px}
 .cat-page .cat-roster-table{min-width:0}
 .cat-page .cat-chart-legend small{font-size:10px}
}

.cat-chart-legend .cat-legend-peer i{background:repeating-linear-gradient(90deg,#b46a2a 0 5px,transparent 5px 8px)}

.cat-compare-badge{display:inline-flex;white-space:nowrap;border-radius:6px;background:#fff1e4;color:#955417;font-size:10px;line-height:1.2;font-weight:800;padding:4px 6px}
.cat-page .cat-roster-table .cat-row-peer td{background:#fff8f0}
.cat-page .cat-roster-table .cat-row-peer td:first-child{border-left:3px solid #b46a2a}
.cat-page .cat-history-table th small{display:block;max-width:180px;white-space:normal;line-height:1.4;font-weight:600;margin-top:4px}
body.dark .cat-compare-badge{color:#ffd5a6;background:#473327}
body.dark .cat-page .cat-roster-table .cat-row-peer td{background:#302923}

.cat-page .cat-table .cat-missing-value{color:var(--cat-muted);font-weight:600}
.cat-app-icon img{opacity:0}
.cat-app-icon img[data-loaded="true"]{opacity:1}
@media(max-width:650px){
 .cat-page .cat-axis text{font-size:27px}
 .cat-page .cat-series-primary line{stroke-width:3.2px}
 .cat-page .cat-series-peer line{stroke-width:2.8px}
}
/* The shared mobile context is in normal flow; a relative top offset obscures the heading. */
@media(max-width:900px){body[data-page="trends"]:not(.kw5-mode) .ctx-bar{top:auto}}

/* Keep direct store links beside each app in the saved chart roster. */
.cat-page .cat-roster-table .cat-store-cell{width:128px;text-align:right;white-space:nowrap}
.cat-page .cat-roster-table a.cat-store-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:7px 10px;border:1px solid var(--cat-border);border-radius:8px;font-size:11px;text-decoration:none;background:var(--paper,#fff);color:var(--cat-accent,#455ece)}
.cat-page .cat-roster-table a.cat-store-link:hover{background:var(--cat-soft)}
.cat-page .cat-roster-table a.cat-store-link:focus-visible{outline:3px solid #a5b4fc;outline-offset:2px}
@media(max-width:650px){
 .cat-page .cat-roster-table .cat-store-cell{width:94px;padding-left:5px;padding-right:9px}
 .cat-page .cat-roster-table a.cat-store-link{font-size:10px;padding:6px;gap:4px}
 .cat-page .cat-roster-table th:first-child,.cat-page .cat-roster-table td:first-child{width:46px;padding-left:9px;padding-right:5px}
}

/* Category toolbar: one category choice and one comparison, with quiet diagnostics. */
.cat-page .cat-head{margin-bottom:16px;align-items:flex-start}
.cat-page .cat-head .cat-kicker{display:none}
.cat-page .cat-head h2{font-size:24px;margin:0 0 5px}
.cat-page .cat-head-tools button{min-height:40px;font-weight:650}
.cat-page .cat-filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.3fr);align-items:start;gap:20px;padding:16px;margin-bottom:0}
.cat-page .cat-filters>label{min-width:0;gap:8px;font-size:12px;font-weight:600}
.cat-filter-label{display:flex;align-items:center;gap:9px;min-height:22px}
.cat-chart-badge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:5px;font-size:10px;font-weight:600;line-height:1.3;color:var(--cat-muted);background:var(--cat-soft);border:1px solid var(--cat-border)}
.cat-page .cat-filters select{height:42px;font-size:13px;font-weight:600}
#catCompareNote{font-size:11px;line-height:1.4;color:var(--cat-muted);font-weight:400;min-height:16px}
.cat-source-details{margin:8px 0 16px;color:var(--cat-muted);font-size:11px}
.cat-source-details>summary{cursor:pointer;width:fit-content;min-height:32px;display:list-item;align-content:center;padding:7px 0;font-weight:600}
.cat-source-details>summary:focus-visible{outline:3px solid #9aacf7;outline-offset:3px;border-radius:3px}
.cat-source-details.has-warning>summary{color:var(--cat-negative,#bb3548)}
.cat-source-details .cat-source{margin:6px 0 0;box-shadow:none;background:var(--cat-soft);font-size:11px}
.cat-page .cat-kpis{gap:0;border:1px solid var(--cat-border);border-radius:10px;background:var(--paper,#fff);overflow:hidden;margin-bottom:18px}
.cat-page .cat-kpi{padding:14px 16px;gap:6px;background:transparent;border:0;border-radius:0;border-right:1px solid var(--cat-border)}
.cat-page .cat-kpi:last-child{border-right:0}
.cat-page .cat-kpi.cat-primary{border-top:0}
.cat-page .cat-kpi strong{font-size:22px;line-height:1.3;letter-spacing:-.3px}
.cat-page .cat-kpi>span{font-size:11px;font-weight:600;color:var(--cat-muted);order:-1}
.cat-page .cat-kpi small{font-size:10px;line-height:1.5}
.cat-page .cat-kpi.cat-neutral strong{font-size:19px;color:var(--cat-muted)}
@media(max-width:900px){.cat-page .cat-kpi:nth-child(2){border-right:0}.cat-page .cat-kpi:nth-child(-n+2){border-bottom:1px solid var(--cat-border)}}
@media(max-width:650px){
 .cat-page .cat-head{gap:12px;flex-direction:column}
 .cat-page .cat-head h2{font-size:22px}
 .cat-page .cat-head-tools{justify-content:flex-start}
 .cat-page .cat-filters{grid-template-columns:minmax(0,1fr);gap:14px;padding:13px}
 .cat-page .cat-kpi{padding:12px;gap:5px}
 .cat-page .cat-kpi strong{font-size:20px}
 .cat-page .cat-kpi.cat-neutral strong{font-size:17px}
 .cat-page .cat-kpi>span{font-size:10px}
 .cat-page .cat-kpi small{font-size:10px}
}

.cat-promo-status{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;padding:10px 18px;border-top:1px solid var(--line,#e1e7f0);font-size:11px;color:var(--secondary,#64748b)}
.cat-promo-status[hidden],.cat-promo-timeline[hidden]{display:none!important}
.cat-promo-toggle{display:inline-flex;align-items:center;gap:7px;min-height:36px;font-weight:650;cursor:pointer}
.cat-promo-toggle input{width:16px;height:16px;margin:0;accent-color:var(--ui-own,#526fe6)}
.cat-promo-state{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.cat-promo-state .app-identity{max-width:230px;font-size:11px}
.cat-promo-badge{font-size:10px;padding:4px 7px;border:1px solid var(--line,#e1e7f0);border-radius:5px;background:var(--soft,#f6f8fc)}
.cat-promo-badge.active{color:var(--ui-positive,#167753);background:color-mix(in srgb,var(--ui-positive,#167753) 8%,var(--paper,#fff))}
.cat-promo-badge.upcoming{color:var(--ui-own,#526fe6)}
.cat-promo-help{margin-left:auto;font-size:10px}
.cat-promo-help summary{min-height:34px;display:flex;align-items:center;cursor:pointer}
.cat-promo-help[open]{flex-basis:100%;margin-left:0}
.cat-promo-help p{margin:0 0 6px;line-height:1.7;max-width:850px}
.cat-promo-timeline{box-sizing:border-box;margin:0 12px 12px;padding:10px var(--promo-right,3%) 0 var(--promo-left,7%);border-top:1px solid var(--line,#e1e7f0)}
.cat-promo-range{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:var(--secondary,#64748b);margin-bottom:8px}
.cat-promo-lane{--promo-color:var(--ui-own,#526fe6);margin-top:8px}
.cat-promo-lane.peer{--promo-color:var(--ui-peer,#a45e21)}
.cat-promo-app{font-size:11px;color:var(--promo-color);margin-bottom:5px}
.cat-promo-track{position:relative;height:30px;border-radius:5px;background:var(--soft,#f6f8fc);margin-bottom:5px}
.cat-promo-bar{position:absolute;inset-block:0;box-sizing:border-box;padding:7px 8px;border-radius:5px;background:color-mix(in srgb,var(--promo-color) 14%,var(--paper,#fff));box-shadow:inset 3px 0 var(--promo-color);color:var(--promo-color);font-size:11px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none}
.cat-promo-bar:hover{background:color-mix(in srgb,var(--promo-color) 23%,var(--paper,#fff))}
.cat-promo-undated{display:inline-flex;font-size:11px;color:var(--promo-color);min-height:30px;align-items:center}
.cat-promo-status :focus-visible,.cat-promo-timeline :focus-visible{outline:3px solid #91a6f3;outline-offset:3px}
@media(max-width:650px){.cat-promo-status{padding:8px 10px;gap:6px 10px}.cat-promo-state{width:100%}.cat-promo-state .app-identity{max-width:180px}.cat-promo-help{margin-left:0}.cat-promo-timeline{margin-inline:10px}.cat-promo-range{font-size:9px}}
