/* Route loading owns its layout here, including first paint before app.css arrives. */
.hg-route-state{box-sizing:border-box;max-width:430px;height:var(--app-height,100dvh);margin:auto;display:grid;grid-template-rows:44px minmax(0,1fr);background:#f6f7f8;color:#624a32;font:14px Arial,"PingFang SC","Microsoft YaHei",sans-serif;overflow:hidden}
.hg-route-state *{box-sizing:border-box;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
.hg-route-state--root{grid-template-rows:44px minmax(0,1fr) auto}
.hg-route-state header{display:flex;align-items:center;justify-content:space-between;padding:0 12px;background:#fff;border-bottom:1px solid #ece8e2}
.hg-route-state button{min-height:40px;padding:8px 12px;border:0;background:none;color:inherit;font:inherit;touch-action:manipulation;cursor:pointer}
.hg-route-state button:focus-visible{outline:2px solid #b47c3d;outline-offset:-3px}
.hg-route-state header>button:first-child{font-size:28px;line-height:24px}
.hg-route-state main{min-width:0;min-height:0;padding:var(--hg-loading-pad,20px clamp(14px,4vw,20px));overflow:auto}
.hg-route-state nav{display:flex;justify-content:space-around;padding:6px 0 max(6px,env(safe-area-inset-bottom));background:#fff;border-top:1px solid #ece8e2}
.hg-route-state__chat{--hg-loading-pad:0}
.hg-route-pending{position:absolute;z-index:10;top:var(--pending-top,44px);bottom:var(--pending-bottom,64px);left:0;right:0;overflow:auto;overscroll-behavior:contain;padding:20px 16px;background:#f6f7f8;color:#624a32;font:14px Arial,"PingFang SC","Microsoft YaHei",sans-serif}
.hg-route-error{padding:12px 0;line-height:1.7}
.hg-route-error p{font-size:13px;color:#938778}
.hg-route-error button{background:#fff;border:1px solid #d8c8b1;border-radius:6px}
.hg-page-skeleton{display:grid;gap:16px;min-width:0}
.hg-page-skeleton[data-page-skeleton="member"]{gap:8px}
.hg-page-skeleton[data-page-skeleton="chat"],.hg-page-skeleton[data-page-skeleton="game"]{height:100%}
.hg-skel-bar{display:block;width:72%;height:13px;flex-shrink:0;border-radius:4px;background:#e8e7e3}
.hg-skel-bar--short{width:38%}
.hg-skel-bar--long{width:96%}
.hg-skel-bar--tiny{width:12px;height:8px}
.hg-skel-bar--title{width:45%;height:20px;margin:4px 0}
.hg-skel-bar--number{width:65%;height:30px}
.hg-skel-panel{display:grid;gap:16px;min-width:0;padding:16px;border:1px solid #e7e6e1;border-radius:12px;background:#fff}
.hg-skel-lines{display:grid;gap:10px;min-width:0;flex:1}
.hg-skel-row{display:flex;align-items:center;gap:14px;min-width:0;min-height:46px}
.hg-skel-row+.hg-skel-row{border-top:1px solid #f2f1ee;padding-top:12px}
.hg-skel-icon{display:block;width:40px;height:40px;flex-shrink:0;background:#ecebe7;border-radius:8px}
.hg-skel-icon--round{border-radius:50%}
.hg-skel-tabs{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px;min-width:0}
.hg-skel-tabs>span{flex:1;min-width:0;max-width:70px}
.hg-skel-input{display:block;width:100%;height:46px;border:1px solid #e9e7e2;border-radius:7px;background:#f0efeb}
.hg-skel-field{display:grid;gap:12px;min-width:0}
.hg-skel-form{gap:24px}
.hg-skel-submit{display:block;width:100%;height:46px;border-radius:7px;background:#e4ddca;margin:8px 0}
.hg-skel-banner{display:block;width:100%;aspect-ratio:3.45;border-radius:10px;background:#eae7df}
.hg-skel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;min-width:0}
.hg-skel-grid>div{display:grid;justify-items:center;gap:10px;min-width:0}
.hg-skel-art{display:block;width:100%;aspect-ratio:3/4;border-radius:8px;background:#e9e7e1}
.hg-skel-grid--quick{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.hg-skel-grid--quick .hg-skel-art{aspect-ratio:1;border-radius:12px}
.hg-skel-grid--amounts{grid-template-columns:repeat(3,minmax(0,1fr))}
.hg-skel-grid--amounts .hg-skel-art{aspect-ratio:auto;height:40px}
.hg-skel-grid--amounts .hg-skel-bar{display:none}
.hg-skel-grid--avatars{gap:20px 12px;padding:20px 12px;background:#fff;border-radius:12px}
.hg-skel-grid--avatars .hg-skel-icon{width:min(100%,60px);height:auto;aspect-ratio:1}
.hg-skel-grid--products{grid-template-columns:repeat(2,minmax(0,1fr))}
.hg-skel-grid--products .hg-skel-art{aspect-ratio:1.35}
.hg-skel-figures{display:flex;gap:14px;min-width:0;padding:8px 0}
.hg-skel-figures>div{display:grid;gap:14px;min-width:0;flex:1}
.hg-skel-figures .hg-skel-bar{width:80%}
.hg-skel-identity{padding:8px 14px}
.hg-skel-identity .hg-skel-icon{width:54px;height:54px}
.hg-skel-member-wallet .hg-skel-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.hg-skel-member-wallet .hg-skel-art{max-width:36px}
.hg-skel-catalog{display:grid;grid-template-columns:60px minmax(0,1fr);gap:12px;min-width:0}
.hg-skel-catalog>.hg-skel-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.hg-skel-sidebar{display:grid;align-content:start;justify-items:center;gap:22px;padding:8px 0;background:#efede7;border-radius:8px}
.hg-skel-record{gap:12px}
.hg-skel-match{gap:10px}
.hg-skel-auth-brand{height:100px;display:grid;place-items:center}
.hg-skel-article{padding:22px 18px;gap:24px}
.hg-skel-message{gap:18px}
.hg-skel-chat{height:100%;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto}
.hg-skel-chat-log{display:flex;flex-direction:column;gap:28px;padding:24px 16px;background:#f2f3f5;overflow:hidden}
.hg-skel-bubble{width:65%;max-width:250px;display:grid;gap:14px;padding:16px;background:#e8e9e8;border-radius:12px 12px 12px 3px}
.hg-skel-bubble--own{align-self:flex-end;background:#e9e4d4;border-radius:12px 12px 3px 12px}
.hg-skel-composer{display:grid;gap:12px;padding:16px 16px max(16px,env(safe-area-inset-bottom));background:#fff;border-top:1px solid #eee}
.hg-skel-qr{width:min(200px,100%);aspect-ratio:1;background:#eae9e5;border-radius:8px;justify-self:center;margin:16px 0}
.hg-skel-deposit{gap:20px;justify-items:stretch}
.hg-skel-deposit>.hg-skel-bar{justify-self:center}
.hg-skel-chart{display:flex;gap:12px;align-items:flex-end;height:160px}
.hg-skel-chart>span{width:auto;flex:1;height:55%}
.hg-skel-chart>span:nth-child(2n){height:85%}
.hg-skel-chart>span:nth-child(3n){height:40%}
.hg-skel-product{display:block;aspect-ratio:1.4;background:#e9e7e1;border-radius:12px}
.hg-skel-reward,.hg-skel-download{display:grid;justify-items:center;gap:24px;padding:30px 20px;background:#fff;border-radius:12px}
.hg-skel-reward>.hg-skel-icon{width:140px;height:140px}
.hg-skel-receipt{justify-items:center;padding:30px 20px}
.hg-skel-receipt>.hg-skel-lines{width:100%}
.hg-skel-game{height:100%;min-height:200px;background:#1b2029;border-radius:4px}
.hg-recharge-skeleton{display:grid;gap:16px}
.hg-recharge-skeleton__wallet{height:160px;padding:16px;display:grid;align-content:space-between;gap:12px;border:1px solid #e9e4d7;border-radius:12px;background:#f1eddf}
.hg-recharge-skeleton__wallet>.hg-skel-bar--number{justify-self:end;width:40%}
.hg-recharge-skeleton__methods{display:grid;gap:12px}
.hg-recharge-skeleton__method{display:flex;align-items:center;gap:14px;min-height:114px;padding:20px 16px;border:1px solid #e3e5e7;border-radius:10px;background:#fff}
