*{box-sizing:border-box}body{margin:0;color:#182230;background:#eef2f7;overflow-x:hidden}#root{min-height:100vh;min-height:100dvh;max-width:100%}.boot-screen{min-height:100vh;display:grid;place-items:center;background:#eef2f7}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,#ffffffdb,#eef2f7f5),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='700' viewBox='0 0 1200 700'%3E%3Cpath fill='%23dbeafe' d='M0 0h1200v700H0z'/%3E%3Cpath fill='%23bfdbfe' d='M0 498l100-28c100-28 300-84 500-74s400 86 500 124l100 38v142H0z'/%3E%3Cpath fill='%23e0f2fe' d='M0 392l100-4c100-4 300-12 500 20s400 104 500 140l100 36v116H0z'/%3E%3C/svg%3E");background-size:cover}.login-card{width:min(420px,100%);box-shadow:0 18px 50px #18223024}.login-brand{display:flex;align-items:center;flex-direction:column;margin-bottom:24px;text-align:center}.login-logo{width:54px;height:54px;display:block;margin-bottom:12px;border-radius:10px;object-fit:cover}.login-brand h2{margin:0 0 4px}.merchant-register-page{min-height:100vh;position:relative;overflow:hidden;display:grid;place-items:center;padding:32px;background:radial-gradient(circle at 20% 18%,rgba(37,99,235,.38),transparent 34%),radial-gradient(circle at 82% 76%,rgba(20,184,166,.28),transparent 30%),linear-gradient(135deg,#07111f,#101828 48%,#0b1220)}.merchant-bg-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(circle at center,black 0%,transparent 72%);mask-image:radial-gradient(circle at center,black 0%,transparent 72%);animation:grid-drift 18s linear infinite}.merchant-orbit{position:absolute;width:420px;height:420px;border:1px solid rgba(147,197,253,.28);border-radius:999px;box-shadow:0 0 60px #2563eb2e;animation:orbit-rotate 16s linear infinite}.orbit-one{top:-120px;right:9%}.orbit-two{width:300px;height:300px;left:-80px;bottom:8%;animation-duration:22s;animation-direction:reverse}.merchant-register-shell{position:relative;z-index:1;width:min(980px,100%);display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:28px;align-items:center}.register-visual{color:#eaf2ff;animation:register-rise .56s ease both}.register-visual h1{margin:16px 0 12px;color:#fff;font-size:48px}.visual-badge{width:fit-content;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid rgba(147,197,253,.4);border-radius:999px;background:#0f172a94;color:#bfdbfe}.visual-badge img{width:22px;height:22px;border-radius:5px}.metric-strip{margin-top:30px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.metric-strip div{padding:16px;border:1px solid rgba(226,232,240,.14);border-radius:8px;background:#0f172a6b;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.metric-strip strong,.metric-strip span{display:block}.metric-strip strong{color:#fff;font-size:24px}.metric-strip span{margin-top:4px;color:#a9b8ca}.merchant-register-card{position:relative;overflow:hidden;border:1px solid rgba(226,232,240,.22);background:#fffffff0;box-shadow:0 24px 80px #0206175c;animation:card-pop .52s ease .12s both}.merchant-register-card:before{content:"";position:absolute;inset:0;height:3px;background:linear-gradient(90deg,transparent,#2563eb,#14b8a6,transparent);animation:scan-line 2.6s ease-in-out infinite}.admin-layout{min-height:100vh;min-height:100dvh}.admin-sider{background:#fff!important;border-right:1px solid #d9e2ec}.desktop-sider{position:sticky;top:0;height:100vh;height:100dvh;overflow:auto}.brand{height:72px;display:flex;align-items:center;gap:12px;padding:0 20px}.brand-logo,.header-logo{width:36px;height:36px;flex:0 0 auto;border-radius:8px;object-fit:cover}.header-logo{width:30px;height:30px}.brand-copy{min-width:0}.brand strong,.brand span,.header-brand strong,.header-brand span{display:block;line-height:1.2}.brand strong,.header-brand strong{color:#182230}.brand span,.header-brand span{margin-top:4px;color:#667085;font-size:12px}.header-brand{min-width:0;display:flex;align-items:center;gap:10px}.header-brand>div{min-width:0}.header-brand strong,.header-brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-menu-button{display:none;flex:0 0 auto}.mobile-drawer-brand{display:flex;align-items:center;gap:12px}.mobile-nav-drawer .ant-drawer-body{padding:0}.mobile-nav-drawer .ant-menu{border-inline-end:0!important}.menu-sub-count{display:block;margin-top:2px;color:#98a2b3;font-size:11px;line-height:1}.admin-header{height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px;background:#fff;border-bottom:1px solid #d9e2ec}.admin-header>.ant-space{min-width:0;flex:0 0 auto}.admin-header h4{margin:0}.username{color:#475467}.admin-content{padding:24px;background:#eef2f7}.page-stack{width:100%}.page-stack.ant-space-vertical>.ant-space-item{width:100%}.page-title{display:flex;align-items:center;justify-content:space-between;gap:16px}.page-title>div,.section-heading,.section-heading>div{min-width:0}.page-title h3{margin:0 0 4px}.filter-row{width:100%}.filter-row .ant-input,.filter-row .ant-select,.status-filter{width:240px}.product-filter{width:360px}.chart-box{width:100%;min-height:280px}.modal-stack{width:100%}.permission-switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:12px;border:1px solid #d9e2ec;border-radius:8px;background:#f8fbff}.permission-switch-row>div{display:flex;flex-direction:column;gap:4px}.money-input,.modal-select{width:100%}.credential-box{max-height:180px;overflow:auto;padding:12px;background:#f4f7fb;border:1px solid #d9e2ec;border-radius:6px}.expiry-countdown{min-width:116px}.expiry-countdown.compact{min-width:96px}.expiry-track{display:block;width:100%;height:5px;overflow:hidden;border-radius:999px;background:#e7edf3}.expiry-fill{display:block;height:100%;transition:width .3s ease}.expiry-fill.green{background:#16a34a}.expiry-fill.orange{background:#f59e0b}.expiry-fill.red{background:#dc2626}.user-layout .admin-content{max-width:1180px;width:100%;margin:0 auto}.user-stat-card{width:220px}.order-stat-card{width:180px}.recharge-card .ant-card-body{display:grid;gap:16px}.recharge-methods{width:100%}.recharge-env-panel{display:grid;gap:10px;padding:12px;border:1px solid #d9e2ec;border-radius:8px;background:#f8fafc}.recharge-region-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.blackbox-result{display:grid;gap:8px}.blackbox-result .ant-tag{width:fit-content;max-width:100%;margin-inline-end:0;white-space:normal;line-height:1.45;overflow-wrap:anywhere}.blackbox-line{display:block;max-width:100%;overflow:hidden;padding:8px 10px;border:1px solid #e4eaf1;border-radius:6px;background:#fff;text-overflow:ellipsis;white-space:nowrap}.recharge-form{width:100%}.recharge-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.recharge-methods .ant-segmented-group{align-items:stretch}.recharge-methods .ant-segmented-item{min-width:0}.recharge-methods .ant-segmented-item-label{min-width:0;display:flex;align-items:center;justify-content:center;gap:6px;white-space:normal;line-height:1.25}.sms-code-row{width:100%}.sms-code-row .ant-input{min-width:0}.sms-code-row .ant-btn{flex:0 0 auto}.qr-login-panel{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;align-items:center}.qr-box{width:220px;aspect-ratio:1;display:grid;place-items:center;gap:8px;padding:18px;border:1px dashed #b7c4d3;border-radius:8px;background:#f8fafc;color:#475467;text-align:center}.qr-box img{width:100%;height:100%;object-fit:contain}.qr-box .ant-qrcode,.qr-box .ant-qrcode canvas,.qr-box .ant-qrcode svg{width:100%!important;height:100%!important;max-width:100%;max-height:100%}.qr-box .anticon{font-size:44px}.qr-box.wechat .anticon{color:#16a34a}.qr-box.qq .anticon{color:#2563eb}.recharge-log-panel{display:grid;gap:8px;padding:12px;border:1px solid #d9e2ec;border-radius:8px;background:#fff}.recharge-log-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.recharge-log-list{max-height:180px;overflow:auto;display:grid;gap:6px}.recharge-log-item{display:grid;grid-template-columns:86px minmax(0,1fr);gap:8px;align-items:start;padding:8px 10px;border-radius:6px;background:#f8fafc;color:#475467}.recharge-log-item.success{background:#f0fdf4;color:#166534}.recharge-log-item.warning{background:#fffbeb;color:#92400e}.recharge-log-item.error{background:#fef2f2;color:#991b1b}.recharge-log-time{color:inherit;opacity:.72;white-space:nowrap}.recharge-log-message{min-width:0;overflow-wrap:anywhere}.game-profile-panel{display:grid;grid-template-columns:160px minmax(0,1fr);gap:16px;align-items:center;padding:14px;border:1px solid #d9e2ec;border-radius:8px;background:#fff}.game-profile-panel>.ant-space,.game-profile-panel .ant-space-item{min-width:0}.game-profile-panel .ant-tag{max-width:100%;margin-bottom:4px;white-space:normal;overflow-wrap:anywhere}.game-avatar{width:160px;height:160px;display:grid;place-items:center;overflow:hidden;border:1px solid #d9e2ec;border-radius:8px;background:#f8fafc;color:#667085}.game-avatar img{width:160px;height:160px;object-fit:cover}.game-avatar .anticon{font-size:52px}.game-profile-panel h4{margin:0}.section-heading h4{margin:0 0 4px}.product-shop{width:100%}.product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-top:12px}.product-buy-card{height:100%}.product-buy-card .ant-card-body{min-height:360px;display:flex;flex-direction:column;gap:14px}.product-card-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.product-card-title{min-width:0}.product-card-title h4{margin:0 0 6px}.product-id{display:block;max-width:100%;color:#667085;word-break:break-all}.product-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.product-metrics div,.product-expiry-row,.product-action-row{border:1px solid #d9e2ec;border-radius:8px;background:#f8fafc}.product-metrics div{padding:10px;min-width:0}.product-metrics span,.product-expiry-row span,.quantity-control span,.total-price span{display:block;margin-bottom:4px;color:#667085;font-size:12px}.product-metrics strong,.product-expiry-row strong,.total-price strong{color:#182230;overflow-wrap:anywhere}.product-expiry-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;padding:10px}.product-expiry-row .expiry-countdown{grid-column:1 / -1}.product-action-row{display:grid;grid-template-columns:128px minmax(0,1fr);gap:12px;align-items:center;margin-top:auto;padding:12px}.quantity-control .ant-input-number{width:100%}.total-price strong{font-size:20px}.ant-card{border-color:#d9e2ec}.ant-table-wrapper{max-width:100%}@media(max-width:991px){.mobile-menu-button{display:inline-flex}.admin-header{position:sticky;top:0;z-index:20;height:auto;min-height:60px;justify-content:flex-start;padding:10px 14px;gap:8px}.admin-header>.ant-space:last-child{margin-left:auto}.header-brand{flex:1 1 auto;gap:8px}.username{max-width:128px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-content{padding:16px}.user-layout .admin-content{max-width:100%}.page-title{align-items:flex-start;flex-direction:column}.page-title>.ant-space{width:100%;flex-wrap:wrap}.page-title>.ant-space .ant-btn{flex:1 1 140px}.chart-box{min-height:240px}}@media(max-width:768px){.login-page{min-height:100vh;min-height:100dvh;align-items:start;padding:16px}.login-card{margin-top:28px}.merchant-register-page{min-height:100vh;min-height:100dvh;padding:16px}.merchant-register-shell{grid-template-columns:1fr;gap:18px}.register-visual h1{font-size:32px;line-height:1.12}.metric-strip{grid-template-columns:1fr;margin-top:18px}.admin-header{padding:10px 12px}.header-logo{width:28px;height:28px}.header-brand strong{font-size:14px}.header-brand span{font-size:11px}.admin-content{padding:14px}.page-stack{min-width:0}.ant-card .ant-card-body{padding:16px}.ant-card .ant-card-head{padding:0 16px}.filter-row,.filter-row .ant-space-item,.filter-row .ant-input,.filter-row .ant-select,.filter-row .ant-btn,.status-filter,.product-filter{width:100%}.user-stat-card,.order-stat-card{width:calc(50% - 8px);min-width:150px}.product-card-main{align-items:stretch;flex-direction:column}.recharge-form-grid,.recharge-region-row,.qr-login-panel,.game-profile-panel{grid-template-columns:1fr}.qr-login-panel{justify-items:center}.qr-login-panel>.ant-space{width:100%;justify-content:center}.recharge-region-row .ant-select{width:100%;min-width:0}.recharge-region-row .ant-btn{width:100%;min-height:40px;height:auto;white-space:normal}.blackbox-result .ant-tag{width:100%}.recharge-methods .ant-segmented-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.recharge-methods .ant-segmented-item{width:100%}.sms-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto}.sms-code-row .ant-btn{padding-inline:12px}.qr-box{width:100%;max-width:240px;margin-inline:auto}.game-avatar{width:128px;height:128px;max-width:100%}.game-avatar img{width:128px;height:128px}.product-grid{grid-template-columns:minmax(0,1fr)}.product-buy-card .ant-card-body{min-height:0}.product-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.product-expiry-row,.product-action-row{grid-template-columns:1fr}.ant-pagination{justify-content:center;flex-wrap:wrap}.ant-modal{max-width:calc(100vw - 32px)}}@media(max-width:420px){.admin-header{gap:6px}.admin-header .ant-btn{padding-inline:9px}.admin-header .ant-btn>span:not(.ant-btn-icon):not(.anticon){display:none}.admin-header .ant-btn>.ant-btn-icon{display:inline-flex}.admin-header .username{display:none}.brand-logo,.header-logo{border-radius:7px}.user-stat-card,.order-stat-card{width:100%}.product-metrics,.metric-strip{grid-template-columns:1fr}}@keyframes grid-drift{0%{transform:translateZ(0)}to{transform:translate3d(44px,44px,0)}}@keyframes orbit-rotate{0%{transform:rotate(0) translate(8px) rotate(0)}to{transform:rotate(360deg) translate(8px) rotate(-360deg)}}@keyframes register-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes card-pop{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes scan-line{0%,to{transform:translate(-60%);opacity:.18}50%{transform:translate(60%);opacity:1}}
