/* New local-only components. Reference component declarations stay in reference.css. */
#mount{box-sizing:border-box;width:100%;min-height:100vh;min-height:100svh;overflow:visible;}
.route-skeleton{box-sizing:border-box;width:min(100%,428px);min-height:100vh;min-height:100svh;margin:0 auto;padding:14px 16px 84px;background:var(--inner-bg-color,#f4f7fb);}
.route-skeleton__top,.route-skeleton__quick,.route-skeleton__tabs,.route-skeleton__cards,.route-skeleton__bottom{display:flex;align-items:center;gap:12px;}
.route-skeleton__top{height:44px;justify-content:space-between;margin-bottom:14px;}
.route-skeleton__logo{width:132px;height:28px;border-radius:8px;}
.route-skeleton__actions{display:flex;gap:8px;}
.route-skeleton__actions i{width:58px;height:28px;border-radius:16px;}
.route-skeleton__hero{width:100%;aspect-ratio:2.15/1;margin-bottom:9px;border-radius:16px;}
.route-skeleton__dots{height:14px;display:flex;justify-content:center;gap:7px;margin-bottom:12px;}
.route-skeleton__dots i{width:18px;height:4px;border-radius:4px;}
.route-skeleton__quick{justify-content:space-between;margin:0 8px 18px;}
.route-skeleton__quick i{width:44px;height:44px;border-radius:14px;}
.route-skeleton__tabs{height:42px;margin:0 0 18px;padding:0 10px;border-radius:22px;overflow:hidden;}
.route-skeleton__tabs i{height:12px;flex:1;border-radius:7px;}
.route-skeleton__section{margin-bottom:20px;}
.route-skeleton__section-title{width:108px;height:22px;margin:0 0 11px;border-radius:7px;}
.route-skeleton__section-title.short{width:84px;}
.route-skeleton__cards{overflow:hidden;}
.route-skeleton__cards i{flex:0 0 31%;aspect-ratio:.78;border-radius:12px;}
.route-skeleton__bottom{position:fixed;z-index:1;left:50%;bottom:12px;width:min(calc(100% - 32px),396px);height:60px;padding:0 18px;justify-content:space-between;transform:translateX(-50%);border-radius:30px;}
.route-skeleton__bottom i{width:32px;height:32px;border-radius:50%;}
.route-skeleton__logo,.route-skeleton__actions i,.route-skeleton__hero,.route-skeleton__dots i,.route-skeleton__quick i,.route-skeleton__tabs,.route-skeleton__tabs i,.route-skeleton__section-title,.route-skeleton__cards i,.route-skeleton__bottom{background:linear-gradient(105deg,rgba(255,255,255,.32) 18%,rgba(255,255,255,.68) 38%,rgba(255,255,255,.32) 58%);background-size:220% 100%;border:1px solid rgba(255,255,255,.3);}
@media(prefers-reduced-motion:reduce){.route-skeleton__logo,.route-skeleton__actions i,.route-skeleton__hero,.route-skeleton__dots i,.route-skeleton__quick i,.route-skeleton__tabs,.route-skeleton__tabs i,.route-skeleton__section-title,.route-skeleton__cards i,.route-skeleton__bottom{animation:none;background:#e5edf5;}}
.is-interactive:active{opacity:.72;}
#feedback{position:fixed;inset:0;z-index:9000;pointer-events:none;display:flex;align-items:center;justify-content:center;}
.local-toast{max-width:280px;padding:12px 18px;border-radius:8px;background:rgba(255,255,255,.96);color:#25324a;border:1px solid rgba(91,141,239,.2);backdrop-filter:none;-webkit-backdrop-filter:none;font-size:14px;line-height:1.6;text-align:center;}
.local-dialog{background:rgba(255,255,255,.98);color:#25324a;border:1px solid rgba(91,141,239,.24);box-shadow:0 12px 32px rgba(53,77,122,.14);backdrop-filter:none;-webkit-backdrop-filter:none;}
.local-dialog .van-dialog__message{color:#25324a;overflow-wrap:anywhere;}
.local-dialog .van-dialog__confirm{background:#dce9fc;color:#25324a;border:0;}
.popup-open{overflow:hidden;}
.local-field-error{color:#a64842;font-size:12px;padding:6px 12px;line-height:1.5;}
.local-captcha{display:flex;align-items:center;gap:9px;background:rgba(247,250,255,.84);border:1px solid rgba(100,132,180,.3);color:#1f304b;padding:10px 12px;margin:12px 0;font-size:min(3.733vw,16px);font-weight:600;line-height:1.35;border-radius:12px;}
.local-captcha input{width:18px;height:18px;accent-color:#315fc4;}
.local-captcha small{margin-left:auto;font-size:min(3.2vw,14px);color:#4d6280;font-weight:500;}
.local-failure{padding:80px 24px;color:#52627d;text-align:center;line-height:1.8;}
.local-failure button{padding:12px 28px;background:rgba(255,255,255,.95);color:#25324a;border:0;border-radius:24px;margin-top:24px;}
.local-loading{display:inline-block;animation:local-spin .8s linear infinite;transform-origin:center;will-change:transform;}
.vipDetail .vip-empty-row{min-height:72px;display:flex;align-items:center;justify-content:center;gap:24px;color:#52627d;font-size:14px;background:rgba(255,255,255,.38);}
.vipDetail .vip-empty-row span:last-child{color:#8a98ad;font-size:12px;}
@keyframes local-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.local-loading{animation:none;}}
.game-session{position:fixed;inset:0;z-index:1000;background:#101827;overflow:hidden;}
.game-session__topbar{position:fixed;z-index:2;top:12px;left:12px;right:12px;display:flex;align-items:center;gap:10px;pointer-events:none;}
.game-session__menu{width:42px;height:42px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(18,31,53,.82);color:#fff;font-size:21px;line-height:1;pointer-events:auto;box-shadow:0 8px 22px rgba(4,12,28,.24);}
.game-session__title{max-width:calc(100% - 56px);padding:9px 14px;border-radius:18px;background:rgba(18,31,53,.72);color:#fff;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.game-session__frame{display:block;width:100%;height:100%;border:0;background:#101827;}
.game-session__menu-panel{position:fixed;z-index:3;top:62px;left:12px;width:min(190px,calc(100vw - 24px));padding:8px;border:1px solid rgba(255,255,255,.42);border-radius:16px;background:rgba(248,251,255,.98);box-shadow:0 14px 34px rgba(4,12,28,.26);}
.game-session__menu-panel button{display:block;width:100%;min-height:42px;border:0;border-radius:10px;background:transparent;color:#25324a;text-align:left;padding:0 12px;font-size:15px;}
.game-session__menu-panel button:active{background:#e2ecfb;}
.game-session__exit{color:#a64842;}
