/* giao-dien-chung 2.0.0 — Bình Minh AI · phong cách "Bình Minh Luxury".
   Hiện thực Instructions 4C (V5.7) + CHUAN-GIAO-DIEN-CHUNG v3.1. CSS thuần, không thư viện, tài nguyên tự lưu.
   Bộ MỚI HOÀN TOÀN — không dùng tệp, tên lớp, tên biến của bộ 1.x (lớp ở đây đều có tiền tố gd-).
   App KHÔNG ghi đè lớp gd-*, không khai lại biến, không thêm mã màu (CHUAN 1.2). */

/* ================================================================ 1. FONT (CHUAN 2.1) — đúng 2 font, tự lưu */
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-display:swap;font-weight:400;src:url("phong/be-vietnam-pro-vietnamese-400-normal.woff2") format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-display:swap;font-weight:400;src:url("phong/be-vietnam-pro-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-display:swap;font-weight:500;src:url("phong/be-vietnam-pro-vietnamese-500-normal.woff2") format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-display:swap;font-weight:500;src:url("phong/be-vietnam-pro-latin-500-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-display:swap;font-weight:600;src:url("phong/be-vietnam-pro-vietnamese-600-normal.woff2") format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-display:swap;font-weight:600;src:url("phong/be-vietnam-pro-latin-600-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-display:swap;font-weight:700;src:url("phong/be-vietnam-pro-vietnamese-700-normal.woff2") format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-display:swap;font-weight:700;src:url("phong/be-vietnam-pro-latin-700-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Playfair Display";font-style:normal;font-display:swap;font-weight:500;src:url("phong/playfair-display-vietnamese-500-normal.woff2") format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9}
@font-face{font-family:"Playfair Display";font-style:normal;font-display:swap;font-weight:500;src:url("phong/playfair-display-latin-500-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Playfair Display";font-style:normal;font-display:swap;font-weight:600;src:url("phong/playfair-display-vietnamese-600-normal.woff2") format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9}
@font-face{font-family:"Playfair Display";font-style:normal;font-display:swap;font-weight:600;src:url("phong/playfair-display-latin-600-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ================================================================ 2. BẢNG MÀU (CHUAN 3.1) — KHÉP KÍN, không màu nào ngoài 3 bảng
   Giao diện đặt trên <html data-theme="toi|sang|may">; mặc định toi. may = theo prefers-color-scheme. */
:root,:root[data-theme="toi"]{
--nen-1:#081A2C;--nen-2:#050F1C;--the-1:#12304D;--the-2:#0A1C2F;--the-phu:#0B2238;--ke:rgba(214,178,110,.22);
--chu:#F3EEE3;--chu-phu:#9FB0C3;--nhan-chu:#F2D69B;--nhan:#D9B36C;--vang-dam:#A9823F;
--vn-1:#F8DFA8;--vn-2:#D9B36C;--vn-3:#B78E48;--tren-vang:#241604;--so-1:#FFF1CF;--so-2:#D9B36C;--so-3:#C09550;
--tc:#6FD39A;--loi:#FF8A8A;--lam:#5FB7E8;--vien-nut:#F2D69B;--focus:#5FB7E8;--o-nen:#0A1C2F;--o-vien:#9FB0C3;
--bong-vang:rgba(217,179,108,.55);--thanh-1:rgba(7,22,38,.96);--thanh-2:#050F1C;--phu:rgba(3,10,20,.72);
--bd-1:#D9B36C;--bd-2:#5FB7E8;--bd-3:#9DB48A;--bd-4:#8FA6BD;
--troi-1:#0A2036;--troi-2:#1B3A55;--troi-3:#7A5A34;--troi-4:#0A1A2B;--mt-1:#FFE9B8;--mt-2:#F2B65E;--mat-troi:#FFF1CF;
--nui-1:#0F2740;--nui-2:#0A1C30;--dat:#081626;--phan-chieu:#F2D69B;
--dh-nen:rgba(5,15,28,.74);--dh-vien:rgba(242,214,155,.28);--dh-ray:rgba(255,255,255,.09);
--the-nui-sang:#F2D69B;--the-nui-toi:#0A1C30;--the-nui-net:#F2D69B;
--g10:linear-gradient(145deg,var(--vn-1) 0%,var(--vang-dam) 22%,var(--vn-1) 48%,var(--vang-dam) 74%,var(--vn-2) 100%);
color-scheme:dark}
:root[data-theme="sang"]{
--nen-1:#FBF8F1;--nen-2:#F2EBDC;--the-1:#FFFFFF;--the-2:#FBF6EC;--the-phu:#F3ECDD;--ke:rgba(148,110,44,.26);
--chu:#1B2433;--chu-phu:#535B6B;--nhan-chu:#7A5418;--nhan:#946E2C;--vang-dam:#6B4A14;
--vn-1:#F8DFA8;--vn-2:#D9B36C;--vn-3:#B78E48;--tren-vang:#241604;--so-1:#86601F;--so-2:#7A5418;--so-3:#5E400F;
--tc:#17703F;--loi:#B3261E;--lam:#1F6FA8;--vien-nut:#7A5418;--focus:#1F6FA8;--o-nen:#FFFFFF;--o-vien:#535B6B;
--bong-vang:rgba(148,110,44,.35);--thanh-1:#FFFDF8;--thanh-2:#F6EFE1;--phu:rgba(3,10,20,.72);
--bd-1:#946E2C;--bd-2:#1F6FA8;--bd-3:#6E7F55;--bd-4:#7D8899;
--troi-1:#FDF3E2;--troi-2:#F9E2BC;--troi-3:#F2C98C;--troi-4:#F6EAD4;--mt-1:#FFF6E0;--mt-2:#F5C77A;--mat-troi:#F7D48A;
--nui-1:#DCC7A4;--nui-2:#C7AC80;--dat:#EFE3CC;--phan-chieu:#946E2C;
--dh-nen:rgba(255,253,248,.88);--dh-vien:rgba(148,110,44,.32);--dh-ray:rgba(27,36,51,.09);
--the-nui-sang:#C9A46A;--the-nui-toi:#F3EADA;--the-nui-net:#946E2C;
--g10:linear-gradient(145deg,var(--nhan) 0%,var(--vang-dam) 22%,var(--nhan) 48%,var(--vang-dam) 74%,var(--nhan-chu) 100%);
color-scheme:light}
@media (prefers-color-scheme:light){:root[data-theme="may"]{
--nen-1:#FBF8F1;--nen-2:#F2EBDC;--the-1:#FFFFFF;--the-2:#FBF6EC;--the-phu:#F3ECDD;--ke:rgba(148,110,44,.26);
--chu:#1B2433;--chu-phu:#535B6B;--nhan-chu:#7A5418;--nhan:#946E2C;--vang-dam:#6B4A14;
--vn-1:#F8DFA8;--vn-2:#D9B36C;--vn-3:#B78E48;--tren-vang:#241604;--so-1:#86601F;--so-2:#7A5418;--so-3:#5E400F;
--tc:#17703F;--loi:#B3261E;--lam:#1F6FA8;--vien-nut:#7A5418;--focus:#1F6FA8;--o-nen:#FFFFFF;--o-vien:#535B6B;
--bong-vang:rgba(148,110,44,.35);--thanh-1:#FFFDF8;--thanh-2:#F6EFE1;--phu:rgba(3,10,20,.72);
--bd-1:#946E2C;--bd-2:#1F6FA8;--bd-3:#6E7F55;--bd-4:#7D8899;
--troi-1:#FDF3E2;--troi-2:#F9E2BC;--troi-3:#F2C98C;--troi-4:#F6EAD4;--mt-1:#FFF6E0;--mt-2:#F5C77A;--mat-troi:#F7D48A;
--nui-1:#DCC7A4;--nui-2:#C7AC80;--dat:#EFE3CC;--phan-chieu:#946E2C;
--dh-nen:rgba(255,253,248,.88);--dh-vien:rgba(148,110,44,.32);--dh-ray:rgba(27,36,51,.09);
--the-nui-sang:#C9A46A;--the-nui-toi:#F3EADA;--the-nui-net:#946E2C;
--g10:linear-gradient(145deg,var(--nhan) 0%,var(--vang-dam) 22%,var(--nhan) 48%,var(--vang-dam) 74%,var(--nhan-chu) 100%);
color-scheme:light}}

/* ================================================================ 3. HẰNG SỐ KHÔNG PHẢI MÀU (CHUAN 2.2, 4, 5, 13, 20) */
:root{
--chu-font:"Be Vietnam Pro",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
--chan-font:"Playfair Display","Be Vietnam Pro",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;
--r-the:20px;--r-nut:16px;--r-nut-nho:14px;--r-o:14px;--r-nho:14px;--r-o-icon:12px;--r-khung:20px;
--cao-thanh:76px;--vien-khung:3px;--chuyen:160ms ease;
/* ô chữ số bề rộng cố định (CHUAN 2.3): bằng chữ số rộng nhất của font, đo 05/10/2026 trên Chromium
   (Be Vietnam Pro 400–700: "4" = 0,710–0,720em · Playfair Display 500/600 lining: "0" = 0,622–0,637em) */
--o-so-chu:.72em;--o-so-chan:.64em;
--g1:linear-gradient(180deg,var(--nen-1),var(--nen-2) 70%);
--g2:linear-gradient(160deg,var(--the-1),var(--the-2));
--g3:linear-gradient(180deg,var(--thanh-1),var(--thanh-2));
--g4:linear-gradient(180deg,var(--vn-1),var(--vn-2) 60%,var(--vn-3));
--g5:linear-gradient(160deg,var(--vn-1),var(--vn-2) 55%,var(--vn-3));
--g6:linear-gradient(180deg,var(--so-1),var(--so-2) 65%,var(--so-3));
--g7:linear-gradient(90deg,var(--vang-dam),var(--nhan-chu));
--b1:0 10px 26px -12px var(--bong-vang);
--b2:0 8px 22px -8px var(--bong-vang)}

/* ================================================================ 4. NỀN, KHUNG APP, VÙNG CUỘN (CHUAN 4, 15.10, 15.11) */
*,*::before,*::after{box-sizing:border-box}
html{font-size:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%;height:100%;background:var(--nen-2)}
body{margin:0;height:100%;overflow:hidden;font-family:var(--chu-font);font-size:1rem;font-weight:400;line-height:1.5;
 letter-spacing:-.005em;color:var(--chu);background:var(--g1);font-variant-numeric:normal}
h1,h2,h3,h4,p,ul,ol,figure{margin:0;padding:0}
ul,ol{list-style:none}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit;margin:0}
a{color:inherit}
svg{display:block;flex:none}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.gd-an{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;padding:0;margin:-1px}

/* khung app: điện thoại = cả màn; màn rộng ≥ 600px = 480px × (cao màn − 48px), giữa màn. Bo --r-khung, cắt nội dung theo góc */
.gd-khung{position:relative;width:100%;height:100vh;height:100dvh;overflow:hidden;border-radius:var(--r-khung);background:var(--g1);isolation:isolate}
@media (min-width:600px){
 body{display:grid;place-items:center}
 .gd-khung{width:480px;height:calc(100vh - 48px);height:calc(100dvh - 48px)}}
/* viền vàng 3px G10 — trên cùng mọi lớp, không nhận con trỏ, trình đọc màn hình bỏ qua */
.gd-vien{position:absolute;inset:0;z-index:60;pointer-events:none;border-radius:inherit;padding:var(--vien-khung);background:var(--g10);
 -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
 mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
@media (forced-colors:active){.gd-vien{background:CanvasText}}
/* vùng cuộn chính: ẩn thanh cuộn dọc, cuộn bằng chạm / chuột / phím (phím: gd.js, không cướp focus) */
.gd-cuon{position:absolute;inset:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
 scrollbar-width:none;-ms-overflow-style:none;padding-top:calc(var(--sp-4) + env(safe-area-inset-top));
 padding-bottom:calc(var(--sp-6) + env(safe-area-inset-bottom))}
.gd-cuon::-webkit-scrollbar{display:none;width:0;height:0}
.gd-khung--co-thanh .gd-cuon{padding-bottom:calc(var(--cao-thanh) + env(safe-area-inset-bottom) + var(--sp-6))}
.gd-cot{max-width:480px;margin:0 auto;padding:0 var(--sp-4)}
.gd-cot>*+*{margin-top:var(--sp-3)}
.gd-phan>*+*{margin-top:var(--sp-3)}
.gd-cot>.gd-phan+.gd-phan{margin-top:var(--sp-6)}
.gd-cot--dau+.gd-cot{margin-top:var(--sp-2)}
/* vùng cuộn NGANG trong khung (tab, nút lọc, bảng báo cáo): GIỮ dấu hiệu còn nội dung — thanh cuộn mảnh màu chữ phụ */
.gd-cuon-ngang{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--chu-phu) transparent;
 padding:var(--sp-1) var(--sp-1) var(--sp-2);margin:calc(var(--sp-1) * -1)}
.gd-cuon-ngang::-webkit-scrollbar{height:4px}
.gd-cuon-ngang::-webkit-scrollbar-thumb{background:var(--chu-phu);border-radius:999px}
.gd-cuon-ngang::-webkit-scrollbar-track{background:transparent}

/* ================================================================ 5. BẬC CHỮ (CHUAN 2.2) — không bậc nào ngoài bảng */
.gd-t-tieu-de{font-family:var(--chan-font);font-size:1.875rem;font-weight:500;line-height:1.2;font-variant-numeric:lining-nums;overflow-wrap:anywhere}
.gd-t-so-lon{font-family:var(--chan-font);font-size:2.125rem;font-weight:600;line-height:1.15;font-variant-numeric:lining-nums;color:var(--so-2)}
.gd-t-so-lon .gd-don{font-family:var(--chu-font);font-size:1.25rem;font-weight:600}
.gd-t-so-vua{font-family:var(--chan-font);font-size:1.25rem;font-weight:600;line-height:1.3;font-variant-numeric:lining-nums}
.gd-t-gio{font-family:var(--chan-font);font-size:2rem;font-weight:600;line-height:1.2;font-variant-numeric:lining-nums}
.gd-t-moc{font-family:var(--chan-font);font-size:1.25rem;font-weight:600;line-height:1.3;font-variant-numeric:lining-nums}
.gd-t-hop{font-size:1.25rem;font-weight:600;line-height:1.4}
.gd-t-nhom{font-size:1rem;font-weight:600;line-height:1.5}
.gd-t-doc{font-size:1rem;line-height:1.5}
.gd-t-doc-dai{font-size:1.0625rem;line-height:1.7}
.gd-t-phu{font-size:.875rem;line-height:1.5}
.gd-t-chu-thich{font-size:.8125rem;line-height:1.5}
.gd-t-nho{font-size:.75rem;font-weight:500;line-height:1.5}
.gd-mau-phu{color:var(--chu-phu)}
.gd-mau-nhan{color:var(--nhan-chu)}
.gd-mau-tc{color:var(--tc)}
.gd-mau-loi{color:var(--loi)}
/* chữ ánh vàng G6 — có màu đặc dự phòng --so-2 (trình duyệt không cắt nền theo chữ / chế độ tương phản cao) */
@supports ((-webkit-background-clip:text) or (background-clip:text)){
 .gd-t-so-lon{background:var(--g6);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
 .gd-t-so-lon .gd-don{-webkit-text-fill-color:transparent}}
@media (forced-colors:active){.gd-t-so-lon,.gd-t-so-lon .gd-don{background:none;color:CanvasText;-webkit-text-fill-color:CanvasText}}
/* chữ số không nhảy bề rộng (CHUAN 2.3): mỗi chữ số trong một ô cố định; textContent giữ nguyên chuỗi */
.gd-so-deu{white-space:nowrap}
.gd-so-deu .gd-so-o{display:inline-block;width:var(--o-so-chu);text-align:center}
.gd-t-tieu-de .gd-so-o,.gd-t-so-lon .gd-so-o,.gd-t-so-vua .gd-so-o,.gd-t-gio .gd-so-o,.gd-t-moc .gd-so-o{width:var(--o-so-chan)}
/* cụm tiền: chỉ xuống dòng ở dấu chấm nghìn, nhóm cuối + ₫ luôn liền */
.gd-tien-cum{white-space:normal}
.gd-tien-cum__duoi{white-space:nowrap}

/* liên kết (CHUAN 18): chữ nhấn + gạch chân; đứng riêng → vùng bấm ≥ 44px; có dấu › → không bắt buộc gạch chân */
a:not([class]),.gd-lk{color:var(--nhan-chu);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.gd-lk{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:44px;font-size:1rem;line-height:1.5}
.gd-lk--mui{text-decoration:none}

/* ================================================================ 6. ICON (CHUAN 19) — nét 1,75, đầu tròn; thang 14/16/20/24/26 */
.gd-ic{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.gd-ic--14{width:14px;height:14px}
.gd-ic--16{width:16px;height:16px}
.gd-ic--20{width:20px;height:20px}
.gd-ic--26{width:26px;height:26px;stroke-width:2}

/* ================================================================ 7. ĐẦU TRANG (CHUAN 7) */
.gd-dau{display:flex;align-items:center;gap:var(--sp-2);min-height:64px}
.gd-dau__ten{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.gd-dau__ten h1{font-family:var(--chan-font);font-size:1.875rem;font-weight:500;line-height:1.2;font-variant-numeric:lining-nums;overflow-wrap:anywhere}
.gd-dau__thu-nghiem{font-size:.75rem;font-weight:500;line-height:1.5;color:var(--chu-phu)}
.gd-dau__tt{flex:0 1 auto;white-space:pre-line;font-size:.8125rem;line-height:1.5;color:var(--chu-phu);text-align:right}

/* ================================================================ 8. NÚT (CHUAN 9) — mọi button viền 2px nét liền --vien-nut */
.gd-nut{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:52px;padding:0 var(--sp-5);
 border:2px solid var(--vien-nut);border-radius:var(--r-nut);background:transparent;color:var(--nhan-chu);
 font-size:1rem;font-weight:600;line-height:1.25;text-align:center;text-decoration:none;cursor:pointer;
 transition:transform var(--chuyen),background-color var(--chuyen),color var(--chuyen);-webkit-tap-highlight-color:transparent}
.gd-nut .gd-ic{width:20px;height:20px}
.gd-nut--chinh{background:var(--g4);color:var(--tren-vang);box-shadow:var(--b1)}
.gd-nut--nguy{color:var(--loi)}
.gd-nut--rong{display:flex;width:100%}
.gd-nut--nho{min-height:44px;padding:0 var(--sp-4);border-radius:var(--r-nut-nho);font-size:.9375rem;font-weight:500;color:var(--chu)}
.gd-hang-nut{display:flex;gap:var(--sp-2)}
.gd-hang-nut>.gd-nut{flex:1 1 0;min-width:0}
.gd-hang-chip{flex-wrap:wrap}
.gd-nut-tron{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:2px solid var(--vien-nut);border-radius:50%;
 background:transparent;color:var(--nhan-chu);cursor:pointer;text-decoration:none;transition:transform var(--chuyen);-webkit-tap-highlight-color:transparent}
.gd-nut:active,.gd-nut-tron:active,.gd-chon>button:active{transform:translateY(1px)}
/* nút chọn nhóm / nút lọc — đang chọn: nền vàng G4, chữ --tren-vang 600 */
.gd-chon{display:flex;gap:var(--sp-2)}
.gd-chon>button{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-4);border:2px solid var(--vien-nut);border-radius:var(--r-nut-nho);background:transparent;
 color:var(--chu);font-size:.9375rem;font-weight:500;line-height:1.25;cursor:pointer;white-space:nowrap;transition:transform var(--chuyen)}
.gd-chon--deu>button{flex:1 1 0;min-width:0;padding:0 var(--sp-2);white-space:normal}
.gd-chon--loc{flex-wrap:nowrap}
.gd-chon--loc>button{flex:none}
.gd-chon>button[aria-pressed="true"]{background:var(--g4);color:var(--tren-vang);font-weight:600}
/* BỊ KHOÁ (CHUAN 9.3) — nhận ra bằng HÌNH: nền thẻ phụ, chữ phụ, viền 2px NÉT ĐỨT, icon ổ khoá; không mờ, không vàng, không bóng.
   Hành vi bị chặn bởi lớp chặn chung của gd.js (không phụ thuộc CSS). */
.gd-nut[aria-disabled="true"],.gd-nut-tron[aria-disabled="true"],.gd-chon>button[aria-disabled="true"]{
 background:var(--the-phu);color:var(--chu-phu);border:2px dashed var(--chu-phu);box-shadow:none;cursor:not-allowed;transform:none}
.gd-nut[aria-disabled="true"]>.gd-ic:not(.gd-ic-khoa){display:none}
.gd-ic-khoa{width:20px;height:20px}
/* ĐANG XỬ LÝ: giữ kích thước, chữ "Đang xử lý…", con trỏ chờ — bấm lặp bị lớp chặn chung chặn */
.gd-nut[aria-busy="true"]{cursor:progress;transform:none}
.gd-ly-do-khoa{font-size:.8125rem;line-height:1.5;color:var(--chu-phu);margin-top:var(--sp-1)}

/* ================================================================ 9. Ô NHẬP (CHUAN 10) */
.gd-o{display:flex;flex-direction:column}
.gd-o+.gd-o{margin-top:var(--sp-4)}
.gd-o__nhan{font-size:1rem;font-weight:500;line-height:1.5;margin-bottom:var(--sp-2)}
.gd-o__vao{width:100%;min-height:52px;padding:0 var(--sp-4);border:1px solid var(--o-vien);border-radius:var(--r-o);background:var(--o-nen);
 color:var(--chu);font-size:1rem;line-height:1.5;-webkit-appearance:none;appearance:none}
textarea.gd-o__vao{min-height:104px;padding:var(--sp-3) var(--sp-4);resize:vertical}
.gd-o__vao::placeholder{color:var(--chu-phu)}
.gd-o__vao[aria-invalid="true"]{border-color:var(--loi)}
.gd-o__vao:disabled,.gd-o__vao[readonly]{background:var(--the-phu);border-color:var(--ke);color:var(--chu-phu);-webkit-text-fill-color:var(--chu-phu)}
.gd-o__vao:disabled{cursor:not-allowed}
.gd-o__tien{text-align:right}
.gd-o__kem{display:flex;align-items:center;gap:var(--sp-2)}
.gd-o__kem>.gd-o__vao{flex:1 1 auto;min-width:0}
.gd-o__mo-ta{font-size:.8125rem;line-height:1.5;color:var(--chu-phu);margin-top:var(--sp-1)}
.gd-o__loi{display:flex;align-items:flex-start;gap:var(--sp-1);font-size:.875rem;line-height:1.5;color:var(--loi);margin-top:var(--sp-1)}
.gd-o__loi:empty{display:none}
.gd-o__loi .gd-ic{width:16px;height:16px;margin-top:3px}

/* ================================================================ 10. THANH ĐIỀU HƯỚNG DƯỚI (CHUAN 13) — 5 vị trí, 76px + vùng an toàn */
.gd-thanh-duoi{position:absolute;left:0;right:0;bottom:0;z-index:40;height:calc(var(--cao-thanh) + env(safe-area-inset-bottom));
 padding-bottom:env(safe-area-inset-bottom);background:var(--g3);border-top:1px solid var(--ke)}
.gd-thanh-duoi__ds{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;height:var(--cao-thanh);max-width:480px;margin:0 auto}
.gd-thanh-duoi__ds>li{display:flex;justify-content:center;height:100%}
.gd-muc{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:var(--sp-1);width:100%;min-width:44px;height:100%;
 padding:0 2px var(--sp-2);color:var(--chu-phu);text-decoration:none;font-size:.75rem;font-weight:500;line-height:1.5;text-align:center;
 -webkit-tap-highlight-color:transparent}
.gd-muc>span{overflow-wrap:anywhere}
.gd-muc[aria-current="page"]{color:var(--nhan-chu);font-weight:600}
/* nút nổi giữa — CHÍNH NÓ là button (hoặc liên kết): tròn 52px, nền vàng G5, viền 2px, bóng B2, nhô lên khỏi cạnh trên thanh 6px
   (đỉnh nút = cạnh trên thanh − 6px; danh sách nằm dưới đường kẻ 1px nên lệch thêm 1px). Nhãn chữ nằm dưới nút, cùng hàng với 4 nhãn kia. */
.gd-muc-giua{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;width:100%;height:100%;
 padding:0 2px var(--sp-2);font-size:.75rem;font-weight:500;line-height:1.5;color:var(--chu-phu);text-align:center}
.gd-muc-giua[data-hien-tai="true"]{color:var(--nhan-chu);font-weight:600}
.gd-noi{position:absolute;top:-7px;left:50%;margin-left:-26px;display:grid;place-items:center;width:52px;height:52px;padding:0;border-radius:50%;
 background:var(--g5);color:var(--tren-vang);border:2px solid var(--vien-nut);box-shadow:var(--b2);cursor:pointer;text-decoration:none;
 transition:transform var(--chuyen);-webkit-tap-highlight-color:transparent}
.gd-noi:active{transform:translateY(1px)}
.gd-noi[aria-disabled="true"]{background:var(--the-phu);color:var(--chu-phu);border:2px dashed var(--chu-phu);box-shadow:none;cursor:not-allowed;transform:none}

/* ================================================================ 12. THẺ (CHUAN 6) — không thẻ chồng thẻ; thẻ bấm được có dấu › */
.gd-the{background:var(--g2);border:1px solid var(--ke);border-radius:var(--r-the);padding:var(--sp-4)}
.gd-the-phu{background:var(--the-phu);border:1px solid var(--ke);border-radius:var(--r-the);padding:var(--sp-4)}
.gd-the>*+*,.gd-the-phu>*+*{margin-top:var(--sp-3)}
a.gd-the{display:flex;align-items:center;gap:var(--sp-3);color:var(--chu);text-decoration:none}
a.gd-the>.gd-the__noi{flex:1 1 auto;min-width:0}
a.gd-the>.gd-the__noi>*+*{margin-top:var(--sp-1)}
a.gd-the>*+*{margin-top:0}
.gd-mui{flex:none;color:var(--chu-phu);font-size:1.25rem;line-height:1}

/* ================================================================ 13. KHỐI TỔNG QUAN (CHUAN 8) */
.gd-tong-quan{position:relative;overflow:hidden;background:var(--g2);border:1px solid var(--ke);border-radius:var(--r-the);padding:var(--sp-4)}
.gd-tong-quan__ky{font-size:.875rem;line-height:1.5;color:var(--chu-phu)}
.gd-tong-quan .gd-t-so-lon{margin-top:var(--sp-1);overflow-wrap:normal}
.gd-tong-quan__cau{display:flex;align-items:flex-start;gap:var(--sp-1);margin-top:var(--sp-2);font-size:.8125rem;line-height:1.5;color:var(--chu-phu)}
.gd-tong-quan__cau .gd-ic{width:16px;height:16px;margin-top:2px}
.gd-tong-quan__bd{font-weight:600}
.gd-tong-quan__bd--tang{color:var(--tc)}
.gd-tong-quan__bd--giam{color:var(--loi)}
.gd-tong-quan__chi-so{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-4);margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--ke)}
.gd-chi-so{flex:1 1 0;min-width:max-content;display:flex;flex-direction:column}
.gd-chi-so__so{font-size:1rem;font-weight:600;line-height:1.5}
.gd-chi-so__nhan{font-size:.8125rem;line-height:1.5;color:var(--chu-phu)}

/* ================================================================ 14. NHÃN TRẠNG THÁI (CHUAN 12) — viên, không nền vàng, luôn icon + chữ */
.gd-chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border:1px solid var(--ke);border-radius:999px;
 background:var(--the-phu);color:var(--chu-phu);font-size:.8125rem;font-weight:500;line-height:1.5;white-space:nowrap}
.gd-chip .gd-ic{width:14px;height:14px}
.gd-chip--tc{color:var(--tc)}
.gd-chip--loi{color:var(--loi)}
.gd-chip--canh{color:var(--nhan-chu)}

/* ================================================================ 15. DANH SÁCH (CHUAN 15.2) — một thẻ nhiều dòng, ngăn bằng đường kẻ */
.gd-ds{background:var(--g2);border:1px solid var(--ke);border-radius:var(--r-the);padding:0 var(--sp-4)}
.gd-ds>li+li{border-top:1px solid var(--ke)}
.gd-dong{display:flex;align-items:center;gap:var(--sp-3);min-height:56px;padding:var(--sp-2) 0;color:var(--chu);text-decoration:none;width:100%;
 background:none;border:0;text-align:left;font:inherit}
.gd-dong__icon{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-o-icon);background:var(--the-phu);color:var(--nhan-chu)}
.gd-dong__giua{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.gd-dong__tt{font-size:1rem;font-weight:500;line-height:1.5;overflow-wrap:anywhere}
.gd-dong__mo-ta{font-size:.8125rem;line-height:1.5;color:var(--chu-phu);overflow-wrap:anywhere}
.gd-dong__gt{flex:none;max-width:50%;font-size:1rem;font-weight:600;line-height:1.5;text-align:right}
.gd-dong__gt--tc{color:var(--tc)}
.gd-dong__gt--loi{color:var(--loi)}

/* thẻ thông tin đôi (CHUAN 15.3) */
.gd-doi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}
.gd-doi>.gd-the{display:flex;flex-direction:column;gap:var(--sp-1)}
.gd-doi>.gd-the>*+*{margin-top:0}
.gd-doi .gd-ic{color:var(--lam)}
.gd-doi__nhan{font-size:.8125rem;line-height:1.5;color:var(--chu-phu)}
.gd-doi__gt{font-size:1rem;font-weight:500;line-height:1.5;overflow-wrap:anywhere}

/* ================================================================ 16. TAB NGANG (CHUAN 15.1) — đang chọn: chữ nhấn 600 + gạch chân 2px G7; không nền vàng */
.gd-tab-hang{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--ke)}
.gd-tab-khung{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--chu-phu) transparent}
.gd-tab{position:relative;flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 var(--sp-2);border:0;background:none;
 color:var(--chu-phu);font-size:.9375rem;font-weight:500;line-height:1.25;cursor:pointer;white-space:nowrap}
.gd-tab:first-child{padding-left:0}
.gd-tab[aria-selected="true"]{color:var(--nhan-chu);font-weight:600}
.gd-tab__gach{display:none;position:absolute;left:var(--sp-2);right:var(--sp-2);bottom:-1px;height:2px;border-radius:2px}
.gd-tab:first-child .gd-tab__gach{left:0}
.gd-tab[aria-selected="true"] .gd-tab__gach{display:block;background:var(--g7)}

/* ================================================================ 17. THÔNG BÁO TRONG TRANG / NỔI (CHUAN 14) */
.gd-bao{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border:1px solid var(--ke);border-radius:var(--r-nho);background:var(--the-phu)}
.gd-bao>.gd-ic{width:20px;height:20px;margin-top:2px;color:var(--lam)}
.gd-bao--tc>.gd-ic{color:var(--tc)}
.gd-bao--loi>.gd-ic{color:var(--loi)}
.gd-bao--canh>.gd-ic{color:var(--nhan-chu)}
.gd-bao__cau{flex:1 1 auto;min-width:0;font-size:1rem;line-height:1.5}
.gd-bao__ma{display:block;font-size:.8125rem;color:var(--chu-phu)}
.gd-noi-khay{position:absolute;left:var(--sp-4);right:var(--sp-4);bottom:calc(var(--sp-4) + env(safe-area-inset-bottom));z-index:55;display:flex;flex-direction:column;gap:var(--sp-2);pointer-events:none}
.gd-khung--co-thanh .gd-noi-khay{bottom:calc(var(--cao-thanh) + env(safe-area-inset-bottom) + var(--sp-3))}
.gd-noi-khay>.gd-bao{pointer-events:auto;align-items:center}

/* ================================================================ 18. KHUNG CHỜ TẢI (CHUAN 14) — chỉ nhấp nháy độ mờ */
.gd-cho{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4) 0}
.gd-cho__thanh{display:block;height:16px;border-radius:999px;background:var(--the-phu);animation:gd-nhap 1.2s ease-in-out infinite}
.gd-cho__thanh--ngan{width:60%}
@keyframes gd-nhap{0%,100%{opacity:1}50%{opacity:.55}}

/* ================================================================ 19. CÔNG TẮC (CHUAN 14) — nút (role=switch) là vùng bấm 56×44; thân 56×32 viền 2px; núm 20px */
.gd-cong-tac-dong{display:flex;align-items:center;gap:var(--sp-3);min-height:56px}
.gd-cong-tac-dong__giua{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.gd-cong-tac-dong__nhan{font-size:1rem;font-weight:500;line-height:1.5}
.gd-cong-tac-dong__mo-ta{font-size:.8125rem;line-height:1.5;color:var(--chu-phu)}
.gd-cong-tac{flex:none;display:grid;place-items:center;width:56px;height:44px;padding:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.gd-cong-tac__than{position:relative;display:block;width:56px;height:32px;border:2px solid var(--vien-nut);border-radius:999px;background:transparent;transition:background-color var(--chuyen)}
.gd-cong-tac__num{position:absolute;top:4px;left:4px;width:20px;height:20px;border-radius:50%;background:var(--chu-phu);transition:transform var(--chuyen)}
.gd-cong-tac[aria-checked="true"] .gd-cong-tac__than{background:var(--g4);color:var(--tren-vang)}
.gd-cong-tac[aria-checked="true"] .gd-cong-tac__num{transform:translateX(24px);background:var(--tren-vang)}
.gd-cong-tac[aria-disabled="true"]{cursor:not-allowed}
.gd-cong-tac[aria-disabled="true"] .gd-cong-tac__than{background:var(--the-phu);border:2px dashed var(--chu-phu)}
.gd-cong-tac[aria-disabled="true"] .gd-cong-tac__num{background:var(--chu-phu)}
.gd-cong-tac:focus-visible{outline:none}
.gd-cong-tac:focus-visible .gd-cong-tac__than{outline:2px solid var(--focus);outline-offset:2px}

/* ================================================================ 20. THANH TIẾN ĐỘ, HẠN MỨC (CHUAN 14, 22) */
.gd-tien-do{position:relative;height:8px;border:1px solid var(--ke);border-radius:999px;background:var(--the-phu);overflow:hidden}
.gd-tien-do__chay{display:block;height:100%;border-radius:999px;background:var(--g7)}
.gd-han-muc{display:flex;flex-direction:column;gap:var(--sp-2)}
.gd-han-muc__cau{font-size:.875rem;line-height:1.5;color:var(--chu-phu)}

/* tính năng bị khoá (CHUAN 22): không ẩn — thẻ phụ, icon, tên, mô tả, trạng thái khoá */
.gd-khoa{display:flex;align-items:flex-start;gap:var(--sp-3)}
.gd-khoa>.gd-ic{color:var(--chu-phu)}
.gd-khoa__giua{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.gd-khoa__ten{font-size:1rem;font-weight:500;line-height:1.5}
.gd-khoa__mo-ta{font-size:.8125rem;line-height:1.5;color:var(--chu-phu)}
.gd-khoa__tt{display:inline-flex;align-items:center;gap:var(--sp-1);margin-top:var(--sp-1);font-size:.8125rem;font-weight:600;line-height:1.5;color:var(--nhan-chu)}
.gd-khoa__tt .gd-ic{width:14px;height:14px}

/* ================================================================ 21. HỘP THOẠI, BẢNG HÀNH ĐỘNG (CHUAN 14) — nằm TRONG khung app, dưới viền vàng */
.gd-phu-nen{position:absolute;inset:0;z-index:50;display:none;place-items:center;padding:var(--sp-4);background:var(--phu)}
.gd-phu-nen[data-mo="true"]{display:grid}
body>.gd-phu-nen{position:fixed}
.gd-hop{width:100%;max-width:360px;max-height:calc(100% - var(--sp-8));overflow-y:auto;padding:var(--sp-5);border:1px solid var(--ke);border-radius:var(--r-the);background:var(--g2)}
.gd-hop>*+*{margin-top:var(--sp-4)}
.gd-hop__t{font-size:1.25rem;font-weight:600;line-height:1.4}
.gd-hop__cau{font-size:1rem;line-height:1.5}
.gd-hop__nut{display:flex;flex-direction:column;gap:var(--sp-2)}
.gd-bang-hd{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}
.gd-bang-hd>li{min-width:0}
.gd-bang-hd__ca-hang{grid-column:1 / -1}
.gd-bang-hd .gd-nut{justify-content:center;white-space:nowrap;padding:0 var(--sp-4)}

/* ================================================================ 22. BẢNG (CHUAN 16) — khung < 640px: mỗi dòng một thẻ; báo cáo: cuộn ngang trong khung, cột đầu đứng yên */
.gd-bang-khung{container-type:inline-size}
.gd-bang{width:100%;border-collapse:collapse}
.gd-bang th{padding:var(--sp-2) var(--sp-3);font-size:.8125rem;font-weight:500;line-height:1.5;color:var(--chu-phu);text-align:left;border-bottom:1px solid var(--ke)}
.gd-bang td{padding:var(--sp-3);font-size:1rem;line-height:1.5;border-bottom:1px solid var(--ke);vertical-align:top}
.gd-bang th:first-child,.gd-bang td:first-child{padding-left:0}
.gd-bang .gd-cot-tien{text-align:right;white-space:nowrap}
.gd-bang .gd-cot-chinh{font-weight:600}
@container (max-width:639px){
 .gd-bang-khung .gd-bang thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .gd-bang-khung .gd-bang,.gd-bang-khung .gd-bang tbody,.gd-bang-khung .gd-bang tr,.gd-bang-khung .gd-bang td{display:block}
 .gd-bang-khung .gd-bang tbody tr{background:var(--g2);border:1px solid var(--ke);border-radius:var(--r-the);padding:var(--sp-2) var(--sp-4)}
 .gd-bang-khung .gd-bang tbody tr+tr{margin-top:var(--sp-3)}
 .gd-bang-khung .gd-bang td{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-3);padding:var(--sp-2) 0;text-align:right}
 .gd-bang-khung .gd-bang td+td{border-top:1px solid var(--ke)}
 .gd-bang-khung .gd-bang td{border-bottom:0}
 .gd-bang-khung .gd-bang td::before{content:attr(data-nhan);flex:none;font-size:.8125rem;line-height:1.5;color:var(--chu-phu);text-align:left}
 .gd-bang-khung .gd-bang td.gd-cot-chinh{order:-1}}
.gd-bang-cuon{overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--chu-phu) transparent;background:var(--the-phu);border:1px solid var(--ke);border-radius:var(--r-nho)}
.gd-bang-cuon .gd-bang{width:max-content;min-width:100%}
.gd-bang-cuon .gd-bang th:last-child,.gd-bang-cuon .gd-bang td:last-child{padding-right:var(--sp-3)}
.gd-bang-cuon .gd-bang tr:last-child td{border-bottom:0}
.gd-bang-cuon .gd-bang th:first-child,.gd-bang-cuon .gd-bang td:first-child{position:sticky;left:0;z-index:1;background:var(--the-phu);padding-left:var(--sp-3);padding-right:var(--sp-3)}
.gd-bang-cuon__goi-y{display:flex;align-items:center;gap:var(--sp-1);margin-top:var(--sp-1);font-size:.8125rem;line-height:1.5;color:var(--chu-phu)}
.gd-bang-cuon__goi-y .gd-ic{width:16px;height:16px}

/* ================================================================ 23. TRẠNG THÁI TRỐNG, TRẠNG THÁI MÀN (CHUAN 15.9, 21) */
.gd-trang-thai{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-4);text-align:center}
.gd-trang-thai__icon{display:grid;place-items:center;width:56px;height:56px;border:1px solid var(--ke);border-radius:50%;background:var(--the-phu);color:var(--nhan-chu)}
.gd-trang-thai__icon--loi{color:var(--loi)}
.gd-trang-thai__t{font-size:1rem;font-weight:600;line-height:1.5}
.gd-trang-thai__cau{max-width:30ch;font-size:.875rem;line-height:1.5;color:var(--chu-phu)}
.gd-trang-thai__ma{font-size:.8125rem;line-height:1.5;color:var(--chu-phu)}
.gd-trang-thai>.gd-nut{margin-top:var(--sp-2)}

/* ================================================================ ĐỢT 3 — THÀNH PHẦN NHẬN DIỆN (CHUAN 15.4–15.8) + CÀI ĐẶT CHUẨN (CHUAN 22)
   Minh hoạ chỉ do bộ vẽ (svg.gd-minh-hoa, aria-hidden); màu chỉ là biến minh hoạ mục 3.1 (G8). App chỉ bật / tắt và đưa dữ liệu. */
.gd-minh-hoa{fill:none}
.gd-minh-hoa .gd-st-n1{stop-color:var(--the-nui-sang);stop-opacity:.5}
.gd-minh-hoa .gd-st-n2{stop-color:var(--the-1);stop-opacity:0}
.gd-minh-hoa .gd-st-t1{stop-color:var(--troi-1)}
.gd-minh-hoa .gd-st-t2{stop-color:var(--troi-2)}
.gd-minh-hoa .gd-st-t3{stop-color:var(--troi-3)}
.gd-minh-hoa .gd-st-t4{stop-color:var(--troi-4)}
.gd-minh-hoa .gd-st-m1{stop-color:var(--mt-1)}
.gd-minh-hoa .gd-st-m2{stop-color:var(--mt-2);stop-opacity:.55}
.gd-minh-hoa .gd-st-m3{stop-color:var(--mt-2);stop-opacity:0}
.gd-minh-hoa .gd-st-vd{stop-color:var(--vang-dam)}
.gd-minh-hoa .gd-st-vs{stop-color:var(--nhan-chu)}
.gd-minh-hoa .gd-st-lam{stop-color:var(--lam)}

/* dải núi trong khối tổng quan (15.4): cao 110px, tràn mép trái / phải / đáy thẻ */
.gd-nui{display:block;height:110px;margin:var(--sp-3) calc(var(--sp-4) * -1) calc(var(--sp-4) * -1)}
.gd-nui>svg{width:100%;height:110px}
.gd-nui__lop-1{fill:var(--the-nui-toi)}
.gd-nui__net{fill:none;stroke:var(--the-nui-net);stroke-width:1.4;opacity:.85}

/* cảnh bình minh (15.5): cao 260px, tràn mép màn (hai bên cột 16px) */
.gd-canh{position:relative;height:260px;margin-left:calc(var(--sp-4) * -1);margin-right:calc(var(--sp-4) * -1);overflow:hidden}
.gd-canh>svg{position:absolute;inset:0;width:100%;height:100%}
.gd-canh__mat-troi{fill:var(--mat-troi)}
.gd-canh__nui-1{fill:var(--nui-1);opacity:.92}
.gd-canh__nui-2{fill:var(--nui-2)}
.gd-canh__dat{fill:var(--dat)}
.gd-canh__phan-chieu{fill:none;stroke:var(--phan-chieu);stroke-opacity:.4;stroke-width:1.2}
.gd-canh__giua{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}

/* mặt đồng hồ / vòng tiến độ (15.6): 204px; nền --dh-nen viền 1px --dh-vien; rãnh 7px; cung 7px đầu tròn (G8) */
.gd-dh{position:relative;width:204px;height:204px;flex:none}
.gd-the>.gd-dh,.gd-the-phu>.gd-dh{margin-left:auto;margin-right:auto}
.gd-dh>svg{position:absolute;inset:0}
.gd-dh__nen{fill:var(--dh-nen);stroke:var(--dh-vien);stroke-width:1}
.gd-dh__ray{fill:none;stroke:var(--dh-ray);stroke-width:7}
.gd-dh__cung{fill:none;stroke-width:7;stroke-linecap:round}
.gd-dh__giua{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-1);padding:0 var(--sp-6);text-align:center}
.gd-dh__giua>.gd-ic{color:var(--nhan-chu)}
.gd-dh__tt{font-size:.875rem;font-weight:600;line-height:1.5;color:var(--nhan-chu)}
.gd-dh__gio{color:var(--chu)}
.gd-dh__loi{font-size:.875rem;font-weight:600;line-height:1.5;color:var(--chu)}
.gd-dh__ma{font-size:.75rem;font-weight:500;line-height:1.5;color:var(--chu)}

/* mốc giờ (15.7): lưới 4 ô bằng nhau, khe 8px; ô nền thẻ phụ, viền --ke, bo 14px; chấm 8px; nhãn 13px; giờ có chân 20px · 600 */
.gd-moc{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2)}
.gd-moc>li{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);min-width:0;padding:var(--sp-3) var(--sp-1);
 border:1px solid var(--ke);border-radius:var(--r-nho);background:var(--the-phu);text-align:center}
.gd-moc__cham{display:block;width:8px;height:8px;border-radius:50%;background:var(--chu-phu)}
.gd-moc__cham--xong{background:var(--tc)}
.gd-moc__nhan{font-size:.8125rem;line-height:1.5;color:var(--chu-phu);overflow-wrap:anywhere}
.gd-moc__gio{color:var(--chu)}

/* biểu đồ cơ cấu (15.8): vòng 120px dày 16px, khúc màu đặc (G9) cách nhau khe 2px --the-1; chú thích bên phải */
.gd-bieu-do{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4)}
.gd-bieu-do__vong-khung{position:relative;flex:none;width:120px;height:120px}
.gd-bieu-do__vong{position:absolute;inset:0;border-radius:50%;
 -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 16px),var(--chu) calc(100% - 16px));
 mask:radial-gradient(farthest-side,transparent calc(100% - 16px),var(--chu) calc(100% - 16px))}
.gd-bieu-do__giua{position:absolute;inset:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.gd-bieu-do__tong{font-size:.75rem;font-weight:500;line-height:1.5;color:var(--chu-phu)}
.gd-bieu-do__giua .gd-t-so-vua{line-height:1.2}
.gd-bieu-do__don{font-size:.75rem;font-weight:500;line-height:1.5;color:var(--chu-phu)}
.gd-bieu-do__ct{flex:1 1 140px;min-width:0;display:flex;flex-direction:column;gap:var(--sp-2)}
.gd-bieu-do__ct>li{display:grid;grid-template-columns:10px minmax(0,1fr) auto;column-gap:var(--sp-2);align-items:baseline}
.gd-bieu-do__cham{width:10px;height:10px;border-radius:50%;align-self:center}
.gd-bieu-do__ten{font-size:.8125rem;line-height:1.5;overflow-wrap:anywhere}
.gd-bieu-do__pt{font-size:.8125rem;font-weight:600;line-height:1.5;color:var(--nhan-chu);text-align:right}
.gd-bieu-do__gt{grid-column:2 / -1;font-size:.75rem;font-weight:500;line-height:1.5;color:var(--chu-phu)}
.gd-bd-1{background:var(--bd-1)}
.gd-bd-2{background:var(--bd-2)}
.gd-bd-3{background:var(--bd-3)}
.gd-bd-4{background:var(--bd-4)}

/* trang Cài đặt chuẩn (CHUAN 22) — bộ dựng đúng thứ tự 6 phần; app không đổi cấu trúc */
.gd-cd__goi-nhan{font-size:.875rem;line-height:1.5;color:var(--chu-phu)}
.gd-cd__goi-ten{color:var(--chu)}
.gd-the>.gd-cd__goi-ten{margin-top:0}
.gd-cd__ghi-chu{font-size:.8125rem;line-height:1.5;color:var(--chu-phu)}
.gd-the>.gd-dong{padding:var(--sp-1) 0}
.gd-the>.gd-dong+.gd-dong{border-top:1px solid var(--ke);margin-top:0}
.gd-cd__phien-ban{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2);font-size:.875rem;line-height:1.5;color:var(--chu-phu)}

/* ================================================================ 24. CHUYỂN ĐỘNG (CHUAN 20) */
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
