/* Research hub (scoped) */
.hub .tabs{display:flex;gap:4px;margin-top:26px}
.hub .tab{background:transparent;border:0;color:#fff;opacity:.82;font:700 15px var(--body);padding:12px 18px;border-radius:12px 12px 0 0;cursor:pointer}
.hub .tab[aria-selected="true"]{background:var(--chalk);color:var(--ink);opacity:1}
.hub-main{padding:26px 0 70px}
.hub .view[hidden]{display:none}
.hub .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:22px}
.hub .kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.hub .kpi .v{font-family:var(--head);font-size:36px;line-height:1.05}
.hub .kpi .l{font-size:13.5px;color:var(--muted)}
.hub .panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 20px 18px;margin-bottom:18px}
.hub .panel h2{font-family:var(--head);font-weight:400;font-size:28px;text-transform:uppercase;letter-spacing:.02em;margin:0}
.hub .panel .sub{margin:4px 0 14px;color:var(--muted);font-size:14.5px}
.hub .two{display:grid;grid-template-columns:1.25fr 1fr;gap:18px}
@media (max-width:860px){.hub .two{grid-template-columns:1fr}}
.hub .controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.hub .chip{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:7px 13px;font:600 13.5px var(--body);cursor:pointer}
.hub .chip[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.hub .ctl-label{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-right:2px}
.hub .segm{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.hub .segm button{border:0;background:#fff;padding:7px 13px;font:600 13.5px var(--body);cursor:pointer;color:var(--ink)}
.hub .segm button[aria-pressed="true"]{background:var(--ink);color:#fff}
.hub .board{list-style:none;margin:0;padding:0}
.hub .row{display:grid;grid-template-columns:28px minmax(0,1.3fr) minmax(0,1.6fr) 74px;gap:10px;align-items:center;padding:8px 6px;border-radius:8px}
.hub .row:hover,.hub .row:focus{background:var(--soft);outline:0}
.hub .rank{font-weight:700;color:var(--muted);font-size:14px;text-align:right}
.hub .who2{min-width:0}
.hub .who2 .nm{display:flex;align-items:center;min-width:0}
.hub .who2 a{color:var(--ink);font-weight:700;text-decoration:none;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.hub .who2 a:hover{text-decoration:underline}
.hub .who2 .h{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hub .track{height:14px;position:relative}
.hub .bar{height:14px;background:var(--green);border-radius:0 4px 4px 0;min-width:3px;display:block}
.hub .num{font-weight:700;font-size:14px;text-align:right;font-variant-numeric:tabular-nums}
.hub .tg{display:inline-block;flex:none;font-size:11px;font-weight:800;border-radius:5px;padding:1px 6px;margin-left:6px;background:#EEF0EA;color:var(--ink)}
.hub .tg.official{background:#E1EEE6;color:var(--green)}.hub .tg.sells{background:#FBE7E5;color:var(--red)}.hub .tg.media{background:#E6ECF7;color:#2B3F73}.hub .tg.creator{background:#FFF4D1;color:#6B5200}
.hub .pf{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.hub .axisnote{font-size:12.5px;color:var(--muted);margin-top:10px}
.hub-tip{position:fixed;pointer-events:none;background:var(--ink);color:#fff;font-size:13px;padding:8px 10px;border-radius:8px;max-width:260px;z-index:60;opacity:0;transition:opacity .08s}
.hub-tip b{display:block}
.hub .cal{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.hub .cal li{border:1px solid var(--line);border-radius:12px;padding:11px 12px;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:start}
.hub .st{font-size:12px;font-weight:800;border-radius:999px;padding:3px 9px;white-space:nowrap}
.hub .st.posted{background:#E1EEE6;color:var(--green)}.hub .st.pending{background:#FFF4D1;color:#6B5200}.hub .st.watch{background:#E6ECF7;color:#2B3F73}.hub .st.partial{background:#FFF4D1;color:#6B5200}
.hub .cal .t{font-weight:700;font-size:14.5px}
.hub .cal .d{grid-column:2;font-size:13.5px;color:var(--muted)}
.hub .cal .d a{font-weight:700}
.hub .dates{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.hub .date{border:1px solid var(--line);border-left:5px solid var(--yellow);border-radius:12px;padding:12px 14px;background:#fff}
.hub .date .n{font-family:var(--head);font-size:32px;line-height:1}
.hub .date .n small{font-family:var(--body);font-size:13px;color:var(--muted);margin-left:4px}
.hub .date .w{font-weight:700;font-size:14.5px;margin-top:4px}
.hub .date .x{font-size:13px;color:var(--muted)}
.hub .date.past{opacity:.55;border-left-color:var(--line)}
.hub .libbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px}
.hub .search{flex:1 1 220px;min-width:160px;border:1.5px solid #D4D6CC;border-radius:12px;padding:10px 13px;font:15px var(--body);background:#fff}
.hub .start{background:#fff;border:1px solid var(--line);border-left:6px solid var(--yellow);border-radius:14px;padding:18px 20px;margin:14px 0 22px}
.hub .start h2{margin:0 0 6px;font-size:18px}
.hub .start ol{margin:0;padding-left:20px}.hub .start li{margin:5px 0}
.hub section{margin:28px 0}
.hub section h2{font-family:var(--head);font-weight:400;font-size:28px;letter-spacing:.02em;margin:0 0 4px;text-transform:uppercase}
.hub section p.sub{margin:0 0 12px;color:var(--muted);font-size:15px;max-width:720px}
.hub .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.hub .rc{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px 16px;display:flex;flex-direction:column;gap:5px}
.hub .rc h3{margin:0;font-size:15.5px;line-height:1.3}.hub .rc h3 a{color:var(--ink);text-decoration:none}.hub .rc h3 a:hover{text-decoration:underline}
.hub .who{font-size:13px;color:var(--muted)}.hub .why{font-size:14.5px;margin:2px 0 0}
.hub .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px}
.hub .tag{font-size:12px;font-weight:700;border-radius:6px;padding:2px 8px;background:#EEF0EA}
.hub .tag.official{background:#E1EEE6;color:var(--green)}.hub .tag.sells{background:#FBE7E5;color:var(--red)}.hub .tag.sport{background:#FFF4D1}
.hub .callout{background:#FFF8E1;border:1px solid #F3DE9C;border-radius:12px;padding:11px 13px;font-size:14.5px;margin:0 0 12px}
.hub .empty{display:none;color:var(--muted);font-size:15px;padding:20px 0}
.hub .howpick{border-top:1px solid var(--line);padding-top:20px;margin-top:30px;font-size:14px;color:var(--muted)}
@media (max-width:560px){.hub .row{grid-template-columns:22px minmax(0,1fr) 58px;row-gap:4px}.hub .rank{grid-row:1/3}.hub .who2{grid-column:2;grid-row:1}.hub .num{grid-column:3;grid-row:1}.hub .track{grid-column:2/4;grid-row:2}}
