/* ═══════════════════════════════════════════════════════════════════════
   LAZY THREAD — khung giao diện và các trang chính (dựng lại 12/10/2026)

   Một tệp cho phần khung (thanh bên, thanh trên, điều hướng), trang Hôm nay /
   Phốt và drama, Chuyện đang xảy ra, Vì sao nổ và nhóm khối của Phân tích viral.
   Token màu, chữ, thành phần nền (bảng, ô lọc, biểu đồ) vẫn ở app.css.

   Người dùng chính: team social intel của agency, ngồi máy tính ban ngày, quét
   nhiều chuyện một lượt rồi mới đào sâu một chuyện. Vì vậy:
   - Danh sách đặc nhưng đọc được, chi tiết nằm NGAY CẠNH, không phải cuộn.
   - Màu nhấn chỉ một xanh. Thang nhiệt xanh = "nhiều/ít"; đỏ/cam/lục dành cho
     sắc thái dư luận, không mượn cho việc khác.
   - Không viền nhấn một bên, không chữ gradient, không lưới thẻ giống hệt nhau.
   ═══════════════════════════════════════════════════════════════════════ */
:root{ --rail-w:224px; }
html{scroll-padding-top:calc(var(--top-h) + 64px)}
body.hn-open{overflow:hidden}

/* ---------- khung: thanh bên + vùng chính ---------- */
.shell{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);min-height:100vh}
.main{min-width:0}
.rail{position:sticky;top:0;height:100vh;align-self:start;display:flex;flex-direction:column;gap:20px;
  padding:18px 12px;background:var(--panel);border-right:1px solid var(--line)}
.rail-brand{display:flex;align-items:center;gap:10px;padding:2px 10px;color:var(--ink);
  font-size:16px;font-weight:750;letter-spacing:-.015em;text-decoration:none}
.mark{width:34px;height:34px;display:block;object-fit:contain;flex:none}
.rail-nav{display:flex;flex-direction:column;gap:2px}
.rn{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 12px;border-radius:9px;
  color:var(--ink2);font:600 14px/1.2 var(--sans);text-decoration:none;
  transition:background .12s,color .12s}
.rn svg{flex:none}
.rn:hover{background:var(--bg2);color:var(--ink)}
.rn[aria-current="page"]{background:var(--blue-soft);color:var(--blue)}
.l-short{display:none}

.top{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:12px 28px;background:var(--bg);border-bottom:1px solid var(--line)}
.top-mark{display:none}
.bname{margin:0;font-size:20px;font-weight:750;letter-spacing:-.02em;line-height:1.2}
.rightside{margin-left:auto;display:flex;align-items:center;gap:12px;min-width:0}
.wrap{max-width:1500px;margin:0 auto;padding:22px 28px 80px}
.rangebox{display:none}
body[data-route="phan-tich"] .rangebox{display:block}
.mock-bar{background:var(--tranh-cai-bg);color:var(--tranh-cai-fg);font-size:12px;text-align:center;padding:6px 12px}
@media (max-width:1500px){ .acct #who{display:none} }
@media (max-width:1180px){ .by{display:none} }

/* ---------- thanh chuyển nhanh trong Phân tích viral ---------- */
.jump{position:sticky;top:var(--top-h);z-index:40;display:flex;gap:6px;overflow-x:auto;
  margin:-22px -28px 20px;padding:10px 28px;background:var(--bg);border-bottom:1px solid var(--line);
  scrollbar-width:none}
.jump::-webkit-scrollbar{display:none}
.jump a{flex:0 0 auto;padding:7px 13px;border-radius:20px;font:600 13px var(--sans);color:var(--ink2);
  text-decoration:none;border:1px solid transparent}
.jump a:hover{color:var(--ink);background:var(--bg2)}
.jump a.on{background:var(--ink);color:var(--panel)}
.grp{margin-bottom:36px}
.grp-h{margin-bottom:14px}
.grp-h h2{margin:0;font-size:18px;font-weight:750;letter-spacing:-.015em}
.grp-h p{margin:3px 0 0;font-size:13px;color:var(--ink3)}

/* ---------- ô lọc dùng chung ---------- */
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.fl{font-size:12px;font-weight:600;color:var(--ink3);margin-right:4px}
.fc{appearance:none;font:600 13px var(--sans);color:var(--ink2);background:var(--panel);
  border:1px solid var(--line2);border-radius:20px;padding:7px 13px;min-height:36px;cursor:pointer;
  white-space:nowrap;transition:background .12s,color .12s,border-color .12s}
.fc:hover{border-color:var(--blue);color:var(--ink)}
.fc b{font:600 12px var(--mono);margin-left:4px;color:var(--ink3)}
.fc.on{background:var(--ink);border-color:var(--ink);color:var(--panel)}
.fc.on b{color:var(--line2)}

/* ═══════════ Hôm nay / Phốt và drama ═══════════ */
.nong-note{padding:28px 16px;text-align:center;color:var(--ink2);font-size:14px;
  background:var(--panel);border:1px dashed var(--line2);border-radius:var(--r)}
.nong-note.err{color:var(--tieu-cuc-fg);border-color:var(--tieu-cuc)}
.hn-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;margin-bottom:14px}
.hn-intro-t{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 360px}
.hn-lead{margin:0;font-size:15px;color:var(--ink2);max-width:70ch}
.hn-time{font-size:12px;color:var(--ink3)}
.hn-time.cu{color:var(--accent-strong);font-weight:600}
.hn-search{position:relative;display:block;flex:0 1 380px;min-width:240px}
.hn-search svg{position:absolute;left:12px;top:50%;margin-top:-8px;color:var(--ink3);pointer-events:none}
.hn-search input{width:100%;min-width:0;min-height:40px;padding:9px 12px 9px 36px;font-size:14px;
  background:var(--panel);border:1px solid var(--line2);border-radius:10px}
.c-search{flex:none;max-width:420px;margin-bottom:16px}
.hn-btn{appearance:none;margin-top:10px;min-height:44px;padding:0 16px;font:600 14px var(--sans);
  color:var(--blue);background:var(--blue-soft);border:1px solid var(--line2);border-radius:9px;cursor:pointer}
.hn-btn:hover{border-color:var(--blue)}
.len{display:inline-block;vertical-align:1px;margin-left:4px;padding:1px 7px;border-radius:5px;
  font:700 11px/1.5 var(--sans);letter-spacing:.01em;background:var(--ink);color:var(--panel);white-space:nowrap}
.len::before{content:'↑ '}
.tag.len{background:var(--ink);color:var(--panel);border-color:var(--ink);font-size:12px;vertical-align:baseline;margin-left:0}
.hd-len{margin:8px 0 0;font-size:14px;line-height:1.5;color:var(--ink2)}
.hd-len b{font-family:var(--mono);color:var(--ink)}
.fc.len-fc{border-style:dashed}
.fc.len-fc.on{border-style:solid}
:focus-visible{outline:2px solid var(--blue-mid);outline-offset:2px}
.hn-row:focus-visible{outline-offset:-3px}
.hn-filters{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}

.hn-grid{display:grid;grid-template-columns:minmax(360px,440px) minmax(0,1fr);gap:18px;align-items:start}
.hn-listwrap,.hn-detail{position:sticky;top:calc(var(--top-h) + 14px);
  max-height:calc(100vh - var(--top-h) - 28px);background:var(--panel);
  border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.hn-listwrap{display:flex;flex-direction:column;overflow:hidden}
.hn-listwrap .nong-note{border:0;border-radius:0;background:none}
.hn-legend{padding:10px 16px;font-size:12px;line-height:1.45;color:var(--ink3);background:var(--panel2);
  border-bottom:1px solid var(--line)}
.hn-list{list-style:none;margin:0;padding:0;overflow:auto;flex:1;min-height:0}
.hn-row{appearance:none;display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:12px;width:100%;
  text-align:left;font:inherit;color:var(--ink);background:transparent;border:0;
  border-bottom:1px solid var(--line);padding:14px 16px;cursor:pointer;transition:background .12s}
.hn-list li:last-child .hn-row{border-bottom:0}
.hn-row:hover{background:var(--panel2)}
.hn-row.on{background:var(--blue-soft)}
.hn-rank{font:600 12px var(--mono);color:var(--ink3);padding-top:3px}
.hn-row.on .hn-rank{color:var(--blue)}
.hn-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.hn-name{font-size:15px;font-weight:650;letter-spacing:-.01em;line-height:1.35;overflow-wrap:anywhere}
.hn-desc{font-size:13px;line-height:1.45;color:var(--ink2);display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden}
.hn-heat{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:52px;
  padding:6px 8px;border-radius:9px;align-self:start}
.hn-heat b{font:700 18px/1.1 var(--mono)}
.hn-heat small{font-size:11px;line-height:1.3}
.t1{background:var(--heat-1);color:var(--on-heat-lo)}
.t2{background:var(--heat-2);color:var(--on-heat-lo)}
.t3{background:var(--heat-3);color:var(--on-heat-hi)}
.t4{background:var(--heat-4);color:var(--on-heat-hi)}

/* dải nền tảng: năm ô, ô dài = nền tảng đó đang bàn nhiều so với các chuyện khác */
.ps{display:grid;grid-template-columns:repeat(5,minmax(max-content,1fr));gap:8px;margin-top:8px}
.ps-i{display:flex;flex-direction:column;gap:3px;min-width:0}
.ps-i em{font-style:normal;font-size:12px;font-weight:600;color:var(--ink);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.ps-i i{display:block;height:5px;border-radius:3px;background:var(--mut);overflow:hidden}
.ps-i u{display:block;height:100%;background:var(--heat-3);border-radius:3px;text-decoration:none}
.ps-i.no em{color:var(--ink3);font-weight:500}

/* chi tiết */
.hn-detail{overflow:auto}
.hd-bar{display:none}
.hd-nav{position:sticky;top:0;z-index:2;display:flex;gap:5px;overflow-x:auto;padding:9px 20px;
  background:var(--panel);border-bottom:1px solid var(--line);scrollbar-width:none}
.hd-nav::-webkit-scrollbar{display:none}
.hd-nav button{appearance:none;flex:0 0 auto;min-height:34px;padding:5px 10px;border-radius:18px;
  font:600 13px var(--sans);color:var(--ink2);background:var(--panel);border:1px solid var(--line2);
  cursor:pointer;white-space:nowrap}
.hd-nav button:hover{border-color:var(--blue);color:var(--ink)}
.hd-nav button b{font:600 12px var(--mono);color:var(--blue);margin-left:2px}
.hd-nav button.no{color:var(--ink3);font-weight:500;border-style:dashed}
.hd-body{padding:18px 26px 30px}
.hd-tags{display:flex;gap:6px;flex-wrap:wrap}
.tag{display:inline-block;font:600 12px var(--sans);padding:3px 9px;border-radius:6px;
  background:var(--bg2);color:var(--ink2);border:1px solid var(--line)}
.tag.heat{border-color:transparent}
.hd-head h2{margin:10px 0 6px;font-size:26px;font-weight:750;letter-spacing:-.02em;line-height:1.2;overflow-wrap:anywhere}
.hd-desc{margin:0;font-size:15px;line-height:1.55;color:var(--ink2);max-width:62ch}
.hd-sec{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.hs{margin:0 0 12px;font-size:15px;font-weight:700;letter-spacing:-.005em}
.hs-note{margin:10px 0 0;font-size:12px;color:var(--ink3)}
.hn-empty .nong-note{border:0}

.cmp{display:flex;flex-direction:column}
.cmp-r{display:grid;grid-template-columns:78px minmax(60px,1fr) minmax(110px,150px) minmax(110px,140px) 80px;
  gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}
.cmp-r:last-child{border-bottom:0}
.cmp-n{font-weight:650}
.cmp-b{height:8px;border-radius:4px;background:var(--mut);overflow:hidden}
.cmp-b i{display:block;height:100%;background:var(--heat-3);border-radius:4px}
.cmp-v b{font:700 14px var(--mono)}
.cmp-x{font:500 12px var(--mono);color:var(--ink2)}
.cmp-w{font-size:12px;color:var(--ink3)}
.cmp-r.no .cmp-n,.cmp-r.no .cmp-v{color:var(--ink3);font-weight:500}

.pf-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:4px 28px;align-items:start}
.pf{padding:14px 0 6px;border-top:1px solid var(--line);min-width:0}
.pf:first-child,.pf:nth-child(2){border-top:0}
.pf h3{margin:0 0 10px;font-size:14px;font-weight:700;display:flex;align-items:baseline;gap:8px}
.pf h3 small{font-size:12px;font-weight:400;color:var(--ink3)}
.pf h4{margin:14px 0 6px;font-size:12px;font-weight:600;color:var(--ink2)}
.pf.no h3{color:var(--ink2)}
.pf .nong-note{padding:14px 12px;font-size:13px;text-align:left}
.tit{list-style:none;margin:10px 0 0;padding:0}
.tit li{padding:6px 0;font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.tit .bao{display:inline-block;margin-right:8px;font-size:11px;font-weight:600;color:var(--blue);
  background:var(--blue-soft);padding:1px 7px;border-radius:5px}
.dt-nums{display:flex;gap:22px;flex-wrap:wrap}
.dt-nums div{display:flex;flex-direction:column}
.dt-nums b{font:600 18px/1.2 var(--mono);font-variant-numeric:tabular-nums}
.dt-nums span{font-size:12px;color:var(--ink3);max-width:16ch}
.cot{display:block;width:100%;height:56px}
.cot rect{fill:var(--heat-2)}
.cot rect.pk{fill:var(--heat-4)}
.cot-lb{display:grid;font:11px/1.4 var(--mono);color:var(--ink3);text-align:center}
.cot-lb span{overflow:visible;white-space:nowrap;min-width:0}
.bai{list-style:none;margin:0;padding:0}
.bai li{padding:8px 0;border-top:1px solid var(--line)}
.bai li:first-child{border-top:0}
.bai a{color:var(--ink);text-decoration:none;font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.bai a:hover{color:var(--blue);text-decoration:underline}
.bai .bm{font-size:12px;color:var(--ink3);margin-top:2px}

.sbar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--mut)}
.sbar i.tc,.sbar-lg b.tc{background:var(--tich-cuc-dam)}
.sbar i.tl,.sbar-lg b.tl{background:var(--tieu-cuc)}
.sbar i.tt,.sbar-lg b.tt{background:var(--trung-tinh)}
.sbar-lg{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px;font-size:12px;color:var(--ink2)}
.sbar-lg b{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}

.tl-n{font-size:13px;color:var(--ink2);margin-bottom:8px}
.tl-n b{font-family:var(--mono)}
.tl-src{display:inline-flex;gap:12px;flex-wrap:wrap}
.tl-sum{margin:0 0 12px;font-size:15px;line-height:1.6;max-width:62ch}
.dn-list,.all-list{list-style:none;margin:0;padding:0}
.dn{padding:10px 0;border-top:1px solid var(--line)}
.dn:first-child{border-top:0}
.dn-y{font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.dn-m{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}
.dn-bar{flex:1 1 90px;max-width:220px;height:6px;background:var(--mut);border-radius:3px;overflow:hidden}
.dn-bar i{display:block;height:100%;background:var(--heat-3);border-radius:3px}
.dn-p{font:600 12px var(--mono);color:var(--ink2);min-width:34px}
.sac{font-size:11px;font-weight:600;padding:2px 8px;border-radius:5px;white-space:nowrap}
.sac.tc{background:var(--tich-cuc-bg);color:var(--tich-cuc-fg)}
.sac.tl{background:var(--tieu-cuc-bg);color:var(--tieu-cuc-fg)}
.sac.ca{background:var(--tranh-cai-bg);color:var(--tranh-cai-fg)}
.sac.tt{background:var(--mut);color:var(--ink2)}

/* phần toàn cảnh bên dưới */
.hn-over{margin-top:36px}
.nong-sec{margin-bottom:28px}
.nh{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.nh h2{margin:0;font-size:18px;font-weight:750;letter-spacing:-.015em}
.nh-t{font-size:12px;color:var(--ink3)}
.tn-list{list-style:none;margin:0;padding:0;columns:2 340px;column-gap:32px}
.tn-list li{padding:9px 0;border-top:1px solid var(--line);break-inside:avoid}
.tn-t{font-size:14px;line-height:1.4;font-weight:600;overflow-wrap:anywhere}
.tn-m{font-size:12px;color:var(--ink3);margin-top:3px}
.hm{--n:7;overflow-x:auto}
.hm-r{display:grid;grid-template-columns:170px repeat(var(--n),minmax(40px,1fr)) 64px;gap:3px;margin-bottom:3px;min-width:560px;align-items:stretch}
.hm-n{font-size:13px;font-weight:600;padding:8px 8px 8px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;align-self:center}
.hm-d,.hm-t{font:11px var(--mono);color:var(--ink3);text-align:center;align-self:center}
.hm-t{font-weight:600;color:var(--ink2)}
.hm-c{font:12px var(--mono);text-align:center;padding:9px 0;border-radius:4px;background:var(--panel2);color:var(--ink3)}
.hm-c.l1{background:var(--heat-1);color:var(--on-heat-lo)}
.hm-c.l2{background:var(--heat-2);color:var(--on-heat-lo)}
.hm-c.l3{background:var(--heat-3);color:var(--on-heat-hi)}
.hm-c.l4{background:var(--heat-4);color:var(--on-heat-hi)}
.hm-note{font-size:12px;color:var(--ink3);margin-top:8px}
.all-list li{padding:11px 0;border-top:1px solid var(--line)}
.all-list li:first-child{border-top:0;padding-top:0}
.al-y{font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.al-m{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}
.al-chu{font-size:11px;font-weight:600;color:var(--blue);background:var(--blue-soft);padding:2px 8px;border-radius:5px}
.al-bar{flex:1 1 80px;max-width:260px;height:6px;background:var(--mut);border-radius:3px;overflow:hidden}
.al-bar i{display:block;height:100%;background:var(--heat-3);border-radius:3px}
.al-n{font:600 12px var(--mono);color:var(--ink2)}
.al-n small{font:400 11px var(--sans);color:var(--ink3);margin-left:6px}

/* ═══════════ Chuyện đang xảy ra ═══════════ */
.intro{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.lead{font-size:15px;line-height:1.55;color:var(--ink2);max-width:72ch}
.lead b{color:var(--ink);font-weight:650}
.tnav{display:flex;flex-wrap:wrap;gap:6px}
.thead2{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.thead2 .th2{font-size:20px;font-weight:750;letter-spacing:-.015em;margin:0}
.thead2 .tn{font-size:13px;color:var(--ink3)}
.thead2 .tn b{font-family:var(--mono);font-weight:600;color:var(--ink2)}
.cums{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px;align-items:start}
.cum{padding:18px 20px;border:1px solid var(--line);border-radius:12px;background:var(--panel);
  box-shadow:var(--shadow);display:flex;flex-direction:column;min-width:0}
.cum h3{font-size:18px;font-weight:700;letter-spacing:-.015em;line-height:1.3;margin:0 0 5px;text-wrap:balance}
.cmeta{font-size:12px;color:var(--ink3);margin-bottom:10px}
.cmeta b{font-family:var(--mono);color:var(--blue);font-weight:600}
.mlab{display:block;font-size:11px;color:var(--ink3);margin-bottom:6px}
.cdoc{font-size:14px;line-height:1.62;color:var(--ink2);margin:0 0 12px;white-space:pre-line}
.cwhy{background:var(--blue-soft);border-radius:8px;padding:10px 12px;margin:0 0 14px}
.cwhy p{margin:0;font-size:13px;line-height:1.55;color:var(--ink);white-space:pre-line}
.cwhy .wlab{font-size:12px;font-weight:700;color:var(--blue);display:block;margin-bottom:2px}
.cbai{display:flex;flex-direction:column;margin-top:auto}
.brow2{display:grid;grid-template-columns:56px 40px 1fr;gap:9px;align-items:center;padding:7px 4px;
  text-decoration:none;border-radius:6px}
.brow2:hover{background:var(--bg2)}
.b2e{font:600 13px var(--mono);text-align:right;color:var(--blue);white-space:nowrap}
.b2bar{height:4px;background:var(--mut);border-radius:3px;overflow:hidden}
.b2bar i{display:block;height:100%;background:var(--heat-3);border-radius:3px}
.b2main{min-width:0;display:block}
.b2t{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  font-size:13px;color:var(--ink);line-height:1.4;white-space:pre-line}
.b2meta{font:11px var(--mono);color:var(--ink3);display:flex;gap:7px;margin-top:1px;flex-wrap:wrap}
.b2meta .b2cmt{font-family:var(--sans)}
.tra-phi .tp-noi{font-size:14px;color:var(--ink2);margin-bottom:8px}
.tra-phi .tp-nhac{font-size:13px;color:var(--ink3)}
.hsub{font-size:13px;color:var(--ink2);line-height:1.55}

/* ═══════════ Vì sao nổ ═══════════ */
.gph{max-width:1180px;margin:0}
.gph-gioi-thieu{font-size:15px;color:var(--ink2);margin:0 0 16px;line-height:1.5}

/* ═══════════ Màn hẹp ═══════════ */
@media (max-width:1180px){
  .hn-grid{grid-template-columns:minmax(330px,400px) minmax(0,1fr);gap:14px}
  .cmp-r{grid-template-columns:72px minmax(40px,1fr) minmax(100px,130px) minmax(100px,130px)}
  .cmp-w{display:none}
}

/* dưới 1000px: chi tiết thành ngăn kéo phủ toàn màn hình */
@media (max-width:1000px){
  .hn-grid{display:block}
  .hn-listwrap{position:static;max-height:none}
  .hn-list{overflow:visible}
  .hn-detail{position:fixed;inset:0;z-index:95;max-height:none;border:0;border-radius:0;box-shadow:none;
    transform:translateY(100%);visibility:hidden;
    transition:transform .3s cubic-bezier(.25,1,.5,1),visibility 0s .3s}
  body.hn-open .hn-detail{transform:none;visibility:visible;transition-delay:0s}
  .hn-empty{display:none}
  .hd-bar{display:flex;position:sticky;top:0;z-index:2;background:var(--panel);
    border-bottom:1px solid var(--line);padding:6px 10px}
  .hn-back{appearance:none;background:none;border:0;font:600 15px var(--sans);color:var(--blue);
    min-height:44px;padding:0 10px;cursor:pointer}
  .hd-body{padding:14px 16px 48px}
  .hd-nav{top:57px;padding:8px 16px}
  .hd-head h2{font-size:22px}
  .pf:nth-child(2){border-top:1px solid var(--line)}
}

/* dưới 860px: thanh bên thành thanh tab dưới đáy */
@media (max-width:860px){
  .shell{display:block}
  .rail{position:fixed;left:0;right:0;bottom:0;top:auto;height:auto;z-index:80;flex-direction:row;gap:0;
    padding:0 4px env(safe-area-inset-bottom,0);border-right:0;border-top:1px solid var(--line)}
  .rail-brand{display:none}
  .rail-nav{flex-direction:row;flex:1;gap:0}
  .rn{flex:1 1 0;flex-direction:column;justify-content:center;gap:3px;min-width:0;min-height:56px;
    padding:6px 2px;border-radius:0;font-size:11px;font-weight:600;text-align:center}
  .rn[aria-current="page"]{background:none}
  .l-full{display:none}
  .l-short{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .top{padding:8px 14px;gap:8px}
  .top-mark{display:block;width:28px;height:28px}
  .bname{font-size:17px}
  .live{display:none}
  .by{display:none}
  .rangebox{order:3;width:100%}
  .coffee{padding:6px 10px;font-size:12px}
  .wrap{padding:14px 14px 96px}
  .jump{margin:-14px -14px 16px;padding:8px 14px}
  .tn-list{columns:1}
}
@media (max-width:640px){
  .hn-lead{display:none}   /* tiêu đề trang đã nói đây là gì; nhường chỗ cho danh sách */
  /* hàng lọc trượt ngang, chạm vuốt được */
  .chips{flex-wrap:nowrap;overflow-x:auto;margin:0 -14px;padding:2px 14px;scrollbar-width:none}
  .chips::-webkit-scrollbar{display:none}
  .fl{display:none}
  .hn-row{padding:13px 12px;gap:10px;grid-template-columns:18px minmax(0,1fr) auto}
  .hn-heat{min-width:46px}
  .cmp-r{grid-template-columns:72px minmax(40px,1fr);row-gap:2px}
  .cmp-v,.cmp-x{grid-column:2}
  .cmp-n{grid-row:span 3}
  .cmp-b{grid-column:2}
  .hm-r{grid-template-columns:110px repeat(var(--n),minmax(36px,1fr)) 54px;min-width:500px}
  .cums{grid-template-columns:1fr}
  .cum{padding:16px}
  .cum h3{font-size:16px}
  .brow2{grid-template-columns:48px 1fr;gap:8px}
  .b2bar{display:none}
  .nh h2,.grp-h h2{font-size:16px}
}

/* Màn chờ tải của Phân tích viral chỉ che trang khi người dùng đang ở đó;
   Hôm nay có dữ liệu riêng nên không phải chờ phần phân tích. */
body[data-page="index"]:not([data-route="phan-tich"]) #lt-stage{display:none}
body[data-page="index"]:not([data-route="phan-tich"]) .live{visibility:visible!important}

/* ---------- vùng chạm đủ 44px trên điện thoại ---------- */
@media (max-width:860px){
  .fc,.hd-nav button,.jump a,.ranges button,.coffee,.acct a,.more,.tools select,.tools button,
  .tools input[type=search],.fchip,.copyrow button,.chepnho,.hn-search input,#d-apply{min-height:44px}
  .acct a{display:inline-flex;align-items:center}
  .gph-tab,.gph-xem,.gph-chieu-chip,.gph-bo-loc,.gph-them summary,.hn-btn{min-height:44px}
  .gph-chieu-chip,.gph-bo-loc{display:inline-flex;align-items:center}
  .gph-them summary{display:flex;align-items:center}
  .tools button{padding-left:14px;padding-right:14px}
  .sao{min-width:44px;min-height:44px;font-size:18px;margin-left:0;vertical-align:middle}
  .au{display:inline-flex;align-items:center;min-height:44px}
  .foot a{display:inline-block;padding:13px 4px}
  /* liên kết nằm giữa câu: nới vùng chạm bằng lớp phủ, không làm đổi dòng chữ */
  .klink{position:relative}
  .klink::after{content:'';position:absolute;inset:-12px -3px}
  #f-on,#f-update,#f-off,#clear-f{min-height:44px}
  .hn-search{flex:1 1 100%}
  .tbl-wrap tbody td[data-l="Bài gốc"]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
}
@media (prefers-reduced-motion:reduce){ .hn-detail{transition:none} }

/* ---------- xem theo nền tảng, chú giải, nút Chép ---------- */
.nt-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.nt-tabs .fc{min-height:44px}
.nt-sum{margin-top:12px;padding:10px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-sm)}
.nt-sum h4{margin:0 0 6px}
.nt-sum p{margin:0 0 8px;font-size:13px;line-height:1.5;color:var(--ink2)}
.sbar i.ca,.sbar-lg b.ca{background:var(--tranh-cai-dam)}
.tit a{color:inherit;text-decoration:underline;text-decoration-color:var(--line2);text-underline-offset:3px}
.tit a:hover{color:var(--blue);text-decoration-color:var(--blue)}
.why{appearance:none;font:600 12px var(--sans);color:var(--blue);background:transparent;border:0;
  padding:12px 6px;min-height:44px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.why[aria-expanded="true"]{color:var(--ink)}
.hs .why{padding:0 4px;min-height:32px;vertical-align:baseline}
.why-tx{margin:6px 0 0;padding:8px 12px;font-size:12px;line-height:1.55;color:var(--ink2);
  background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-sm);font-weight:400;letter-spacing:0}
button.tag.heat{cursor:pointer;appearance:none;min-height:32px}
button.tag.heat[aria-expanded="true"]{outline:2px solid var(--ink);outline-offset:1px}
.chep{appearance:none;margin-left:auto;font:600 12px var(--sans);min-height:32px;padding:0 14px;cursor:pointer;
  color:var(--blue);background:var(--blue-soft);border:1px solid var(--line2);border-radius:6px}
.chep:hover{border-color:var(--blue)}
.hn-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,12px);z-index:300;opacity:0;pointer-events:none;
  padding:10px 18px;border-radius:20px;font:600 13px var(--sans);background:var(--ink);color:var(--panel);transition:opacity .15s,transform .15s}
.hn-toast.on{opacity:1;transform:translate(-50%,0)}
@media (max-width:1000px){.hn-toast{bottom:76px}}
@media (prefers-reduced-motion:reduce){.hn-toast{transition:none}}
.tag.heat.t1{background:var(--heat-1);color:var(--on-heat-lo)}
.tag.heat.t2{background:var(--heat-2);color:var(--on-heat-lo)}
.tag.heat.t3{background:var(--heat-3);color:var(--on-heat-hi)}
.tag.heat.t4{background:var(--heat-4);color:var(--on-heat-hi)}

/* ═══════════ Công thức bài nổ (giai-phau.html), thêm 12/10/2026 ═══════════
   Khối riêng cho thẻ công thức; phần .gph-* gốc nằm ở app.css. */
.ct-loc{display:flex;flex-direction:column;gap:8px;margin:0 0 14px}
.ct-so{margin-top:8px}
.ct-rr{font-weight:600}
.ct-rr-thap{color:var(--ink2)}
.ct-rr-vua{color:var(--ink)}
.ct-rr-cao{color:var(--ink);border-color:var(--ink)}
.ct-khong{padding:10px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-sm)}
.ct-maus{display:flex;flex-direction:column;gap:6px}
.ct-mau{display:block;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);text-decoration:none;color:var(--ink);min-width:0}
.ct-mau:hover{border-color:var(--blue)}
.ct-mau-t{display:block;font-size:13px;line-height:1.45;overflow-wrap:anywhere;white-space:pre-line}
.ct-mau-m{display:block;margin-top:3px;font-size:12px;color:var(--ink3)}
@media (max-width:860px){
  .ct-mau{min-height:44px}
  .gph-luoi{grid-template-columns:minmax(0,1fr)}
}
