:root{color-scheme:light;--ink:#1b2434;--muted:#657087;--line:#dfe4ec;--paper:#f3f5f9;--blue:#315cf4;--green:#16814d;--red:#c52f3f;font-family:Arial,Malgun Gothic,sans-serif;font-size:15px;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}a,button,input,select,textarea{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:10px 14px;font-weight:700;min-height:42px}button:hover{border-color:#879bcc;background:#f5f8ff}button:disabled{opacity:.45;cursor:wait}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9ec5ff;outline-offset:2px}button.primary{background:var(--blue);border-color:var(--blue);color:#fff}button.danger{background:var(--red);border-color:var(--red);color:#fff}button.danger-outline{color:var(--red);border-color:#edb8be}button.quiet{background:transparent;border-color:transparent}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}p{color:var(--muted);line-height:1.65;margin:6px 0 18px}h1,h2,h3{line-height:1.3;margin:0 0 10px}h1{font-size:28px}h2{font-size:20px}h3{font-size:16px}small{color:var(--muted)}code,small{font-size:12px}code{overflow-wrap:anywhere}pre{white-space:pre-wrap;word-break:break-word;max-width:640px;max-height:300px;overflow:auto;font-size:12px}label{display:flex;flex-direction:column;gap:7px;font-weight:700;margin:0 0 18px}label small{font-weight:400}input,select,textarea{width:100%;min-width:0;min-height:44px;border:1px solid #cbd3e0;border-radius:7px;background:#fff;color:var(--ink);padding:10px 12px}input[readonly],select:disabled{background:#f0f2f6;color:#526176}textarea{min-height:95px;resize:vertical}input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--blue);flex:none}input[type=file]{font-size:13px;padding:8px}label.checkbox{flex-direction:row;align-items:center;gap:10px;line-height:1.6}fieldset{border:1px solid var(--line);border-radius:8px;margin:0 0 20px;padding:14px}legend{font-weight:700}dialog{width:min(600px,calc(100vw - 28px));max-height:90dvh;border:0;border-radius:18px;padding:26px;box-shadow:0 30px 100px #08122c55}dialog::-webkit-backdrop{background:#07142d88;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}dialog::backdrop{background:#07142d88;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.dialog-head h2{margin:0}.dialog-head button{font-size:24px;padding:0;width:40px}.form-error{color:var(--red);font-weight:700;font-size:14px}.form-error:empty{display:none}.shell{display:grid;grid-template-columns:225px 1fr;min-height:100dvh}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:18px;background:#101b35;color:#bcc9e5;padding:28px 18px}.brand{font-size:25px;letter-spacing:2px;font-weight:900;color:#fff;padding:0 12px 18px}.brand small{display:block;font-size:13px;font-weight:400;letter-spacing:0;color:#94a7d1;margin-top:8px}.sidebar nav{display:flex;flex-direction:column;gap:5px;flex:1 1}.sidebar nav button{border:0;background:transparent;color:#b7c7e5;text-align:left;padding:12px 14px;min-height:46px}.sidebar nav button.selected{background:#2b4b99;color:#fff}.sidebar>.quiet,.sidebar>a:not(.brand){color:#b8cafa;font-size:13px;text-align:left;padding:10px 14px}.content{padding:32px 36px;min-width:0;max-width:1900px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.page-head p{margin-bottom:0}.eyebrow{font-size:11px;font-weight:900;letter-spacing:2px;color:var(--blue);margin:0 0 7px!important}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.status{font-size:12px;color:var(--muted)}.status.online{color:var(--green)}.notice{padding:13px 17px;margin-bottom:22px;border:1px solid #b9d8f7;background:#e9f3ff;border-radius:8px;color:#234c7e;overflow-wrap:anywhere}.notice.error{background:#fff0f1;border-color:#f0c1c7;color:#a42535}.card{padding:25px;background:#fff;border:1px solid var(--line);border-radius:13px;margin-bottom:22px;box-shadow:0 3px 8px #12244204}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.card-head button{flex:none}.card-head p{max-width:720px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px;margin-bottom:22px}.metrics article{background:#fff;border:1px solid var(--line);border-radius:13px;padding:22px}.metrics small,.metrics span{display:block}.metrics span{color:var(--muted);font-size:13px}.metrics strong{font-size:36px;display:block;margin:12px 0}.board-links{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px}.board-links>div{background:#f4f7ff;border:1px solid #e1e8fb;border-radius:10px;padding:22px}.board-links a{display:inline-block;margin:10px 18px 0 0;font-weight:700}.table-scroll{overflow:auto;width:100%}table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}th{font-size:12px;background:#f5f7fa;color:#63708a;font-weight:700;padding:13px 12px;white-space:nowrap}td{border-bottom:1px solid #e9edf4;padding:14px 12px;vertical-align:middle;line-height:1.6}td small{display:block}td button{font-size:12px;padding:6px 10px;min-height:34px}.badge,td button{white-space:nowrap}.badge{font-size:11px;font-weight:700;border-radius:5px;padding:4px 7px;color:#66768e;background:#eef1f6}.badge.good{background:#e4f7ec;color:#177845}.empty{padding:30px 10px;text-align:center;margin:0;color:#8290a5}.product-label{display:flex;align-items:center;gap:12px;min-width:180px}.product-label img,.product-placeholder{width:48px;height:48px;object-fit:contain;border-radius:6px;background:#f4f5fa;flex:none}.product-placeholder{display:grid;place-items:center;color:#a4b3d4;font-size:26px}.inline-form{display:flex;align-items:flex-end;gap:12px}.inline-form label{max-width:200px;margin-bottom:0}.inline-form+.actions{margin-top:22px}.hint{font-size:12px;line-height:1.7;color:#758197}.rank-prize-row{display:grid;grid-template-columns:32px minmax(0,1fr) 70px 38px;grid-gap:7px;gap:7px;align-items:center;margin-bottom:12px}.rank-prize-row button{padding:0}.rank-position{font-size:12px;font-weight:700}.coin-qr{width:105px;height:105px;image-rendering:pixelated}#coin-results{margin-top:20px}.operator-shell{max-width:680px;padding:24px 18px;margin:auto}.operator-shell .page-head{margin-bottom:18px}.operator-shell h1{font-size:27px}.operator-shell .card{padding:20px}.lookup-row{display:flex;gap:8px;margin-bottom:12px}.lookup-row button{flex:none}.lookup-row input{font-size:16px}.wide{width:100%}.reference{background:#f4f6fb;padding:12px 14px;border-radius:8px;overflow-wrap:anywhere}.reference span{display:block;font-size:11px;margin-bottom:4px}.reference code{color:#203052}.reward{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid #e8edf3}.reward:last-child{border-bottom:0}.reward h3{margin:5px 0}.reward p{margin:0;font-size:13px}.reward-kind{font-size:11px;font-weight:700;color:var(--blue)}.reward.muted{opacity:.62}.reward button{flex:none;min-height:46px}.operator-footer{display:flex;gap:15px;justify-content:center;align-items:center;font-size:12px;color:var(--muted);padding:4px 0 24px}.operator-footer button{font-size:12px}.operator-page dialog{max-width:480px}.operator-page #scan-video{width:100%;max-height:55dvh;background:#10182d;object-fit:cover;border-radius:12px}[hidden]{display:none!important}.admin-page .shell{grid-template-columns:190px minmax(0,1fr)}.admin-page .sidebar{padding:14px 10px;gap:8px;overflow:visible}.admin-page .brand{font-size:22px;padding:4px 8px 10px;margin-right:18px;white-space:nowrap}.admin-page .brand small{margin-top:4px;font-size:11px}.admin-page .sidebar nav{flex:0 1 auto;gap:2px;overflow-y:auto;min-height:0}.admin-page .sidebar nav a,.admin-page .sidebar nav button{display:block;flex-shrink:0;border:0;border-radius:6px;background:transparent;color:#b7c7e5;font-size:13px;font-weight:700;text-align:left;padding:7px 10px;min-height:32px;line-height:18px;white-space:nowrap;text-decoration:none}.admin-page .sidebar nav a:hover,.admin-page .sidebar nav button:hover{background:#20345c}.admin-page .sidebar nav a.selected,.admin-page .sidebar nav button.selected{background:#2b4b99;color:#fff}#menu-toggle{position:absolute;right:0;top:22px;z-index:2;display:grid;place-items:center;width:28px;height:32px;min-height:32px;padding:0;border:0;border-radius:6px 0 0 6px;background:#263b65;color:#fff;font-size:26px;line-height:1}.admin-page .shell.menu-collapsed{grid-template-columns:36px minmax(0,1fr)}.admin-page .menu-collapsed .sidebar{padding:0}.admin-page .menu-collapsed .sidebar .brand,.admin-page .menu-collapsed .sidebar nav{display:none}.admin-page .menu-collapsed #menu-toggle{right:4px;border-radius:6px}.signage-previews{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.signage-previews .admin-section{padding:0;margin:0;min-width:0}.signage-previews h2{font-size:15px;margin-bottom:6px}.signage-previews a{font-size:12px}.signage-previews iframe{display:block;width:100%;aspect-ratio:9/16;border:0;background:#03030a;margin-top:12px}@media (max-width:1100px){.signage-previews{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){.admin-page .shell{display:block}.admin-page .sidebar{height:auto;padding:10px}.admin-page .sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.admin-page .brand small{display:block;margin-left:0}.admin-page .shell.menu-collapsed{display:grid}.admin-page .menu-collapsed .sidebar{position:-webkit-sticky;position:sticky;height:100dvh;top:0}.signage-previews{grid-template-columns:minmax(0,1fr)}.signage-previews .card{max-width:360px;width:100%;justify-self:center}}.signage-page{background:#03030a;min-height:100dvh;display:grid;place-items:center;overflow:hidden;color:#fff}.portrait-board{container-type:inline-size;width:min(100vw,calc(100dvh * 9 / 16));aspect-ratio:9/16;background:radial-gradient(circle at 90% 58%,#32234b 0,transparent 27%),radial-gradient(circle at -10% 20%,#201938 0,transparent 27%),linear-gradient(#090311,#120d25);display:flex;flex-direction:column;padding:4cqw;position:relative;isolation:isolate;overflow:hidden}.portrait-board:before{content:"";position:absolute;width:130%;height:45%;left:-15%;bottom:-30%;border-radius:50%;background:#2d2156;opacity:.22;z-index:-1}.board-header{text-align:center;flex:none;padding-bottom:4cqw}.board-game{font-weight:800;font-size:3cqw;letter-spacing:.22cqw;color:#a29abb;margin:0 0 4cqw}.ribbon{display:flex;align-items:center;justify-content:space-evenly;gap:1cqw;background:#3da3ea;border:1.2cqw solid #4367f9;box-shadow:1.4cqw 1.4cqw #281f78,-1.4cqw 1.4cqw #281f78;position:relative;min-height:14cqw;margin:0 2cqw}.ribbon:after,.ribbon:before{content:"";position:absolute;top:4cqw;background:#3c60ec;width:4cqw;height:5cqw;z-index:-1}.ribbon:before{left:-5cqw}.ribbon:after{right:-5cqw}.ribbon h1{font-family:monospace;font-weight:1000;letter-spacing:-.2cqw;font-size:5.8cqw;color:#fff;text-shadow:.6cqw .6cqw #526ff3;margin:0;white-space:nowrap}.ribbon>span{font-size:6cqw;color:#ffdc49;line-height:1;text-shadow:.5cqw .5cqw #ee7875}.ribbon>span:last-child{color:#fa4afb;text-shadow:.5cqw .5cqw #8e239e}.board-header>p{font-size:3.5cqw;color:#eee6ff;font-weight:800;letter-spacing:.25cqw;margin:5cqw 0 0}.board-content{flex:1 1;min-height:0;display:flex;flex-direction:column}.ranking-heading{display:grid;grid-template-columns:12% 1fr 32%;padding:0 3cqw 2cqw;font-size:2.5cqw;font-weight:700;color:#a8a0b9}.ranking-heading span:last-child{text-align:right}.ranking-list{display:grid;grid-template-rows:repeat(10,minmax(0,1fr));grid-gap:1.5cqw;gap:1.5cqw;flex:1 1;min-height:0}.ranking-row{display:grid;grid-template-columns:12% minmax(0,1fr) auto;align-items:center;grid-gap:2cqw;gap:2cqw;background:#2c2844;border:.9cqw solid #69676a;box-shadow:1.1cqw 1.1cqw #222022;padding:1cqw 2cqw;color:#fff;min-height:0}.ranking-row.champion{border-color:#29ee1b;box-shadow:1.1cqw 1.1cqw #17641c}.rank-number{font-family:monospace;font-weight:1000;font-size:5cqw;text-shadow:.4cqw .4cqw #080609;line-height:1}.rank-name{font-weight:700;font-size:3.5cqw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-score{color:#55ef97;font-family:monospace;font-size:5cqw;font-weight:700;letter-spacing:-.2cqw;line-height:1;text-shadow:0 0 1.5cqw #34b664}.vacant .rank-name{color:#6f687f;font-size:2.7cqw}.vacant .rank-number{color:#928a9e}.board-page{text-align:center;font-size:2.4cqw;color:#aaa0bd;margin:2.4cqw 0 0}.board-footer{display:flex;justify-content:space-between;align-items:center;gap:2cqw;margin-top:4cqw;font-size:2.5cqw;color:#a9a1bb;border-top:.3cqw solid #3a2c51;padding:2.5cqw 0 0;flex:none}.board-footer small{font-size:2.2cqw;color:inherit;white-space:nowrap}.board-footer.stale{color:#ffcc64}.goods-groups{display:grid;grid-template-rows:1fr 1fr;grid-gap:4cqw;gap:4cqw;min-height:0;flex:1 1}.goods-group{display:flex;flex-direction:column;min-height:0;background:#1b152c;border:.65cqw solid #5b5368}.goods-group-head{display:flex;justify-content:space-between;align-items:center;background:#324f92;padding:2.1cqw 3cqw}.goods-group-head h2{font-size:4cqw;margin:0;color:#fff}.goods-group-head>span{font-family:monospace;font-size:2.5cqw;color:#c6d8ff}.goods-group.realtime .goods-group-head{background:#683986}.goods-group.realtime .goods-group-head>span{color:#e2caf9}.goods-heading{display:flex;justify-content:space-between;color:#b7afc4;padding:2cqw 3cqw;font-size:2.4cqw}.goods-list{grid-template-rows:repeat(3,minmax(0,1fr));grid-gap:.8cqw;gap:.8cqw;flex:1 1;padding:0 1cqw 1cqw}.goods-list,.goods-row{display:grid;min-height:0}.goods-row{grid-template-columns:17cqw minmax(0,1fr) 13cqw;grid-gap:2.5cqw;gap:2.5cqw;align-items:center;background:#2c2844;border:.6cqw solid #676368;padding:1.6cqw 2cqw}.goods-image{width:17cqw;max-height:17cqw;height:100%;object-fit:contain;background:#211d34;align-self:center}.goods-image.placeholder{display:grid;place-items:center;font-size:8cqw;color:#8270a4}.goods-name{font-size:3.25cqw;font-weight:800;line-height:1.45;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow-wrap:anywhere}.goods-name small{display:block;color:#b6afc1;font-size:2.3cqw;margin-top:1cqw}.goods-stock{text-align:right;font-family:monospace;font-size:5.5cqw;color:#fff;font-weight:900;overflow-wrap:anywhere}.goods-stock small{font-family:Arial,sans-serif;font-size:2.5cqw;color:#c0b9cb;margin-left:.4cqw}.sold-out{opacity:.48}.board-empty{grid-row:1/-1;align-self:center;text-align:center;color:#afa4c3;font-size:3cqw;margin:0}.board-message{flex:1 1;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;padding:5cqw}.board-message h1,.board-message h2{font-size:4cqw;color:#eee5ff}.board-message p{font-size:2.8cqw;color:#b9accd}.board-loading{font-size:3cqw;color:#fff}.signage-tools{position:fixed;right:14px;bottom:14px;display:flex;gap:6px;align-items:center;opacity:0;transition:opacity .2s;background:#141121d9;padding:8px;border-radius:9px}.signage-tools a,.signage-tools button{font-size:11px;min-height:32px;padding:7px 10px;color:#fff;background:#28223b;border:1px solid #5a4d75;border-radius:5px}.signage-page:hover .signage-tools,.signage-tools:focus-within{opacity:1}.embedded .signage-tools{display:none}@media (max-width:1100px){.content{padding:26px 20px}.shell{grid-template-columns:190px 1fr}.sidebar{padding:25px 12px}.metrics{grid-template-columns:repeat(2,1fr)}.page-head{align-items:flex-start;flex-direction:column}.page-head .actions{width:100%}.card{padding:20px}}@media (max-width:700px){.shell{display:block}.sidebar{position:relative;height:auto;padding:16px}.brand{font-size:22px;padding:0}.brand small{display:inline;margin-left:15px}.sidebar nav{flex-direction:row;overflow-x:auto;gap:6px;padding:0 0 5px}.sidebar nav button{white-space:nowrap;font-size:12px;min-height:38px;padding:9px 12px}.sidebar>.quiet,.sidebar>a:not(.brand){display:none}.content{padding:20px 12px}.page-head h1{font-size:25px}.card{padding:18px 14px}.card-head{flex-wrap:wrap;gap:7px}.card-head p{font-size:13px}.card-head>button{margin-bottom:15px}.board-links{gap:10px}.board-links>div{padding:15px}.board-links a{font-size:13px;margin-right:0;display:block}.metrics{gap:10px}.metrics article{padding:17px}.metrics strong{font-size:30px}.metrics small{font-size:11px}.operator-shell .page-head{flex-direction:row;align-items:center}.reward{gap:10px}.reward button{font-size:12px;padding:10px}.rank-prize-row{grid-template-columns:28px minmax(0,1fr) 57px 34px}.rank-prize-row input,.rank-prize-row select{font-size:12px;padding:8px 5px}dialog{padding:21px}.operator-shell{padding:20px 10px}.operator-shell .card{padding:18px 14px}.signage-tools{bottom:4px;right:4px}}.portrait-board{padding:min(4vw,calc(100dvh * 9 / 16 * .04))}.operator-shell td:nth-child(-n+3){white-space:nowrap}.admin-page{background:#fff}.admin-page .content{padding:16px 18px;max-width:none}.admin-page .page-head{margin-bottom:14px;gap:10px}.admin-page h1{font-size:23px;margin-bottom:4px}.admin-page h2{font-size:17px;margin-bottom:6px}.admin-page h3{font-size:14px;margin-bottom:4px}.admin-page p{font-size:13px;line-height:1.5;margin:4px 0 10px}.admin-page .page-head p{margin:0}.admin-page .admin-section{border:0;border-radius:0;box-shadow:none;background:transparent;padding:0;margin:0 0 18px}.admin-page .card-head{gap:10px;margin-bottom:8px;align-items:center}.admin-page .card-head label,.admin-page .card-head p,.admin-page .card-head>button{margin-bottom:0}.admin-page .metrics{gap:0;margin-bottom:16px;border-bottom:1px solid var(--line);padding-bottom:10px}.admin-page .metrics article{background:transparent;border:0;border-radius:0;padding:0 12px;box-shadow:none}.admin-page .metrics article:first-child{padding-left:0}.admin-page .metrics article+article{border-left:1px solid var(--line)}.admin-page .metrics strong{font-size:26px;margin:4px 0}.admin-page .metrics small{font-size:11px}.admin-page td,.admin-page th{padding:7px 8px;line-height:1.4}.admin-page .empty{padding:16px 8px;margin:0}.admin-page .content button,.admin-page dialog button{min-height:32px;padding:6px 10px;font-size:13px}.admin-page label{gap:4px;margin-bottom:10px}.admin-page input,.admin-page select{min-height:34px;padding:6px 8px}.admin-page textarea{min-height:72px;padding:8px}.admin-page .actions{gap:6px}.admin-page .notice{padding:8px 10px;margin-bottom:10px}.admin-page .product-label{gap:8px}.admin-page .product-label img,.admin-page .product-placeholder{width:36px;height:36px}.admin-page #coin-results,.admin-page .inline-form+.actions{margin-top:10px}.admin-page dialog{padding:18px;border-radius:10px}.admin-page .dialog-head{margin-bottom:14px}.admin-page fieldset{padding:10px;margin-bottom:12px}.admin-page .signage-previews .admin-section{margin-bottom:0}@media (max-width:1100px){.admin-page .page-head{flex-direction:row;flex-wrap:wrap}.admin-page .page-head .actions{width:auto}.admin-page .metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:700px){.admin-page .content{padding:12px 10px}.admin-page .metrics{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:10px}.admin-page .metrics article:nth-child(3){border-left:0;padding-left:0}.admin-page .signage-previews .admin-section{width:100%;max-width:360px;justify-self:center}}.signage-setting{display:block;font-size:12px;min-height:34px;margin-top:8px;padding:5px 7px;max-width:200px}@media print{body{background:#fff}#coin-actions,#coin-form,.notice,.page-head,.sidebar,[data-panel=coins] h2,[data-panel=coins] p,[data-panel]:not([data-panel=coins]){display:none!important}.shell{display:block}.card,.content{padding:0;margin:0;border:0;box-shadow:none}[data-panel=coins]{display:block!important}.coin-qr{width:120px;height:120px}table tr{page-break-inside:avoid;break-inside:avoid}.table-scroll{overflow:visible}td{color:#000}}.admin-login-page{min-height:100dvh;display:grid;place-items:center;background:#101b35}.login-shell{width:min(440px,calc(100vw - 28px))}.login-shell--wide{width:min(760px,calc(100vw - 28px))}.admin-login-page .admin-section{margin-top:22px;padding:25px}.admin-login-page .admin-section,.login-card{background:#fff;border-radius:16px;box-shadow:0 20px 70px #06102755}.login-card{padding:32px}.login-card h1{font-size:27px}.login-card>p:not(.eyebrow){margin-bottom:26px}.login-card form{margin-top:18px}.login-card button[type=submit]{width:100%;margin-top:4px}.login-back{display:block;text-align:center;margin-top:20px;color:#657087;font-size:13px}.gate-wait{padding:40px 16px;text-align:center}.store-list{list-style:none;padding:0;margin:0 0 20px;display:grid;grid-gap:10px;gap:10px}.load-more{margin-top:12px}.device-key{display:block;padding:12px;margin:8px 0 14px;background:var(--paper);border:1px solid var(--line);border-radius:8px;font-size:14px;-webkit-user-select:all;-moz-user-select:all;user-select:all}