/* Bảng kiểu dùng chung cho toàn bộ giao diện. */
:root{
  --acc:#2563eb;--acc-d:#1d4ed8;--acc-s:#f2f6ff;
  --hot:#e2564a;--hot-s:#fff1ef;
  --ink:#17161c;--mut:#6b6875;--soft:#8b8896;
  --line:#e8e8ee;--line2:#dcdce6;--bg:#f7f6f3;--tint:#fafafc;
  --r:12px;--maxw:1180px;
  --ff-h:'Sora',system-ui,sans-serif;--ff-b:'Karla',system-ui,-apple-system,sans-serif;--ff-m:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--ff-b);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
p{font-size:17px;line-height:1.68;margin:0 0 12px}
h1,h2,h3,h4{font-family:var(--ff-h);margin:0;letter-spacing:-.02em;line-height:1.2}
a{color:var(--acc);text-decoration:none}
a:hover{color:var(--acc-d);text-decoration:underline}
button{font-family:inherit;font-size:inherit;cursor:pointer}
input,textarea,select{font-family:inherit;font-size:17px}
img{max-width:100%;height:auto;display:block}
figure{margin:0}
ul,ol{margin:0 0 14px;padding-left:20px;color:var(--mut)}
li{font-size:17px;margin-bottom:7px}
::selection{background:#c7d7ff}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
@keyframes tup{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(.9)}60%{transform:scale(1.04)}100%{transform:scale(1)}}
.sx{scrollbar-width:thin}
.sx::-webkit-scrollbar{height:7px}
.sx::-webkit-scrollbar-thumb{background:rgba(23,22,28,.18);border-radius:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.sr-skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:0 0 8px 0}
.sr-skip:focus{left:0;color:#fff}
[hidden]{display:none!important}

/* bố cục */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
/* Lớp bọc nội dung. KHÔNG đặt tên .page: body_class() của WordPress
   thêm class "page" cho mọi Trang, rule sẽ trúng luôn <body> và biến body
   thành flex container — main.wrap (margin:0 auto) hết co, phình ra 1180px
   và tràn ngang toàn trang trên mobile. */
.nx-page{display:flex;flex-direction:column;gap:26px;padding:26px 0 80px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px 26px}
.row{display:flex;gap:12px}
.row--mid{align-items:center}
.row--end{align-items:flex-end}
.row--center{justify-content:center;flex-wrap:wrap}
.row--between{justify-content:space-between;flex-wrap:wrap}
.grow{flex:1;min-width:0}
.mt{margin-top:16px}
.muted{color:var(--mut)}
.soft{color:var(--soft)}
.mono{font-family:var(--ff-m)}
.sub{font-size:15px}
.note{font-size:14.5px;margin-top:12px}
.count{font-size:14.5px;margin-top:14px}
.narrow{margin:8px 0 0;max-width:70ch}
.jump{font-weight:700;font-size:15.5px;white-space:nowrap}

/* đầu trang */
.hd{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--line)}
.hd__row{display:flex;align-items:stretch;justify-content:space-between;gap:18px;height:57px}
.hd__logo{display:flex;align-items:center;gap:9px;flex:none;text-decoration:none}
.hd__logo:hover{text-decoration:none}
.hd__mark{width:29px;height:29px;border-radius:9px;background:var(--ink);display:grid;place-items:center;flex:none}
.hd__name{font-family:var(--ff-h);font-weight:800;font-size:18.5px;letter-spacing:-.02em;color:var(--ink);display:flex;align-items:center;gap:3px}
.hd__tld{background:var(--acc);color:#fff;font-size:13px;font-weight:800;padding:2px 5px;border-radius:5px;letter-spacing:0}
.hd__nav{display:flex;align-items:stretch;min-width:0;overflow-x:auto;flex-wrap:nowrap}
.hd__link{display:flex;align-items:center;gap:6px;font-size:13.8px;font-weight:500;color:#3f3d4a;padding:0 9px;white-space:nowrap;border-bottom:2px solid transparent;text-decoration:none}
.hd__link:hover{color:var(--acc);text-decoration:none}
.hd__link.is-active{color:var(--acc);font-weight:700;border-bottom-color:var(--acc)}
.hd__cta{display:none;align-self:center;font-size:14.5px;font-weight:700;color:var(--acc);border:1px solid #dbe4ff;background:var(--acc-s);padding:7px 12px;border-radius:9px;text-decoration:none}

/* chân trang + thanh dưới */
.ft{background:#fff;border-top:1px solid var(--line)}
.ft__row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 0}
.ft__row>span{font-size:14px;color:var(--soft)}
.ft__links{display:flex;gap:26px;flex-wrap:wrap}
.ft__links a{font-size:14px;color:var(--mut)}
.mnav{display:none;position:fixed;left:0;right:0;bottom:0;z-index:60;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;background:rgba(255,255,255,.95);backdrop-filter:blur(16px);border-top:1px solid var(--line);padding:8px 6px 10px;box-shadow:0 -6px 24px rgba(23,22,28,.07)}
.mnav__item{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--mut);text-decoration:none;padding:4px 0;font-size:11.5px;font-weight:700;text-align:center}
.mnav__item:hover{text-decoration:none}
.mnav__item.is-active{color:var(--acc)}
.mnav__fab{width:52px;height:52px;margin-top:-22px;border-radius:999px;background:var(--hot);display:grid;place-items:center;box-shadow:0 8px 20px rgba(226,86,74,.4);border:4px solid #fff}
.mnav__item--fab{color:var(--hot)}

/* nút + ô nhập */
.btn{border:1px solid var(--line2);background:#fff;color:var(--mut);font-weight:700;font-size:15px;padding:12px 18px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.btn:hover{border-color:var(--acc);color:var(--acc);text-decoration:none}
.btn--primary{border:0;background:var(--acc);color:#fff;font-family:var(--ff-h);text-transform:uppercase;letter-spacing:.04em;padding:15px 30px}
.btn--primary:hover{background:var(--acc-d);color:#fff}
.btn--dark{border:0;background:var(--ink);color:#fff;font-family:var(--ff-h)}
.btn--dark:hover{color:#fff}
.btn--wide{width:100%}
.btn--sp{padding:14px 22px}
.btn--send{background:#fff;color:var(--ink);border:0;font-family:var(--ff-h)}
.btn.is-on{border-color:var(--acc);background:var(--acc-s);color:var(--acc-d)}
.field{position:relative;flex:1 1 320px;min-width:240px}
.field input{width:100%;padding:15px 44px 15px 16px;border:1px solid var(--line2);border-radius:10px;background:#fff;outline:none;color:var(--ink)}
.field input:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-s)}
.field--search input{padding-left:40px;padding-right:16px}
.field__ico{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--soft);display:flex}
.field__clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:26px;height:26px;border:0;background:transparent;display:grid;place-items:center;color:var(--soft);border-radius:6px}
.field__clear:hover{background:#f2f2f7;color:var(--ink)}
.pill{font-size:13px;font-weight:700;padding:4px 10px;border-radius:7px;background:var(--acc-s);color:var(--acc-d);text-decoration:none}
.pill:hover{text-decoration:none;opacity:.85}
.pill--hot{background:var(--hot);color:#fff;text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:800}
.pill--term{display:inline-block;margin-top:16px;text-transform:uppercase;letter-spacing:.05em;font-weight:800}
.chips{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;flex:1 1 auto;min-width:0}
.tab{flex:none;border:1px solid var(--line);background:#fff;color:var(--mut);font-size:14.5px;font-weight:700;padding:10px 15px;border-radius:999px;white-space:nowrap;text-decoration:none}
.tab:hover{text-decoration:none;border-color:var(--acc);color:var(--acc)}
.tab.is-active{background:var(--ink);border-color:var(--ink);color:#fff}

/* tiêu đề */
.h-blue{font-size:20px;font-weight:800;color:var(--acc);text-transform:uppercase;line-height:1.35}
.h-blue--gap{margin-top:12px}
.h-sec{font-size:24px;font-weight:700}
.h-sec--wrap{max-width:34ch}
.h-min{font-size:12.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--acc)}
.h-min--gap{margin-bottom:12px}
.h-min--top{margin-top:24px}
.h-faq{font-size:20px;margin:28px 0 10px}
.lead{color:var(--mut);font-size:15.5px;margin-top:10px}
.lead--wide{max-width:78ch}
.crumb{display:flex;align-items:center;gap:7px;font-size:14px;color:var(--soft);flex-wrap:wrap}
.crumb a{color:var(--mut)}
.crumb b{color:var(--ink);font-weight:700}

/* công cụ tạo tên */
.styles{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-top:16px}
.style{border:1px solid var(--line);background:#fff;border-radius:10px;padding:12px 6px 10px;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.style.is-active{border-color:var(--acc);background:var(--acc-s)}
.style b{font-size:15.5px;font-weight:600;color:var(--acc);overflow-wrap:anywhere;text-align:center;max-width:100%;line-height:1.3}
.style span{font-size:12.5px;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.pv{margin-top:16px;border:1px solid var(--line);border-radius:10px;background:var(--tint);padding:14px}
.pv__hint{font-size:12.5px}
.pv__grid{display:flex;flex-wrap:wrap;gap:9px;margin-top:11px}
.pvchip{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 8px 9px 11px;display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0;flex:1 1 auto;max-width:min(100%,420px)}
.pvchip:hover{border-color:var(--acc)}
.pvchip em{flex:1;min-width:0;text-align:center;font-style:normal;font-size:14.5px;color:var(--ink);overflow-wrap:anywhere;line-height:1.35}
.pvchip i{flex:none;width:24px;height:24px;border-radius:6px;background:#f2f2f7;display:grid;place-items:center;color:var(--soft)}
.slider{width:100%;margin-top:16px;accent-color:var(--acc)}
.spacebox{flex:1;min-width:180px;border:1.5px dashed #b9cbff;border-radius:10px;padding:14px 16px;background:var(--acc-s);font-size:15px;color:var(--acc-d);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}

/* kết quả từ engine */
.res{margin-top:20px;border-top:1px solid var(--line);padding-top:18px}
.res__bar{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.res__note{font-size:13.5px}
.res__box{margin-top:18px;border:1px solid var(--line);border-radius:12px;background:var(--tint);padding:16px}
.rsec{margin-top:16px}
.rsec__h{font-family:var(--ff-h);font-size:17px;font-weight:700;margin:0 0 10px;overflow-wrap:anywhere}
.chipset{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 13px;font-size:15.5px;color:var(--ink);overflow-wrap:anywhere;flex:1 1 auto;min-width:44px;max-width:min(100%,420px);text-align:center;line-height:1.5}
.chipset::after{content:"";flex:999 1 0;min-width:0}
.chip:hover{border-color:var(--acc)}
.chip.is-copied{border-color:var(--acc);background:var(--acc-s)}
.chip__v{font-size:12.5px;color:var(--soft);margin-left:8px}
.chip--vote{display:inline-flex;align-items:center;gap:8px}
.chip__like{border:0;background:#f2f2f7;border-radius:7px;padding:3px 8px;font-size:12.5px;font-weight:700;color:var(--mut)}
.chip__like:hover{background:var(--acc-s);color:var(--acc-d)}
.emojis{display:flex;flex-wrap:wrap;gap:7px}
.emo{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 11px;font-size:17px;line-height:1.4;min-width:42px;text-align:center;overflow-wrap:anywhere;max-width:100%}
.emo:hover{border-color:var(--acc)}
.res__load{padding:22px;text-align:center;color:var(--mut)}
.res__more{margin-top:14px}
.comm__head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.comm__sub{font-family:var(--ff-h);font-size:15.5px;font-weight:700;margin:14px 0 9px}
.comm__block+.comm__block{margin-top:16px}
.comm__loading{padding:14px 0;color:var(--soft);font-size:15px}
.comm__empty{color:var(--mut);font-size:15.5px;margin:8px 0 0}
.comm__form{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap;align-items:stretch}
.comm__form .btn{flex:none}
.gsug{margin-top:14px;font-size:15.5px;color:var(--mut)}
.gsug a{font-weight:700}

/* bảng vàng */
.gold{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}
.gcard{position:relative;text-align:left;border:1.6px solid var(--line);background:#fff;border-radius:18px;padding:26px 20px 18px;min-width:0}.gcard b{display:block;font-family:var(--ff-h);font-size:24px;overflow-wrap:anywhere;font-weight:400;}
.gcard__no{position:absolute;top:-14px;left:20px;width:28px;height:28px;border-radius:999px;color:#fff;font-family:var(--ff-h);font-weight:700;font-size:14px;display:grid;place-items:center}
.gcard__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}
.gcard__tag{font-size:13.5px;font-weight:700;background:#fff;border:1px solid var(--line);padding:4px 10px;border-radius:999px;white-space:nowrap;flex:none}
.gcard__n{font-size:14px;font-weight:700;color:var(--mut);white-space:nowrap}
.gcard--1{border-color:#f3b5ad;background:#fff8f7}
.gcard--1 .gcard__no,.gcard--1 .gcard__tag{background:var(--hot);color:#fff;border-color:var(--hot)}
.gcard--2{border-color:#f0d08a;background:#fffcf3}
.gcard--2 .gcard__no,.gcard--2 .gcard__tag{background:#c8930f;color:#fff;border-color:#c8930f}
.gcard--3{border-color:#9fd4bf;background:#f5fcf9}
.gcard--3 .gcard__no,.gcard--3 .gcard__tag{background:#1f7a5a;color:#fff;border-color:#1f7a5a}
.grest{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.grank{text-align:left;border:1px solid var(--line);background:var(--tint);border-radius:13px;padding:13px 15px;display:flex;align-items:center;gap:12px;min-width:0;flex:1 1 auto;max-width:min(100%,420px)}
.grank:hover{border-color:var(--acc)}
.grank i{font-family:var(--ff-m);font-size:14px;font-weight:600;color:var(--soft);font-style:normal;flex:none}.grank b{font-family:var(--ff-h);font-size:17.5px;overflow-wrap:anywhere;min-width:0;font-weight:400;}

/* kho nickname */
.nicks{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.nick{text-align:left;border:1px solid var(--line);background:var(--tint);border-radius:14px;padding:14px 15px;display:flex;flex-direction:column;gap:10px;min-width:min(100%,150px);flex:1 1 auto;max-width:min(100%,420px)}
.nick:hover{border-color:var(--acc);background:#fff}
.nick.is-copied{border-color:var(--acc);background:var(--acc-s)}
.nick.is-hidden{display:none}.nick b{font-family:var(--ff-h);font-size:20px;overflow-wrap:anywhere;max-width:100%;font-weight:400;}
.nick__meta{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0}
.nick__meta span{font-size:13.5px;color:var(--mut);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nick__meta i{flex:none;font-style:normal;font-size:13.5px;font-weight:700;color:var(--hot);white-space:nowrap}
.nick.is-copied .nick__meta i{color:var(--acc-d)}
.empty{padding:28px;text-align:center;color:var(--mut);border:1.5px dashed var(--line2);border-radius:14px;margin-top:12px}

/* bảng */
.tablewrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r);margin-top:18px}
.table{border-collapse:collapse;width:100%;min-width:620px;font-size:16px}
.table th{background:var(--tint);text-align:left;padding:12px 14px;font-family:var(--ff-h);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);border-bottom:1px solid var(--line)}
.table td{padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.table tr:nth-child(even){background:var(--tint)}
.table .num{text-align:right;font-family:var(--ff-m);font-size:15px}
.table .rank{font-family:var(--ff-m);font-size:14px;color:var(--soft)}
.tlink{font-size:14.5px;font-weight:700}

/* khối giới thiệu + hỏi đáp */
.seo{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:30px;margin-top:18px}
.seo__side{display:flex;flex-direction:column;gap:12px}
.seo h3{font-size:19px;font-weight:700;margin:22px 0 8px}
.box{border:1px solid var(--line);background:var(--tint);border-radius:16px;padding:18px 20px}
.box--acc{border-color:#c9d8ff;background:var(--acc-s)}
.box--acc p{color:var(--acc-d);font-size:16px;margin:0}
.box--white{background:#fff}
.box__t{font-family:var(--ff-h);font-size:17px;font-weight:700;margin-bottom:10px}
.box__t--acc{color:var(--acc-d)}
.feat{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-top:1px solid var(--line);font-size:16px;line-height:1.5}
.feat svg{flex:none;margin-top:5px;color:var(--acc);stroke-width:3}
.faqs{display:flex;flex-direction:column;gap:8px}
.faq{border:1px solid var(--line);border-radius:13px;background:var(--tint);overflow:hidden}
.faq__q{width:100%;text-align:left;border:0;background:transparent;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-family:var(--ff-h);font-weight:600;font-size:17px;color:var(--ink)}
.faq__q i{font-family:var(--ff-m);font-size:18px;color:var(--soft);font-style:normal;flex:none}
.faq__a{display:none;padding:0 16px 15px;color:var(--mut);font-size:16.5px;line-height:1.65}
.faq.is-open .faq__a{display:block}

/* bảng số + đánh giá */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.stat b{display:block;font-family:var(--ff-h);font-size:28px;font-weight:800;letter-spacing:-.03em;color:var(--acc)}
.stat span{font-size:15px;color:var(--mut)}
.rate{background:var(--ink);color:#fff;border-radius:var(--r);padding:30px 32px}
.rate h2{color:#fff}
.rate p{color:rgba(255,255,255,.66);max-width:60ch}
.rate__btns{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.rate__btn{flex:1;min-width:200px;border:1.6px solid rgba(255,255,255,.22);background:rgba(255,255,255,.07);color:#fff;font-family:var(--ff-h);font-weight:700;font-size:17px;padding:16px 20px;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:10px}
.rate__btn.is-on{color:var(--ink)}
.rate__btn--up.is-on{background:#8fe0b4;border-color:#8fe0b4}
.rate__btn--down.is-on{background:#f5d07a;border-color:#f5d07a}
.rate__fb{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.rate__fb input{flex:1;min-width:220px;padding:14px 16px;border:1.5px solid rgba(255,255,255,.22);border-radius:12px;background:rgba(255,255,255,.07);color:#fff;outline:none}
.rate__fb input::placeholder{color:rgba(255,255,255,.5)}
.rate__ok{display:flex;align-items:center;gap:16px;animation:tup .3s ease both}
.rate__ok i{width:46px;height:46px;flex:none;border-radius:14px;background:#8fe0b4;display:grid;place-items:center;color:var(--ink)}
.rate__ok b{font-family:var(--ff-h);font-size:21px}
.rate__note{display:block;color:rgba(255,255,255,.66);font-size:16px}
.rate--light{background:var(--tint);color:var(--ink);border:1px solid var(--line);padding:20px 22px;margin-top:26px}
.rate--light h2,.rate--light .rate__ok b{color:var(--ink)}
.rate--light h2{font-size:19px}
.rate--light p{color:var(--mut);font-size:15.5px}
.rate--light .rate__btn{border-color:var(--line2);background:#fff;color:var(--mut);font-size:16px}
.rate--light .rate__fb input{border-color:var(--line2);background:#fff;color:var(--ink)}
.rate--light .rate__fb input::placeholder{color:var(--soft)}
.rate--light .rate__note{color:var(--mut);font-size:15px}
.rate--light .btn--send{background:var(--ink);color:#fff}

/* danh sách bài viết */
.split{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}
.feed{display:flex;flex-direction:column;gap:12px}
.thumb{background:repeating-linear-gradient(135deg,#eef1f8 0 10px,#e4e8f4 10px 20px);display:block;border-radius:9px;width:100%;height:100%;object-fit:cover}
.feat{padding:0;overflow:hidden;border:1px solid var(--line)}
.pfeat{display:flex;gap:20px;align-items:stretch;color:inherit;text-decoration:none;padding:24px 26px}
.pfeat:hover{text-decoration:none}
.pfeat__thumb{flex:none;width:340px;height:200px;position:relative;border-radius:9px;overflow:hidden}
.pfeat__thumb .pill--hot{position:absolute;top:10px;left:10px}
.pfeat__body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:10px}
.pfeat__body h2{font-size:27px;font-weight:800;line-height:1.25}
.readmore{font-weight:700;color:var(--acc);font-size:15.5px}
.post{display:flex;gap:16px;align-items:stretch;color:inherit;text-decoration:none}
.post:hover{text-decoration:none;border-color:var(--acc)}
.post__thumb{flex:none;width:132px;height:96px;border-radius:9px;overflow:hidden}
.post__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.post__body h3{font-size:18.5px;font-weight:700;line-height:1.3}
.meta{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--soft);flex-wrap:wrap}
.meta .pill{font-size:13px;padding:3px 9px;border-radius:6px}
.excerpt{font-size:15.5px;color:var(--mut);line-height:1.55;margin:0}
.views{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--soft)}
.pager{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:6px;flex-wrap:wrap}
.pgbtn{min-width:42px;border:1px solid var(--line2);background:#fff;color:var(--mut);font-weight:700;padding:10px 12px;border-radius:9px;text-align:center;text-decoration:none;display:inline-block}
.pgbtn:hover{text-decoration:none;border-color:var(--acc);color:var(--acc)}
.pgbtn.is-active{background:var(--acc);border-color:var(--acc);color:#fff}
.pgbtn.dots{border-color:transparent;background:transparent}
.side{display:flex;flex-direction:column;gap:12px;position:sticky;top:73px}
.rankrow{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.rankrow:hover{text-decoration:none}
.rankrow:last-child{border-bottom:0;padding-bottom:0}
.rankrow i{flex:none;font-family:var(--ff-m);font-size:15px;font-weight:600;color:var(--soft);font-style:normal}
.rankrow:first-of-type i{color:var(--hot)}
.rankrow b{display:block;font-family:var(--ff-h);font-size:15.5px;font-weight:600;line-height:1.35}
.rankrow span span{display:block;font-size:13px;color:var(--soft);margin-top:3px}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tags--gap{margin-top:10px}
.tag{border:1px solid var(--line);background:var(--tint);color:var(--mut);font-size:14px;font-weight:600;padding:7px 12px;border-radius:8px;text-decoration:none}
.tag:hover{text-decoration:none;border-color:var(--acc);color:var(--acc)}
.cta{background:var(--ink);border-radius:var(--r);padding:20px}
.cta b{font-family:var(--ff-h);font-size:18px;color:#fff}
.cta p{color:rgba(255,255,255,.66);font-size:15.5px;margin:8px 0 14px}
.cta a{display:block;text-align:center;background:#fff;color:var(--ink);font-family:var(--ff-h);font-weight:700;font-size:15.5px;padding:12px;border-radius:10px;text-decoration:none}
.widget+.widget{margin-top:0}

/* bài viết */
.art h1{font-size:34px;font-weight:800;margin-top:12px;max-width:30ch;line-height:1.22}
.art__lead{color:var(--mut);margin-top:12px;max-width:75ch;font-size:18px}
.art__meta{display:flex;align-items:center;gap:14px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line);flex-wrap:wrap}
.art__av{width:38px;height:38px;border-radius:999px;overflow:hidden;background:repeating-linear-gradient(135deg,#eef1f8 0 6px,#e4e8f4 6px 12px);flex:none}
.art__avimg{border-radius:999px}
.art__who{display:flex;flex-direction:column}
.art__who b{font-family:var(--ff-h);font-size:15.5px}
.art__who span{font-size:13.5px;color:var(--soft)}
.art__acts{gap:8px}
.cover{margin-top:20px;border-radius:var(--r);overflow:hidden}
/* Ảnh bìa giữ khuôn 16:9 thay vì bị cắt cứng theo chiều cao — banner có chữ ở mép
   dưới thì cách cắt cứng làm mất luôn phần chữ đó. */
.cover img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block}
.split--art{grid-template-columns:minmax(0,1fr) 268px;gap:30px;margin-top:26px}
.split--art.split--solo{grid-template-columns:minmax(0,1fr)}
/* Ô nội dung là grid item: min-width mặc định là auto = bề rộng min-content,
   nên một khối <pre>/bảng dài không xuống dòng sẽ đội cả cột lên và tràn ngang
   trên mobile. Ép về 0 để khối đó tự cuộn trong khung của nó. */
.entry{min-width:0}
.entry h2{font-size:23px;font-weight:700;margin:26px 0 10px;scroll-margin-top:72px}
.entry h3{font-size:19.5px;font-weight:700;margin:20px 0 8px;scroll-margin-top:72px}
.entry h4{font-size:17.5px;font-weight:700;margin:18px 0 8px}
.entry img{border-radius:10px;margin:16px 0}
.entry figcaption{font-size:14px;color:var(--soft);text-align:center;margin-top:-8px}
.entry a{text-decoration:underline}
.entry table{width:100%;border-collapse:collapse;font-size:16px;margin:16px 0;display:block;overflow-x:auto}
.entry th,.entry td{border:1px solid var(--line);padding:10px 12px;text-align:left}
.entry th{background:var(--tint);font-family:var(--ff-h);font-size:14px;text-transform:uppercase;letter-spacing:.05em;color:var(--soft)}
.entry blockquote{margin:20px 0;padding:16px 20px;border-left:3px solid var(--acc);background:var(--acc-s);border-radius:0 10px 10px 0}
.entry blockquote p{margin:0;font-size:17.5px;color:var(--acc-d)}
.entry pre{background:var(--ink);color:#f4f4f8;padding:16px;border-radius:10px;overflow-x:auto;font-family:var(--ff-m);font-size:14.5px}
.entry code{font-family:var(--ff-m);font-size:.92em;background:#f2f2f7;padding:2px 5px;border-radius:5px}
.entry pre code{background:none;padding:0}
.entry hr{border:0;border-top:1px solid var(--line);margin:26px 0}
.toc__l2,.toc__l3{display:block;font-size:15.5px;color:var(--mut);padding:6px 0;border-top:1px solid var(--line)}
.toc__l3{padding-left:12px;font-size:14.5px}
.toc a:hover{color:var(--acc)}
.inline-cta{background:var(--ink);border-radius:var(--r);padding:22px 24px;margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.inline-cta b{display:block;font-family:var(--ff-h);font-size:19px;color:#fff}
.inline-cta span span{display:block;color:rgba(255,255,255,.66);font-size:15.5px;margin-top:4px}
.inline-cta a{flex:none;background:#fff;color:var(--ink);font-family:var(--ff-h);font-weight:700;font-size:15.5px;padding:13px 22px;border-radius:10px;text-decoration:none}
.rel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}
.rel a{border:1px solid var(--line);border-radius:11px;overflow:hidden;text-decoration:none;color:inherit;display:block;min-width:0}
.rel a:hover{border-color:var(--acc);text-decoration:none}
.rel__t{display:block;height:130px;overflow:hidden}
.rel__b{display:block;padding:13px 15px 15px}
.rel__b span{display:block;font-size:13px;color:var(--soft)}
.rel__b b{display:block;font-family:var(--ff-h);font-size:17px;font-weight:700;line-height:1.32;margin-top:5px}
.prevnext{display:flex;justify-content:space-between;gap:12px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.prevnext a{font-size:15.5px;font-weight:700;color:var(--mut)}
.prevnext__r{text-align:right}

/* 404 */
.e404__code{font-family:var(--ff-h);font-size:76px;font-weight:800;letter-spacing:-.04em;color:var(--acc-s);line-height:1;margin:12px 0 4px}

/* thông báo chép */
.toast{position:fixed;left:50%;bottom:100px;transform:translateX(-50%);z-index:80;background:var(--ink);color:#fff;font-weight:700;font-size:16px;padding:12px 20px;border-radius:999px;box-shadow:0 10px 30px rgba(23,22,28,.28);animation:pop .25s ease both;max-width:90vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== màn hình nhỏ: nội dung cách mép đúng 15px ===== */
@media (max-width:1060px){
  .split{grid-template-columns:minmax(0,1fr) 280px}
  .styles{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:820px){
  .wrap{padding:0}
  .wrap--pad{padding:0 15px}
  .nx-page{padding:15px 0 96px;gap:15px}
  .card{border-radius:0;border-left:0;border-right:0;padding:16px 15px}
  .hd__nav{display:none}
  .hd__cta{display:inline-flex}
  .mnav{display:grid}
  .ft{padding-bottom:82px}
  .split,.split--art,.seo,.stats,.rel,.gold{grid-template-columns:minmax(0,1fr);gap:12px}
  .grest,.nicks{gap:12px}
  .side{position:static}
  .styles{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pv__grid,.nicks{grid-template-columns:repeat(2,minmax(0,1fr))}
  .row--stack{flex-direction:column;align-items:stretch}
  /* Xếp dọc thì flex-basis của ô nhập lại tính vào chiều cao — trả về tự động,
     nếu không ô tìm kiếm sẽ cao bằng đúng con số basis. */
  .row--stack>*{flex:0 0 auto}
  .pfeat,.post,.inline-cta,.prevnext{flex-direction:column}
  .pfeat{padding:16px 15px}
  .pfeat__thumb,.post__thumb{width:100%;height:170px}
  .h-blue{font-size:18px}
  .h-sec,.pfeat__body h2{font-size:21px}
  .art h1{font-size:27px}
  .entry h2{font-size:21px}
  .cover{border-radius:0;margin-left:-15px;margin-right:-15px;width:calc(100% + 30px)}
  .rate{padding:20px 15px;border-radius:0}
  .rate--light{border-radius:12px;padding:16px 15px}
  .prevnext a{text-align:left}
  .prevnext__r{text-align:left}
  .e404__code{font-size:58px}
  .comm__form .btn{width:100%}
}
@media (max-width:420px){
  .styles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv__grid,.nicks{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,::before,::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* thảo luận */
.cmt{list-style:none;margin:16px 0;padding:0}
.cmt ol{list-style:none;padding-left:22px}
.cmt li{margin-bottom:16px;font-size:16px}
.cmt .comment-body{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--tint)}
.cmt .fn{font-family:var(--ff-h);font-weight:700;font-style:normal}
.cmt .comment-meta{font-size:13px;color:var(--soft);margin-bottom:8px}
.cmt .avatar{border-radius:999px;float:left;margin-right:10px}
#comments textarea,#comments input[type=text],#comments input[type=email],#comments input[type=url]{width:100%;padding:12px 14px;border:1px solid var(--line2);border-radius:10px;background:#fff;outline:none;font-size:16px}
#comments textarea:focus,#comments input:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-s)}
#comments .form-submit input{border:0;background:var(--acc);color:#fff;font-family:var(--ff-h);font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:14px 28px;border-radius:10px;cursor:pointer}

/* ------------------------------------------------------------ kho kí tự */
/* Lưới tự co theo bề ngang: kí tự trang trí dài ngắn rất khác nhau nên cột cố
   định sẽ vỡ. minmax + auto-fill giữ ô vuông vắn trên mọi khổ máy. */
.glyphs{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.glyphs.is-hidden{display:none}
.glyph{display:flex;align-items:center;justify-content:center;min-height:56px;flex:1 1 auto;min-width:56px;max-width:132px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-size:19px;line-height:1.35;text-align:center;overflow-wrap:anywhere;transition:border-color .15s,background .15s}
.glyph:hover{border-color:var(--acc);background:var(--acc-s)}
.glyph.is-copied{border-color:var(--acc);background:var(--acc-s)}
#gl-tabs{max-width:100%;overflow-x:auto;padding-bottom:4px}

/* ------------------------------------------------------------ bảng tin */
.news{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.nw{border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;background:var(--tint);display:flex;flex-direction:column}
.nw__top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.nw__tag{font-family:var(--ff-h);font-size:12.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--acc);background:var(--acc-s);border-radius:999px;padding:4px 10px}
.nw__date{font-size:13px;color:var(--soft);font-family:var(--ff-m)}
.nw__h{font-size:17.5px;font-weight:700;margin-bottom:8px}
.nw__b{font-size:15.5px;color:var(--mut);margin:0 0 12px}
.nw__foot{margin-top:auto;display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.nw__src{font-size:13px;color:var(--soft)}
.nw__until{color:var(--hot)}
.nw__cta{font-size:14px;font-weight:700;white-space:nowrap}

/* --------------------------------------------------- lịch sử đã sao chép */
.hist.is-hidden{display:none}
.hist .chipset{margin-top:12px}
.hist__clear{border:1px solid var(--line);background:#fff;color:var(--mut);font-size:14px;padding:7px 13px;border-radius:999px}
.hist__clear:hover{border-color:var(--hot);color:var(--hot)}
.h-sec--sm{font-size:19px}

@media (max-width:860px){
  .news{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:420px){
  .glyph{min-height:50px;min-width:50px;font-size:17px}
}

/* Lưới tên kèm NGHĨA (dùng trong bài): nghĩa là phần thông tin chính nên phải
   xuống dòng cho đủ, không cắt bằng dấu ba chấm như lưới đếm lượt chép. */
.nicks--why>.nick{min-width:min(100%,260px)}
.nicks--why .nick__meta{align-items:flex-start}
.nicks--why .nick__meta span{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.5}
@media (max-width:860px){
  .nicks--why{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){
  .nicks--why{grid-template-columns:minmax(0,1fr)}
}
