:root{--canvas: #eef1ed;--surface: #ffffff;--ink: #1c2421;--muted: #5e6b66;--line: #d5dcd7;--red: #b42318;--red-soft: #fbe9e7;--jade: #1f6f5c;--jade-soft: #e3f1ec;--amber: #9a5a06;--amber-soft: #fbf0dc;--grey: #7c8783;--piece: #f6e7cc;--radius-s: 6px;--radius-m: 10px;--font: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--canvas);color:var(--ink);font:15px/1.55 var(--font);-webkit-font-smoothing:antialiased}h1{font-size:28px;line-height:1.2;font-weight:700;margin:0 0 6px;letter-spacing:-.01em}h2{font-size:17px;font-weight:600;margin:0}h3{font-size:15px;font-weight:600;margin:24px 0 10px}code,.keycode{font-family:var(--mono);font-weight:500;letter-spacing:.02em}code.small,.small{font-size:12.5px}.muted{color:var(--muted)}.lede{color:var(--muted);margin:0 0 22px;max-width:70ch}.error{color:var(--red);margin:0}.good{color:var(--jade)}.bad{color:var(--red)}.nowrap{white-space:nowrap}.pad{padding:16px}:focus-visible{outline:2px solid var(--jade);outline-offset:2px}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100%}.side{background:var(--ink);color:#dfe6e2;padding:22px 14px;display:flex;flex-direction:column;gap:26px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:0 8px}.brand strong{display:block;font-size:17px;color:#fff}.brand small{color:#9fb0a9;font-size:13px}.side nav{display:flex;flex-direction:column;gap:2px}.side nav a{color:#c9d3cf;text-decoration:none;padding:9px 12px;border-radius:var(--radius-s);font-weight:500}.side nav a:hover{background:#26302c;color:#fff}.side nav a.active{background:#2c3833;color:#fff;box-shadow:inset 3px 0 0 var(--red)}.side .side-out{margin-top:auto;color:#9fb0a9;text-align:left;padding:9px 12px}.main{padding:32px clamp(16px,4vw,48px) 64px;min-width:0}.page{max-width:1180px}.page.narrow{max-width:520px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.page-head h1{margin:0}.mark{width:42px;height:42px;border-radius:50%;flex:none;background:var(--piece);border:2.5px solid var(--red);display:grid;place-items:center;box-shadow:0 2px #c9b48f}.mark span{width:32px;height:32px;border-radius:50%;border:1px solid var(--red);display:grid;place-items:center;color:var(--red);font:700 19px/1 "Noto Serif SC",Songti SC,SimSun,serif}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.btn{display:inline-block;text-decoration:none;color:inherit;border:1px solid var(--line);background:var(--surface);padding:8px 14px;border-radius:var(--radius-s);font-weight:500;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--grey)}.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn.primary:hover:not(:disabled){background:#2d3935}.btn.danger{color:var(--red);border-color:#efc6c1}.btn.danger:hover:not(:disabled){background:var(--red-soft);border-color:var(--red)}.btn.small{padding:5px 10px;font-size:13px}.btn.block{width:100%;padding:11px}.link{background:none;border:0;padding:0;color:var(--jade);font-weight:500;text-decoration:none}.link:hover{text-decoration:underline}.icon-btn{background:none;border:0;font-size:26px;line-height:1;padding:2px 8px;color:var(--muted)}.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 11px;font-size:13px}.chip:hover{border-color:var(--grey)}input,textarea,select{font:inherit;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-s);padding:8px 11px;min-width:0}input:focus,textarea:focus{outline:none;border-color:var(--jade);box-shadow:0 0 0 3px var(--jade-soft)}input:disabled{background:var(--canvas);color:var(--grey)}input[type=checkbox]{width:16px;height:16px;accent-color:var(--ink);padding:0}.w-num{width:96px}.seg{display:inline-flex;flex-wrap:wrap;background:#e1e6e2;padding:3px;border-radius:8px;gap:2px}.seg button{border:0;background:none;padding:6px 12px;border-radius:6px;font-size:14px;color:var(--muted)}.seg button:hover{color:var(--ink)}.seg button.on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #1c24211f}.form{display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:6px;border:0;padding:0;margin:0;min-width:0}.field>span,.field>legend{font-size:13.5px;font-weight:600;padding:0;margin-bottom:6px}.field>span{margin-bottom:0}.hint{font-size:13px;color:var(--muted);margin:4px 0 0}.check{display:inline-flex;align-items:center;gap:8px;font-size:14px}.row{display:flex;align-items:center}.row.gap{gap:10px}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1}.form .row.gap{flex-wrap:wrap;align-items:flex-end}.field .row.gap{align-items:center}.status{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;white-space:nowrap}.status i{width:9px;height:9px;border-radius:50%;background:var(--grey)}.status.active i{background:var(--jade)}.status.expiring i{background:var(--amber)}.status.expired i{background:var(--grey)}.status.locked i{background:var(--red)}.status.expiring{color:var(--amber)}.status.locked{color:var(--red)}.status.expired{color:var(--muted)}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:14px}.search{flex:1 1 280px;display:flex}.search input{flex:1}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-weight:600;font-size:13px;color:var(--muted);padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:10px 14px;border-bottom:1px solid #e9ede9;vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tr.picked td{background:#f3f7f4}.table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table .chk{width:36px;padding-right:0}.table .note{color:var(--muted);max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.keycode{background:none;border:0;padding:0;color:var(--ink);font-size:14px;text-align:left}.keycode:hover{color:var(--jade);text-decoration:underline;text-underline-offset:3px}.keycode.big{font-size:20px}.empty{padding:40px 20px;text-align:center;color:var(--muted)}.empty p{margin:0 0 14px}.pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px}.bulk{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;background:var(--ink);color:#fff;padding:8px 10px 8px 16px;border-radius:var(--radius-m)}.bulk strong{margin-right:6px;font-weight:600}.bulk .btn{background:#2c3833;border-color:#3a4843;color:#fff;padding:6px 12px}.bulk .btn.danger{color:#ffb4ab}.bulk .link{color:#b8c7c1;margin-left:auto;padding-right:6px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:18px 20px;margin-bottom:18px}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.bar{display:flex;height:14px;border-radius:999px;overflow:hidden;background:#e7ebe8;gap:2px}.bar span{flex-basis:0}.bar .active,.legend i.active{background:var(--jade)}.bar .expiring,.legend i.expiring{background:#d08a1c}.bar .expired,.legend i.expired{background:#a9b3af}.bar .locked,.legend i.locked{background:var(--red)}.legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 22px;padding:0;margin:12px 0 0}.legend a{display:inline-flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none;font-size:14px}.legend a:hover{text-decoration:underline}.legend i{width:10px;height:10px;border-radius:3px}.legend b{font-variant-numeric:tabular-nums}.cols{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:6px;height:150px;align-items:end}.col{display:grid;grid-template-rows:18px 1fr 18px;height:100%;text-align:center}.col-bar{align-self:end;background:var(--ink);border-radius:4px 4px 0 0;min-height:2px}.col-n{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;align-self:end}.col-l{font-size:11.5px;color:var(--muted);overflow:hidden;white-space:nowrap}.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.two .panel{margin:0}.plain{list-style:none;margin:0;padding:0}.plain li{display:flex;flex-wrap:wrap;gap:4px 12px;padding:8px 0;border-top:1px solid #e9ede9;font-size:14px}.plain li:first-child{border-top:0;padding-top:0}.plain li .muted{margin-left:auto}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#141b186b;z-index:20;display:flex;align-items:center;justify-content:center;padding:16px}.modal,.drawer{background:var(--surface);display:flex;flex-direction:column;max-height:100%;box-shadow:0 20px 60px #141b184d}.modal{width:min(560px,100%);border-radius:14px}.overlay:has(.drawer){justify-content:flex-end;padding:0}.drawer{width:min(520px,100%);height:100%;animation:slide .18s ease-out}@keyframes slide{0%{transform:translate(24px);opacity:.6}}.dlg-head{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 8px 22px}.dlg-body{padding:8px 22px 22px;overflow-y:auto}.dlg-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--line)}.codes{width:100%;font-family:var(--mono);font-size:14px;resize:vertical}.drawer-key{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:0 0 16px;font-size:14px}.facts dt{color:var(--muted)}.facts dd{margin:0}.devices{list-style:none;padding:0;margin:0 0 8px}.devices li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid #e9ede9}.devices li div{display:flex;flex-direction:column;gap:2px;min-width:0}.devices code{overflow-wrap:anywhere;color:var(--muted)}.login{min-height:100%;display:grid;place-items:center;padding:24px}.login-card{width:min(380px,100%);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:32px 28px;display:flex;flex-direction:column;gap:16px}.login-card h1{margin:0;font-size:24px}.login-card p{margin:-10px 0 4px}.toasts{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:50}.toast{background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;font-size:14px;box-shadow:0 8px 24px #141b1840}.toast.bad{background:var(--red)}@media(max-width:860px){.shell{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;align-items:center;flex-wrap:wrap;padding:12px 14px;gap:12px}.brand small{display:none}.side nav{flex-direction:row;flex-wrap:wrap}.side .side-out{margin:0 0 0 auto}.two{grid-template-columns:1fr}.main{padding-top:22px}.cols{gap:3px}.col-l{font-size:9px;letter-spacing:-.02em}.col:nth-child(2n) .col-l{visibility:hidden}}@media(prefers-reduced-motion:reduce){.drawer{animation:none}}.mark.big{width:56px;height:56px}.mark.big span{width:44px;height:44px;font-size:26px}.figures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-m);overflow:hidden;margin-bottom:18px}.figures>div{background:var(--surface);padding:14px 18px;display:flex;flex-direction:column;gap:2px}.figures span{font-size:13px;color:var(--muted)}.figures b{font-size:21px;font-variant-numeric:tabular-nums}.figures small{font-size:12.5px;color:var(--muted)}.table td.actions{white-space:nowrap;text-align:right}.table td.actions .btn+.btn{margin-left:6px}.page.narrow-2{max-width:760px}.plain .push{margin-left:auto}.add-admin{margin-top:14px}.add-admin input{flex:1 1 180px}.center{text-align:center}.u-shell{min-height:100%;display:flex;flex-direction:column}.u-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px clamp(16px,4vw,32px);background:var(--ink);color:#fff}.u-brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-size:17px}.u-top .btn{padding:7px 12px}.u-top .btn:not(.primary){background:transparent;color:#fff;border-color:#3a4843}.u-top .btn.primary{background:var(--piece);color:var(--ink);border-color:var(--piece)}.u-balance{display:flex;flex-direction:column;align-items:flex-end;color:#fff;text-decoration:none;line-height:1.2}.u-balance span{font-size:12px;color:#9fb0a9}.u-balance b{font-size:18px;font-variant-numeric:tabular-nums;color:var(--piece)}.u-tabs{display:flex;gap:4px;padding:0 clamp(8px,4vw,32px);background:var(--surface);border-bottom:1px solid var(--line);overflow-x:auto}.u-tabs a{padding:12px 12px 10px;color:var(--muted);text-decoration:none;font-weight:500;white-space:nowrap;border-bottom:2px solid transparent}.u-tabs a.active{color:var(--ink);border-bottom-color:var(--red)}.u-main{flex:1;padding:24px clamp(16px,4vw,32px) 56px}.u-page{max-width:680px;margin:0 auto}.u-h1{font-size:26px}.notice{background:var(--amber-soft);color:#5c3a06;border-radius:var(--radius-s);padding:10px 14px;margin:0 0 16px}.packs{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:10px}.pack{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:16px 18px}.pack h2{font-size:18px}.pack p{margin:2px 0 0;font-size:14px}.pack-buy{display:flex;align-items:center;gap:14px;flex:none}.price{font-size:19px;font-variant-numeric:tabular-nums}.bought{text-align:center;padding:8px 0 4px}.bought .keycode.big{font-size:22px}.steps{padding-left:20px;margin:12px 0;display:flex;flex-direction:column;gap:6px}.u-keys{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.u-keys li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:16px 18px}.u-keys .facts{margin:12px 0 0}.u-hist{list-style:none;padding:0;margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m)}.u-hist li{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid #e9ede9}.u-hist li:first-child{border-top:0}.u-hist li div{display:flex;flex-direction:column;gap:2px;min-width:0}.u-hist .right{align-items:flex-end;text-align:right;flex:none}.u-hist b{font-variant-numeric:tabular-nums}@media(max-width:860px){.figures{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.pack{flex-direction:column;align-items:stretch}.pack-buy{justify-content:space-between}.u-brand strong{display:none}}.u-h2{font-size:18px;margin:26px 0 10px}.seg.wide{display:flex;margin-bottom:16px}.seg.wide button{flex:1;padding:10px 12px;font-size:15px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip.big{padding:8px 14px;font-size:14.5px;font-weight:500}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.bank{background:var(--surface);border:2px solid var(--red);border-radius:14px;padding:26px 22px;text-align:center}.bank-big{font-size:22px;line-height:1.45;font-weight:600;margin:0 0 20px}.bank-big b{color:var(--red)}.bank-phone{display:block;font-size:34px;font-weight:700;letter-spacing:.02em;margin-top:6px;font-variant-numeric:tabular-nums}.zalo-btn{display:inline-flex;align-items:center;gap:10px;background:#0068ff;border-color:#0068ff;color:#fff;font-size:18px;font-weight:600;padding:14px 26px;border-radius:999px}.zalo-btn:hover:not(:disabled){background:#0057d6;border-color:#0057d6}.bank .muted{margin:16px 0 0}.download{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;background:var(--ink);color:#fff;border-radius:14px;padding:20px 22px;margin-bottom:26px}.download h1{font-size:22px;margin:0 0 4px}.download p{margin:0;color:#b8c7c1;font-size:14.5px}.dl-btns{display:flex;flex-wrap:wrap;gap:10px}.btn.dl{display:inline-flex;align-items:center;gap:10px;background:var(--piece);color:var(--ink);border-color:var(--piece);padding:10px 16px;border-radius:10px}.btn.dl:hover:not(:disabled){background:#fff;border-color:#fff}.btn.dl span{display:flex;flex-direction:column;line-height:1.2;text-align:left}.btn.dl small{font-size:12px;color:var(--muted);font-weight:400}.dock{position:fixed;left:14px;bottom:16px;display:flex;flex-direction:column;gap:10px;z-index:15}.dock-btn{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:#fff;text-decoration:none;box-shadow:0 6px 18px #141b1847;position:relative}.dock-btn.zalo{background:#0068ff}.dock-btn.phone{background:var(--jade)}.dock-btn small{position:absolute;bottom:5px;font-size:8.5px;font-weight:700;letter-spacing:.02em}.dock-btn.zalo svg{margin-top:-6px}.u-main{padding-bottom:96px}@media(max-width:520px){.download{padding:18px}.dl-btns{width:100%}.btn.dl{flex:1}.bank-big{font-size:19px}.bank-phone{font-size:30px}.u-top .u-balance b{font-size:16px}}.ticker{overflow:hidden;background:var(--red);color:#fff;border-radius:10px;margin-bottom:14px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}.ticker-track{display:flex;width:max-content;animation:ticker 16s linear infinite}.ticker-track span{display:flex}.ticker-track b{display:inline-flex;align-items:center;gap:18px;padding:9px 18px;font-size:16px;white-space:nowrap}.ticker-track i{font-style:normal;font:700 13px/1 "Noto Serif SC",SimSun,serif;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--piece);color:var(--red)}@keyframes ticker{to{transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.ticker-track{animation:none}}.btn.guide-btn{background:transparent;color:#fff;border-color:#56665f;align-self:center;padding:10px 14px}.btn.guide-btn:hover:not(:disabled){border-color:#fff}.guide-steps{list-style:none;counter-reset:step;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.guide-steps li{counter-increment:step;position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:16px 18px 16px 62px}.guide-steps li:before{content:counter(step);position:absolute;left:16px;top:14px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--piece);color:var(--red);border:2px solid var(--red);font-weight:700}.guide-steps h2{font-size:17px;margin:4px 0 6px}.guide-steps p{margin:0 0 8px}.guide-steps p:last-child{margin-bottom:0}.guide-steps .btn.dl{margin-top:4px}.guide-help{margin-top:20px}.guide-video{margin:0 0 18px}.guide-video video{display:block;width:100%;aspect-ratio:16 / 9;background:var(--ink);border-radius:var(--radius-m)}.video-soon{aspect-ratio:16 / 9;border-radius:var(--radius-m);background:var(--ink);color:#dfe6e2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:16px}.video-soon span{color:#9fb0a9;font-size:14px}
