*{box-sizing:border-box}html{font-size:12px}body{margin:0;background:#080914;color:#f4f4f6;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,"Microsoft YaHei",sans-serif;font-size:12px;min-width:320px}a{color:inherit;text-decoration:none}.page{min-height:100vh;padding-bottom:68px}.topbar{height:52px;display:flex;align-items:center;justify-content:center;padding:0 52px;background:#111226;border-bottom:1px solid rgba(255,255,255,.06);position:sticky;top:0;z-index:10}.topbar h1{font-size:15px;margin:0;font-weight:700;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.back-btn{position:absolute;left:10px;top:50%;transform:translateY(-50%);min-width:34px;height:34px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#1b1c30;border:1px solid rgba(255,255,255,.09);color:#fff066;font-size:12px;font-weight:700;padding:0 10px}.back-btn:active{transform:translateY(-50%) scale(.96)}.empty-home{height:calc(100vh - 120px);display:flex;align-items:center;justify-content:center;color:#6e7188}
.home-screen{min-height:calc(100vh - 112px);padding:20px 14px 84px;display:flex;align-items:flex-start;justify-content:center}
.home-hero-card{width:100%;background:linear-gradient(180deg,#241543 0%,#17162b 100%);border:1px solid rgba(255,255,255,.08);border-radius:22px;padding:16px;display:grid;grid-template-columns:120px 1fr;gap:14px;box-shadow:0 16px 40px rgba(0,0,0,.34)}
.home-hero-figure{display:flex;align-items:flex-end;justify-content:center;min-height:176px}
.home-hero-figure img{width:100%;max-width:130px;height:auto;display:block;object-fit:contain;filter:drop-shadow(0 10px 24px rgba(0,0,0,.36))}
.home-entry-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:end}
.home-entry-btn{min-height:88px;border-radius:18px;padding:14px 10px;background:linear-gradient(180deg,#38224f 0%,#24192f 100%);border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.03)}
.home-entry-btn .title{font-size:18px;font-weight:900;letter-spacing:1px}
.home-entry-btn .sub{font-size:12px;font-weight:800;letter-spacing:1.2px;opacity:.8}
.home-entry-btn.order .title{color:#b36cff}.home-entry-btn.order .sub{color:#c894ff}
.home-entry-btn.reserve .title{color:#fff066}.home-entry-btn.reserve .sub{color:#fff39a}
.home-entry-btn:active{transform:scale(.98)}
.bottom-nav{position:fixed;left:0;right:0;bottom:0;height:60px;background:#111226;border-top:1px solid rgba(255,255,255,.08);display:flex;z-index:50}.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#9497ad;font-size:12px}.bottom-nav a.active{color:#ffef5a}.bottom-nav .ico{font-size:18px}.shop-layout{display:grid;grid-template-columns:92px 1fr;min-height:calc(100vh - 112px)}.cat-list{background:#0c0d19;border-right:1px solid rgba(255,255,255,.06);padding:10px 0;position:sticky;top:52px;height:calc(100vh - 112px);overflow:auto}.cat-list a{display:block;padding:14px 8px;text-align:center;color:#a5a8bc;border-left:3px solid transparent}.cat-list a.active{background:#fff066;color:#15151c;border-left-color:#fff066;font-weight:700}.goods{padding:10px 10px 92px;min-width:0}.goods-card{display:grid;grid-template-columns:90px 1fr;gap:10px;margin-bottom:14px;background:#111226;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:8px}.goods-card img{width:90px;height:90px;object-fit:cover;border-radius:10px;background:#222}.goods-info{min-width:0}.goods-title{font-size:14px;font-weight:700;color:#fff;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:7px}.price{font-size:18px;color:#fff066;font-weight:800}.meta{display:flex;gap:6px;flex-wrap:wrap;margin:5px 0}.badge{display:inline-flex;align-items:center;height:20px;padding:0 6px;border-radius:6px;background:rgba(255,240,102,.16);color:#fff066;font-size:12px}.goods-actions{display:flex;gap:8px;margin-top:8px}.btn{border:0;border-radius:999px;padding:8px 11px;background:#fff066;color:#161616;font-size:12px;font-weight:700;cursor:pointer}.btn.secondary{background:#24263a;color:#fff}.btn.danger{background:#ff6961;color:#fff}.btn.block{width:100%;border-radius:12px}.shop-footer{position:fixed;left:10px;right:10px;bottom:70px;z-index:999;background:#17182c;border:1px solid rgba(255,255,255,.08);border-radius:24px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 8px 30px rgba(0,0,0,.35)}.shop-footer .sum{padding:10px 16px;color:#fff}.shop-footer .go{background:#fff066;color:#161616;padding:16px 24px;font-weight:800;border-radius:24px}.panel{margin:14px;background:#111226;border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:14px}.panel h2{font-size:16px;margin:0 0 12px}.row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06)}.row:last-child{border-bottom:0}.muted{color:#8d90a6}.form{padding:16px}.form label{display:block;margin:12px 0 6px;color:#c5c7d5}.input{width:100%;height:42px;border:1px solid rgba(255,255,255,.12);background:#111226;border-radius:10px;color:#fff;padding:0 12px;font-size:12px}.alert{margin:12px 14px;padding:10px 12px;border-radius:10px}.alert-success{background:rgba(78,203,113,.15);color:#7df0a6}.alert-danger{background:rgba(255,105,97,.15);color:#ff8f88}.product-detail{padding:14px 14px 80px}.product-detail img.main{width:100%;border-radius:18px;aspect-ratio:1/1;object-fit:cover}.rich-content{line-height:1.8;color:#e8e8ee}.rich-content img{max-width:100%;border-radius:10px}.login-links{margin-top:14px;text-align:center;color:#fff066}@media (min-width:768px){body{background:#05050b}.page{max-width:420px;margin:0 auto;background:#080914}.bottom-nav{left:50%;transform:translateX(-50%);max-width:420px}.shop-footer{left:calc(50% - 200px);right:calc(50% - 200px)}}
.form-inner label{display:block;margin:12px 0 6px;color:#c5c7d5}.text-link{display:inline-block;margin-top:10px;color:#fff066}.product-mini{display:grid;grid-template-columns:74px 1fr;gap:12px;align-items:center}.product-mini img{width:74px;height:74px;object-fit:cover;border-radius:12px}.product-mini h2{margin:0 0 4px}.product-mini p{margin:0 0 6px}.checkout-page{padding-bottom:94px}.confirm-form{margin:0}.info-choice{display:flex;align-items:center;gap:8px;background:#18192c;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px}.pay-option{display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.08);background:#18192c;border-radius:12px;padding:12px;margin-bottom:10px}.pay-option input,.info-choice input{accent-color:#fff066}.pay-option span{display:flex;flex-direction:column;gap:3px}.pay-option small{color:#8d90a6}.confirm-bottom{position:fixed;left:10px;right:10px;bottom:70px;min-height:58px;background:#17182c;border:1px solid rgba(255,255,255,.08);border-radius:20px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;box-shadow:0 8px 30px rgba(0,0,0,.35);z-index:40}.confirm-bottom small{display:block;color:#8d90a6}.confirm-bottom strong{display:block;color:#fff066;font-size:18px}.btn:disabled{opacity:.45;cursor:not-allowed}.menu-list{padding:4px 14px}.menu-item{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.06)}.menu-item:last-child{border-bottom:0}.menu-item strong{color:#8d90a6;font-weight:500}.order-list{padding-bottom:70px}.order-card h2{font-size:14px;margin:0 0 6px}.order-head{display:flex;justify-content:space-between;gap:10px;color:#8d90a6;margin-bottom:10px}.order-head strong{color:#fff066}.order-body{display:grid;grid-template-columns:68px 1fr;gap:10px;margin-bottom:10px}.order-body img{width:68px;height:68px;object-fit:cover;border-radius:10px;background:#222}@media (min-width:768px){.confirm-bottom{left:calc(50% - 200px);right:calc(50% - 200px)}}
.product-carousel{position:relative;width:100%;border-radius:18px;overflow:hidden;background:#111226;border:1px solid rgba(255,255,255,.07)}
.carousel-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.carousel-track::-webkit-scrollbar{display:none}
.carousel-slide{min-width:100%;scroll-snap-align:center}.carousel-slide img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;background:#222}
.carousel-dots{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:center;gap:6px}.carousel-dots span{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.45);box-shadow:0 1px 5px rgba(0,0,0,.4)}.carousel-dots span.active{width:16px;border-radius:8px;background:#fff066}
.carousel-hint{position:absolute;right:10px;top:10px;background:rgba(0,0,0,.45);color:#fff;padding:4px 8px;border-radius:999px;font-size:12px}
.price-line{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.old-price{color:#777b90;text-decoration:line-through;font-size:12px;font-weight:500}.discount-tag{display:inline-flex;align-items:center;height:18px;border-radius:5px;background:#ff6961;color:#fff;padding:0 5px;font-size:12px;font-weight:700}
.goods-card{position:relative}.cart-add-btn{position:absolute;right:8px;top:8px;width:30px;height:30px;border:0;border-radius:50%;background:#fff066;color:#15151c;font-size:22px;line-height:28px;font-weight:900;box-shadow:0 4px 14px rgba(0,0,0,.35);z-index:2;cursor:pointer}.cart-add-btn:active{transform:scale(.94)}.cart-add-btn:disabled{opacity:.55}.card-qty{position:absolute;right:3px;top:2px;min-width:16px;height:16px;border-radius:999px;background:#ff6961;color:#fff;font-size:12px;font-weight:800;display:none;align-items:center;justify-content:center;padding:0 4px;z-index:3}.card-qty.show{display:inline-flex}.shop-footer .cart-summary{display:flex;align-items:center;gap:10px;min-width:0}.cart-bag{width:46px;height:46px;margin-left:8px;border-radius:50%;background:#24263a;display:flex;align-items:center;justify-content:center;position:relative;font-size:22px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.cart-bag span{position:absolute;right:-4px;top:-4px;min-width:18px;height:18px;border-radius:999px;background:#ff6961;color:#fff;font-size:12px;font-weight:900;display:flex;align-items:center;justify-content:center;padding:0 4px}.shop-footer .go.disabled{background:#383a4a;color:#9fa2b6;pointer-events:auto}.cart-toast{position:fixed;left:50%;bottom:142px;transform:translateX(-50%);background:rgba(0,0,0,.82);color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:9px 14px;z-index:80;box-shadow:0 8px 25px rgba(0,0,0,.35)}.cart-item{display:grid;grid-template-columns:58px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06)}.cart-item:last-child{border-bottom:0}.cart-item img{width:58px;height:58px;border-radius:10px;object-fit:cover;background:#222}.cart-item h3{margin:0 0 5px;font-size:13px}.cart-item .cart-line-price{color:#fff066;font-weight:800}.cart-item .cart-qty{color:#8d90a6;white-space:nowrap}.cart-total-row{font-size:14px}.cart-total-row strong{font-size:18px;color:#fff066}@media (min-width:768px){.cart-toast{bottom:142px}}
.cart-bag{border:0;color:#fff;cursor:pointer}.cart-mask{position:fixed;left:0;right:0;top:0;bottom:0;background:rgba(0,0,0,.55);z-index:90}.cart-drawer{position:fixed;left:0;right:0;bottom:0;max-height:78vh;background:#121326;border-radius:20px 20px 0 0;border-top:1px solid rgba(255,255,255,.1);box-shadow:0 -16px 38px rgba(0,0,0,.45);z-index:100;transform:translateY(105%);transition:transform .18s ease;overflow:hidden}.cart-drawer.open{transform:translateY(0)}.cart-drawer-head{height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid rgba(255,255,255,.07)}.cart-drawer-head h2{font-size:15px;margin:0}.cart-drawer-head>div{display:flex;align-items:center;gap:8px}.cart-clear{border:0;background:transparent;color:#fff066;font-size:12px;padding:7px 8px;cursor:pointer}.cart-close{width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:#202238;color:#fff;font-size:20px;line-height:26px;cursor:pointer}.cart-drawer-body{max-height:calc(78vh - 126px);overflow:auto;padding:2px 14px}.cart-empty{padding:34px 12px;text-align:center;color:#8d90a6}.drawer-cart-item{display:grid;grid-template-columns:58px 1fr auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.06)}.drawer-cart-item:last-child{border-bottom:0}.drawer-cart-item img{width:58px;height:58px;border-radius:10px;object-fit:cover;background:#222}.drawer-cart-info{min-width:0}.drawer-cart-info h3{font-size:13px;margin:0 0 5px;max-width:145px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-badge{display:inline-flex;align-items:center;height:18px;padding:0 5px;border-radius:5px;background:rgba(255,240,102,.14);color:#fff066;font-size:12px;margin-top:4px}.drawer-cart-actions{display:flex;flex-direction:column;align-items:flex-end;gap:7px}.qty-control{display:flex;align-items:center;border:1px solid rgba(255,255,255,.12);border-radius:999px;overflow:hidden;background:#1b1c30}.qty-control button{width:28px;height:28px;border:0;background:transparent;color:#fff066;font-size:18px;font-weight:900;cursor:pointer}.qty-control span{min-width:24px;text-align:center;color:#fff;font-weight:700}.drawer-remove{border:0;background:transparent;color:#ff8f88;font-size:12px;cursor:pointer;padding:3px 0}.cart-drawer-foot{height:72px;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-top:1px solid rgba(255,255,255,.08);background:#17182c}.cart-drawer-foot small{display:block;color:#9fa2b6;margin-bottom:3px}.cart-drawer-foot strong{font-size:18px;color:#fff066}.cart-drawer-foot .btn.disabled{background:#383a4a;color:#9fa2b6;pointer-events:auto}@media (min-width:768px){.cart-mask{left:50%;transform:translateX(-50%);max-width:420px}.cart-drawer{left:50%;right:auto;transform:translate(-50%,105%);max-width:420px;width:420px}.cart-drawer.open{transform:translate(-50%,0)}}

.blank-page{min-height:calc(100vh - 112px);}
.me-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.me-head h2{margin:0 0 3px}.me-head p{margin:0}.me-avatar{width:58px;height:58px;border-radius:50%;object-fit:cover;background:#24263a;border:1px solid rgba(255,255,255,.12)}.profile-avatar-edit{display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:center;margin-bottom:12px}.profile-avatar-edit img{width:72px;height:72px;border-radius:50%;object-fit:cover;background:#24263a;border:1px solid rgba(255,255,255,.12)}.profile-avatar-edit label{margin-top:0}
.seat-list{padding:10px 14px 82px;display:grid;gap:12px}.seat-card{width:100%;border:1px solid rgba(255,255,255,.08);background:#17182c;border-radius:16px;padding:10px;display:grid;grid-template-columns:84px 1fr;gap:12px;text-align:left;color:#fff;text-decoration:none;align-items:center}.seat-card.reserved{cursor:pointer}.seat-card img{width:84px;height:84px;border-radius:12px;object-fit:cover;background:#222}.seat-info h2{font-size:15px;margin:0 0 6px}.seat-info p{margin:0 0 8px;color:#c7cad8}.seat-status{font-weight:900}.seat-status.is-reserved{color:#ff6961}.seat-status.is-free{color:#fff}.seat-detail{padding:14px 14px 90px}.seat-hero{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:18px;background:#222;border:1px solid rgba(255,255,255,.07);margin-bottom:12px}.btn.block{width:100%;height:46px;margin-top:14px}.seat-modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.62);z-index:100;align-items:center;justify-content:center;padding:18px}.seat-modal{width:min(390px,94vw);background:#15162a;border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:16px;box-shadow:0 18px 45px rgba(0,0,0,.45)}.seat-modal h2{font-size:16px;margin:0 0 10px}.seat-modal label{display:block;margin:12px 0 6px;color:#c5c7d5}.modal-actions{display:flex;gap:10px;margin-top:14px}.modal-actions .btn{flex:1}.reserve-calc{display:flex;justify-content:space-between;align-items:center;margin:12px 0;padding:12px;border-radius:12px;background:#1e2036}.reserve-calc strong{font-size:20px;color:#fff066}.section-title{padding:16px 14px 6px;color:#fff;font-size:14px;font-weight:900}.access-code-row strong{font-size:18px;letter-spacing:2px;color:#fff066}.seat-room{padding:14px 14px 82px}.room-online{display:flex;align-items:center;justify-content:space-between}.room-online strong{font-size:26px;color:#fff066}.room-blank{min-height:220px;display:flex;align-items:center;justify-content:center;text-align:center}

.access-code-copy{display:flex;align-items:center;gap:8px}.access-code-copy strong{font-size:18px;letter-spacing:2px;color:#fff066}.copy-code-btn{height:28px;border:0;border-radius:999px;background:#fff066;color:#15151c;font-size:12px;font-weight:800;padding:0 10px;cursor:pointer}.copy-code-btn:active{transform:scale(.96)}
.room-score-card{display:flex;flex-direction:column;gap:10px}.base-score{width:100%;border:0;border-radius:14px;background:#1d1f35;color:#fff;padding:14px;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.base-score span{color:#aeb2c8}.base-score strong{font-size:24px;color:#fff066}.base-score.can-edit{box-shadow:0 0 0 1px rgba(255,240,102,.35) inset}.score-progress{display:flex;justify-content:space-between;color:#c8cad8}.score-progress span:last-child{color:#fff066}.room-game-status{margin:0 14px 12px}.game-freeze,.game-result{background:rgba(255,240,102,.12);border:1px solid rgba(255,240,102,.22);border-radius:14px;padding:12px;text-align:center;color:#fff}.game-freeze strong{display:inline-block;margin-left:6px;color:#fff066;font-size:18px}.game-result{background:rgba(78,203,113,.13);border-color:rgba(78,203,113,.25)}.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}.room-cell{height:116px;border-radius:15px;background:#111226;border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;text-align:center;touch-action:manipulation}.room-cell.empty{color:#555a72;background:#0d0e1c;border-style:dashed}.room-cell.empty span{font-size:22px;font-weight:800}.room-cell.me{box-shadow:0 0 0 1px rgba(255,240,102,.25) inset}.room-cell.submitted .avatar-wrap img{border-color:#4edb79;box-shadow:0 0 0 2px rgba(78,219,121,.35)}.avatar-wrap{position:relative;width:52px;height:52px}.avatar-wrap img{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.14);background:#222}.commit-badge{position:absolute;right:-7px;bottom:-3px;min-width:24px;height:20px;border-radius:999px;background:#4edb79;color:#07130b;font-size:12px;font-weight:900;display:flex;align-items:center;justify-content:center;padding:0 5px}.cell-name{width:100%;padding:0 6px;margin-top:6px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.owner-badge{margin-top:4px;height:18px;line-height:18px;border-radius:999px;background:#fff066;color:#161616;font-weight:900;font-size:12px;padding:0 7px}.seat-no{margin-top:4px;color:#8d90a6;font-size:12px}.kick-tip{position:absolute;left:0;right:0;bottom:0;background:rgba(255,105,97,.18);color:#ff9c96;font-size:12px;height:19px;line-height:19px}.room-actions{display:flex;flex-direction:column;gap:10px;margin:12px 0}.winner-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}.winner-item{border:1px solid rgba(255,255,255,.08);background:#202238;border-radius:12px;color:#fff;padding:10px 6px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer}.winner-item img,.vote-winner img{width:50px;height:50px;border-radius:50%;object-fit:cover;background:#222}.vote-winner{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 0}.vote-winner strong{font-size:15px;color:#fff066}.room-actions .btn.danger{background:#ff6961;color:#fff}
.kick-x{position:absolute;right:-7px;top:-7px;width:24px;height:24px;border-radius:999px;border:1px solid rgba(255,255,255,.45);background:#ff4d4f;color:#fff;font-size:18px;font-weight:900;line-height:20px;display:flex;align-items:center;justify-content:center;z-index:5;box-shadow:0 3px 10px rgba(0,0,0,.35);cursor:pointer;padding:0}.kick-x:active{transform:scale(.94)}

.room-cell.hangup .avatar-wrap img{filter:grayscale(.35);opacity:.58;border-color:#777a8e}.hangup-badge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;border-radius:999px;background:rgba(0,0,0,.72);color:#fff066;font-size:12px;font-weight:900;padding:2px 6px;z-index:4}.room-cell.hangup .cell-name{color:#9a9dad}

@media (max-width:380px){.home-hero-card{grid-template-columns:104px 1fr;padding:14px;gap:12px}.home-entry-actions{gap:10px}.home-entry-btn{min-height:80px;padding:12px 8px}.home-entry-btn .title{font-size:16px}}

/* v32 首页排版：上方大图，下方两个等宽入口按钮 */
.home-screen{min-height:calc(100vh - 112px);padding:20px 14px 84px;display:block}
.home-hero-card{width:100%;background:linear-gradient(180deg,#241543 0%,#17162b 100%);border:1px solid rgba(255,255,255,.08);border-radius:22px;padding:14px;display:block;box-shadow:0 16px 40px rgba(0,0,0,.34)}
.home-banner{width:100%;aspect-ratio:4/1;border-radius:14px;background:#21163b;border:1px solid rgba(255,255,255,.06);overflow:hidden;display:flex;align-items:center;justify-content:center;margin-bottom:10px}
.home-banner img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 8px 22px rgba(0,0,0,.32))}
.home-entry-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:initial}
.home-entry-btn{height:82px;min-height:82px;border-radius:16px;padding:12px 10px;background:linear-gradient(180deg,#38224f 0%,#24192f 100%);border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.03)}
.home-entry-btn .title{font-size:18px;font-weight:900;letter-spacing:1px}.home-entry-btn .sub{font-size:12px;font-weight:800;letter-spacing:1.2px;opacity:.86}
.home-entry-btn.order .title{color:#b36cff}.home-entry-btn.order .sub{color:#c894ff}.home-entry-btn.reserve .title{color:#fff066}.home-entry-btn.reserve .sub{color:#fff39a}
@media (max-width:380px){.home-hero-card{padding:12px}.home-entry-actions{gap:10px}.home-entry-btn{height:76px;min-height:76px}.home-entry-btn .title{font-size:16px}}

/* v33 首页首屏样式微调 */
.home-hero-card {
    position: relative;
    width: 100%;
    height: 200px;
    background: linear-gradient(180deg, #241543 0%, #17162b 100%);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 22px;
    padding: 14px;
    display: block;
    box-shadow: 0 16px 40px rgba(0, 0, 0, .34);
    margin-top: 50px;
}
.home-banner {
    width: 100%;
    aspect-ratio: 4 / 1;
    border-radius: 14px;
    background: transparent;
    border: 0;
    overflow: visible;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
    position: absolute;
    top: -90px;
    left: 14px;
    right: 14px;
    width: calc(100% - 28px);
}
.home-banner img {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 8px 22px rgba(0, 0, 0, .32));
}
.home-entry-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    align-content: initial;
    position: absolute;
    width: calc(100% - 28px);
    bottom: 15px;
    left: 14px;
}

.home-slogan{position:absolute;left:14px;right:14px;bottom:100px;text-align:center;color:#fff;font-size:24px;letter-spacing:1px;font-weight:700;text-shadow:0 2px 10px rgba(0,0,0,.55);z-index:2;white-space:nowrap}

/* v37 首页排行榜入口与排行榜页 */
.home-screen{padding-top:18px}
.home-rank-entry{display:block;margin:14px 0px;border-radius:16px;overflow:hidden;background:#17182c;border:1px solid rgba(255,255,255,.08);box-shadow:0 12px 32px rgba(0,0,0,.34)}
.home-rank-entry img{display:block;width:100%;height:140px;aspect-ratio:1080/208;object-fit:cover;background:#151128}
.rank-page{min-height:calc(100vh - 112px);padding:16px 14px 86px;background:#15122a;background-image:linear-gradient(135deg,rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(45deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:36px 36px;color:#fff}
.rank-tabs{display:flex;justify-content:center;gap:42px;margin:8px 0 12px;font-size:14px;font-weight:900;color:#c8c3e8}.rank-tabs span{position:relative}.rank-tabs span.active{color:#fff}.rank-tabs span.active:after{content:"";position:absolute;left:25%;right:25%;bottom:-8px;height:3px;border-radius:99px;background:#b36cff}
.rank-season{width:206px;height:46px;margin:18px auto 22px;border-radius:999px;background:rgba(255,255,255,.12);display:grid;grid-template-columns:1fr 1fr;padding:4px}.rank-season span{display:flex;align-items:center;justify-content:center;border-radius:999px;color:#d8d4ef;font-weight:900}.rank-season span.active{background:rgba(255,255,255,.16);color:#fff}
.rank-podium{display:grid;grid-template-columns:1fr 1.1fr 1fr;align-items:end;gap:8px;margin-top:26px}.podium-card{min-height:154px;background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.05));border-radius:22px 22px 8px 8px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:10px 6px 14px;text-align:center}.podium-1{min-height:184px;background:linear-gradient(180deg,rgba(255,240,102,.18),rgba(255,255,255,.06))}.podium-avatar{width:74px;height:74px;position:relative;margin-top:-28px;margin-bottom:12px}.podium-1 .podium-avatar{width:86px;height:86px;margin-top:-36px}.podium-avatar .rank-frame{position:absolute;width:calc(100% + 35px);height:calc(100% + 35px);object-fit:contain;z-index:2;pointer-events:none;top:-20px;left:-18px}.podium-avatar .user-avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;background:#2a2444;border:3px solid rgba(255,255,255,.2)}.podium-card strong{font-size:13px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.podium-card small{display:block;margin-top:5px;color:#d7d1f2;font-size:12px}
.rank-list{margin-top:18px;background:#17182c;border:1px solid rgba(255,255,255,.07);border-radius:16px;overflow:hidden}.rank-row{display:grid;grid-template-columns:38px 42px 1fr auto;gap:10px;align-items:center;padding:12px 12px;border-bottom:1px solid rgba(255,255,255,.06)}.rank-row:last-child{border-bottom:0}.rank-row .rank-no{font-weight:900;color:#eee}.rank-row img{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#2a2444}.rank-row strong{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-row em{font-style:normal;color:#fff066;font-weight:800;font-size:12px;white-space:nowrap}
.admin-preview-box.wide img{max-height:120px;object-fit:contain}

.home-marquee{width:100%;height:40px;margin:5px 0;border-radius:12px;background:#17182c;border:1px solid rgba(255,255,255,.08);overflow:hidden;display:flex;align-items:center;position:relative}
.home-marquee-track{display:inline-flex;align-items:center;gap:42px;white-space:nowrap;font-size:14px;font-weight:800;letter-spacing:.5px;animation:homeMarquee 14s linear infinite;padding-left:100%}
.home-marquee-track span{display:inline-block}
@keyframes homeMarquee{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}

.rank-tabs a{position:relative;color:#c8c3e8;text-decoration:none;font-size:14px;font-weight:900}
.rank-tabs a.active{color:#fff}
.rank-tabs a.active:after{content:"";position:absolute;left:25%;right:25%;bottom:-8px;height:3px;border-radius:99px;background:#b36cff}
.rank-season a{display:flex;align-items:center;justify-content:center;border-radius:999px;color:#d8d4ef;font-weight:900;text-decoration:none}
.rank-season a.active{background:rgba(255,255,255,.16);color:#fff}
.rank-podium .podium-1{order:2}.rank-podium .podium-2{order:1}.rank-podium .podium-3{order:3}

/* v41 卡座/分类 5:2 Banner */
.page-banner {
    width: calc(100% - 28px);
    aspect-ratio: 5 / 2;
    margin: 12px 14px 10px;
    /* border-radius: 16px; */
    overflow: hidden;
    background: #17182c;
    /* border: 1px solid rgba(255, 255, 255, .08); */
    box-shadow: 0 10px 28px rgba(0, 0, 0, .28);
}
.page-banner img{display:block;width:100%;height:100%;object-fit:cover;background:#151128}
.goods .page-banner{width:100%;margin:0 0 12px}
.seat-list-banner{margin-bottom:4px}

.bottom-nav .ico{height:22px;display:flex;align-items:center;justify-content:center}.bottom-nav .nav-icon{width:22px;height:22px;display:block;object-fit:contain}.bottom-nav a .nav-icon{filter:none;opacity:1}

/* v45 底部导航选中态：图标和文字统一紫蓝色 */
.bottom-nav a{color:#fff;}
.bottom-nav a.active{color:#7b61ff;}
.bottom-nav .ico{height:22px;display:flex;align-items:center;justify-content:center;}
.bottom-nav .nav-icon{width:22px;height:22px;display:block;background-color:currentColor;mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain;}
.bottom-nav .nav-home{mask-image:url('/assets/img/nav/home.svg');-webkit-mask-image:url('/assets/img/nav/home.svg');}
.bottom-nav .nav-seat{mask-image:url('/assets/img/nav/seat.svg');-webkit-mask-image:url('/assets/img/nav/seat.svg');}
.bottom-nav .nav-shop{mask-image:url('/assets/img/nav/shop.svg');-webkit-mask-image:url('/assets/img/nav/shop.svg');}
.bottom-nav .nav-me{mask-image:url('/assets/img/nav/me.svg');-webkit-mask-image:url('/assets/img/nav/me.svg');}

/* square module */
.home-square-section{margin:14px 0 0;background:#111226;border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:12px;box-shadow:0 12px 32px rgba(0,0,0,.28)}
.home-square-head{display:flex;align-items:flex-end;gap:8px;margin-bottom:10px}.home-square-head h2{margin:0;color:#fff;font-size:22px;letter-spacing:1px}.home-square-head span{color:#9fa2b6;font-size:12px;padding-bottom:3px}.square-preview-grid{columns:2 120px;column-gap:8px}.square-preview-card{display:block;break-inside:avoid;margin:0 0 8px;border-radius:12px;overflow:hidden;background:#17182c;position:relative;border:1px solid rgba(255,255,255,.06)}.square-preview-card img,.square-preview-card video{display:block;width:100%;height:auto;min-height:120px;max-height:230px;object-fit:cover;background:#222}.square-preview-card em,.video-mark{position:absolute;right:6px;top:6px;background:rgba(0,0,0,.65);color:#fff066;border-radius:999px;padding:2px 6px;font-style:normal;font-size:12px;font-weight:800}.home-square-more{display:block;text-align:center;color:#fff066;font-weight:900;padding:10px 0 2px}.home-square-empty{height:88px;border-radius:12px;background:#17182c;color:#777b90;display:flex;align-items:center;justify-content:center}
.square-page{padding:12px 12px 82px}.square-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 2px 12px}.square-head strong{display:block;font-size:22px;color:#fff}.square-head span{display:block;color:#9fa2b6;margin-top:2px}.square-waterfall{columns:2 140px;column-gap:10px}.square-card{break-inside:avoid;display:block;margin:0 0 10px;border-radius:14px;overflow:hidden;background:#17182c;border:1px solid rgba(255,255,255,.08);position:relative}.square-media{display:block;width:100%;height:auto;min-height:130px;max-height:280px;object-fit:cover;background:#222}.square-card-user{display:flex;gap:8px;align-items:center;padding:8px}.square-card-user img{width:28px;height:28px;border-radius:50%;object-fit:cover;background:#222}.square-card-user strong{display:block;font-size:12px;color:#fff;max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.square-card-user small{display:block;color:#8d90a6;font-size:12px;margin-top:1px}.square-pages{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:16px 0}.square-pages a{height:32px;border-radius:999px;background:#202238;color:#fff;padding:0 12px;display:inline-flex;align-items:center;justify-content:center}.square-pages a.active{background:#fff066;color:#15151c;font-weight:900}
.square-type-tabs{display:flex;gap:10px;margin:8px 0 12px}.square-type-tabs label{flex:1;height:42px;border-radius:12px;background:#1b1c30;border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;gap:7px;margin:0}.square-type-tabs input{accent-color:#7b61ff}.square-thumb-list{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.square-thumb-item{min-width:0;background:#17182c;border:1px solid rgba(255,255,255,.08);border-radius:10px;overflow:hidden}.square-thumb-item img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;background:#222}.square-thumb-item span{display:block;padding:4px 5px;color:#9fa2b6;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.square-media-wrap{position:relative}.multi-mark,.video-mark{position:absolute;right:6px;top:6px;background:rgba(0,0,0,.65);color:#fff066;border-radius:999px;padding:2px 6px;font-style:normal;font-size:12px;font-weight:800}.square-open-modal{cursor:pointer}.square-preview-grid .square-card{display:block;break-inside:avoid;margin:0 0 8px;border-radius:12px}.square-preview-grid .square-card-user{display:none}.square-preview-grid .square-media{min-height:120px;max-height:230px}.square-viewer{position:fixed;inset:0;z-index:1000}.square-viewer-mask{position:absolute;inset:0;background:rgba(0,0,0,.82)}.square-viewer-box{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,94vw);max-height:86vh;background:#111226;border:1px solid rgba(255,255,255,.1);border-radius:18px;overflow:hidden;box-shadow:0 20px 70px rgba(0,0,0,.55)}.square-viewer-close{position:absolute;right:10px;top:10px;width:34px;height:34px;border:0;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:24px;line-height:30px;z-index:4}.square-viewer-body{width:100%;max-height:82vh;background:#080914;display:flex;align-items:center;justify-content:center}.square-viewer-body>img,.square-viewer-body>video{display:block;width:100%;height:auto;max-height:82vh;object-fit:contain}.square-viewer-track{width:100%;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.square-viewer-track::-webkit-scrollbar{display:none}.square-viewer-slide{min-width:100%;height:82vh;display:flex;align-items:center;justify-content:center;scroll-snap-align:center}.square-viewer-slide img{display:block;width:100%;max-height:82vh;object-fit:contain}.square-viewer-dots{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:center;gap:6px;z-index:5}.square-viewer-dots span{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.45)}.square-viewer-dots span.active{width:18px;border-radius:999px;background:#fff066}

.square-upload-picker{display:grid;grid-template-columns:74px 1fr;gap:12px;align-items:center;margin:8px 0 10px}
.square-plus-uploader{width:74px;height:74px;border-radius:16px;border:1px dashed rgba(255,255,255,.28);background:#17182c;color:#fff066;display:flex!important;align-items:center;justify-content:center;margin:0!important;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.03)}
.square-plus-uploader span{font-size:46px;line-height:1;font-weight:300;margin-top:-4px}.square-upload-picker strong{display:block;color:#fff;margin-bottom:4px}.square-file-input{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.square-file-count{margin:4px 0 0;color:#fff066;font-weight:800}.square-upload-progress{margin:12px 0;background:#17182c;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px}.square-progress-head{display:flex;align-items:center;justify-content:space-between;color:#cfd2df;margin-bottom:8px}.square-progress-head strong{color:#fff066}.square-progress-bar{height:8px;border-radius:999px;background:#2b2d43;overflow:hidden}.square-progress-bar i{display:block;height:100%;width:0;background:#7b61ff;border-radius:inherit;transition:width .15s ease}.square-thumb-item.loading{min-height:96px;display:flex;flex-direction:column}.square-thumb-loading{height:72px;display:flex;align-items:center;justify-content:center;color:#8d90a6;font-size:12px;background:#202238}
.square-video-cover-preview{margin:10px 0 4px}.square-video-cover-box{background:#17182c;border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden}.square-video-cover-box img{display:block;width:100%;max-height:220px;object-fit:cover;background:#222}.square-video-cover-box span{display:block;padding:8px 10px;color:#fff066;font-weight:800;font-size:12px}

.square-own-item{break-inside:avoid;position:relative;margin:0 0 10px}.square-own-item .square-card{margin:0}.square-delete-form{position:absolute;right:8px;bottom:8px;z-index:6}.square-delete-btn{border:0;border-radius:999px;background:rgba(255,77,79,.92);color:#fff;font-size:12px;font-weight:900;padding:6px 10px;box-shadow:0 4px 14px rgba(0,0,0,.35);cursor:pointer}.square-delete-btn:active{transform:scale(.96)}
