/* ============================================================
   TOKENS — MỘT FILE DA CHUNG (landing + blog + admin cùng hệ)
   4 da: btc (MẶC ĐỊNH của nhà TOKENS) · surge (DA-05) · legend (DA-01 tím-vàng) · legacy (DA-02 giấy cổ)

   ┌─ DA "btc" — VÀNG BITCOIN + ĐEN QUYỀN LỰC (Hùng chốt 13/08/2026) ─────────┐
   │ #F7931A là mã vàng Bitcoin. Hợp ngách một cách hiếm có: đây là màu duy   │
   │ nhất trong crypto mà người NGOÀI ngành cũng nhận ra.                     │
   │                                                                          │
   │ BA LUẬT CỨNG, đừng gỡ:                                                   │
   │ ① Nền là #0A0A0B, KHÔNG phải #000. Đen tuyệt đối làm chữ rung viền và   │
   │   mỏi mắt khi đọc bài 3.000 chữ — mà nhà này sống bằng bài dài.          │
   │ ② CẤM dùng vàng cho CHỮ THÂN BÀI. Vàng chỉ cho tiêu đề · nút · số liệu · │
   │   gạch chân. Thân bài luôn là --tx (#EDEDEF).                            │
   │ ③ Chữ trên nút vàng là ĐEN (--goldtx), không phải trắng.                 │
   │                                                                          │
   │ Tương phản đo được (không phải cảm giác):                                │
   │   #F7931A trên #0A0A0B ≈ 7,9:1  · #EDEDEF trên #0A0A0B ≈ 17:1            │
   │   #9A9AA2 trên #0A0A0B ≈ 6,7:1  · #0A0A0B trên #F7931A ≈ 7,5:1           │
   │ Cả bốn đều qua chuẩn AA cho chữ nhỏ.                                     │
   │                                                                          │
   │ ⚠️ Font giữ 'Segoe UI', Tahoma, Arial. CẤM Georgia và mọi serif chưa thử │
   │   dấu tiếng Việt — vết sẹo "Georgia vỡ dấu" đã có trong kho.             │
   └──────────────────────────────────────────────────────────────────────────┘
   ============================================================ */
:root, :root[data-theme="btc"]{
  --bg:#0A0A0B; --sbg:rgba(10,10,11,.93); --panel:#141416; --panel2:#1A1A1D; --line:#26262B;
  --acc:#F7931A; --acc2:#FFB84D; --tx:#EDEDEF; --mut:#9A9AA2; --mut2:rgba(154,154,162,.13);
  --ok:#2DBE7E; --okbg:rgba(45,190,126,.13);
  --canh:#E5484D; --canhbg:rgba(229,72,77,.13);
  --glowA:rgba(247,147,26,.10); --glowB:rgba(247,147,26,.05); --grid:rgba(247,147,26,.035);
  --accglow:rgba(247,147,26,.35);
  --gold:#F7931A; --gold2:#E07C00; --goldtx:#0A0A0B; --goldglow:rgba(247,147,26,.4);
}
/* ┌─ VÌ SAO BA DA DƯỚI ĐÂY BỊ ĐỔI TÊN (13/08/2026) ────────────────────────┐
   │ Đo trên sóng thật sau lần đẩy đầu: trang ra màu CYAN, không phải vàng-  │
   │ đen. Lý do: `data-theme="surge"` bị GHI CỨNG ở 7 chỗ trong `functions/` │
   │ — và một chỗ nằm trong `_core/congcu.js`, thứ PHẢI giống từng byte với  │
   │ nhà gốc nên không được sửa ở đây.                                       │
   │                                                                         │
   │ ⇒ Vá ở chỗ THUỘC VỀ NHÀ NÀY: đổi tên ba da cũ thành `*-cu`. Giờ mọi     │
   │ `data-theme` mà mã phát ra đều KHÔNG khớp da nào, nên rơi về `:root`    │
   │ trần = vàng-đen. Một nhà MỘT bộ mặt.                                    │
   │                                                                         │
   │ Giữ lại bảng màu cũ chứ không xoá: chúng là bản gốc của khuôn, xoá đi   │
   │ là mất đường về khi cần đối chiếu.                                      │
   │ 📌 Nợ ghi rõ: cách đúng nhất là cho `data-theme` đọc từ thẻ căn cước    │
   │ thay vì ghi cứng — việc đó phải vá ở KHUÔN GỐC, không vá ở đây.         │
   └─────────────────────────────────────────────────────────────────────────┘ */
:root[data-theme="surge-cu"]{
  --bg:#04070F; --sbg:rgba(3,6,12,.93); --panel:#0A1220; --panel2:#0F1B30; --line:#16304F;
  --acc:#00E5FF; --acc2:#B44DFF; --tx:#EAF6FF; --mut:#8FA9C9; --mut2:rgba(143,169,201,.13);
  --ok:#2BFFB0; --okbg:rgba(43,255,176,.13);
  --canh:#E5484D; --canhbg:rgba(229,72,77,.13);
  --glowA:rgba(0,229,255,.14); --glowB:rgba(180,77,255,.12); --grid:rgba(0,229,255,.045);
  --accglow:rgba(0,229,255,.4);
  --gold:#FFD966; --gold2:#E8B923; --goldtx:#1A1300; --goldglow:rgba(255,217,102,.4);
}
:root[data-theme="legend-cu"]{
  --bg:#0E0A1F; --sbg:rgba(14,10,31,.94); --panel:#1C1440; --panel2:#241A52; --line:#2E2260;
  --acc:#FFD700; --acc2:#9D4EDD; --tx:#F5F1FF; --mut:#A99BD8; --mut2:rgba(169,155,216,.15);
  --ok:#3DDC84; --okbg:rgba(61,220,132,.14);
  --glowA:rgba(255,215,0,.10); --glowB:rgba(157,78,221,.14); --grid:rgba(255,215,0,.035);
  --accglow:rgba(255,215,0,.35);
  --gold:#FFD700; --gold2:#E8B923; --goldtx:#1A1300; --goldglow:rgba(255,215,0,.4);
}
:root[data-theme="legacy-cu"]{
  --bg:#EFE7D8; --sbg:rgba(239,231,216,.96); --panel:#F7F1E4; --panel2:#EDE2CB; --line:#D3C4A6;
  /* LUẬT CHỮ TO-ĐẬM-RÕ (đo 15/07/2026): da nền sáng trước đây có chữ mờ 3.40:1 và chữ-trên-nút 3.38:1
     — dưới ngưỡng đọc được 4.5:1. Đã kéo --mut tối lại và hạ tông vàng đồng (chữ kem giữ nguyên). */
  --acc:#641D22; --acc2:#9A7B33; --tx:#2E2418; --mut:#70634C; --mut2:rgba(112,99,76,.15);
  --ok:#3E6B3A; --okbg:rgba(62,107,58,.13);
  --glowA:rgba(100,29,34,.08); --glowB:rgba(154,123,51,.10); --grid:rgba(138,122,94,.10);
  --accglow:rgba(100,29,34,.18);
  --gold:#7C6128; --gold2:#654F20; --goldtx:#F5EBD9; --goldglow:rgba(124,97,40,.35);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--tx);font-family:'Segoe UI',Tahoma,Arial,sans-serif;font-size:19px;line-height:1.75;transition:background .4s,color .4s;position:relative;min-height:100vh}
/* nền lưới cyber + 2 quầng năng lượng — đổi theo da */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(900px 500px at 78% -10%, var(--glowA), transparent 60%),
    radial-gradient(700px 520px at 8% 112%, var(--glowB), transparent 60%),
    linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size:auto,auto,44px 44px,44px 44px;}
.pagez{position:relative;z-index:1}

/* ===== THANG CHỮ THỐNG NHẤT ===== */
h1{font-size:clamp(30px,5.2vw,50px);line-height:1.22;font-weight:900}
h2{font-size:clamp(24px,3.5vw,34px);line-height:1.3;font-weight:800}
h3{font-size:clamp(20px,2.5vw,25px);font-weight:800}
p{margin:14px 0}
strong,b{font-weight:800}
a{color:var(--acc)}
ul{padding-left:26px} li{margin:10px 0}
.mut{color:var(--mut)} .acc{color:var(--acc)}
.goldline{color:var(--gold);font-weight:800}
small{font-size:14.5px}

/* ===== NÚT — 2 kiểu duy nhất toàn hệ ===== */
.cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(135deg,var(--gold),var(--gold2));color:var(--goldtx);
  font-weight:900;font-size:19px;padding:16px 32px;border-radius:13px;text-decoration:none;
  border:none;cursor:pointer;text-align:center;box-shadow:0 0 22px var(--goldglow);transition:.18s;font-family:inherit}
.cta:hover{box-shadow:0 0 34px var(--goldglow);transform:translateY(-1px);filter:brightness(1.05)}
.cta.small{font-size:15.5px;padding:11px 18px;border-radius:10px}
.ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:transparent;border:2px solid var(--line);color:var(--tx);
  font-weight:800;font-size:16px;padding:12px 22px;border-radius:12px;text-decoration:none;cursor:pointer;transition:.18s;font-family:inherit}
.ghost:hover{border-color:var(--acc);box-shadow:0 0 14px var(--accglow)}

/* ===== PANEL / CARD — tia sáng quét như admin ===== */
.panel{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:16px;padding:26px 28px;margin:22px 0;position:relative;overflow:hidden;transition:.18s}
.panel::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:1.5px;background:linear-gradient(90deg,transparent,var(--acc),transparent);opacity:.85;transition:.5s}
.panel:hover{border-color:var(--acc);box-shadow:0 0 22px var(--accglow);transform:translateY(-2px)}
.panel:hover::after{left:120%}
.badgechip{display:inline-block;padding:4px 14px;border-radius:99px;background:var(--mut2);color:var(--acc);font-size:13.5px;font-weight:800;margin-bottom:10px;letter-spacing:.08em}

/* ===== BẢNG ===== */
table{width:100%;border-collapse:collapse;margin:20px 0;font-size:17px}
th,td{border:1px solid var(--line);padding:12px;text-align:left;vertical-align:top}
th{background:var(--mut2);font-weight:800}
td.c,th.c{text-align:center}
.pricebig{font-size:22px;font-weight:900;color:var(--acc)}
.tablewrap{overflow-x:auto;border-radius:12px}

/* ===== FORM ===== */
form label{display:block;font-weight:800;margin:16px 0 6px;font-size:16px;letter-spacing:.03em}
form input,form textarea{width:100%;padding:14px;border-radius:11px;border:1.5px solid var(--line);background:var(--panel);color:var(--tx);font-size:18px;font-family:inherit;font-weight:600}
form input:focus,form textarea:focus{outline:none;border-color:var(--acc);box-shadow:0 0 12px var(--accglow)}
/* 🪤 VẾT 03/08/2026 — luật trên ăn LUÔN cả ô tích: checkbox bị kéo width:100%
   + padding 14px + viền 1.5px, nên trong khối đồng ý nó phình hết chiều ngang
   và đẩy chữ văng sang phải. Nhìn ra màn hình thì tưởng "chữ pháp lý rườm rà",
   thật ra là VỠ GIAO DIỆN — và nó vỡ ở MỌI trang đích, mọi cửa nhận quà.
   Mắt Hùng bắt, không máy nào bắt: máy gác 25 chỉ soi buồng lái, chưa có mắt ở /p. */
form input[type=checkbox],form input[type=radio]{width:auto;min-width:0;padding:0;border:0;box-shadow:none}

/* ===== KỆ SÁCH BLOG ===== */
.shelf{margin:38px 0}
.shelf-h{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}
.shelf-h h2{font-size:22px}
.shelf-h .n{color:var(--mut);font-weight:800;font-size:14px}
.rail{display:flex;gap:16px;overflow-x:auto;padding:4px 2px 14px;scroll-snap-type:x mandatory}
.rail::-webkit-scrollbar{height:8px}
.rail::-webkit-scrollbar-thumb{background:var(--line);border-radius:9px}
.bookcard{flex:0 0 250px;scroll-snap-align:start;border-radius:16px;overflow:hidden;text-decoration:none;color:var(--tx);border:1px solid var(--line);background:var(--panel);transition:.18s;display:block}
.bookcard:hover{transform:translateY(-4px);border-color:var(--acc);box-shadow:0 0 22px var(--accglow)}
.bookcard .cover{height:150px;padding:18px;display:flex;flex-direction:column;justify-content:flex-end;position:relative}
.bookcard .cover .em{position:absolute;top:14px;right:16px;font-size:26px;opacity:.9}
.bookcard .cover b{font-size:17.5px;line-height:1.35;font-weight:900;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.bookcard .meta2{padding:12px 16px;font-size:13.5px;color:var(--mut);font-weight:700}
.hero-post{display:block;text-decoration:none;color:#fff;border-radius:20px;overflow:hidden;border:1px solid var(--line);margin:26px 0 8px;position:relative;transition:.2s}
.hero-post:hover{transform:translateY(-3px);box-shadow:0 0 30px var(--accglow);border-color:var(--acc)}
.hero-post .in{padding:44px 34px;min-height:230px;display:flex;flex-direction:column;justify-content:flex-end}
.hero-post .tagp{font-size:13px;font-weight:900;letter-spacing:.12em;opacity:.95;margin-bottom:10px}
.hero-post h2{font-size:clamp(24px,4vw,36px);color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.45)}
.hero-post p{color:rgba(255,255,255,.92);font-weight:600;font-size:17px;max-width:640px;text-shadow:0 1px 6px rgba(0,0,0,.4)}
/* bìa gradient theo trụ */
.cv1{background:linear-gradient(140deg,#0E3A5C,#00A8CC 60%,#003152)}
.cv2{background:linear-gradient(140deg,#3A1D5C,#B44DFF 65%,#1E0B38)}
.cv3{background:linear-gradient(140deg,#0B4A38,#1FBF8F 65%,#022C1F)}
.cv4{background:linear-gradient(140deg,#5C3A0E,#E8A23B 65%,#3A2202)}

/* ── Blog: lưới 3 cột phẳng (đồng bộ binhancoach) ── */
.blog-head{text-align:center;max-width:760px;margin:46px auto 30px}
.blog-head .kicker{color:var(--acc);font-weight:900;letter-spacing:.2em;font-size:13.5px;margin:0 0 10px}
.blog-head h1{font-size:clamp(30px,5vw,46px);margin:0 0 12px;line-height:1.18}
.blog-head .blog-sub{color:var(--mut);font-size:17px;line-height:1.7;margin:0}
.pgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;margin:6px 0 20px}
.pcard{display:flex;flex-direction:column;border-radius:16px;overflow:hidden;text-decoration:none;color:var(--tx);border:1px solid var(--line);background:var(--panel);transition:.18s}
.pcard:hover{transform:translateY(-4px);border-color:var(--acc);box-shadow:0 0 22px var(--accglow)}
.pc-cover{aspect-ratio:1200/630;overflow:hidden;background:var(--panel2)}
.pc-cover img{width:100%;height:100%;object-fit:cover;display:block;border-radius:0}
.pc-cover.nocover{display:flex;align-items:center;justify-content:center}
.pc-cover.nocover .em{font-size:54px;opacity:.9;filter:drop-shadow(0 2px 8px rgba(0,0,0,.4))}
.pc-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.pc-cat{color:var(--acc);font-weight:800;font-size:13px;letter-spacing:.03em}
.pc-title{font-size:19px;line-height:1.34;font-weight:800;margin:0}
.pc-desc{color:var(--mut);font-size:14.5px;line-height:1.55;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pc-date{color:var(--mut);font-size:13px;font-weight:700;margin-top:auto;padding-top:4px}
.post-cover{margin:22px 0 8px;border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.post-cover img{width:100%;height:auto;display:block;border-radius:0}

/* ── Letterhead mở thư (nếp Halbert: pre-head + Từ/địa điểm/thứ-giờ + lời chào) ── */
.letterhead{border-left:3px solid var(--acc);background:linear-gradient(90deg,var(--mut2),transparent);padding:20px 24px;margin:26px 0 30px;border-radius:0 12px 12px 0}
.letterhead p{margin:0}
.letterhead .lh-to{color:var(--acc);font-weight:800;font-size:16.5px;line-height:1.55;margin-bottom:15px}
.letterhead .lh-from{color:var(--mut);font-size:15.5px;line-height:1.75;font-family:'Consolas','Courier New',monospace}
.letterhead .lh-from strong{color:var(--tx);font-weight:800}
.letterhead .lh-greet{color:var(--tx);font-weight:700;font-size:18px;margin-top:16px}
@media(max-width:640px){.letterhead{padding:16px 18px}.letterhead .lh-to{font-size:15.5px}}

/* thanh tiến độ đọc */
#readbar{position:fixed;top:0;left:0;height:4px;width:0;z-index:60;background:linear-gradient(90deg,var(--acc),var(--acc2));box-shadow:0 0 10px var(--accglow)}

@media(max-width:900px){
  .pgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
}
@media(max-width:640px){
  body{font-size:17.5px}
  .bookcard{flex-basis:210px}
  .hero-post .in{padding:28px 20px}
  .pgrid{grid-template-columns:1fr;gap:16px}
  .blog-head{margin:34px auto 22px}
}
