/* 狼兔小游戏样式表 — 从 index.html 抽出(v0705-64起) */
  :root{ --wolf:#5b6b8c; --rabbit:#e08aa6; --bg:#f7f5f2; --card:#fff; --ink:#2a2a32; --muted:#9a9aa5; --gold:#c8a24a; }
  *{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
  body{font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--ink);padding-bottom:72px;overflow-x:hidden}
  header{background:linear-gradient(135deg,var(--wolf),var(--rabbit));color:#fff;padding:20px 16px 16px;border-radius:0 0 22px 22px}
  header h1{font-size:19px;letter-spacing:1px}
  header .date{font-size:12px;opacity:.85;margin-top:3px}
  /* 紧凑顶栏 */
  header.compact{padding:10px 14px 10px;border-radius:0 0 18px 18px}
  header.compact .row{display:flex;align-items:center;justify-content:space-between;gap:10px}
  header.compact .brand{font-size:15px;font-weight:700;letter-spacing:.5px;display:flex;align-items:center;gap:8px}
  header.compact .brand .date{font-size:11px;font-weight:500;opacity:.9;margin:0}
  header.compact #meChip{border:0;color:#fff;border-radius:12px;padding:4px 10px;font-size:12px;font-weight:600;background:rgba(255,255,255,.2);backdrop-filter:blur(4px)}
  header.compact .money{margin-top:6px;background:rgba(255,255,255,.14);border-radius:12px;padding:6px 10px;font-size:12px}
  header.compact .money span{display:flex;align-items:center;gap:5px;flex:1;justify-content:center;min-width:0}
  header.compact .money .lbl{display:flex;align-items:center;gap:2px;opacity:.9}
  header.compact .money i{font-style:normal;font-size:11px;opacity:.85}
  header.compact .money b{font-size:15px;font-weight:800}
  .wallets{display:flex;gap:10px;margin-top:14px}
  .w{flex:1;background:rgba(255,255,255,.16);backdrop-filter:blur(6px);border-radius:14px;padding:10px 12px}
  .w .lbl{font-size:11px;opacity:.85}
  .w .val{font-size:20px;font-weight:700;margin-top:2px}
  .couple{text-align:center;margin-top:10px;background:rgba(255,255,255,.2);border-radius:14px;padding:8px}
  .couple .val{font-size:22px;font-weight:800}
  main{padding:12px 10px;max-width:1180px;margin:0 auto}
  .view{display:none}.view.on{display:block}
  h2{font-size:14px;color:var(--muted);margin:16px 0 8px;font-weight:600}
  .card{background:var(--card);border-radius:14px;padding:12px 11px;margin-bottom:9px;box-shadow:0 1px 6px rgba(0,0,0,.04)}
  .game{display:flex;align-items:center;justify-content:space-between}
  .game .meta{flex:1}
  .game .name{font-size:15px;font-weight:600}
  .game .sub{font-size:11px;color:var(--muted);margin-top:3px}
  .pill{font-size:10px;padding:2px 7px;border-radius:8px;background:#eee;color:#666;margin-left:6px}
  .pill.joint{background:#fbe6ee;color:var(--rabbit)}
  .pill.solo{background:#e7ecf6;color:var(--wolf)}
  .btn{background:var(--wolf);color:#fff;border:0;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:600}
  /* M06：手机窄屏下题目选项和已提交排序必须完整换行，不截断 */
  #m06question,#m06answer{overflow-wrap:anywhere;word-break:break-word}
  #m06answer .m06sortItem{line-height:1.45;white-space:normal;overflow-wrap:anywhere}
  #m06answer .m06sortItem .m06sortBadge{white-space:nowrap;margin-left:6px}
  #m06answer .m06AnswerSort{line-height:1.65;white-space:normal;overflow-wrap:anywhere}
  .btn.r{background:var(--rabbit)}
  /* meBtn 颜色随当前全局身份 ME 自动切换，避免误操作 */
  body.me-wolf .meBtn{background:var(--wolf)}
  body.me-rabbit .meBtn{background:var(--rabbit)}
  .flagship{background:linear-gradient(135deg,#2a2f45,#4a3550);color:#fff}
  .flagship .name{color:#fff}.flagship .sub{color:#cfc8de}
  .inv-tag{display:inline-block;background:#f3eee2;color:var(--gold);border-radius:8px;padding:3px 9px;font-size:12px;margin:3px 4px 0 0}
  .ledger{font-size:12px;color:#666;display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #f0f0f0}
  .ledger .pos{color:#2e9e6b}.ledger .neg{color:#d05b5b}
  nav{position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,.96);display:flex;border-top:1px solid rgba(91,107,140,.12);padding:8px 0 calc(8px + env(safe-area-inset-bottom,0px));z-index:10;box-shadow:0 -8px 24px rgba(52,46,64,.08);backdrop-filter:blur(14px)}
  nav button{flex:1;background:none;border:0;font-size:11px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:3px}
  nav button .ico{font-size:20px}
  nav button.on{color:var(--wolf);font-weight:700}
  nav button{min-height:44px;cursor:pointer;transition:transform .15s,color .15s}
  nav button:active{transform:translateY(2px) scale(.96)}
  .empty{color:var(--muted);font-size:13px;text-align:center;padding:18px}
  .redDot{position:absolute;top:4px;right:14px;width:8px;height:8px;border-radius:50%;background:#e5484d}
  /* 游戏列表两种视图 */
  .modebar{display:flex;gap:8px;margin:0 auto 12px;max-width:760px;position:sticky;top:0;z-index:4;padding:4px 0;background:linear-gradient(var(--bg) 80%,transparent)}
  #subBar.on + main .modebar{top:51px}
  .modebar button{flex:1;border:0;border-radius:10px;padding:8px;font-size:13px;background:#eee;color:#777;font-weight:600}
  .modebar button.on{background:var(--wolf);color:#fff}
  .homemap{position:relative;width:100%;max-width:560px;margin:0 auto}
  .homemap img{width:100%;display:block;border-radius:16px}
  .hm-spot{position:absolute;width:64px;height:64px;transform:translate(-50%,-50%);cursor:pointer;-webkit-tap-highlight-color:transparent}
  .hm-ring{position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;border:2px solid rgba(255,255,255,.9);box-shadow:0 0 6px rgba(0,0,0,.35);animation:hmPulse 1.8s ease-out infinite}
  @keyframes hmPulse{0%{transform:scale(.7);opacity:.9}70%{transform:scale(1.5);opacity:.15}100%{transform:scale(.7);opacity:.9}}
  .hm-chip{position:absolute;left:50%;bottom:58px;transform:translateX(-50%);white-space:nowrap;background:rgba(255,255,255,.92);border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700;color:#4a3b30;box-shadow:0 2px 6px rgba(0,0,0,.25)}
  .hm-float-actions{position:fixed;right:12px;bottom:calc(74px + env(safe-area-inset-bottom,0px));z-index:40;display:flex;flex-direction:column;align-items:flex-end;gap:7px}
  .hm-all{position:static;border:0;border-radius:999px;padding:9px 15px;font-size:12px;font-weight:700;background:rgba(255,255,255,.94);color:#4a3b30;box-shadow:0 2px 8px rgba(0,0,0,.3);cursor:pointer;white-space:nowrap}
  .hm-all:active{transform:translateY(2px) scale(.97)}
  .homestack{-webkit-overflow-scrolling:touch}
  .homestack .homemap{margin-bottom:14px}
  .hm-title{max-width:560px;margin:0 auto 8px;font-size:14px;font-weight:800;color:#4a3b30;padding-left:4px;display:flex;align-items:center;gap:6px}
  .hm-island{max-width:620px;margin:0 auto 18px;padding:12px 12px 14px;border:1px solid rgba(126,96,63,.1);border-radius:22px;background:rgba(255,255,255,.52);box-shadow:0 8px 24px rgba(87,65,42,.06)}
  .hm-care{max-width:460px;margin:8px auto 64px;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #dfbfd0;border-radius:8px;background:linear-gradient(135deg,#fff8f3,#f8e7ef);box-shadow:0 2px 9px rgba(126,73,92,.12);color:#674653;cursor:pointer}
  .hm-care-icon{font-size:28px;line-height:1}
  .hm-care span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column}
  .hm-care b{font-size:14px;line-height:1.35}
  .hm-care small{font-size:11px;color:#997584;line-height:1.45}
  .hm-care-go{font-size:12px;font-weight:800;color:#b15f83;white-space:nowrap}
  .pi-map{position:relative;display:grid;gap:2px;margin:10px;background:#b9d8e4;padding:5px;border-radius:14px;box-shadow:0 2px 10px rgba(45,78,90,.14)}
  .pi-cell{position:relative;min-height:52px;border:0;border-radius:5px;min-width:0;font:inherit;padding:0;display:flex;align-items:center;justify-content:center}
  .pi-cell.grass{background:#b9d99a}.pi-cell.sand{background:#e8d59d}.pi-cell:disabled{opacity:1}
  .pi-emoji{font-size:17px;line-height:1}.pi-cell small{position:absolute;bottom:1px;font-size:8px;color:#35525a}.pi-wild{font-size:14px;opacity:.55}
  .pi-object,.pi-decor{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:2}
  .pi-object{flex-direction:column;background:rgba(255,255,255,.3);border-radius:8px}.pi-object span{font-size:clamp(22px,8vw,42px);line-height:1}.pi-object small{font-size:9px;color:#4a3b30;background:rgba(255,255,255,.8);padding:1px 4px;border-radius:5px}
  .pi-decor{width:8.333%;height:10%;font-size:clamp(18px,6vw,32px);transform:translate(-50%,-50%);filter:drop-shadow(0 2px 2px rgba(0,0,0,.18))}
  .pi-score{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:7px;border-top:1px solid #eee;color:#6b6259;font-size:11px}.pi-score b{color:#96733d;font-size:13px}.pi-score span{margin-left:auto}
  /* 个人岛沿用自由大世界：全屏海面、浮岛、草地地块、建筑浮层和 HUD */
  #island{position:fixed;top:0;left:0;right:0;bottom:0;z-index:800;overflow:hidden;background:#bfe6f5}
  .pi-page{position:relative;width:100%;height:100vh;height:100dvh;overflow:hidden;background:linear-gradient(180deg,#8ed4f2 0%,#bce8f7 38%,#d8f3e4 100%)}
  .pi-page.pi-night{background:linear-gradient(180deg,#1c2547 0%,#2c3a63 48%,#3c5266 100%)}
  .pi-view{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;background:url(/uploads/_assets/wm/water.jpg) center/280px repeat;display:flex;align-items:center;justify-content:center;padding:88px 12px 132px;box-sizing:border-box;touch-action:none;cursor:grab}
  .pi-view.pi-dragging{cursor:grabbing}
  .pi-map{position:relative;flex:0 0 auto;background:url(/uploads/_assets/wm/grass.jpg) center/620px repeat;clip-path:polygon(4% 12%,12% 5%,25% 3%,39% 5%,53% 2%,68% 7%,82% 10%,94% 21%,98% 37%,96% 55%,99% 70%,91% 85%,77% 95%,62% 99%,46% 96%,30% 99%,16% 91%,6% 78%,2% 61%,4% 44%,1% 28%);filter:drop-shadow(0 0 3px rgba(255,250,225,.95)) drop-shadow(0 0 10px rgba(255,244,205,.6)) drop-shadow(0 14px 20px rgba(12,50,75,.45))}
  .pi-night .pi-map{filter:brightness(.72) saturate(.85) drop-shadow(0 0 8px rgba(150,175,235,.5)) drop-shadow(0 14px 20px rgba(0,5,30,.6))}
  .pi-grid{position:absolute;top:0;left:0;right:0;bottom:0;display:grid}
  .pi-cell2{position:relative;border:0;padding:0;background:transparent;box-shadow:inset -1px -1px 0 rgba(255,255,255,.06),inset 1px 1px 0 rgba(30,60,20,.045);font:inherit;color:#5b4636;cursor:pointer}
  .pi-cell2.grass{background:rgba(126,177,91,.1)}.pi-cell2.sand{background:rgba(232,213,157,.28)}.pi-cell2:disabled{opacity:1;cursor:default}
  .pi-cell2 span{display:block;font-size:22px;filter:drop-shadow(0 2px 2px rgba(60,40,10,.25))}.pi-cell2 small{display:block;font-size:9px;font-weight:900;text-shadow:0 1px #fff}
  .pi-cell2 i{font-style:normal;opacity:.58;font-size:14px}.pi-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.pi-bld,.pi-decor2{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:none}.pi-bld{flex-direction:column;background:rgba(255,252,243,.18);border-radius:12px}.pi-bld span{font-size:clamp(30px,9vw,58px);line-height:1;filter:drop-shadow(0 3px 3px rgba(60,40,10,.28))}.pi-bld b{font-size:10px;color:#493629;background:rgba(255,252,243,.88);padding:2px 7px;border-radius:999px;white-space:nowrap;box-shadow:0 2px 5px rgba(60,40,10,.18)}.pi-decor2{font-size:clamp(20px,6vw,36px);filter:drop-shadow(0 2px 3px rgba(60,40,10,.3))}
  .pi-res{position:absolute;display:flex;flex-direction:column;align-items:center;gap:1px;border:0;background:rgba(255,252,243,.72);border-radius:14px;padding:3px 6px 2px;cursor:pointer;z-index:3;box-shadow:0 2px 6px rgba(60,40,10,.2);pointer-events:auto;animation:piResBob 2.6s ease-in-out infinite;transition:left .9s ease,top .9s ease}
  .pi-res .pi-res-em{font-size:clamp(20px,6vw,34px);line-height:1;filter:drop-shadow(0 2px 2px rgba(60,40,10,.25))}
  .pi-res .pi-ava{width:clamp(26px,7vw,38px);height:clamp(26px,7vw,38px);object-fit:cover;border-radius:50%;border:2px solid rgba(255,255,255,.9);box-shadow:0 2px 6px rgba(60,40,10,.3);background:#fdf6e6}
  .pi-res small{font-size:9px;font-weight:900;color:#493629;white-space:nowrap;text-shadow:0 1px #fff}
  .pi-res i{font-style:normal;font-size:9px;color:#6b5335}
  .pi-res.pi-owner{animation:none;background:rgba(255,252,243,.5)}
  .pi-res.pi-yiyi{background:rgba(255,243,250,.9);box-shadow:0 0 0 1.5px #e7a6d0,0 2px 8px rgba(160,106,157,.35)}
  .pi-res:nth-child(2n){animation-delay:.9s}.pi-res:nth-child(3n){animation-delay:1.6s}
  @keyframes piResBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
  @media (prefers-reduced-motion: reduce){.pi-res{animation:none}.pi-air i{display:none}.pi-decor2{animation:none}}
  /* 居民气泡：循环淡入淡出，ambient 换文本时重播动画 */
  .pi-res .pi-bubble{position:absolute;top:-20px;left:50%;transform:translateX(-50%);background:#fffdf4;color:#6b5335;font-size:9px;font-weight:700;white-space:nowrap;padding:2px 8px;border-radius:999px;box-shadow:0 1px 4px rgba(60,40,10,.22);pointer-events:none;max-width:120px;overflow:hidden;text-overflow:ellipsis;opacity:0;animation:piBubble 9s ease-in-out infinite;z-index:4}
  @keyframes piBubble{0%,8%{opacity:0}14%,64%{opacity:1}72%,100%{opacity:0}}
  /* 居民小屋 */
  .pi-cottage{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;pointer-events:auto;z-index:2;background:rgba(255,252,243,.35);border-radius:12px;box-shadow:inset 0 0 0 2px rgba(255,252,243,.55);filter:drop-shadow(0 2px 4px rgba(60,40,10,.25))}
  .pi-cottage span{font-size:clamp(22px,6vw,40px);line-height:1;filter:drop-shadow(0 2px 3px rgba(60,40,10,.3))}
  .pi-cottage b{font-size:9px;color:#493629;background:rgba(255,252,243,.9);padding:1px 6px;border-radius:999px;box-shadow:0 1px 3px rgba(60,40,10,.18)}
  .pi-resident-current{display:flex;gap:6px;flex-wrap:wrap;padding:3px 0 8px;border-bottom:1px solid #eee2c9}.pi-resident-current span{background:#f6f0df;border-radius:999px;padding:3px 7px;font-size:11px}.pi-resident-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #eee2c9}.pi-resident-meta{flex:1;font-size:12px;line-height:1.6}.pi-gate{display:inline-block;margin:2px 3px 0 0;font-size:10px}.pi-gate.ok{color:#2e7d32}.pi-gate.bad{color:#b3543f}
  .pi-air{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden}.pi-air i{position:absolute;font-style:normal;font-size:30px;opacity:.48;animation:piDrift 38s linear infinite}.pi-air i:nth-child(1){top:22%;left:-5%}.pi-air i:nth-child(2){top:43%;left:24%;animation-duration:52s}.pi-air i:nth-child(3){top:12%;left:63%;animation-duration:44s}.pi-air b{position:absolute;top:calc(70px + env(safe-area-inset-top,0px));right:16px;font-size:30px;filter:drop-shadow(0 0 12px rgba(255,240,180,.9))}
  .pi-night .pi-air i{display:none}.pi-night .pi-air b{filter:drop-shadow(0 0 12px rgba(200,220,255,.85))}
  @keyframes piDrift{from{transform:translateX(0)}to{transform:translateX(115vw)}}
  .pi-hud{position:absolute;top:0;left:0;right:0;z-index:4;display:flex;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 0;pointer-events:none}.pi-hud>*{pointer-events:auto}.pi-back{background:rgba(255,252,243,.88);color:#6b5335;text-shadow:none;border:0;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:900;white-space:nowrap;box-shadow:0 2px 6px rgba(60,40,10,.22);font-size:13px;cursor:pointer;width:88px;text-align:center}
  /* v0816-tab6 顶部招牌：左缘在返回按钮右侧、右缘贴屏幕边，内容居中，永远不溢出；岛名过长折行完整显示 */
  .pi-brand{position:absolute;top:calc(10px + env(safe-area-inset-top,0px));left:106px;max-width:calc(100vw - 130px);z-index:5;display:flex;align-items:center;gap:6px;width:max-content;background:linear-gradient(135deg,rgba(255,252,243,.95),rgba(255,240,205,.92));border:1px solid rgba(200,160,90,.45);border-radius:16px;padding:4px 10px;box-shadow:0 3px 12px rgba(60,40,10,.26),inset 0 1px 0 rgba(255,255,255,.85);cursor:pointer}
  .pi-brand:active{transform:scale(.98)}
  .pi-brand.ready{box-shadow:0 0 0 3px rgba(255,157,61,.55),0 3px 12px rgba(200,80,20,.35)}
  .pi-brand-name{flex:0 1 auto;min-width:0;font-size:14px;font-weight:900;letter-spacing:.5px;color:#7a4a08;text-shadow:0 1px 0 rgba(255,255,255,.65);line-height:1.25;text-align:center;white-space:normal}
  .pi-brand .pi-lvwrap{flex:0 0 auto}
  .pi-brand .pi-lvbadge{padding:3px 8px;font-size:10px}
  .pi-mode{position:absolute;top:calc(10px + env(safe-area-inset-top,0px) + 48px);left:50%;transform:translateX(-50%);z-index:4;background:rgba(255,252,243,.86);color:#6b5335;border-radius:999px;padding:5px 11px;font-size:10px;font-weight:900;white-space:nowrap;box-shadow:0 2px 6px rgba(60,40,10,.18);cursor:pointer}
  .pi-mode .pi-avg{border-left:1px solid rgba(107,83,53,.3);padding-left:8px;margin-left:6px;white-space:nowrap}
  .pi-mode .pi-avg.pi-yiyi{color:#a06a9d}
  .pi-mode .pi-avg.pi-yiyi.here{color:#c96f4a}
  /* v0816-tab17 导航抽屉：右侧收起为「🧭 去哪儿」把手，点开展开 返回/我的岛/TA的岛/大世界 */
  .pi-switch{position:absolute;right:12px;top:80%;transform:translateY(-50%);z-index:6;display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:none}
  .pi-nav-handle{pointer-events:auto;border:0;border-radius:999px;background:linear-gradient(135deg,#ff9d3d,#e5484d);color:#fff;padding:9px 14px;font-size:12px;font-weight:900;box-shadow:0 2px 8px rgba(200,60,40,.4);cursor:pointer;white-space:nowrap;text-align:center}
  .pi-nav-handle:active{transform:scale(.96)}
  .pi-nav-list{display:none;flex-direction:column;gap:6px;pointer-events:auto}
  .pi-switch.open .pi-nav-list{display:flex;animation:piNavIn .18s ease}
  @keyframes piNavIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
  .pi-nav-h-open{display:none}
  .pi-switch.open .pi-nav-h-closed{display:none}
  .pi-switch.open .pi-nav-h-open{display:inline}
  .pi-nav-mask{position:absolute;top:0;left:0;right:0;bottom:0;z-index:5;display:none}
  .pi-nav-mask.on{display:block;background:rgba(20,14,8,.18)}
  .pi-switch-btn{pointer-events:auto;border:0;border-radius:999px;background:rgba(255,252,243,.88);color:#6b5335;padding:7px 10px;font-size:13px;font-weight:900;box-shadow:0 2px 6px rgba(60,40,10,.22);cursor:pointer;white-space:nowrap;text-align:center;line-height:1.4;width:88px}.pi-switch-btn.on{background:#c96f4a;color:#fff}
  .pi-toolbar{position:absolute;left:10px;right:10px;bottom:calc(52px + env(safe-area-inset-bottom,0px));z-index:5;display:flex;gap:6px;justify-content:center;align-items:flex-end}.pi-tb{border:0;border-radius:14px;background:rgba(255,252,243,.92);color:#6b5335;padding:7px 10px 6px;font-size:10px;font-weight:900;box-shadow:0 2px 7px rgba(60,40,10,.22);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:1px;min-width:50px;flex:0 1 auto}.pi-tb b{font-size:19px;line-height:1;filter:drop-shadow(0 1px 2px rgba(60,40,10,.2))}.pi-tb span{white-space:nowrap}.pi-tb:active{transform:translateY(2px)}.pi-tb.on{background:#ffe0a3;color:#a34b1f;box-shadow:0 2px 7px rgba(60,40,10,.22),inset 0 0 0 2px rgba(229,72,77,.6)}.pi-movable{pointer-events:auto;outline:2px dashed rgba(229,72,77,.6);outline-offset:1px;border-radius:8px}.pi-moving{outline-style:solid;outline-color:#e5484d;background:rgba(255,255,255,.28)}.pi-clickable{pointer-events:auto;cursor:pointer}.pi-clickable:active{filter:brightness(.9)}.pi-duty{position:absolute;top:-8px;right:-6px;font-size:14px;font-style:normal;z-index:2;filter:drop-shadow(0 1px 2px rgba(60,40,10,.3))}.pi-lv{position:absolute;top:-7px;left:-6px;font-style:normal;background:rgba(229,72,77,.92);color:#fff;border-radius:999px;font-size:9px;font-weight:900;padding:1px 5px;z-index:2;box-shadow:0 1px 3px rgba(60,40,10,.25)}
  .pi-tip{position:absolute;left:50%;bottom:calc(150px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:4;background:rgba(42,37,32,.78);color:#ffe9b8;border-radius:999px;padding:5px 11px;font-size:10px;font-weight:800;white-space:nowrap;max-width:90vw;overflow:hidden;text-overflow:ellipsis}
.pi-del{position:absolute;left:50%;bottom:calc(134px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:4;border:0;border-radius:999px;background:#e5484d;color:#fff;padding:7px 16px;font-size:12px;font-weight:900;box-shadow:0 2px 7px rgba(60,40,10,.25);cursor:pointer}
.pi-del:active{transform:translateX(-50%) translateY(2px)}
  /* 农场/小店 狼兔装扮看板：轻微上下浮动动效（纯 CSS，webview 安全） */
  @keyframes cgBobA{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
  .cgBob{animation:cgBobA 2.8s ease-in-out infinite}
  .cgBob2{animation:cgBobA 2.8s ease-in-out 1s infinite}
  .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
  .datebar{display:flex;align-items:center;gap:8px;background:#fff;border-radius:10px;padding:7px 10px;margin-bottom:10px;box-shadow:0 1px 3px rgba(0,0,0,.06);font-size:13px;color:var(--muted)}
  .datebar input{border:1px solid #ddd;border-radius:8px;padding:3px 6px;font-size:12px;font-family:inherit}
  .datebar .dbback{margin-left:auto;color:var(--rabbit);cursor:pointer;font-weight:700}
  .gcell{background:var(--card);border-radius:14px;padding:12px 8px;text-align:center;box-shadow:0 1px 6px rgba(0,0,0,.05);position:relative;cursor:pointer;transition:transform .16s,box-shadow .16s}
  .gcell:hover{transform:translateY(-2px);box-shadow:0 7px 16px rgba(60,51,72,.1)}
  .gcell:active{transform:scale(.97)}
  .gcell .ic{font-size:30px;line-height:1.1;height:33px;display:flex;align-items:center;justify-content:center}
  .gcell .ic .game-icon-img{display:block;width:36px;height:36px;object-fit:contain}
  .gcell .nm{font-size:12px;font-weight:600;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .gcell .rw{font-size:10px;color:var(--gold);margin-top:3px}
  .gcell .dot{position:absolute;top:7px;right:8px;width:7px;height:7px;border-radius:50%}
  .gcell.flag{background:linear-gradient(135deg,#2a2f45,#4a3550)}
  .gcell.flag .nm{color:#fff}
  /* 🌾 农场 */
  .fmGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
  .fmPlot{background:linear-gradient(160deg,#a9825e,#8a6647);border-radius:14px;padding:10px 6px;text-align:center;position:relative;min-height:96px;box-shadow:inset 0 -4px 0 rgba(0,0,0,.12),0 1px 5px rgba(0,0,0,.08);display:flex;flex-direction:column;align-items:center;justify-content:center}
  .fmPlot .fmEm{font-size:30px;line-height:1.1}
  .fmPlot .fmNm{font-size:11px;color:#fff;font-weight:600;margin-top:3px;text-shadow:0 1px 2px rgba(0,0,0,.3)}
  .fmPlot .fmTm{font-size:10px;color:#ffe9c9;margin-top:2px}
  .fmBar{width:82%;height:6px;background:rgba(0,0,0,.25);border-radius:3px;margin-top:5px;overflow:hidden}
  .fmBar i{display:block;height:100%;background:linear-gradient(90deg,#8be08b,#ffd24d);border-radius:3px}
  .fmWaterBtn{margin-top:5px;border:0;border-radius:9px;padding:3px 10px;font-size:11px;font-weight:700;background:#5aa9e6;color:#fff}
  .fmDrop{position:absolute;top:6px;right:7px;font-size:12px}
  .fmFertMk{position:absolute;top:6px;left:7px;font-size:12px}
  .fmFertBtn{border:0;border-radius:9px;padding:3px 8px;font-size:11px;font-weight:700;background:#a5793a;color:#fff}
  .fmCoop{position:absolute;bottom:5px;right:6px;font-size:13px;filter:drop-shadow(0 0 5px rgba(255,105,150,.95));animation:fmBounce 1.4s ease-in-out infinite}
  .fmPlot.mature{background:linear-gradient(160deg,#c99b4a,#a97c33);box-shadow:0 0 12px rgba(255,196,66,.75),inset 0 -4px 0 rgba(0,0,0,.12);cursor:pointer}
  .fmPlot.mature .fmEm{font-size:38px;animation:fmBounce 1s ease-in-out infinite}
  @keyframes fmBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
  @keyframes fmFall{to{transform:translateY(115vh) rotate(360deg);opacity:.85}}
  .fmPlot.emptyP{background:linear-gradient(160deg,#b7936f,#997456);cursor:pointer}
  .fmPlot.emptyP .fmEm{opacity:.85}
  .fmPlot.expand{background:#f0ead9;border:2px dashed #c9b98a;box-shadow:none;cursor:pointer}
  .fmPlot.expand .fmNm,.fmPlot.expand .fmTm{color:#a5822f;text-shadow:none}
  .fmGrow{font-size:24px}
  /* 🏪 奶茶小店 */
  .tsRow{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 10px;-webkit-overflow-scrolling:touch}
  .tsCard{flex:0 0 104px;background:var(--card);border:2px solid #eee;border-radius:14px;padding:10px 6px;text-align:center;position:relative;box-shadow:0 1px 5px rgba(0,0,0,.05)}
  .tsCard.on{border-color:var(--gold);background:#fff8ec}
  .tsCard.rare{border-color:#e8b64c;box-shadow:0 0 10px rgba(232,182,76,.5)}
  .tsCard .tsEm{font-size:30px;line-height:1.1}
  .tsCard .tsNm{font-size:12px;font-weight:700;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tsCard .tsPr{font-size:10px;color:var(--gold);margin-top:2px}
  .tsBar{width:100%;height:10px;background:#f0e8d8;border-radius:5px;overflow:hidden;margin:12px 0 5px}
  .tsBar i{display:block;height:100%;background:linear-gradient(90deg,#e8b64c,#d98a4a);border-radius:5px;transition:width .6s ease}
  /* 🏆 家庭邻里赛季榜 + 小店经营 (v0705-46) */
  .lbRow{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:12px;margin-bottom:6px;background:#faf8f3}
  .lbRow.me{background:linear-gradient(90deg,#fff3d6,#fff9ec);box-shadow:0 0 0 1.5px var(--gold)}
  .lbAva{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0;background:#f3eee2;box-shadow:0 1px 4px rgba(0,0,0,.12)}
  .lbAvaFb{display:none;width:40px;height:40px;border-radius:50%;background:#f3eee2;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
  @keyframes lbSlideUp{from{transform:translateY(46px);opacity:0}to{transform:translateY(0);opacity:1}}
  @keyframes lbPop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.06);opacity:1}100%{transform:scale(1);opacity:1}}
  @keyframes tsBubIn{from{transform:translateX(-14px);opacity:0}to{transform:translateX(0);opacity:1}}
  /* 💥 §8 上瘾层：爆点动画 / 宿敌 / 手册 (v0705-47) */
  #fxLayer{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10500;pointer-events:none;overflow:hidden}
  .fxBig{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);font-size:34px;font-weight:900;white-space:nowrap;text-shadow:0 2px 10px rgba(0,0,0,.25);animation:fxBigIn 1.5s cubic-bezier(.2,1.2,.4,1) both}
  .fxBig.gold{color:#f3b93c;text-shadow:0 0 14px rgba(243,185,60,.85),0 2px 6px rgba(120,80,0,.4)}
  .fxBig.red{color:#ff5a4e;text-shadow:0 0 14px rgba(255,90,78,.8),0 2px 6px rgba(120,20,0,.4)}
  @keyframes fxBigIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}16%{opacity:1;transform:translate(-50%,-50%) scale(1.28)}30%{transform:translate(-50%,-50%) scale(1)}78%{opacity:1;transform:translate(-50%,-56%) scale(1)}100%{opacity:0;transform:translate(-50%,-70%) scale(.92)}}
  .fxRing{position:absolute;left:50%;top:38%;width:20px;height:20px;border-radius:50%;transform:translate(-50%,-50%);border:3px solid rgba(243,185,60,.9);animation:fxRing .9s ease-out both}
  @keyframes fxRing{0%{opacity:.95;transform:translate(-50%,-50%) scale(.4)}100%{opacity:0;transform:translate(-50%,-50%) scale(9)}}
  .fxPart{position:absolute;left:50%;top:38%;font-size:18px;transform:translate(-50%,-50%);animation:fxPart 1.15s cubic-bezier(.15,.85,.45,1) both}
  @keyframes fxPart{0%{opacity:1;transform:translate(-50%,-50%) scale(.5)}60%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.25) rotate(300deg)}}
  .fxFlash{position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 50% 38%,rgba(255,224,130,.5),rgba(255,224,130,0) 62%);animation:fxFlash .8s ease-out both}
  @keyframes fxFlash{0%{opacity:0}22%{opacity:1}100%{opacity:0}}
  #msnLayer{position:fixed;left:0;right:0;top:58px;z-index:10600;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;padding:0 16px}
  .msnCard{background:linear-gradient(135deg,#3d3325,#5a4a2e);color:#ffe9b8;border-radius:14px;padding:9px 16px;font-size:13px;font-weight:800;box-shadow:0 6px 20px rgba(0,0,0,.35),0 0 0 1.5px rgba(243,185,60,.55);animation:msnIn 2.6s ease both;max-width:340px}
  @keyframes msnIn{0%{opacity:0;transform:translateY(-18px) scale(.85)}10%{opacity:1;transform:translateY(0) scale(1.04)}16%{transform:translateY(0) scale(1)}84%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-14px) scale(.92)}}
  .lbRow.nemesis{background:linear-gradient(90deg,#fdeceb,#fdf5f4);box-shadow:0 0 0 1.5px #e08a7e}
  .lbRow.nemesis.hot{animation:nemPulse 1.6s ease infinite}
  @keyframes nemPulse{0%,100%{box-shadow:0 0 0 1.5px #e08a7e}50%{box-shadow:0 0 0 3px rgba(224,90,70,.7)}}
  @keyframes fxNumPop{0%{transform:scale(.3);opacity:0}55%{transform:scale(1.35)}100%{transform:scale(1);opacity:1}}
  .tsCritBan{background:linear-gradient(90deg,#ff7a5c,#f3b93c,#ff7a5c);background-size:200% 100%;color:#fff;border-radius:12px;padding:9px 12px;font-size:15px;font-weight:900;text-align:center;margin-top:10px;text-shadow:0 1px 3px rgba(120,30,0,.4);animation:critBan 1.4s linear infinite,lbPop .4s ease both}
  @keyframes critBan{0%{background-position:0 0}100%{background-position:200% 0}}
  .tsVipBub{background:linear-gradient(135deg,#fff3d0,#ffe9ae)!important;box-shadow:0 0 0 2px #e8b64c,0 0 12px rgba(232,182,76,.55);animation:vipGlow 1.5s ease infinite}
  @keyframes vipGlow{0%,100%{box-shadow:0 0 0 2px #e8b64c,0 0 8px rgba(232,182,76,.4)}50%{box-shadow:0 0 0 2px #e8b64c,0 0 18px rgba(232,182,76,.85)}}
  .hbBarW{height:9px;background:#f0e8d8;border-radius:5px;overflow:hidden;flex:1}
  .hbBarW i{display:block;height:100%;background:linear-gradient(90deg,#e8b64c,#d98a4a);border-radius:5px;transition:width .5s ease}
  .hbMsn{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #f2ede3}
  .hbMsn.done{opacity:.62}
  .hbTier{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:13px;margin-bottom:7px;background:#faf8f3}
  .hbTier.reached{background:linear-gradient(90deg,#fff3d6,#fff9ec);box-shadow:0 0 0 1.5px #f0d9a0}
  .hbTier.can{box-shadow:0 0 0 2px var(--gold);animation:hbCanPulse 1.6s ease infinite}
  @keyframes hbCanPulse{0%,100%{box-shadow:0 0 0 2px var(--gold)}50%{box-shadow:0 0 0 4px rgba(200,162,74,.45)}}
  @keyframes hbBoxShake{0%,100%{transform:rotate(0)}15%{transform:rotate(-14deg) scale(1.05)}30%{transform:rotate(12deg)}45%{transform:rotate(-10deg) scale(1.1)}60%{transform:rotate(8deg)}75%{transform:rotate(-5deg) scale(1.15)}90%{transform:rotate(3deg)}}
  @keyframes hbBoxJump{0%{transform:scale(.4);opacity:0}40%{transform:scale(1.4)}70%{transform:scale(.95)}100%{transform:scale(1);opacity:1}}
  /* 💥 §8 锦上添花层 v0705-48：冲刺横幅 / COMBO / 甜蜜连线 / 结算揭晓 / 家园王座 */
  .spBan{display:flex;align-items:center;gap:9px;border-radius:13px;padding:9px 12px;margin-bottom:8px;color:#fff;font-weight:900;background:linear-gradient(90deg,#e0453a,#f3b93c,#e0453a);background-size:200% 100%;animation:critBan 1.6s linear infinite,spPulse 1.4s ease infinite;text-shadow:0 1px 3px rgba(120,20,0,.4)}
/* 🎂 200天纪念首页横幅 */
.anni-banner{display:flex;align-items:center;justify-content:center;gap:6px;border-radius:14px;padding:11px 14px;margin-bottom:10px;color:#fff;font-size:13.5px;font-weight:800;text-align:center;cursor:pointer;background:linear-gradient(90deg,#f78da7,#f9b8d0,#f78da7,#fbcfe8,#f78da7);background-size:300% 100%;animation:anniBanShine 2.4s linear infinite;text-shadow:0 1px 3px rgba(160,40,70,.35);box-shadow:0 3px 12px rgba(240,120,160,.35)}
.anni-banner b{font-size:18px;color:#fff;text-shadow:0 2px 6px rgba(200,60,90,.5)}
@keyframes anniBanShine{0%{background-position:0 0}100%{background-position:300% 0}}
  @keyframes spPulse{0%,100%{box-shadow:0 3px 12px rgba(224,69,58,.35)}50%{box-shadow:0 3px 22px rgba(243,185,60,.85)}}
  .cbBadge{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#ff7a5c,#e0453a);color:#fff;border-radius:11px;padding:4px 10px;font-size:12px;font-weight:900;box-shadow:0 2px 8px rgba(224,69,58,.4);animation:cbPop .5s cubic-bezier(.2,1.5,.4,1) both}
  .cbBadge.still{animation:none}
  @keyframes cbPop{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.22)}100%{transform:scale(1);opacity:1}}
  .cpChip{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#fdeef5,#fde4ee);color:#c76a92;border-radius:11px;padding:4px 10px;font-size:12px;font-weight:800;animation:cpGlow 2s ease infinite}
  @keyframes cpGlow{0%,100%{box-shadow:0 0 0 1px #f4cfe0}50%{box-shadow:0 0 0 1px #f4cfe0,0 0 12px rgba(224,138,166,.6)}}
  #rvOverlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10400;background:rgba(24,16,8,.9);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 20px;overflow-y:auto}
  .rvTitle{font-size:21px;font-weight:900;color:#ffe9b8;text-shadow:0 0 16px rgba(243,185,60,.7);margin-bottom:14px;animation:lbPop .5s ease both;white-space:nowrap}
  .rvRow{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#fffdf6,#fff3d6);border-radius:13px;padding:9px 13px;margin-bottom:7px;opacity:0;transform:rotateX(90deg)}
  .rvRow.show{animation:rvFlip .55s cubic-bezier(.2,1.3,.4,1) both}
  @keyframes rvFlip{0%{opacity:0;transform:rotateX(90deg) scale(.8)}60%{opacity:1;transform:rotateX(-14deg) scale(1.05)}100%{opacity:1;transform:rotateX(0) scale(1)}}
  .rvRow.champ{background:linear-gradient(135deg,#ffe9ae,#ffd76e);box-shadow:0 0 0 2px #e8b64c,0 0 26px rgba(243,185,60,.85)}
  .rvCrown{font-size:19px;font-weight:900;color:#ffd76e;text-shadow:0 0 18px rgba(243,185,60,.95);margin-top:10px;opacity:0;text-align:center;line-height:1.5}
  .rvCrown.show{animation:rvCrownIn .8s cubic-bezier(.2,1.4,.4,1) both}
  @keyframes rvCrownIn{0%{opacity:0;transform:scale(.3) translateY(16px)}55%{opacity:1;transform:scale(1.28)}100%{opacity:1;transform:scale(1) translateY(0)}}
  .hm-throne{position:absolute;left:8px;bottom:8px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;z-index:5;pointer-events:none}
  .hm-throne span{background:linear-gradient(90deg,rgba(61,51,37,.92),rgba(90,74,46,.88));color:#ffe9b8;border-radius:11px;padding:4px 9px;font-size:10.5px;font-weight:800;box-shadow:0 2px 8px rgba(0,0,0,.35),0 0 0 1px rgba(243,185,60,.5);white-space:nowrap;animation:lbPop .5s ease both}
  /* 🏘️ §11 邻里串门 v0705-49 */
  .scDot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#e0453a;flex-shrink:0;animation:scDotPulse 1.4s ease infinite}
  @keyframes scDotPulse{0%,100%{box-shadow:0 0 0 0 rgba(224,69,58,.55)}50%{box-shadow:0 0 0 5px rgba(224,69,58,0)}}
  .scAva{width:46px;height:46px;border-radius:12px;object-fit:cover;flex-shrink:0;background:#f3eee2;box-shadow:0 1px 4px rgba(0,0,0,.12)}
  .scAvaFb{display:none;width:46px;height:46px;border-radius:12px;background:#f3eee2;align-items:center;justify-content:center;font-size:26px;flex-shrink:0}
  .scQuip{position:relative;margin-top:7px;background:#3d3325;color:#ffe9b8;border-radius:11px;padding:7px 11px;font-size:12px;font-weight:700;line-height:1.45;animation:scQuipIn .45s cubic-bezier(.2,1.4,.4,1) both}
  .scQuip:before{content:'';position:absolute;top:-6px;left:22px;border:6px solid transparent;border-bottom-color:#3d3325;border-top:0}
  @keyframes scQuipIn{0%{opacity:0;transform:translateY(8px) scale(.72)}60%{opacity:1;transform:translateY(-2px) scale(1.06)}100%{opacity:1;transform:translateY(0) scale(1)}}
  .scHit{animation:scHitK .5s ease both}
  @keyframes scHitK{0%,100%{transform:translate(0,0)}20%{transform:translate(-5px,2px)}40%{transform:translate(5px,-2px)}60%{transform:translate(-3px,-1px)}80%{transform:translate(3px,1px)}}
  .split{display:flex;gap:10px;align-items:flex-start}
  /* 游戏分栏 · 左侧分类（质感版 v3） */
  .cats{width:80px;flex-shrink:0;background:linear-gradient(170deg,rgba(255,255,255,.94) 0%,rgba(251,249,247,.9) 100%);backdrop-filter:blur(28px) saturate(1.8);-webkit-backdrop-filter:blur(28px) saturate(1.8);border-radius:22px;padding:10px 6px;box-shadow:0 6px 28px rgba(91,107,140,.11),0 1px 3px rgba(0,0,0,.05),inset 0 1px 0 rgba(255,255,255,.98),inset 0 0 0 1px rgba(91,107,140,.09);position:sticky;top:10px}
  .cats button{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;border:0;background:transparent;color:#b3b2c4;border-radius:15px;padding:11px 2px 10px;font-size:10px;margin-bottom:2px;font-weight:500;line-height:1.25;position:relative;transition:color .18s ease,background .18s ease,box-shadow .18s ease;cursor:pointer;letter-spacing:.45px;-webkit-tap-highlight-color:transparent}
  .cats button:last-child{margin-bottom:0}
  .cats button .cIcon{font-size:22px;line-height:1;display:block;filter:saturate(.45) brightness(.88);transition:filter .18s ease,transform .22s cubic-bezier(.34,1.46,.64,1)}
  .cats button:active{transform:scale(.94)}
  .cats button:hover{color:#7a7a95;background:rgba(91,107,140,.05)}
  .cats button:hover .cIcon{filter:saturate(.75) brightness(.95)}
  .cats button.on{color:#3c4569;font-weight:700;background:linear-gradient(148deg,rgba(91,107,140,.11) 0%,rgba(224,138,166,.07) 100%);box-shadow:0 3px 14px rgba(91,107,140,.14),inset 0 1px 0 rgba(255,255,255,.85),inset 0 0 0 1px rgba(91,107,140,.11)}
  .cats button.on .cIcon{filter:none;transform:scale(1.12)}
  .cats button.on::before{content:'';position:absolute;left:2px;top:20%;bottom:20%;width:3px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,var(--wolf) 0%,var(--rabbit) 100%);box-shadow:0 0 8px rgba(224,138,166,.55),0 0 18px rgba(91,107,140,.18)}
  .cats button.on::after{content:'';position:absolute;top:8px;right:8px;width:5px;height:5px;border-radius:50%;background:radial-gradient(circle,var(--rabbit),var(--wolf));opacity:.85;box-shadow:0 0 5px rgba(224,138,166,.8)}
  .catgames{flex:1;min-width:0}
  /* 治国志 */
  .gz-hero{background:linear-gradient(135deg,#2a2f45,#4a3550);color:#fff;border-radius:16px;padding:16px}
  .gz-hero .era{font-size:13px;opacity:.85}
  .gz-hero .rating{font-size:22px;font-weight:800;margin:2px 0 12px}
  .statline{display:flex;align-items:center;gap:8px;margin:7px 0;font-size:13px}
  .statline .lab{width:34px;opacity:.9}
  .bar{flex:1;height:9px;background:rgba(255,255,255,.18);border-radius:6px;overflow:hidden}
  .bar > i{display:block;height:100%;border-radius:6px}
  .statline .v{width:28px;text-align:right;font-weight:600}
  .advisor{background:#fff;border-radius:14px;padding:12px;margin:10px 0;display:flex;gap:10px;align-items:flex-start}
  .advisor .av{font-size:26px}
  .decbox{width:100%;border:1px solid #e3e3e8;border-radius:12px;padding:12px;font-size:15px;min-height:64px;font-family:inherit}
  .deltachip{display:inline-block;border-radius:8px;padding:2px 8px;font-size:12px;margin:3px 4px 0 0;font-weight:600}
  /* 治国志 Tab 切换 */
  .gztabs{display:flex;gap:6px;margin-bottom:14px}
  .gztab{flex:1;border:1.5px solid #e3e3e8;background:#fff;border-radius:12px;padding:10px 0;font-size:14px;font-weight:600;cursor:pointer;text-align:center;transition:all .15s}
  .gztab-on{background:var(--wolf);color:#fff;border-color:var(--wolf)}
  /* 治国志 话本列表 */
  .storycard{border:1.5px solid #e8e2d8;background:#fffbf5;border-radius:14px;padding:14px;margin-bottom:10px;cursor:pointer;transition:all .15s}
  .storycard:active{background:#fdf5e6}
  .storycard .stgenretag{display:inline-block;padding:2px 8px;border-radius:8px;font-size:11px;font-weight:600}
  /* 话本大纲 */
  .outline-ch{padding:10px 14px;margin:6px 0;background:#faf8f3;border-left:3px solid var(--wolf);border-radius:0 10px 10px 0}
  .outline-ch.cur{background:#fef5ee;border-left-color:var(--gold)}
  .outline-ch .beats{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
  .outline-ch .beat{font-size:11px;padding:2px 8px;background:#fff;border:1px solid #e8e2d8;border-radius:8px}
  .outline-ch .beat.done{background:#e6f7ee;border-color:#b7dcc5;color:#2e9e6b}
  .outline-ch .beat.cur{background:#fff4e6;border-color:#f0d49a;color:#c07820;font-weight:700}
  /* 话本段落 */
  .storyseg{margin:6px 0;padding:12px 14px;border-radius:12px;line-height:1.6}
  .storyseg.wolf{background:#f7f4ee;border-left:3px solid var(--wolf)}
  .storyseg.rabbit{background:#fdf3f6;border-left:3px solid var(--rabbit)}
  .storyseg.system{background:#f4f7fa;border-left:3px solid #aab}
  .storyseg .bridge{margin-top:8px;padding-top:8px;border-top:1px dashed #e0dcd4;font-size:13px;color:#776;font-style:italic}
  /* 写作建议 */
  .suggtip{padding:8px 12px;margin:4px 0;background:#fffef7;border:1px dashed #e8dca0;border-radius:10px;font-size:13px;cursor:pointer}
  .suggtip:hover{background:#fffde8}
  .suggtip .suggnum{display:inline-block;width:20px;height:20px;line-height:20px;text-align:center;background:var(--gold);color:#fff;border-radius:50%;font-size:11px;font-weight:700;margin-right:6px}
  /* 沉浸式互动概览 */
  #immersive{position:fixed;top:0;left:0;right:0;bottom:0;z-index:30;display:none;flex-direction:column;color:#fff;background:linear-gradient(160deg,#3b2547 0%,#5b3a6f 35%,#8b4f7a 70%,#d49aaa 100%);overflow-y:auto;padding:18px 16px 40px}
  #immersive .imclose{position:fixed;top:14px;right:14px;background:rgba(0,0,0,.32);border:0;color:#fff;width:32px;height:32px;border-radius:50%;font-size:16px}
  #immersive h2{color:rgba(255,255,255,.85);margin-top:18px;font-size:13px;letter-spacing:1px;font-weight:600;text-transform:uppercase}
  #immersive .hero{text-align:center;padding:14px 0 2px}
  #immersive .hero .big{font-size:56px;font-weight:800;line-height:1.05;background:linear-gradient(135deg,#fff,#ffd9e4);-webkit-background-clip:text;background-clip:text;color:transparent}
  #immersive .hero .sub2{font-size:13px;opacity:.85;margin-top:6px}
  #immersive .imcard{background:rgba(255,255,255,.1);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:13px 14px;margin-top:10px}
  #immersive .statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  #immersive .stat{background:rgba(255,255,255,.12);border-radius:12px;padding:10px;text-align:center}
  #immersive .stat b{font-size:20px;display:block}
  #immersive .stat .lbl{font-size:10px;opacity:.85;margin-top:2px}
  #immersive .miles{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
  #immersive .mile{flex:0 0 auto;background:rgba(255,255,255,.12);border-radius:12px;padding:10px 14px;min-width:110px;text-align:center}
  #immersive .mile b{font-size:18px;display:block}
  #immersive .mile .lbl{font-size:11px;opacity:.85;margin-top:2px}
  #immersive .photos{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
  #immersive .photos img{width:60px;height:60px;border-radius:8px;object-fit:cover}
  #immersive .moodcard{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.12)}
  #immersive .moodcard img{width:46px;height:46px;border-radius:10px;object-fit:cover}
  #immersive .moodcard:last-child{border:0}
  /* 🌤️ 子页 sticky 副条：返回 + 标题 + 双方心情头像 */
  #subBar{display:none;background:#fff;border-bottom:1px solid #efeae4;padding:8px 12px;align-items:center;gap:10px;font-size:13px;position:sticky;top:0;z-index:5}
  #subBar.on{display:flex}
  #subBar .sbBack{color:var(--wolf);font-weight:600;font-size:14px;cursor:pointer;flex-shrink:0;padding:2px 4px;-webkit-tap-highlight-color:transparent}
  #subBar .ttl{font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;font-size:15px}
  #subBar .moods{display:flex;gap:6px;align-items:center;flex-shrink:0}
  #subBar .moods img{width:30px;height:30px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.14);cursor:pointer}
  #subBar .moods .miss{width:30px;height:30px;border-radius:50%;background:#f2efea;color:#bbb;display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer}
  /* 📖 今日故事时间轴 */
  .tlTab{display:flex;gap:6px;margin:12px 0 8px}
  .tlTab button{flex:1;border:0;border-radius:10px;padding:7px;font-size:12px;background:#eee;color:#777;font-weight:600}
  .tlTab button.on{background:var(--rabbit);color:#fff}
  .tlItem{display:flex;gap:8px;align-items:flex-start;background:#fff;border-radius:12px;padding:10px 11px;margin-bottom:8px;box-shadow:0 1px 4px rgba(0,0,0,.04)}
  .tlItem.todo{border-left:3px solid var(--rabbit)}
  .tlItem.fyi{border-left:3px solid #cfd6e2}
  .tlItem.done,.tlItem.mine{opacity:.55}

  /* 今日双人接力：首屏只放一件值得一起完成的事。 */
  .relay-card{position:relative;margin:10px 0 12px;padding:14px;background:#fff;border:1px solid #eadfe4;border-radius:14px;box-shadow:0 4px 14px rgba(70,48,60,.08);overflow:hidden}
  .relay-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--rabbit)}
  .relay-complete:before{background:#63a46c}
  .relay-waiting:before{background:#6f89a8}
  .relay-reply:before{background:#d56b8d}
  .relay-loading,.relay-error{color:var(--muted);font-size:13px;min-height:88px;display:flex;align-items:center;justify-content:center}
  .relay-top{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#8b6170;font-size:11px;font-weight:800}
  .relay-top b{background:#f9e6ed;color:#b45173;border-radius:999px;padding:3px 8px;font-size:10px}
  .relay-complete .relay-top{color:#4f8658}
  .relay-waiting .relay-top{color:#586f8b}
  .relay-complete .relay-top b{background:#e8f3e9;color:#4f8658}
  .relay-main{display:flex;align-items:center;gap:11px;margin:11px 0 12px}
  .relay-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;flex:0 0 44px;border-radius:50%;background:#f9edf1;font-size:24px}
  .relay-complete .relay-icon{background:#edf6ed}
  .relay-waiting .relay-icon{background:#edf2f7}
  .relay-copy{min-width:0;flex:1}
  .relay-copy h3{margin:0;font-size:17px;line-height:1.3;color:var(--ink)}
  .relay-copy p{margin:4px 0 0;color:#7e7378;font-size:12px;line-height:1.5}
  .relay-progress>div:first-child{display:flex;justify-content:space-between;color:#8a7e83;font-size:10px;font-weight:700}
  .relay-progress b{color:var(--ink);font-size:11px}
  .relay-bar{height:6px;background:#eee8eb;border-radius:999px;margin-top:5px;overflow:hidden}
  .relay-bar i{display:block;height:100%;background:var(--rabbit);border-radius:999px;transition:width .35s ease}
  .relay-complete .relay-bar i{background:#63a46c}
  .relay-rituals{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0 12px}
  /* 限定在 .relay-rituals 内：卡片状态类也会是 .relay-<kind>，kind='ritual' 时会撞名 */
  .relay-rituals .relay-ritual{display:flex;align-items:center;gap:5px;min-width:0;padding:6px 7px;background:#f7f4f5;border-radius:7px;color:#8b8387;font-size:11px;font-weight:700}
  .relay-rituals .relay-ritual.done{background:#edf5ed;color:#4f8658}
  .relay-rituals .relay-ritual.half{background:#fff2f6;color:#ad5975}
  .relay-ritual-icon{font-size:14px}
  .relay-pair-mini{display:flex;margin-left:auto}
  .relay-pair-mini i{font-style:normal;filter:grayscale(1);opacity:.25;font-size:12px}
  .relay-pair-mini i.on{filter:none;opacity:1}
  .relay-action{width:100%;height:38px;border:0;border-radius:8px;background:var(--wolf);color:#fff;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:7px}
  .relay-action span{font-size:18px;line-height:1}
  .relay-reply .relay-action{background:var(--rabbit)}
  .relay-complete .relay-action{background:#5f8d67}
  .relay-waiting .relay-action{background:#647f9e}
  .relay-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:11px 0 4px}
  .relay-choice{min-width:0;min-height:84px;padding:9px 8px;border:1px solid #e5dce0;border-radius:8px;background:#fff;text-align:left;display:grid;grid-template-columns:30px 1fr auto;grid-template-rows:auto auto;gap:3px 6px;color:var(--ink)}
  .relay-choice-icon{grid-row:1/3;font-size:23px;align-self:center}.relay-choice b{font-size:12px}.relay-choice small{display:flex;gap:2px}.relay-choice small i{font-style:normal;filter:grayscale(1);opacity:.35}.relay-choice small i.on{filter:none;opacity:1}.relay-choice em{grid-column:3;grid-row:1/3;align-self:center;color:var(--rabbit);font-size:10px;font-style:normal;font-weight:800}
  .relay-choice.selected{border-color:#ce7697;background:#fff3f7}.relay-choice.done{border-color:#80aa87;background:#f2f8f2}
  .relay-choice.recommended{border-color:#d8a85b;background:#fffaf0}.relay-choice.recommended em{color:#9b6b20}
  .relay-choice-clear{display:block;margin:7px auto 10px;border:0;background:none;color:#887b81;font-size:11px;text-decoration:underline}

  /* 首页只突出一个可执行动作，其余安排按需展开。 */
  .home-agenda{margin:0 0 12px;padding:13px 14px 0;border:1px solid #dbe2de;border-radius:8px;background:#fff;box-shadow:0 4px 14px rgba(48,65,57,.055);overflow:hidden}
  .home-agenda-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.home-agenda-head>div>span{display:block;color:#74857c;font-size:8px;font-weight:900;letter-spacing:0}.home-agenda-head h2{margin:2px 0 0;color:#34443c;font-size:15px;letter-spacing:0}.home-agenda-head>strong{min-width:38px;padding:4px 8px;border-radius:999px;background:#edf3ef;color:#587064;font-size:11px;text-align:center}.home-agenda.complete .home-agenda-head>strong{background:#e8f3e9;color:#4f8658}
  .home-agenda-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px 0;border-top:1px dashed #e4e9e6}.home-agenda-item.featured{padding:12px 0 13px;border-top:0}.home-agenda-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:#eef3f0;font-size:21px}.home-agenda-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.home-agenda-copy>b{color:#343d38;font-size:13px;line-height:1.35}.home-agenda-copy>small{display:-webkit-box;color:#817d7b;font-size:10px;line-height:1.35;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.home-agenda-progress{display:flex;align-items:center;gap:6px;margin-top:4px}.home-agenda-progress>i{height:4px;max-width:112px;flex:1;border-radius:999px;background:#e7e8e7;overflow:hidden}.home-agenda-progress>i>span{display:block;height:100%;border-radius:999px;background:#6d927e}.home-agenda-progress>em{color:#7e8983;font-size:9px;font-style:normal;font-variant-numeric:tabular-nums}
  .agenda-btn{min-width:70px;min-height:44px;padding:8px 9px;border:1px solid #cbd8d0;border-radius:7px;background:#fff;color:#4e6f5e;font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer}.agenda-btn span{font-size:15px;vertical-align:-1px}.agenda-btn:active{transform:translateY(1px)}.agenda-btn.agenda-claim{border-color:#5f8d67;background:#5f8d67;color:#fff}.agenda-btn:disabled{border-color:#e4e4e4;background:#f1f1f1;color:#999;cursor:default}.home-agenda-item.claimable .home-agenda-icon{background:#edf6ed}.home-agenda-item.claimed{opacity:.68}
  .home-agenda-more{margin:0 -14px}.home-agenda-more>summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;padding:9px 14px;border-top:1px solid #edf0ee;list-style:none;color:#65756d;cursor:pointer}.home-agenda-more>summary::-webkit-details-marker{display:none}.home-agenda-more>summary>span{font-size:11px;font-weight:800}.home-agenda-more>summary>small{color:#aaa5a2;font-size:9px}.home-agenda-more>summary>i{font-size:17px;font-style:normal;transition:transform .16s}.home-agenda-more[open]>summary>i{transform:rotate(90deg)}.home-agenda-more>div{padding:0 14px 4px;background:#fbfcfb}

  /* 猜心小馆：保留暗色氛围，但首屏只给一个本场动作。 */
  .dn-focus{margin:10px 0 12px;padding:12px 13px;border:1px solid #59475c;border-radius:8px;background:#241a2c;color:#f8e5c7;box-shadow:0 4px 14px rgba(10,6,16,.16)}.dn-focus.hot{border-color:#c86f3b;background:linear-gradient(135deg,#302034,#2a1c2a)}.dn-focus.done{border-color:#527b5d}.dn-focus.warn{border-color:#9a6b42}.dn-focus.wait,.dn-focus.idle{border-color:#59475c}.dn-focus-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.dn-focus-head>div>span{display:block;color:#bd9d78;font-size:8px;font-weight:900;letter-spacing:1px}.dn-focus-head h2{margin:2px 0 0;color:#ffe9c8;font-size:15px}.dn-focus-head>strong{min-width:38px;padding:4px 8px;border-radius:999px;background:#33253b;color:#e9bf83;font-size:11px;text-align:center}.dn-focus.done .dn-focus-head>strong{background:#2c4935;color:#a8d8a0}.dn-focus-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;color:#c3a887;font-size:10px}.dn-focus p{margin:7px 0;color:#c8b7a5;font-size:11px;line-height:1.5}.dn-focus-btn{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:44px;margin-top:8px;border:0;border-radius:7px;background:#c86f3b;color:#fff7e8;font-size:13px;font-weight:800;cursor:pointer}.dn-focus-btn span{font-size:17px}.dn-focus-btn:active{transform:translateY(1px)}

  /* 常玩玩法统一「下一步」：状态很多，但首屏只给一个主动作。 */
  .game-focus{--focus-accent:#5d7186;--focus-soft:#f2f5f7;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;margin:0 0 10px;padding:12px 13px;border:1px solid #dce2e5;border-left:4px solid var(--focus-accent);border-radius:8px;background:#fff;box-shadow:0 4px 14px rgba(44,48,51,.06);color:#30363a}
  .game-focus--farm{--focus-accent:#56835e;--focus-soft:#edf5ec;border-color:#cadcc9}.game-focus--teashop{--focus-accent:#a86243;--focus-soft:#fbefe9;border-color:#e5cec2}.game-focus--yiyi{--focus-accent:#89678d;--focus-soft:#f3edf5;border-color:#dcd0df}.game-focus--inn{--focus-accent:#9a6638;--focus-soft:#fbf1e4;border-color:#e6d1b8}
  .game-focus.is-urgent{--focus-accent:#b84f45;background:#fffafa;border-color:#e3b9b4}.game-focus.is-wait{--focus-accent:#718092;background:#fafbfc;border-color:#d8dde3}.game-focus.is-done{--focus-accent:#56815c;background:#f8fbf8;border-color:#cbdccb}.game-focus.is-readonly{--focus-accent:#8b8d91;background:#f7f7f7;border-color:#dedede}
  .game-focus__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:8px;background:var(--focus-soft);font-size:24px;line-height:1;flex:0 0 auto}.game-focus__copy{display:flex;min-width:0;flex-direction:column;gap:2px}.game-focus__kicker{color:var(--focus-accent);font-size:9px;font-weight:900;letter-spacing:0}.game-focus__title{font-size:14px;line-height:1.35;color:#30363a}.game-focus__desc{color:#77797c;font-size:11px;line-height:1.45;overflow-wrap:anywhere}
  .game-focus__action{min-width:116px;min-height:44px;padding:8px 12px;border:0;border-radius:7px;background:var(--focus-accent);color:#fff;font-size:12px;font-weight:900;white-space:nowrap;cursor:pointer}.game-focus__action span{margin-left:4px;color:inherit;font-size:17px;vertical-align:-1px}.game-focus__action:active{transform:translateY(1px)}.game-focus__action:disabled{background:#d4d5d6;color:#777;cursor:default}
  @media(max-width:520px){.game-focus{grid-template-columns:40px minmax(0,1fr);gap:9px}.game-focus__icon{width:40px;height:40px;font-size:22px}.game-focus__action{grid-column:1/-1;width:100%;min-width:0}.game-focus__title{font-size:13px}}

/* 周末开宴 */
.feast-home{width:100%;margin:0 0 12px;padding:11px 13px;border:1px solid #d6c4a2;border-radius:8px;background:#fffaf0;display:flex;align-items:center;gap:10px;text-align:left;color:#3e3328}
.feast-home-mark{font-size:26px}.feast-home>span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}.feast-home b{font-size:13px}.feast-home small{font-size:11px;color:#806f5a}.feast-home strong{font-size:11px;color:#8c5a2d;white-space:nowrap}
#weekendFeast{padding-bottom:72px}.feast-hero{margin:12px 0;padding:19px 17px;border-radius:8px;background:#3f3128;color:#fff9ed;display:flex;justify-content:space-between;align-items:center}.feast-hero small{color:#dcc9a7;font-size:11px;font-weight:700}.feast-hero h2{margin:4px 0;color:#fff9ed;font-size:24px;letter-spacing:0}.feast-hero p{margin:0;max-width:460px;color:#e7ddd0;font-size:12px;line-height:1.55}.feast-hero>span{font-size:42px}
.weekly-hero-moon{background:linear-gradient(135deg,#302747,#5e466c)}.weekly-hero-picnic{background:linear-gradient(135deg,#33594b,#657a45)}#homeMarket,#moonWine,#outingPicnic{padding-bottom:72px}.weekly-keepsake{display:flex;gap:12px;align-items:center;margin:12px 0;padding:13px;border:1px solid #e4d3af;border-radius:8px;background:#fffaf0}.weekly-keepsake>span{font-size:34px}.weekly-keepsake small,.weekly-keepsake b,.weekly-keepsake p{display:block}.weekly-keepsake small{color:#9a8061;font-size:10px}.weekly-keepsake b{margin-top:2px;font-size:15px}.weekly-keepsake p{margin:4px 0 0;color:#746452;font-size:11px;line-height:1.45}.weekly-yiyi{background:#fffaf4}
.feast-hero.weekly-hero-art{position:relative;min-height:190px;overflow:hidden;align-items:flex-end;background-position:center;background-size:cover;box-shadow:0 12px 28px rgba(57,43,30,.16)}
.feast-hero.weekly-hero-art:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(32,29,26,.9),rgba(32,29,26,.55) 55%,rgba(32,29,26,.08)),linear-gradient(0deg,rgba(24,24,20,.45),transparent 55%)}
.feast-hero.weekly-hero-art>div,.feast-hero.weekly-hero-art>span{position:relative;z-index:1}.feast-hero.weekly-hero-art>div{max-width:62%}.feast-hero.weekly-hero-art>span{filter:drop-shadow(0 2px 7px rgba(0,0,0,.35))}
.weekly-hero-feast{background-image:url('/v2/assets/weekly-feast-v2.webp')}.weekly-hero-market{background-image:url('/v2/assets/weekly-market-v2.webp')}.weekly-hero-moon{background-image:url('/v2/assets/weekly-moon-wine-v2.webp')}.weekly-hero-picnic{background-image:url('/v2/assets/weekly-picnic-v2.webp')}
.weekly-v2-board{position:relative;margin:-3px 0 14px;padding:18px 15px 15px;border:1px solid #dcc8a7;border-radius:13px;background:linear-gradient(145deg,#fffdf7,#f7edda);box-shadow:0 12px 28px rgba(94,67,35,.1);overflow:hidden;color:#45382d}
.weekly-v2-board:after{content:'';position:absolute;inset:5px;border:1px dashed rgba(151,116,70,.23);border-radius:9px;pointer-events:none}
.weekly-v2-board--home_market{background:linear-gradient(145deg,#fffdf5,#f5ead2)}
.weekly-v2-board--moon_wine{border-color:#c9bdd5;background:linear-gradient(145deg,#fbf8ff,#eee7f5)}
.weekly-v2-board--outing_picnic{border-color:#bdcdb8;background:linear-gradient(145deg,#fbfff8,#e9f1df)}
.weekly-v2-ribbon{position:absolute;right:-32px;top:16px;width:128px;padding:4px 0;background:#9b5c3c;color:#fff7e8;text-align:center;font-size:8px;font-weight:900;letter-spacing:.12em;transform:rotate(37deg)}
.weekly-v2-board--moon_wine .weekly-v2-ribbon{background:#68577e}.weekly-v2-board--outing_picnic .weekly-v2-ribbon{background:#55735b}
.weekly-v2-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-right:25px}.weekly-v2-top>div{min-width:0}.weekly-v2-top small{color:#9a7656;font-size:9px;font-weight:800;letter-spacing:.11em}.weekly-v2-top h3{margin:3px 0 2px;font-size:20px;letter-spacing:.02em}.weekly-v2-top p{margin:0;color:#7e6e5d;font-size:10.5px;line-height:1.45}.weekly-v2-top>strong{font-family:Georgia,serif;font-size:31px;color:#8b5032}.weekly-v2-top>strong i{font-size:13px;font-style:normal;color:#a88f75}
.weekly-v2-progress{position:relative;z-index:1;height:6px;margin:12px 0 10px;overflow:hidden;border-radius:99px;background:rgba(119,92,60,.12)}.weekly-v2-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#b66c3e,#e2b563);box-shadow:0 0 9px rgba(182,108,62,.3)}
.weekly-v2-now{position:relative;z-index:1;display:flex;align-items:center;gap:9px;margin-bottom:10px;padding:8px 10px;border-left:3px solid #a6633e;background:rgba(255,255,255,.62)}.weekly-v2-now small{color:#9a8066;font-size:9px}.weekly-v2-now b{font-size:12px;color:#6e412a}
.weekly-v2-steps{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.weekly-v2-step{min-width:0;padding:8px 6px;border:1px solid rgba(139,112,76,.15);border-radius:8px;background:rgba(255,255,255,.55);display:flex;align-items:center;gap:6px}.weekly-v2-step>span{display:grid;width:22px;height:22px;flex:0 0 22px;place-items:center;border-radius:50%;background:#e7ddcc;color:#876d52;font-size:9px;font-weight:900}.weekly-v2-step>div{display:flex;min-width:0;flex-direction:column;gap:1px}.weekly-v2-step b{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.weekly-v2-step small{overflow:hidden;color:#9b8a77;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.weekly-v2-step.is-done{border-color:#c9d7b5;background:#f6faef}.weekly-v2-step.is-done>span{background:#6f8a59;color:#fff}
.weekly-v2-rewards{position:relative;z-index:1;display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:9px;border-top:1px dashed rgba(131,100,61,.23)}.weekly-v2-rewards>b{color:#92765b;font-size:9px;white-space:nowrap}.weekly-v2-rewards>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;flex:1}.weekly-v2-rewards>div>div{display:flex;align-items:center;justify-content:center;gap:4px;padding:5px;border-radius:7px;background:rgba(255,255,255,.52)}.weekly-v2-rewards span{font-size:14px}.weekly-v2-rewards small{font-size:8px;color:#6f5a47;white-space:nowrap}
.feast-closed{padding:18px;border:1px dashed #bca887;border-radius:8px;background:#fbf8f1;text-align:center;display:flex;flex-direction:column;gap:5px}.feast-closed b{font-size:15px}.feast-closed span{font-size:12px;color:#7f7365}
.feast-section{margin:12px 0;padding:14px;border:1px solid #e2d7c5;border-radius:8px;background:#fff}.feast-section-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.feast-section-head>span{width:29px;height:29px;border-radius:50%;background:#6d4932;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:900;flex:0 0 auto}.feast-section-head h3{margin:0;font-size:15px;letter-spacing:0}.feast-section-head p{margin:2px 0 0;color:#8a7a68;font-size:11px;line-height:1.35}
.feast-theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.feast-theme{min-width:0;min-height:116px;padding:10px 7px;border:1px solid #e4dacb;border-radius:8px;background:#fbf9f5;color:#473a30;display:flex;flex-direction:column;align-items:center;gap:5px}.feast-theme>span{font-size:26px}.feast-theme b{font-size:12px}.feast-theme small{margin-top:auto;font-size:10px;color:#927051}.feast-theme.on{border-color:#a96b36;background:#fff3dc;box-shadow:inset 0 0 0 1px #a96b36}.feast-theme:disabled{opacity:.48}
.feast-tags{display:flex;flex-wrap:wrap;gap:3px;justify-content:center}.feast-tags i{padding:2px 5px;border-radius:4px;background:#eee8df;color:#6b5d50;font-size:9px;font-style:normal;font-weight:700}
.feast-guest{margin-top:9px;padding:9px 10px;border-left:3px solid #a96b36;background:#fbf5eb;display:flex;align-items:center;gap:9px}.feast-guest>span{font-size:24px}.feast-guest>div{display:flex;flex:1;flex-direction:column}.feast-guest small{font-size:9px;color:#8b7966}.feast-guest b{font-size:12px}
.feast-role-current{margin-bottom:9px;padding:10px;border:1px solid #dac7aa;background:#fff8e9;display:flex;align-items:center;gap:9px;border-radius:8px}.feast-role-current>span{font-size:27px}.feast-role-current>div{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}.feast-role-current small,.feast-role-current em{font-size:10px;color:#8a765f;font-style:normal}.feast-role-current b{font-size:13px}.feast-role-current>strong{font-size:17px;color:#864b25}.feast-role-current>strong small{display:block;text-align:center}
.feast-dish-list,.feast-method-list{display:grid;gap:6px}.feast-dish{width:100%;min-width:0;padding:9px;border:1px solid #e3ddd4;border-radius:8px;background:#fff;display:grid;grid-template-columns:34px minmax(0,1fr) 35px;gap:8px;align-items:center;text-align:left;color:#3e3731}.feast-dish.on,.feast-method.on{border-color:#a96b36;background:#fff8ed}.feast-dish.unavailable{opacity:.55}.feast-dish-icon{font-size:25px}.feast-dish-copy{min-width:0;display:flex;flex-direction:column;gap:4px}.feast-dish-copy>b{font-size:12px}.feast-dish-copy>.feast-tags{justify-content:flex-start}.feast-dish-copy>small{display:flex;flex-wrap:wrap;gap:4px;color:#6f8b66;font-size:9px}.feast-dish-copy>small span{padding:1px 3px;background:#eef5eb}.feast-dish-copy>small .lack{color:#a84e46;background:#fae8e5}.feast-dish>strong{text-align:center;color:#81522d;font-size:15px}.feast-dish>strong small{display:block;font-size:8px;color:#9b8d80}
.feast-method-list{grid-template-columns:repeat(3,minmax(0,1fr))}.feast-method{min-width:0;min-height:91px;padding:8px 6px;border:1px solid #e3ddd4;border-radius:8px;background:#fff;display:flex;flex-direction:column;align-items:center;gap:4px;color:#3e3731}.feast-method>span:first-child{font-size:23px}.feast-method>span:nth-child(2){display:flex;flex-direction:column;gap:2px}.feast-method b{font-size:11px}.feast-method small{font-size:9px;color:#8a7d71;line-height:1.3}.feast-method strong{font-size:13px;color:#935e34}.feast-link{display:block;margin:8px auto 0;border:0;background:none;color:#8c6c52;font-size:10px;text-decoration:underline}
.feast-result{margin:12px 0;padding:15px;border:1px solid #bd9254;border-radius:8px;background:#fff9e9}.feast-result.final{background:#f7f1e4}.feast-result-title{display:flex;align-items:center;gap:10px}.feast-result-title>span{font-size:35px}.feast-result-title small{font-size:10px;color:#8f7558}.feast-result-title h3{margin:2px 0 0;font-size:17px;letter-spacing:0}.feast-score-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:12px 0}.feast-score-grid>div{padding:8px 4px;background:#fff;border:1px solid #eadfc9;border-radius:6px;text-align:center}.feast-score-grid span{display:block;font-size:9px;color:#8c7b68}.feast-score-grid b{font-size:18px;color:#704526}.feast-score-grid small{font-size:8px;color:#a09283}.feast-tips{padding:7px 9px;background:#f2ecdf;border-left:3px solid #a98757}.feast-tips p{margin:3px 0;font-size:11px;line-height:1.5;color:#675a4e}.feast-hold{width:100%;min-height:43px;margin-top:11px;border:0;border-radius:7px;background:#7c382b;color:#fff;font-size:14px;font-weight:900}.feast-reward{margin-top:10px;padding:8px;text-align:center;background:#ede2c9;color:#6f4c27;font-size:12px;font-weight:800}
.feast-history-list{display:grid;gap:5px}.feast-history-list>div{padding:7px 9px;background:#f8f5ef;display:grid;grid-template-columns:25px 1fr auto auto;align-items:center;gap:6px}.feast-history-list b{font-size:11px}.feast-history-list small{font-size:9px;color:#918578}.feast-history-list strong{font-size:11px;color:#805031}
  .feast-deadline{margin:-4px 0 12px;padding:9px 12px;border:1px solid #ecd9b8;border-radius:8px;background:#fdf3e2;color:#8a5a24;font-size:12px;font-weight:800;line-height:1.5}
  .feast-deadline:before{content:'⏰ '}
  .feast-deadline.late{border-color:#f0c8c4;background:#fdecea;color:#a8443a}
  .feast-help{margin:12px 0;padding:12px 13px;border:1px solid #e2d7c5;border-radius:8px;background:#fffdf8}
  .feast-help .hh{display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:pointer;font-weight:800;font-size:13.5px;color:#6d4932}
  .feast-help .hh .tg{font-size:11px;color:#b9791a;font-weight:700;white-space:nowrap}
  .feast-help .hb{font-size:12px;line-height:1.75;margin-top:9px;color:#54483a}
  .feast-roster{margin:12px 0;padding:13px;border:1px solid #e2d7c5;border-radius:8px;background:#fff}
  .feast-roster-head{display:flex;align-items:center;gap:8px}
  .feast-roster-head b{font-size:14px;color:#6d4932}
  .feast-roster-head small{flex:1;min-width:0;font-size:10px;color:#8a7a68;line-height:1.35}
  .feast-roster-head strong{font-size:14px;color:#7c382b}
  .feast-roster-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}
  .feast-seat{min-width:0;padding:9px 8px;border:1px dashed #ddd2c2;border-radius:8px;background:#fbf9f5;display:flex;flex-direction:column;gap:3px}
  .feast-seat.on{border-style:solid;border-color:#dcc3a0;background:#fff8ec}
  .feast-seat.mine{box-shadow:inset 0 0 0 1px #a96b36}
  .feast-seat .fs-role{font-size:10.5px;font-weight:800;color:#6d4932}
  .feast-seat .fs-who{font-size:12px;font-weight:800;color:#3e3328}
  .feast-seat .fs-who.empty{color:#a89c8d;font-weight:700}
  .feast-seat .fs-detail{font-size:10px;color:#8a7a68;line-height:1.35}
  .feast-roster-tip{margin:9px 0 0;font-size:10.5px;line-height:1.55;color:#8a7a68}
  .feast-buy-head{display:flex;align-items:center;gap:7px;margin-bottom:8px;font-size:11px;color:#6b5d50}
  .feast-buy-head b{font-size:13px}
  .feast-buy-head b.ok{color:#3d8a51}.feast-buy-head b.no{color:#a84e46}
  .feast-buy-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:260px;overflow:auto}
  .feast-buy-row{display:grid;grid-template-columns:24px minmax(0,1fr) 22px;align-items:center;gap:6px;padding:7px 8px;border:1px solid #e3ddd4;border-radius:8px;background:#fff;cursor:pointer;color:#3e3731}
  .feast-buy-row.on{border-color:#a96b36;background:#fff8ed}
  .feast-buy-row.precious{border-color:#e6d3a8;background:#fffbf0}
  .feast-buy-row .fb-emoji{font-size:19px;text-align:center}
  .feast-buy-row .fb-copy{display:flex;flex-direction:column;min-width:0}
  .feast-buy-row .fb-copy b{font-size:11.5px}
  .feast-buy-row .fb-copy small{font-size:9px;color:#8a7d71}
  .feast-buy-row .fb-rare{font-style:normal;font-size:8px;padding:1px 3px;border-radius:3px;background:#f6e3bb;color:#8a6118}
  .feast-buy-row strong{font-size:14px;color:#b3906c;text-align:center}
  .feast-buy-row .fb-minus{width:20px;height:20px;line-height:18px;text-align:center;border-radius:50%;background:#f0e3d2;color:#7c382b;font-weight:900;font-size:13px;margin:0 auto}
  .feast-buy-foot{display:flex;gap:6px;margin-top:9px}
  .bird-week{width:100%;margin:8px 0 12px;padding:10px 12px;border:1px solid #d8dfe8;border-radius:8px;background:#f7fafd;display:flex;align-items:center;gap:10px;text-align:left;color:#2f3a45}
  .bird-week .bw-mark{font-size:24px}
  .bird-week>span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column;gap:1px}
  .bird-week small{font-size:9px;color:#6d7c8b}
  .bird-week b{font-size:13px}
  .bird-week b i{font-style:normal;font-size:10px;color:#93a1b0;margin:0 2px}
  .bird-week em{font-size:10px;font-style:normal;color:#6d7c8b}
  .bird-week strong{font-size:11px;color:#3f6d9c;white-space:nowrap}
  .feast-wait{margin-top:11px;padding:11px 12px;border:1px dashed #c9b48d;border-radius:8px;background:#fbf5e7;display:flex;flex-direction:column;gap:4px}
  .feast-wait b{font-size:13px;color:#7c5a24}
  .feast-wait span{font-size:11px;line-height:1.6;color:#8a7a68}
  .feast-more{margin-top:8px}
  .feast-more>summary{cursor:pointer;font-size:11px;color:#8c6c52;padding:5px 0;list-style:none}
  .feast-more>summary::-webkit-details-marker{display:none}
  .feast-more>summary:before{content:'▸ '}
  .feast-more[open]>summary:before{content:'▾ '}
  .feast-reveal{display:flex;gap:11px;align-items:flex-start}
  .feast-reveal .fr-mark{font-size:34px;line-height:1}
  .feast-reveal p{margin:5px 0 0;font-size:12px;color:#6b5d50;line-height:1.6}
  .feast-reveal b{font-size:14px}
@media(max-width:430px){.feast-theme-grid{grid-template-columns:1fr}.feast-theme{min-height:76px;display:grid;grid-template-columns:38px minmax(80px,1fr) auto;grid-template-rows:auto auto;text-align:left}.feast-theme>span{grid-column:1;grid-row:1/3}.feast-theme>b{grid-column:2;grid-row:1;white-space:normal}.feast-theme .feast-tags{grid-column:2;grid-row:2;justify-content:flex-start}.feast-theme small{grid-column:3;grid-row:1/3;align-self:center}.feast-method-list{grid-template-columns:1fr}.feast-method{min-height:58px;display:grid;grid-template-columns:31px 1fr auto;text-align:left}.feast-method>span:nth-child(2){align-items:flex-start}.feast-score-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.feast-roster-grid{grid-template-columns:1fr}.feast-buy-list{grid-template-columns:1fr;max-height:320px}.weekly-v2-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.weekly-v2-rewards{align-items:flex-start;flex-direction:column}.weekly-v2-rewards>div{width:100%}.weekly-v2-rewards small{white-space:normal}.weekly-v2-top p{padding-right:18px}}
  .relay-keepsake{margin:0 0 12px;padding:14px;border:1px solid #eed8cf;border-radius:12px;background:linear-gradient(135deg,#fff8ed,#fff0f3);color:#795b60}
  .relay-keepsake-title{font-size:15px;font-weight:800;color:#854d5f}
  .relay-keepsake p{font-size:12px;line-height:1.65;margin:7px 0;overflow-wrap:anywhere}
  .relay-sync-status{font-size:11px;line-height:1.6;margin:6px 0;color:#826d72}
  .relay-image-action{display:block;width:100%;padding:12px 8px;margin-top:12px;border:0;border-radius:9px;background:#b9637d;color:#fff;font-size:13px;font-weight:700;cursor:pointer}
  .relay-image-action:disabled{opacity:.65;cursor:wait}
  .relay-image-preview{display:grid;grid-template-columns:clamp(96px,30vw,112px) 1fr;align-items:center;width:100%;padding:0;margin-top:10px;border:0;border-radius:10px;overflow:hidden;background:#fff;color:#85576a;cursor:pointer;text-align:left}
  .relay-image-preview img{display:block;width:100%;aspect-ratio:3/4;height:auto;object-fit:contain;background:#f8eee9}
  .relay-image-preview span{display:flex;align-items:center;justify-content:center;align-self:stretch;padding:12px;font-size:12px;line-height:1.5;font-weight:700;text-align:center}
  .relay-image-download{display:block;margin-top:8px;padding:9px;border:1px solid #d9a5b4;border-radius:9px;background:rgba(255,255,255,.72);color:#8e4f66;font-size:12px;font-weight:700;text-align:center;text-decoration:none}
  .relay-sync-retry{padding:8px 0;border:0;background:transparent;color:#95526b;text-decoration:underline;font-size:12px;cursor:pointer}
  .relay-sync-details{margin-top:10px;font-size:12px;line-height:1.6}
  .relay-sync-details summary{cursor:pointer}
  .relay-sync-details>div{padding-top:10px}
  .relay-sync-details p{white-space:pre-wrap;margin:3px 0 8px}
  .relay-sync-details small{display:block;color:#917b80;font-size:10px;margin-top:8px}
  /* 今日同频：首屏显示摘要，长图与四段内容按需展开 */
  .relay-keepsake{padding:0;overflow:hidden}
  .relay-keepsake>summary{position:relative;display:flex;align-items:center;gap:10px;padding:11px 12px;list-style:none;cursor:pointer}
  .relay-keepsake>summary::-webkit-details-marker{display:none}
  .relay-keepsake>summary:after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:12px;box-shadow:inset 0 0 0 1px rgba(190,108,132,.08)}
  .relay-keepsake[open]>summary{border-bottom:1px dashed #ecd5da}
  .relay-keepsake-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#fff;color:#c35e7e;font-size:19px;flex:0 0 34px}
  .relay-keepsake>summary>span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}
  .relay-keepsake>summary b{font-size:13px;color:#76495b}
  .relay-keepsake>summary small{font-size:10px;color:#9c7c84;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .relay-keepsake>summary strong{font-size:11px;color:#a85872;white-space:nowrap}
  .relay-keepsake>summary strong i{font-size:17px;font-style:normal;vertical-align:-1px}
  .relay-keepsake-body{padding:0 12px 12px}
  .relay-keepsake-body .relay-sync-details{margin-bottom:0}
  .home-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:11px}
  .home-stat{display:flex;flex-direction:column;gap:3px;padding:8px 6px;border-radius:11px;background:#f7f4ee;text-align:center}
  .home-stat span{font-size:10px;color:var(--muted);white-space:nowrap}.home-stat b{font-size:15px;line-height:1.1}
  .home-stat.wolf{background:#f2f3f8}.home-stat.wolf b{color:var(--wolf)}
  .home-stat.rabbit{background:#fdf1f5}.home-stat.rabbit b{color:var(--rabbit)}
  .home-stat.couple{margin-top:0;background:#fff5e8}.home-stat.couple b{color:var(--gold)}
  .home-stat.done{background:#edf4fb}.home-stat.done b{color:#58718c}
  .home-moods{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:6px}.home-moods>div{min-width:0}.home-decree{display:flex;gap:8px;border-top:1px dashed #eee;padding-top:7px;margin-top:4px}.home-decree span{color:#aaa;font-size:11px;margin-left:auto;white-space:nowrap}
  /* 探索页：个人高频入口 */
  .world-event-home{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;width:100%;margin:8px 0 12px;padding:11px 12px;border:1px solid #dce4d5;border-radius:8px;background:#f8fbf5;text-align:left;color:#383d35}.world-event-home>span:first-child{font-size:25px;text-align:center}.world-event-home>span:nth-child(2){display:flex;min-width:0;flex-direction:column}.world-event-home small{font-size:9px;color:#73816d}.world-event-home b{font-size:13px;margin:1px 0}.world-event-home em{font-size:10px;font-style:normal;color:#747a70;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.world-event-home strong{font-size:11px;color:#62745b;white-space:nowrap}
  .collection-page{max-width:760px;margin:0 auto;padding:8px 0 30px}.collection-head{padding:8px 2px 16px;border-bottom:1px solid #e8e4dd}.collection-head small{font-size:9px;color:#967b70}.collection-head h2{margin:4px 0;font-size:22px}.collection-head p{margin:0;color:#807a75;font-size:12px}.memorial-list{display:grid;gap:0}.memorial-item{display:grid;grid-template-columns:82px 1fr;gap:14px;padding:15px 2px;border-bottom:1px solid #ece8e2}.memorial-date{font-size:11px;color:#918b83}.memorial-item small{font-size:9px;color:#a18778}.memorial-item h3{margin:3px 0;font-size:15px}.memorial-item p{margin:0;color:#706b67;font-size:12px;line-height:1.55}.collection-empty{padding:32px 10px;text-align:center;color:#888}.collection-sink{display:grid;grid-template-columns:34px 1fr 12px;align-items:center;gap:9px;width:100%;margin-top:14px;padding:12px;border:1px solid #e2d6ca;border-radius:8px;background:#fffaf5;text-align:left}.collection-sink>span:first-child{font-size:22px}.collection-sink>span:nth-child(2){display:flex;flex-direction:column}.collection-sink b{font-size:13px}.collection-sink small{font-size:10px;color:#8d8177}.weekly-facts{display:grid;grid-template-columns:1fr 1fr;gap:0}.weekly-facts section{padding:15px 12px;border-bottom:1px solid #ebe7e1}.weekly-facts section:nth-child(odd){border-right:1px solid #ebe7e1}.weekly-facts small{font-size:9px;color:#958980}.weekly-facts b{display:block;margin:5px 0;font-size:14px}.weekly-facts p{margin:0;font-size:11px;color:#78726e;line-height:1.5}
  .games-frequent{max-width:900px;margin:0 auto 14px;padding:13px 14px 14px;border-radius:18px;background:linear-gradient(135deg,#fff9fb,#f5f7fc);border:1px solid rgba(91,107,140,.12);box-shadow:0 7px 20px rgba(66,56,78,.06)}
  .games-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}.games-section-head>div>span{font-size:9px;letter-spacing:1.7px;color:#b18b9b;font-weight:800}.games-section-head h2{margin:2px 0 0;color:#3d3a48;font-size:16px}.games-section-head small{font-size:10px;color:#9893a2;white-space:nowrap}
  .frequent-rail{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;overflow-x:auto;padding:2px 1px 3px}.frequent-game{min-width:0;border:0;background:#fff;border-radius:14px;padding:7px 6px 8px;text-align:left;cursor:pointer;box-shadow:0 2px 10px rgba(52,46,64,.08);transition:transform .16s,box-shadow .16s}.frequent-game:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(52,46,64,.13)}.frequent-game:active{transform:scale(.97)}
  .frequent-art{display:block;position:relative;aspect-ratio:1.35;border-radius:10px;overflow:hidden;background:linear-gradient(135deg,#f1eee9,#fbf7f0);margin-bottom:7px}.frequent-art img{display:block;width:100%;height:100%;object-fit:cover}.frequent-fallback{display:grid;place-items:center;height:100%;font-size:27px}.frequent-art i{position:absolute;top:5px;left:5px;padding:2px 5px;border-radius:999px;background:#e08aa6;color:#fff;font-size:9px;font-style:normal;font-weight:800}.frequent-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.frequent-copy b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#353342}.frequent-copy small{font-size:10px;color:#9a96a1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frequent-top{box-shadow:0 0 0 1px rgba(224,138,166,.24),0 5px 15px rgba(224,138,166,.14)}
  .tlTime{font-size:10px;color:var(--muted);min-width:32px;padding-top:2px;font-variant-numeric:tabular-nums}
  .tlMain{flex:1;min-width:0}
  .tlText{font-size:13.5px;font-weight:600;line-height:1.3}
  .tlPrev{font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.3;word-break:break-word}
  .tlBtn{align-self:center;font-size:11px;padding:5px 10px;border-radius:8px;border:0;font-weight:600;white-space:nowrap}
  .tlBtn.todo{background:var(--rabbit);color:#fff}
  .tlBtn.fyi{background:var(--wolf);color:#fff}
  .tlBtn.done,.tlBtn.mine{background:#ececec;color:#888}
  .toast{position:fixed;bottom:84px;left:50%;transform:translateX(-50%);background:#2a2a32;color:#fff;padding:9px 16px;border-radius:20px;font-size:13px;opacity:0;transition:.3s;pointer-events:none;z-index:10550}
  .toast.show{opacity:1}
  /* M05 Pet Character */
  .petScene{position:relative;width:160px;height:160px;margin:0 auto;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .15s}
  .petScene:active{transform:scale(.94)}
  .pEarW{position:absolute;left:20px;top:10px;width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-bottom:32px solid #8a9cc0}
  .pEarWI{position:absolute;left:-8px;top:8px;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:19px solid #5b6b8c}
  .pEarR{position:absolute;right:24px;top:-4px;width:19px;height:48px;background:#e08aa6;border-radius:9px 9px 3px 3px}
  .pEarRI{position:absolute;left:4px;top:5px;width:11px;height:33px;background:#f5c0d0;border-radius:5px 5px 2px 2px}
  .pBody{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);width:104px;height:92px;background:linear-gradient(155deg,#fdfaf7,#f0ebe5);border-radius:50% 50% 44% 44%;box-shadow:0 4px 18px rgba(0,0,0,.09),inset 0 -4px 10px rgba(0,0,0,.04)}
  .pEyes{display:flex;gap:18px;justify-content:center;padding-top:18px}
  .pEye{width:12px;height:12px;background:#2a2a32;border-radius:50%;position:relative;transition:all .3s}
  .pEye::after{content:'';position:absolute;top:2px;right:2px;width:3px;height:3px;background:#fff;border-radius:50%}
  .pCheeks{display:flex;gap:52px;justify-content:center;margin-top:3px}
  .pCheek{width:15px;height:9px;background:rgba(224,138,166,.38);border-radius:50%}
  .pNose{text-align:center;font-size:9px;margin-top:3px;color:#c06080;line-height:1}
  .pMouth{text-align:center;font-size:13px;line-height:1.1}
  .pTail{position:absolute;right:-8px;bottom:10px;width:24px;height:24px;background:radial-gradient(circle at 40% 40%,#f5c0d0,#e08aa6);border-radius:50%;box-shadow:0 2px 8px rgba(224,138,166,.3)}
  @keyframes pBounce{0%,100%{top:0}45%{top:-16px}}
  @keyframes pShake{0%,100%{transform:translateX(-50%)}25%{transform:translateX(calc(-50% - 8px))}75%{transform:translateX(calc(-50% + 8px))}}
  @keyframes pEgg{0%,100%{filter:drop-shadow(0 0 0px rgba(224,138,166,0))}50%{filter:drop-shadow(0 0 14px rgba(224,138,166,.6))}}
  @keyframes pBabyFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
  @keyframes pBabyPop{0%,100%{transform:translateY(0) scale(1)}40%{transform:translateY(-10px) scale(1.06)}}
  @keyframes hFall{to{top:110%}}
  .m05stat{display:flex;align-items:center;gap:8px;margin:5px 0;font-size:12px}
  .m05slab{width:52px;flex-shrink:0}
  .m05bar{flex:1;height:9px;background:#f0f0f0;border-radius:5px;overflow:hidden}
  .m05bfill{height:100%;border-radius:5px;transition:width .6s}
  .m05sval{width:26px;text-align:right;font-size:11px;font-weight:600;color:var(--muted)}
  .m05act{border:0;border-radius:10px;padding:10px 4px;font-size:12px;font-weight:600;color:#fff;flex:1;transition:opacity .2s}
  .m05act:disabled{opacity:.38;cursor:default}
  /* ===== M21 狼兔大富翁 全屏棋盘 ===== */
  #m21fs{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1500;display:none;flex-direction:column;
    background:radial-gradient(120% 90% at 50% 8%,#fbf7f0 0%,#efe9df 55%,#e6ded2 100%);
    color:var(--ink);overflow:hidden}
  #m21fs.on{display:flex}
  .m21screen{flex:1;display:flex;flex-direction:column;min-height:0}
  #m21topbar{display:flex;align-items:center;gap:8px;padding:10px 14px;flex-shrink:0}
  #m21topbar .x{font-size:20px;color:var(--muted);cursor:pointer;line-height:1}
  #m21topbar .ti{font-weight:800;font-size:15px;letter-spacing:.5px}
  #m21topbar .rd{margin-left:auto;font-size:11px;color:var(--muted);background:#fff;border-radius:20px;padding:3px 10px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
  /* 顶部玩家头像栏 */
  #m21players{display:flex;gap:7px;padding:4px 10px 2px;overflow-x:auto;flex-shrink:0;justify-content:center}
  .m21pchip{display:flex;align-items:center;gap:6px;background:#fff;border-radius:24px;padding:4px 11px 4px 4px;box-shadow:0 1px 4px rgba(0,0,0,.1);flex-shrink:0;border:2px solid transparent;transition:transform .15s,border-color .15s}
  .m21pchip.on{border-color:var(--gold);box-shadow:0 0 0 2px rgba(200,162,74,.25),0 2px 8px rgba(200,162,74,.3);transform:translateY(-1px)}
  .m21pchip.dead{opacity:.45;filter:grayscale(.6)}
  .m21pchip img{width:34px;height:34px;border-radius:50%;object-fit:cover;background:#eee}
  .m21pchip .pi{line-height:1.15}
  .m21pchip .pn{font-size:11px;font-weight:800;color:var(--ink)}
  .m21pchip .pc{font-size:11.5px;font-weight:800;color:#a8842f;background:rgba(200,162,74,.13);border-radius:8px;padding:0 5px;margin-top:1px;display:inline-block;font-variant-numeric:tabular-nums;line-height:1.35}
  .m21maplist{display:flex;flex-direction:column;gap:8px;max-width:440px;margin:0 auto;width:100%}
  .m21mapcard{display:flex;align-items:center;gap:10px;background:#fff;border-radius:14px;padding:7px;box-shadow:0 1px 5px rgba(60,50,40,.1);border:2px solid transparent;cursor:pointer;position:relative;transition:transform .12s,border-color .12s}
  .m21mapcard.sel{border-color:var(--gold);box-shadow:0 0 0 2px rgba(200,162,74,.25),0 3px 10px rgba(200,162,74,.25)}
  .m21mapcard .mmt{width:78px;height:56px;border-radius:10px;background:#eef0f2 center/cover no-repeat;flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
  .m21mapcard .mmi{flex:1;text-align:left;min-width:0}
  .m21mapcard .mmn{font-weight:800;font-size:15px;color:var(--ink)}
  .m21mapcard .mmd{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.32}
  .m21mapcard .mmck{margin-left:auto;width:22px;height:22px;border-radius:50%;background:var(--gold);color:#fff;font-weight:900;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;opacity:0;transform:scale(.4);transition:.15s}
  .m21mapcard.sel .mmck{opacity:1;transform:scale(1)}
  #m21fx{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:36}
  .m21gtk{width:18px;height:18px;border-radius:50%;object-fit:cover;vertical-align:-4px;box-shadow:0 1px 2px rgba(0,0,0,.22)}
  .m21iic{width:18px;height:18px;border-radius:5px;object-fit:cover;vertical-align:-4px}
  .m21ibic{width:28px;height:28px;border-radius:8px;object-fit:cover;vertical-align:middle;pointer-events:none}
  .m21shic{width:22px;height:22px;border-radius:6px;object-fit:cover;vertical-align:-5px}
  .m21bic{width:24px;height:24px;border-radius:6px;object-fit:cover;filter:drop-shadow(0 1px 1px rgba(0,0,0,.2))}
  .m21godcard{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);width:196px;background:linear-gradient(180deg,#fffdf8,#f7f0e4);border-radius:18px;box-shadow:0 12px 34px rgba(0,0,0,.32);padding:12px 12px 14px;text-align:center;border:2px solid var(--gold);animation:m21gin 2.2s ease forwards}
  .m21godcard img{width:122px;height:122px;border-radius:14px;object-fit:cover;box-shadow:0 3px 10px rgba(0,0,0,.2)}
  .m21godcard .gh{font-size:11px;color:var(--gold);font-weight:800;margin-bottom:6px;letter-spacing:.5px}
  .m21godcard .gn{font-weight:900;font-size:17px;margin-top:7px;color:var(--ink)}
  .m21godcard .gd{font-size:10.5px;color:var(--muted);margin-top:3px;line-height:1.32}
  @keyframes m21gin{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}12%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}22%{transform:translate(-50%,-50%) scale(1)}85%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(.96)}}
  .m21float{position:absolute;transform:translateX(-50%);font-size:14px;font-weight:900;animation:m21fl 1.1s ease forwards;text-shadow:0 1px 3px rgba(255,255,255,.9)}
  .m21float.up{color:#3a9d5b}
  .m21float.dn{color:#d05b5b}
  @keyframes m21fl{0%{opacity:0;transform:translateY(4px)}20%{opacity:1}100%{opacity:0;transform:translateY(-22px)}}
  .m21coin{position:absolute;font-size:16px;line-height:1;z-index:5;margin-left:-8px;margin-top:-8px;
    transform:translate(0,0) scale(1);opacity:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3));
    transition:transform .48s cubic-bezier(.3,.6,.4,1),opacity .48s ease}
  /* 道具/神明专属特效 */
  .m21boom{position:absolute;z-index:6;pointer-events:none;width:0;height:0}
  .m21boom .bx{position:absolute;left:0;top:0;display:block;transform:translate(-50%,-50%);font-size:15px;animation:m21boomx .85s ease forwards}
  @keyframes m21boomx{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}16%{opacity:1;transform:translate(-50%,-50%) scale(2)}55%{transform:translate(-50%,-50%) scale(1.4)}100%{opacity:0;transform:translate(-50%,-50%) scale(2.3)}}
  .m21boom .p{position:absolute;left:0;top:0;font-size:12px;opacity:0;animation:m21frag .85s ease forwards}
  @keyframes m21frag{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}20%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.1)}}
  .m21swirl{position:absolute;z-index:6;pointer-events:none;width:0;height:0}
  .m21swirl .sw{position:absolute;left:0;top:0;display:block;transform:translate(-50%,-50%);font-size:22px;animation:m21swl 1.15s ease forwards}
  @keyframes m21swl{0%{opacity:0;transform:translate(-50%,-50%) rotate(0) scale(.4)}18%{opacity:1}80%{opacity:.9}100%{opacity:0;transform:translate(-50%,-50%) rotate(560deg) scale(1.5)}}
  .m21swirl .sp{position:absolute;left:0;top:0;font-size:13px;opacity:0;animation:m21frag 1.05s ease forwards}
  .m21godglow{position:absolute;left:50%;top:40%;width:260px;height:260px;transform:translate(-50%,-50%);border-radius:50%;z-index:0;pointer-events:none;
    background:radial-gradient(circle,rgba(242,212,120,.6) 0%,rgba(242,212,120,.22) 45%,rgba(242,212,120,0) 70%);animation:m21glowp 2.2s ease forwards}
  @keyframes m21glowp{0%{opacity:0;transform:translate(-50%,-50%) scale(.45)}14%{opacity:1;transform:translate(-50%,-50%) scale(1.14)}30%{transform:translate(-50%,-50%) scale(.98)}52%{transform:translate(-50%,-50%) scale(1.1)}85%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.22)}}
  #m21wrap{flex:none;display:flex;align-items:center;justify-content:center;padding:6px}
  #m21grid{display:grid;gap:5px;width:min(96vw,52vh,500px);height:min(96vw,52vh,500px)}
  #m21grid.free{flex-shrink:0;position:relative}
  #m21grid.free .m21tile{position:relative;z-index:1}
  #m21grid.free .m21tile.spec .te{font-size:21px}
  .m21river{position:absolute;left:0;top:0;z-index:0;pointer-events:none}
  .m21tile .tord{position:absolute;top:1px;left:2px;font-size:8px;font-weight:800;color:#b9b0a0;z-index:3;line-height:1}
  .m21tile.cur .tord{color:var(--gold)}
  /* 控制面板移到棋盘下方（用上竖屏空白，日志/按钮不再被挤裁切） */
  #m21panel{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;padding:4px 12px 14px;overflow-y:auto}
  .m21tile{position:relative;background:#fff;border-radius:10px;
    display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;
    box-shadow:0 1px 4px rgba(60,50,40,.1);overflow:hidden;border:1.5px solid rgba(0,0,0,.04)}
  /* 地产格：顶部城市色带 + 地名主体 */
  .m21tile.prop .pband{font-size:7.5px;font-weight:800;color:#fff;text-align:center;padding:2px 1px 1.5px;
    line-height:1;letter-spacing:.5px;text-shadow:0 1px 1px rgba(0,0,0,.18)}
  .m21tile.prop .pbody{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:1px;position:relative}
  .m21tile.prop .pbody .bld{font-size:19px;line-height:1.1;filter:drop-shadow(0 1px 1px rgba(0,0,0,.18))}
  .m21tile.prop .pbody .bld .plot{font-size:13px;opacity:.45}
  .m21tile.prop .pbody .pn{font-size:8px;font-weight:700;color:#5a5249;text-align:center;line-height:1.02}
  .m21tile.prop .pbody .plv{position:absolute;bottom:0;right:2px;font-size:7px;font-weight:800;color:var(--gold)}
  /* 功能格：大 emoji + 标签 */
  .m21tile.spec{align-items:center;justify-content:center}
  .m21tile.spec .te{font-size:20px;line-height:1}
  .m21tile.spec .tn{font-size:7.5px;font-weight:700;color:#8a8278;text-align:center;line-height:1.05;margin-top:1px;padding:0 1px}
  .m21tile.corner{background:linear-gradient(160deg,#fffaf0,#f3ead7)}
  .m21tile.cur{border-color:var(--gold);box-shadow:0 0 0 2px rgba(200,162,74,.4),0 3px 10px rgba(0,0,0,.14)}
  .m21own{position:absolute;bottom:1px;left:1px;width:19px;height:19px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.32);z-index:3;overflow:hidden;display:flex;align-items:center;justify-content:center}
  .m21own img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
  .m21tok{position:absolute;display:flex;gap:0;top:1px;right:1px;justify-content:flex-end;font-size:13px;line-height:1;z-index:4}
  .m21tok span{background:linear-gradient(180deg,#fff,#f3f0ea);border-radius:50%;width:23px;height:23px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px rgba(0,0,0,.32);overflow:hidden;border:2px solid #fff;margin-left:-4px}
  .m21tok span:first-child{margin-left:0}
  .m21tok span img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
  .m21tok span.hop{animation:m21hop .13s ease;box-shadow:0 5px 8px rgba(0,0,0,.34);z-index:2}
  .m21tokacc{position:absolute;right:-5px;bottom:-4px;font-size:10px;font-style:normal;line-height:1;z-index:3;text-shadow:0 1px 2px rgba(0,0,0,.3);pointer-events:none}
  @keyframes m21hop{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-6px) scale(1.16)}100%{transform:translateY(0) scale(1)}}
  /* 回合提示横幅 */
  #m21banner{position:absolute;top:48%;left:0;right:0;text-align:center;z-index:35;pointer-events:none;opacity:0}
  #m21banner.show{animation:m21ban 1.6s ease forwards}
  #m21banner span{display:inline-block;background:linear-gradient(135deg,#c8a24a,#e0b85f);color:#fff;font-size:18px;font-weight:800;padding:10px 26px;border-radius:30px;box-shadow:0 6px 20px rgba(200,162,74,.45)}
  @keyframes m21ban{0%{opacity:0;transform:scale(.7)}15%{opacity:1;transform:scale(1.05)}25%{transform:scale(1)}80%{opacity:1}100%{opacity:0;transform:scale(.95)}}
  /* 胜利结算页 */
  #m21over{position:absolute;top:0;left:0;right:0;bottom:0;z-index:45;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(30,22,14,.5);backdrop-filter:blur(3px)}
  #m21over.show{display:flex;animation:m21fade .3s ease}
  @keyframes m21fade{from{opacity:0}to{opacity:1}}
  .m21overcard{background:linear-gradient(165deg,#fffdf8,#f4ead5);border-radius:22px;padding:22px 20px;width:100%;max-width:340px;box-shadow:0 16px 50px rgba(0,0,0,.35);text-align:center;animation:m21pop .4s cubic-bezier(.2,.9,.3,1.2)}
  @keyframes m21pop{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}
  .m21overcard .trophy{font-size:54px;line-height:1}
  .m21overcard .wt{font-size:21px;font-weight:900;color:var(--gold);margin:4px 0 2px}
  .m21overcard .ws{font-size:13px;color:var(--muted);margin-bottom:14px}
  .m21rank{display:flex;align-items:center;gap:9px;background:#fff;border-radius:12px;padding:8px 11px;margin:7px 0;box-shadow:0 1px 4px rgba(0,0,0,.06)}
  .m21rank.win{box-shadow:0 0 0 2px var(--gold),0 2px 8px rgba(200,162,74,.2)}
  .m21rank img{width:38px;height:38px;border-radius:50%;object-fit:cover}
  .m21rank .rn{flex:1;text-align:left;font-weight:800;font-size:13px}
  .m21rank .rv{font-weight:900;color:var(--gold);font-size:15px}
  .m21rank .rk{font-size:18px;width:24px}
  .m21overcard .obtns{display:flex;gap:10px;margin-top:16px}
  .m21conf{position:absolute;top:-16px;width:9px;height:14px;border-radius:2px;pointer-events:none;animation:m21confall 2.2s ease-in forwards}
  @keyframes m21confall{0%{transform:translateY(0) rotate(0);opacity:1}75%{opacity:1}100%{transform:translateY(92vh) rotate(660deg);opacity:0}}
  .m21winart{width:96px;height:96px;border-radius:18px;object-fit:cover;box-shadow:0 4px 14px rgba(200,162,74,.4);animation:m21winbounce .9s ease .25s 2;margin-bottom:4px}
  @keyframes m21winbounce{0%,100%{transform:translateY(0) scale(1)}40%{transform:translateY(-10px) scale(1.05)}}
  .m21hl{margin-top:12px;text-align:left;background:rgba(255,255,255,.65);border-radius:12px;padding:9px 11px}
  .m21hl .hh{font-size:12px;font-weight:900;color:#a8842f;margin-bottom:4px}
  .m21hl .hi{font-size:11.5px;color:var(--ink);line-height:1.55;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .m21tile.prop .pbody .bld.pop{animation:m21bldpop .55s cubic-bezier(.2,1.3,.4,1)}
  @keyframes m21bldpop{0%{transform:scale(.2) translateY(8px);opacity:.2}60%{transform:scale(1.3) translateY(-2px)}100%{transform:scale(1) translateY(0);opacity:1}}
  #m21grid.m21shake{animation:m21shakeK .32s ease}
  #m21grid.m21shake2{animation:m21shakeK2 .38s ease}
  @keyframes m21shakeK{0%,100%{transform:translate(0,0)}20%{transform:translate(-3px,2px)}40%{transform:translate(3px,-2px)}60%{transform:translate(-2px,-1px)}80%{transform:translate(2px,1px)}}
  @keyframes m21shakeK2{0%,100%{transform:translate(0,0)}15%{transform:translate(-6px,3px)}30%{transform:translate(6px,-4px)}45%{transform:translate(-5px,-2px)}60%{transform:translate(5px,3px)}75%{transform:translate(-3px,1px)}90%{transform:translate(2px,-1px)}}
  .m21die.roll{display:inline-block;animation:m21tumble .5s cubic-bezier(.3,.1,.3,1) infinite}
  @keyframes m21tumble{0%{transform:rotate(0) scale(1)}25%{transform:rotate(120deg) scale(1.18)}50%{transform:rotate(220deg) scale(.95)}75%{transform:rotate(320deg) scale(1.18)}100%{transform:rotate(360deg) scale(1)}}
  .m21tile.owned-AB{box-shadow:inset 0 0 0 2px var(--rabbit),0 1px 4px rgba(60,50,40,.1)}
  .m21tile.owned-AI{box-shadow:inset 0 0 0 2px #7c8aa5,0 1px 4px rgba(60,50,40,.1)}
  .m21center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    background:linear-gradient(160deg,#ffffff,#f6f1ea);border-radius:16px;
    box-shadow:inset 0 0 0 1px rgba(200,180,150,.25),0 4px 16px rgba(80,60,40,.08);padding:8px;overflow:hidden}
  .m21ms{display:flex;flex-direction:column;gap:6px;background:rgba(255,255,255,.72);border-radius:12px;padding:8px 11px;box-shadow:0 1px 4px rgba(60,50,40,.07)}
  #m21goal{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:2px 10px 0;padding:3px 10px;border-radius:9px;
    background:linear-gradient(90deg,rgba(255,248,230,.92),rgba(253,244,222,.88));border:1px solid rgba(200,162,74,.45);
    font-size:11px;font-weight:800;color:#8a6d1f;white-space:nowrap;overflow:hidden;flex-shrink:0;box-shadow:0 1px 4px rgba(200,162,74,.15)}
  #m21goal .gl{overflow:hidden;text-overflow:ellipsis}
  #m21goal .gr{color:#b5912f;flex-shrink:0}
  .m21ms{cursor:pointer}
  .m21mshdr{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:800;color:#8a7a52;margin-bottom:4px}
  .m21mshdr .mshint{font-size:10px;font-weight:700;color:var(--gold);opacity:.85}
  .m21msrow{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:#7a7268}
  .m21msrow .ml{width:64px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .m21msrow .mbar2{flex:1;height:9px;border-radius:6px;background:#eae3d5;overflow:hidden;box-shadow:inset 0 1px 2px rgba(60,50,40,.12)}
  .m21msrow .mbar2 i{display:block;height:100%;border-radius:6px;transition:width .4s;position:relative}
  .m21msrow .mbar2 i::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;border-radius:6px;background:linear-gradient(180deg,rgba(255,255,255,.4),rgba(255,255,255,0) 60%)}
  .m21msrow .mp{width:44px;text-align:right;color:var(--gold);font-weight:800;font-variant-numeric:tabular-nums}
  .m21msrow.lead .ml{color:#b5912f}
  .m21msrow.lead .mbar2{box-shadow:inset 0 1px 2px rgba(60,50,40,.12),0 0 0 1.5px rgba(200,162,74,.55)}
  .m21advice{margin:4px 0 2px;padding:6px 10px;border-radius:9px;background:linear-gradient(90deg,#fff6dd,#fdf0d0);
    border:1px solid rgba(200,162,74,.5);font-size:12px;font-weight:800;color:#7c6318;line-height:1.45;text-align:center}
  .m21advice.mute{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.08);color:#a29a8c;font-weight:700}
  .m21btn.rec{animation:m21recpulse 1.4s ease-in-out infinite}
  .m21ib.rec{animation:m21recpulse 1.4s ease-in-out infinite;outline:2px solid var(--gold);outline-offset:1px}
  @keyframes m21recpulse{0%{box-shadow:0 0 0 0 rgba(200,162,74,.55)}70%{box-shadow:0 0 0 9px rgba(200,162,74,0)}100%{box-shadow:0 0 0 0 rgba(200,162,74,0)}}
  .m21teams{display:flex;gap:6px;flex-wrap:wrap}
  .m21team{flex:1;min-width:78px;background:#fff;border-radius:11px;padding:7px 8px;box-shadow:0 1px 3px rgba(0,0,0,.05);transition:box-shadow .2s}
  .m21team.tcur{box-shadow:0 0 0 2px var(--gold),0 2px 6px rgba(200,162,74,.25)}
  .m21team .nm{font-size:11px;font-weight:800;display:flex;align-items:center;gap:3px}
  .m21team .cash{font-size:16px;font-weight:800;margin-top:1px}
  .m21team .mbar{height:5px;border-radius:4px;background:#eee;margin-top:5px;overflow:hidden}
  .m21team .mbar i{display:block;height:100%;border-radius:4px}
  .m21dice{text-align:center;font-size:30px;line-height:1.1;min-height:34px;font-weight:800}
  .m21turn{text-align:center;font-size:13px;color:var(--muted);font-weight:600}
  .m21acts{display:flex;gap:9px;margin-top:3px}
  .m21btn{flex:1;border:0;border-radius:12px;padding:11px 4px;font-size:14px;font-weight:800;color:#fff;letter-spacing:.3px;
    display:inline-flex;align-items:center;justify-content:center;gap:5px;
    background:linear-gradient(180deg,#68789c,#5b6b8c);
    box-shadow:0 2px 8px rgba(91,107,140,.3),inset 0 1px 0 rgba(255,255,255,.22);transition:transform .12s,opacity .2s}
  .m21btn:active{transform:scale(.96)}
  .m21btn:disabled{opacity:.4}
  .m21btn.g{background:linear-gradient(160deg,#d3ad52,#c8a24a 55%,#b8923c);box-shadow:0 2px 8px rgba(200,162,74,.38),inset 0 1px 0 rgba(255,255,255,.3)}
  .m21btn.r{background:linear-gradient(180deg,#e698b2,#e08aa6);box-shadow:0 2px 8px rgba(224,138,166,.3),inset 0 1px 0 rgba(255,255,255,.25)}
  .m21log{font-size:12px;line-height:1.6;color:#7a7268;max-height:none;background:rgba(255,255,255,.7);border-radius:11px;padding:8px 11px}
  .m21log div{margin:1px 0}
  #m21panel .m21btn{padding:13px 4px;font-size:15px}
  /* 复杂交互独立图层（底部抽屉，棋盘仍可见在上方，不顶掉布局） */
  #m21sheet{position:absolute;left:0;right:0;bottom:0;z-index:30;background:#fff;border-radius:22px 22px 0 0;
    box-shadow:0 -8px 30px rgba(40,30,20,.2);padding:18px 16px 22px;max-height:60%;overflow-y:auto;
    transform:translateY(112%);transition:transform .32s cubic-bezier(.2,.85,.25,1)}
  #m21sheet.on{transform:translateY(0)}
  #m21sheet .sgrip{width:38px;height:4px;border-radius:3px;background:#e3ddd2;margin:0 auto 12px}
  .m21sh-title{font-size:16px;font-weight:800;color:var(--gold);margin-bottom:5px;display:flex;align-items:center;gap:6px}
  /* 新手引导 spotlight */
  #m21tut{position:absolute;top:0;left:0;right:0;bottom:0;z-index:55;overflow:hidden}
  .m21tuthl{position:absolute;border-radius:14px;border:2.5px solid var(--gold);box-shadow:0 0 0 9999px rgba(24,17,9,.55);animation:m21tutp 1.4s ease infinite}
  @keyframes m21tutp{0%,100%{border-color:var(--gold)}50%{border-color:#f2d98e}}
  .m21tutcard{position:absolute;left:50%;transform:translateX(-50%);width:min(86vw,330px);background:#fffdf8;border-radius:16px;padding:14px 15px 13px;box-shadow:0 10px 32px rgba(0,0,0,.35);animation:m21pop .3s cubic-bezier(.2,.9,.3,1.2)}
  .m21tutcard .tt{font-weight:900;font-size:16px;color:var(--gold)}
  .m21tutcard .td{font-size:13px;line-height:1.55;color:#5a5249;margin:6px 0 11px}
  .m21tutcard .tb{display:flex;gap:8px;align-items:center}
  .m21tutcard .tstep{font-size:11px;color:var(--muted);margin-right:auto;font-weight:700}
  /* 设置面板 */
  #m21set,#m21itip{position:absolute;top:0;left:0;right:0;bottom:0;z-index:58;background:rgba(24,17,9,.5);display:flex;align-items:center;justify-content:center;padding:26px}
  .m21setcard{background:linear-gradient(180deg,#fffdf8,#f7f1e6);border-radius:18px;padding:18px 17px 16px;max-width:340px;width:100%;box-shadow:0 14px 44px rgba(0,0,0,.35);max-height:80%;overflow-y:auto;animation:m21pop .3s cubic-bezier(.2,.9,.3,1.2)}
  .m21setcard h3{margin:0 0 4px;font-size:17px;color:var(--gold);display:flex;align-items:center;gap:6px}
  .m21setcard .rules{font-size:12.5px;line-height:1.7;color:#5a5249;background:rgba(255,255,255,.75);border-radius:12px;padding:10px 12px;margin:10px 0 12px}
  .m21setcard .srow{display:flex;flex-direction:column;gap:9px}
  .m21setcard .m21btn{padding:11px 4px}
  /* ===== M21 情侣元成长层（段位/解锁）+ 合体技 ===== */
  .m21overcard{max-height:88%;overflow-y:auto}
  .m21cpwrap{max-width:440px;margin:0 auto 6px;width:100%;display:flex;align-items:center;gap:10px;background:#fff;border-radius:14px;padding:9px 13px;box-shadow:0 1px 5px rgba(60,50,40,.1);cursor:pointer;box-sizing:border-box}
  .m21cpwrap .ce{font-size:26px;line-height:1}
  .m21cpwrap .ci2{flex:1;min-width:0;text-align:left}
  .m21cpwrap .cn2{font-weight:900;font-size:13.5px;color:var(--ink)}
  .m21cpwrap .cs2{font-size:10.5px;color:var(--muted);margin-top:3px}
  .m21cpwrap .cg{font-size:11px;color:#a8842f;font-weight:800;white-space:nowrap}
  .m21cpbar{height:6px;border-radius:4px;background:#eee7d9;overflow:hidden;margin-top:4px}
  .m21cpbar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#e08aa6,#c8a24a)}
  .m21glad{display:flex;gap:4px;margin:8px 0}
  .m21glad .st{flex:1;text-align:center;background:#fff;border-radius:10px;padding:6px 1px;font-size:9px;color:var(--muted)}
  .m21glad .st.on{box-shadow:0 0 0 2px var(--gold);background:linear-gradient(180deg,#fffdf4,#f8efd9)}
  .m21glad .st .se{font-size:16px;line-height:1.1}
  .m21glad .st .sn{font-weight:800;color:var(--ink);font-size:8.5px;line-height:1.15;margin-top:2px}
  .m21gstats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;margin:8px 0}
  .m21gstats .gs{background:#fff;border-radius:10px;padding:6px 2px;text-align:center}
  .m21gstats .gs b{display:block;font-size:14px;color:var(--gold)}
  .m21gstats .gs span{font-size:9.5px;color:var(--muted)}
  .m21gunl{display:flex;align-items:center;gap:8px;background:#fff;border-radius:10px;padding:6px 9px;margin:5px 0;font-size:12px}
  .m21gunl.off{opacity:.55;filter:grayscale(1)}
  .m21gunl .ue{font-size:17px;line-height:1}
  .m21gunl .un{font-weight:800;flex:1;text-align:left;color:var(--ink)}
  .m21gunl .uc{font-size:10px;color:var(--muted);white-space:nowrap}
  .m21prg{margin-top:12px;text-align:left;background:rgba(255,255,255,.7);border-radius:12px;padding:10px 12px}
  .m21prg .ph{font-size:12px;font-weight:900;color:#a8842f;margin-bottom:5px}
  .m21prg .plu{background:linear-gradient(135deg,#e08aa6,#c8a24a);color:#fff;font-weight:900;font-size:13px;border-radius:10px;padding:8px 10px;text-align:center;margin:4px 0 8px;box-shadow:0 3px 10px rgba(224,138,166,.35)}
  .m21prg .pnl{background:linear-gradient(90deg,#fdf3d8,#fbe6ee);border-radius:10px;padding:7px 10px;margin-top:6px;font-size:12px;font-weight:800;color:#a8842f;opacity:0;animation:m21nlk .5s ease forwards}
  @keyframes m21nlk{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
  .m21uop{display:flex;align-items:center;gap:9px;width:100%;border:0;background:#fff;border-radius:12px;padding:10px 12px;margin:6px 0;box-shadow:0 1px 4px rgba(0,0,0,.08);cursor:pointer;text-align:left;font-family:inherit;box-sizing:border-box}
  .m21uop:active{transform:scale(.97)}
  .m21uop .ue{font-size:22px;line-height:1}
  .m21uop .ui{flex:1;min-width:0}
  .m21uop .un{font-weight:900;font-size:14px;color:var(--ink)}
  .m21uop .ud{font-size:11px;color:var(--muted);margin-top:1px;line-height:1.3}
  .m21btn.u{flex:0 0 auto;padding:11px 12px;background:linear-gradient(135deg,#e698b2,#c87ba0);box-shadow:0 2px 8px rgba(224,138,166,.4),inset 0 1px 0 rgba(255,255,255,.25)}
  .m21sh-text{font-size:15px;color:#4a443c;line-height:1.55;margin-bottom:15px}
  .m21sh-opts{display:flex;flex-direction:column;gap:10px}
  .m21sh-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
  .m21sh-btn{border:0;border-radius:13px;padding:14px 8px;font-size:15px;font-weight:700;background:#f4eee3;color:#5a5249;transition:transform .12s}
  .m21sh-btn:active{transform:scale(.95)}
  .m21sh-btn.g{background:linear-gradient(135deg,#c8a24a,#d8b65f);color:#fff;box-shadow:0 2px 8px rgba(200,162,74,.3)}
  .m21sh-cancel{display:block;margin:14px auto 0;background:none;border:0;color:var(--muted);font-size:13px}
  .m21quip{text-align:center;font-size:12px;color:#7a6f5e;background:#fff;border-radius:14px;padding:5px 12px;align-self:center;box-shadow:0 2px 8px rgba(0,0,0,.1);animation:m21qpop .3s ease}
  @keyframes m21qpop{0%{transform:scale(.85);opacity:0}100%{transform:scale(1);opacity:1}}
  .m21mg{background:linear-gradient(135deg,#fff6ea,#fdeef3);border-radius:12px;padding:9px 11px;box-shadow:inset 0 0 0 1px rgba(200,162,74,.25)}
  .m21mg .mgt{font-size:12px;font-weight:800;color:var(--gold)}
  .m21mg .mgx{font-size:13px;color:#5a5249;line-height:1.5;margin-top:3px}
  .m21items{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:#fff8ea;border:1px solid rgba(200,162,74,.32);border-radius:12px;padding:7px 10px}
  .m21ib{width:42px;height:42px;border:0;border-radius:11px;background:linear-gradient(135deg,#fff,#f3ead4);box-shadow:0 2px 6px rgba(200,162,74,.28);font-size:21px;line-height:1;transition:transform .12s}
  .m21ib:active{transform:scale(.9)}
  .m21tile.tgt{cursor:pointer}
  .m21tile.tgt::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:10px;animation:m21pulse 1s ease-in-out infinite;pointer-events:none}
  @keyframes m21pulse{0%,100%{box-shadow:inset 0 0 0 0 rgba(200,162,74,.55)}50%{box-shadow:inset 0 0 0 3px rgba(200,162,74,.75)}}
  /* 选卡/选图 setup */
  #m21setup{padding:20px 18px;overflow-y:auto;align-items:center;text-align:center}
  #m21setup h2{font-size:22px;font-weight:800;margin:6px 0 2px}
  #m21setup .sub2{color:var(--muted);font-size:12px;margin-bottom:14px}
  .m21cards{display:grid;grid-template-columns:1fr 1fr;gap:9px;width:100%;max-width:440px;margin:0 auto}
  .m21card{background:#fff;border-radius:14px;padding:11px 9px;text-align:left;border:2px solid transparent;
    box-shadow:0 2px 8px rgba(70,55,40,.07);cursor:pointer;transition:transform .12s,border-color .15s}
  .m21card:active{transform:scale(.97)}
  .m21card.sel{border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,162,74,.18),0 4px 12px rgba(0,0,0,.1)}
  .m21card{display:flex;align-items:center;gap:8px}
  .m21card .ci{flex:1;min-width:0}
  .m21card .cart{width:62px;height:62px;border-radius:11px;object-fit:cover;flex-shrink:0;box-shadow:0 1px 4px rgba(0,0,0,.12);background:#f3ead7}
  .m21card .cn{font-weight:800;font-size:14px;display:flex;align-items:center;gap:5px}
  .m21card .ct{font-size:10px;color:var(--gold);font-weight:700;margin:1px 0 4px}
  .m21card .cd{font-size:10px;color:#8a8278;line-height:1.45}
  /* 玩家立绘头像 */
  .m21av{width:30px;height:30px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.2);background:#eee;vertical-align:middle}
  .m21team .avs{display:flex;gap:-6px;margin-bottom:3px}
  .m21team .avs img{margin-right:-8px}
  .m21turnav{display:flex;align-items:center;justify-content:center;gap:8px}
  .m21turnav img{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--gold);box-shadow:0 2px 6px rgba(200,162,74,.3)}
  .m21pick{margin:16px auto 0;max-width:440px;font-size:13px;color:var(--ink);font-weight:700}
  .m21itemsel{display:flex;flex-wrap:wrap;gap:7px;max-width:440px;margin:0 auto;justify-content:center}
  .m21ichip{font-size:12px;font-weight:600;color:#5a5249;background:#fff;border:2px solid transparent;border-radius:20px;padding:6px 11px;box-shadow:0 1px 4px rgba(0,0,0,.07);cursor:pointer;display:flex;align-items:center;gap:4px}
  .m21ichip.sel{border-color:var(--gold);background:#fff8ea}
  .m21ichip .ip{font-size:10px;color:var(--gold);font-weight:800}
  .m21ichip .m21iinfo{font-size:13px;color:#b08a2e;margin-left:2px;line-height:1;opacity:.75}
  .m21ichip .m21iinfo:active{opacity:1}
  /* M16 抽卡盲盒 + 集章连击 */
  .m16streak{background:linear-gradient(135deg,#fff7ec,#fff);border-radius:16px;padding:14px 16px;box-shadow:0 2px 10px rgba(0,0,0,.06);margin-bottom:14px}
  .m16streak .big{font-size:18px;font-weight:800;color:var(--ink)}
  .m16pbarw{height:6px;background:#eee5d2;border-radius:3px;margin-top:8px;overflow:hidden}
  .m16pbar{height:100%;background:linear-gradient(90deg,#e0b45c,var(--gold));border-radius:3px;transition:width .5s ease}
  .m16chip{display:inline-block;background:#f3eee2;color:#a5822f;border-radius:10px;padding:3px 10px;font-size:12px;font-weight:700;margin:6px 6px 0 0}
  .m16drawbtn{display:block;width:100%;max-width:280px;margin:26px auto;padding:34px 18px;border:none;border-radius:20px;background:linear-gradient(160deg,#6b7ba0,var(--wolf));color:#fff;font-size:19px;font-weight:800;box-shadow:0 8px 22px rgba(91,107,140,.4);cursor:pointer;transition:transform .15s ease}
  .m16drawbtn:active{transform:scale(.95)}
  .m16drawbtn .dico{display:block;font-size:44px;margin-bottom:10px}
  .m16cardface{position:relative;background:#fff;border-radius:18px;padding:26px 20px;box-shadow:0 4px 16px rgba(0,0,0,.09);text-align:center;font-size:17px;font-weight:700;color:var(--ink);line-height:1.6;margin:14px 0;transform:scale(.6) rotateY(70deg);opacity:0;transition:transform .45s cubic-bezier(.2,1.4,.4,1),opacity .35s ease}
  .m16cardface.in{transform:scale(1) rotateY(0);opacity:1}
  .m16cardface.rare{border:2px solid var(--gold);background:linear-gradient(150deg,#fffdf4,#fdf3d8 45%,#fff8e4);box-shadow:0 0 0 3px rgba(200,162,74,.22),0 6px 24px rgba(200,162,74,.45);animation:m16glow 1.6s ease-in-out infinite alternate}
  @keyframes m16glow{from{box-shadow:0 0 0 3px rgba(200,162,74,.18),0 6px 20px rgba(200,162,74,.35)}to{box-shadow:0 0 6px 4px rgba(200,162,74,.32),0 6px 28px rgba(224,138,166,.35)}}
  .m16rare{position:absolute;top:-10px;right:-6px;background:linear-gradient(90deg,var(--gold),#e08aa6);color:#fff;font-size:12px;font-weight:800;border-radius:12px;padding:4px 11px;box-shadow:0 2px 8px rgba(200,162,74,.5)}
  .m16donestamp{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-14deg);border:3px solid #4caf7d;color:#4caf7d;font-size:20px;font-weight:900;border-radius:12px;padding:6px 16px;background:rgba(255,255,255,.82);pointer-events:none}
  .m16grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:10px}
  .m16day{height:44px;border-radius:10px;background:#f1efe9;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;color:var(--muted)}
  .m16day.hit{background:linear-gradient(150deg,#fdf3d8,#fbe9c0);color:#a5822f;font-weight:800;box-shadow:0 1px 5px rgba(200,162,74,.35)}
  .m16day .dn{font-size:10px;line-height:1}
  .m16day .st{font-size:15px;line-height:1.2}
  .m16confetti{position:fixed;top:-12px;font-size:20px;z-index:999;pointer-events:none;animation:m16fall 1.8s linear forwards}
  @keyframes m16fall{to{transform:translateY(105vh) rotate(540deg);opacity:.4}}
  .duSpin{display:inline-block;animation:duSpin 1.4s ease-in-out infinite}
  @keyframes duSpin{0%,100%{transform:rotate(-12deg) scale(1)}50%{transform:rotate(12deg) scale(1.15)}}

  /* 🧑‍🌾 人才市场 redesign v0712 (Fable) */
  #talentBox{text-align:left;font-size:13.5px;color:var(--ink);padding:0}
  .tmCard{padding:12px 11px}
  .tmCard.tmGold{box-shadow:0 0 0 1.5px var(--gold),0 3px 12px rgba(200,162,74,.18);background:linear-gradient(175deg,#fffdf5,#fff)}
  .tmHead{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-weight:800;font-size:15px;margin-bottom:10px}
  .tmHead .tmBar{width:4px;height:15px;border-radius:3px;background:linear-gradient(180deg,var(--wolf),var(--rabbit));flex-shrink:0}
  .tmHead .tmSub{width:100%;margin-left:10px;font-weight:400;font-size:11px;color:var(--muted);line-height:1.35}
  .tmSub{font-weight:400;font-size:11px;color:var(--muted)}
  .tmInfo{font-size:12px;color:var(--muted);margin:-2px 3px 10px;font-weight:600;text-align:center}
  /* —— 今日事件横幅 —— */
  .tmEvent{display:flex;align-items:center;gap:10px;border-radius:14px;padding:11px 13px;margin-bottom:10px;
    background:linear-gradient(120deg,#eef3fb,#e7efff);border:1px solid #c9d9f2;box-shadow:0 2px 8px rgba(90,110,150,.08)}
  .tmEvent.e-norm{background:linear-gradient(120deg,#f4f3f0,#eeece8);border-color:#ddd8ce}
  .tmEvent.e-god{background:linear-gradient(120deg,#fff7dd,#ffedb8);border-color:#e6c568;box-shadow:0 2px 12px rgba(214,170,60,.22)}
  .tmEvIc{width:42px;height:42px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:23px;
    background:rgba(255,255,255,.75);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.9),0 1px 4px rgba(0,0,0,.08)}
  .tmEvName{font-weight:800;font-size:13.5px;letter-spacing:.2px}
  .tmEvDesc{font-size:12px;color:#6b6b74;line-height:1.45;margin-top:2px}
  /* —— 人才行（通用卡片）—— */
  .tmRow{position:relative;display:flex;align-items:center;gap:10px;padding:10px 10px 10px 14px;border-radius:12px;
    background:#fdfcfa;margin-bottom:9px;border:1px solid #efeae1;box-shadow:0 1px 3px rgba(60,50,40,.05)}
  .tmRow:last-child{margin-bottom:0}
  .tmRow::before{content:'';position:absolute;left:-1px;top:8px;bottom:8px;width:3.5px;border-radius:0 4px 4px 0;background:#d8d8de}
  .tmRow.r-rare{border-color:#dfe6f6;background:linear-gradient(115deg,#fbfcff,#f6f8fe 70%)}
  .tmRow.r-rare::before{background:linear-gradient(180deg,#8fa8ec,#6d87d6)}
  .tmRow.r-god{border-color:#e9d194;background:linear-gradient(115deg,#fffdf3,#fcf1cf 85%);box-shadow:0 2px 12px rgba(210,170,70,.2)}
  .tmRow.r-god::before{background:linear-gradient(180deg,#f0cd6e,var(--gold))}
  .tmAva{position:relative;width:44px;height:44px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:25px;
    background:linear-gradient(160deg,#f0f1f4,#e1e4ea);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.7)}
  .tmAva.r-rare{background:linear-gradient(160deg,#e6edfd,#ccd9f8);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.8)}
  .tmAva.r-god{background:linear-gradient(160deg,#ffefc2,#fbd97e);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.85),0 0 12px rgba(230,180,74,.55)}
  .tmAva.r-god::after{content:'✨';position:absolute;top:-7px;right:-7px;font-size:12px;filter:drop-shadow(0 1px 2px rgba(180,140,40,.45))}
  .tmAva img{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}
  .tmBody{flex:1;min-width:0}
  .tmTop{display:flex;align-items:center;gap:6px;min-width:0}
  .tmName{font-weight:800;font-size:14px;line-height:1.25;min-width:0;letter-spacing:.2px}
  .tmMeta{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.5}
  .tmRarTag{font-size:9.5px;font-weight:800;border-radius:6px;padding:1.5px 6px;white-space:nowrap;flex-shrink:0;letter-spacing:.3px}
  .tmRarTag.t-common{background:#ededf0;color:#84848f}
  .tmRarTag.t-rare{background:#e3ebfc;color:#5570c9}
  .tmRarTag.t-god{background:linear-gradient(120deg,#ffe9ac,#fbd97e);color:#8a6414;box-shadow:0 1px 3px rgba(210,170,70,.35)}
  .tmChip{display:inline-block;font-size:10px;font-weight:700;border-radius:6px;padding:2px 7px;white-space:nowrap}
  .tmChip.lv{background:#e9edf9;color:#5b6b8c;flex-shrink:0}
  .tmChip.ct{background:#f2f0ec;color:#95908a}
  .tmChip.ct.warn{background:#fdeceb;color:#c0504d}
  .tmChip.lock{background:#fbeecb;color:#a8842f}
  .tmCost{font-size:12px;font-weight:800;color:#a8842f;background:rgba(200,162,74,.15);border-radius:8px;padding:3px 9px;white-space:nowrap;flex-shrink:0;margin-left:auto}
  .tmActRow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}
  .tmBtn{min-width:0;width:100%;border:0;border-radius:10px;padding:8px 6px;font-size:12.5px;font-weight:700;color:#fff;background:linear-gradient(135deg,#66779b,var(--wolf));white-space:nowrap;box-shadow:0 2px 5px rgba(91,107,140,.28)}
  .tmBtn.r{background:linear-gradient(135deg,#e79ab4,var(--rabbit));box-shadow:0 2px 5px rgba(224,138,166,.3)}
  .tmBtn:active{transform:scale(.97)}
  .tmEmpty{color:var(--muted);font-size:12.5px;text-align:center;padding:18px 8px}
  /* —— 我的：三层卡（① 身份 / ② 派驻分段器 / ③ 操作行）—— */
  .tmRow.tmMine{display:block;padding:11px 12px 11px 15px}
  .tmMine .tmHd{display:flex;align-items:center;gap:10px;min-width:0}
  .tmMine .tmHd .tmAva{width:42px;height:42px;border-radius:11px;font-size:23px}
  .tmHdTx{flex:1;min-width:0}
  .tmNmLine{display:flex;align-items:center;gap:6px;min-width:0}
  .tmNmLine .tmName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tmChips{display:flex;align-items:center;gap:5px;margin-top:4px;flex-wrap:wrap}
  .tmMine .tmSeg{margin-top:10px;padding-top:10px;border-top:1px dashed #e8e1d4}
  .tmSeg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:transparent;gap:4px}
  .tmSeg button{min-width:0;width:100%;border:0;background:#edeef1;padding:8px 2px;font-size:12px;font-weight:700;color:#8b8a97;white-space:nowrap;line-height:1.3;border-radius:9px}
  .tmSeg button.on{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1.5px #d5d6dd,0 1px 4px rgba(0,0,0,.1)}
  .tmSeg button.on.farm{color:#2e9d5b;box-shadow:inset 0 0 0 1.5px #a9d8bc,0 1px 4px rgba(46,157,91,.15)}
  .tmSeg button.on.shop{color:#a8842f;box-shadow:inset 0 0 0 1.5px #e4cd92,0 1px 4px rgba(168,132,47,.15)}
  .tmSeg button.on.winery{color:#5bb98c;box-shadow:inset 0 0 0 1.5px #b8e0cc,0 1px 4px rgba(91,185,140,.15)}
  .tmSeg button.on.alchemy{color:#8a6fb0;box-shadow:inset 0 0 0 1.5px #cfc0e4,0 1px 4px rgba(138,111,176,.15)}
  .tmSeg button.on.island{color:#347ea1;box-shadow:inset 0 0 0 1.5px #9fcddd,0 1px 4px rgba(52,126,161,.15)}
  .tmSeg button.on.idle{color:#7a7a85}
  .tmActs{display:flex;gap:7px;margin-top:9px;align-items:stretch}
  .tmUp{flex:1;min-width:0;border:0;border-radius:10px;padding:7px 6px;font-size:12px;font-weight:800;color:#8a6414;
    background:linear-gradient(120deg,#ffe9ac,#fbd97e);box-shadow:0 1px 4px rgba(210,170,70,.32);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tmUp em{font-style:normal;font-weight:800;font-size:11px;background:rgba(255,255,255,.6);border-radius:6px;padding:1.5px 7px;margin-left:7px;vertical-align:.5px}
  .tmUp:active{transform:scale(.97)}
  .tmMax{flex:1;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#b0a892;background:#f5f2ea;border-radius:10px}
  .tmIco{border:0;border-radius:10px;width:42px;min-height:32px;padding:0;font-size:14px;font-weight:700;background:#f0ece3;color:#7a6f5d;line-height:1;flex-shrink:0}
  .tmIco.g{background:linear-gradient(120deg,#fdeec4,#fbe3a0);color:#a8842f;box-shadow:0 1px 3px rgba(210,170,70,.3)}
  .tmIco.red{background:#fbe4e2;color:#c0504d}
  .wn-btn.red,.alc-btn.red{background:#fbe4e2;color:#c0504d;border:none}
  .tmIco:active{transform:scale(.94)}
  .tmIco:disabled{opacity:.4}
  .tmCombo{margin-top:10px;font-size:11.5px;color:#8a6fb0;background:linear-gradient(120deg,#f7f2fc,#f1eaf9);border:1px solid #e6dcf2;border-radius:10px;padding:8px 11px;font-weight:700;line-height:1.5}
  .tmComboTags{display:inline}
  .tmComboTags i{font-style:normal;font-weight:700;background:#fff;border-radius:7px;padding:2px 7px;margin-left:5px;box-shadow:0 1px 2px rgba(138,111,176,.18);white-space:nowrap;display:inline-block;margin-top:3px}
  /* —— 对方：挖角按钮 —— */
  .tmPoach{border:0;border-radius:11px;flex-shrink:0;width:52px;padding:6px 0 5px;font-size:17px;line-height:1.15;
    display:flex;flex-direction:column;align-items:center;gap:1px;color:#fff;
    background:linear-gradient(150deg,#e79ab4,var(--rabbit));box-shadow:0 2px 6px rgba(224,138,166,.35)}
  .tmPoach em{font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.5px}
  .tmPoach:disabled{background:#e3ded6;color:#a49c8f;box-shadow:none}
  .tmPoach:active{transform:scale(.96)}
  /* —— 图鉴：羁绊 + 分稀有度图鉴 —— */
  .tmComboRow{display:flex;align-items:flex-start;gap:9px;padding:8px 9px;border-radius:10px;background:#faf8f4;border:1px solid #f0ebe1;margin-bottom:7px}
  .tmComboRow:last-child{margin-bottom:0}
  .tmComboRow.on{background:linear-gradient(115deg,#f8f3fe,#f1e9fb);border-color:#dcc9f0}
  .tmComboIc{width:30px;height:30px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:17px;background:#fff;box-shadow:0 1px 3px rgba(60,50,40,.1)}
  .tmComboTx{flex:1;min-width:0}
  .tmComboTx b{font-size:13px;display:block;line-height:1.3}
  .tmComboTx span{font-size:12px;color:var(--muted);line-height:1.5;display:block;margin-top:2px}
  .tmOnTag{font-style:normal;font-size:9px;font-weight:800;color:#fff;background:linear-gradient(120deg,#a98ccb,#8a6fb0);border-radius:5px;padding:1px 5px;margin-left:6px;vertical-align:1px}
  .tmSecHd{display:flex;align-items:center;gap:8px;margin:15px 1px 9px}
  .tmSecHd:first-of-type{margin-top:2px}
  .tmSecHd .tmRarTag{font-size:11px;padding:3.5px 10px;border-radius:8px}
  .tmSecHd em{font-style:normal;font-size:11px;font-weight:700;color:#a89f8f;flex-shrink:0}
  .tmSecHd i{flex:1;height:1px;background:linear-gradient(90deg,#e6dfd2,transparent)}
  .tmSecHd.s-god i{background:linear-gradient(90deg,#eed9a2,transparent)}
  .tmSecHd.s-rare i{background:linear-gradient(90deg,#ccd9f4,transparent)}
  .tmRosterRow{display:flex;align-items:flex-start;gap:10px;padding:9px 10px 9px 13px;border-radius:12px;margin-bottom:7px;
    background:#fdfcfa;border:1px solid #efeae1;position:relative}
  .tmRosterRow::before{content:'';position:absolute;left:-1px;top:8px;bottom:8px;width:3.5px;border-radius:0 4px 4px 0;background:#d8d8de}
  .tmRosterRow.r-rare{border-color:#dfe6f6;background:linear-gradient(115deg,#fbfcff,#f7f9fe)}
  .tmRosterRow.r-rare::before{background:linear-gradient(180deg,#8fa8ec,#6d87d6)}
  .tmRosterRow.r-god{border-color:#ecd9a4;background:linear-gradient(115deg,#fffdf4,#fdf5dd)}
  .tmRosterRow.r-god::before{background:linear-gradient(180deg,#f0cd6e,var(--gold))}
  .tmRosterRow:last-child{margin-bottom:0}
  .tmRosterRow .tmAva{width:40px;height:40px;border-radius:11px;font-size:22px;margin-top:1px}
  .tmRosterRow .tmName{font-size:13.5px;margin-bottom:1px}
  .tmSpec{display:flex;gap:6px;font-size:12px;color:#6f6e78;line-height:1.5;margin-top:3px}
  .tmSpec i{font-style:normal;flex-shrink:0;font-size:11px;opacity:.9;margin-top:1px}
  .tmSpec.sk{color:#96741f;background:rgba(230,190,90,.13);border-radius:7px;padding:4px 8px;margin-top:5px}
  .tmSpec.sk b{font-weight:800}
  /* —— 分页 tab —— */
  .tmTabs{display:flex;gap:6px;margin-bottom:12px}
  .tmTabs button{flex:1;border:0;border-radius:11px;padding:9px 3px;font-size:12.5px;font-weight:700;background:#ece7dd;color:#8a7f6d;display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1.2}
  .tmTabs button.on{background:linear-gradient(135deg,var(--wolf),var(--rabbit));color:#fff;box-shadow:0 2px 8px rgba(91,107,140,.25)}
  .tmTabs button .n{font-size:9.5px;opacity:.85;font-weight:600}
  @media (min-width:720px){
    .tmActRow{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
    .tmSeg{grid-template-columns:repeat(7,minmax(0,1fr));gap:0}
    .tmSeg button{border-radius:0}
    .tmSeg button:first-child{border-radius:10px 0 0 10px}
    .tmSeg button:last-child{border-radius:0 10px 10px 0}
  }

  /* ══════════ ⚗️ Y06 炼金工坊 · Fable5 重构（全部 alc- 命名，作用域隔离） ══════════ */
  #alchemy{--av1:#6d4b9e;--av2:#a06fc5;--aglow:#c9a0ff;--agold:#e8c15a;--aink:#2a2140}
  #alchemy .alc-wrap{display:flex;flex-direction:column;gap:12px}
  .alc-rise{animation:alcRise .5s cubic-bezier(.2,.7,.3,1) both}
  @keyframes alcRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

  /* ── HERO 炉膛 ── */
  .alc-hero{position:relative;overflow:hidden;border-radius:20px;padding:20px 16px 16px;
    background:radial-gradient(120% 90% at 50% -10%,#5b3a94 0%,#3a2263 45%,#241542 100%);
    box-shadow:0 12px 30px -10px rgba(58,34,99,.7),inset 0 1px 0 rgba(255,255,255,.12);color:#fff}
  .alc-hero .alc-bg{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden}
  .alc-hero .alc-orb{position:absolute;border-radius:50%;filter:blur(22px);opacity:.5;animation:alcDrift 9s ease-in-out infinite}
  .alc-hero .alc-orb.o1{width:150px;height:150px;background:#8a5fd0;top:-40px;left:-30px}
  .alc-hero .alc-orb.o2{width:120px;height:120px;background:#c98adf;bottom:-40px;right:-20px;animation-delay:-3s}
  .alc-hero .alc-orb.o3{width:90px;height:90px;background:#f0c46a;top:30px;right:40px;opacity:.35;animation-delay:-5s}
  @keyframes alcDrift{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(14px,-12px) scale(1.12)}}
  .alc-hero .alc-htop{position:relative;display:flex;align-items:center;gap:14px}
  .alc-furnace{position:relative;width:76px;height:76px;flex-shrink:0;display:grid;place-items:center}
  .alc-furnace .ring{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:50%;
    background:radial-gradient(circle,rgba(240,196,106,.55),rgba(201,160,255,.15) 60%,transparent 72%);animation:alcPulse 2.6s ease-in-out infinite}
  @keyframes alcPulse{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.15);opacity:1}}
  .alc-furnace .core{position:relative;font-size:40px;line-height:1;filter:drop-shadow(0 3px 8px rgba(240,180,90,.7));animation:alcFlame 1.8s ease-in-out infinite}
  @keyframes alcFlame{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3px) rotate(2deg)}}
  .alc-furnace .lv{position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);white-space:nowrap;
    background:linear-gradient(180deg,#f6d67a,#d99b32);color:#4a2c07;font-size:10px;font-weight:900;
    padding:2px 8px;border-radius:10px;box-shadow:0 2px 6px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.5)}
  .alc-hero .alc-htitle{flex:1;min-width:0}
  .alc-hero .alc-htitle .t{font-size:19px;font-weight:900;letter-spacing:1px;text-shadow:0 2px 8px rgba(0,0,0,.35)}
  .alc-hero .alc-htitle .s{font-size:11px;opacity:.8;margin-top:2px}
  .alc-hero .alc-htitle .s.alc-talent{opacity:1;color:#8a6fb0;font-weight:700}
  .alc-dexbar{margin-top:8px;height:7px;border-radius:6px;background:rgba(255,255,255,.16);overflow:hidden}
  .alc-dexbar>i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#f6d67a,#c9a0ff);box-shadow:0 0 8px rgba(201,160,255,.8);transition:width .6s cubic-bezier(.2,.7,.3,1)}
  .alc-stats{position:relative;display:flex;gap:8px;margin-top:14px}
  .alc-stat{flex:1;background:rgba(255,255,255,.1);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.18);
    border-radius:14px;padding:9px 6px;text-align:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.15)}
  .alc-stat .n{font-size:18px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 1px 4px rgba(0,0,0,.3)}
  .alc-stat .l{font-size:10px;opacity:.82;margin-top:3px}
  .alc-stat.cat{background:linear-gradient(180deg,rgba(224,80,60,.4),rgba(224,80,60,.15));border-color:rgba(255,180,170,.5)}

  /* ── 通用玻璃面板 ── */
  .alc-panel{background:#fff;border-radius:16px;padding:12px 13px;box-shadow:0 6px 18px -10px rgba(80,50,120,.35),0 1px 0 rgba(255,255,255,.6) inset;border:1px solid #efe8f7}
  .alc-h{display:flex;align-items:center;gap:8px;margin-bottom:9px}
  .alc-h .ic{width:28px;height:28px;flex-shrink:0;display:grid;place-items:center;border-radius:9px;font-size:15px;
    background:linear-gradient(180deg,#f2e9fb,#e6d7f6);box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
  .alc-h .tt{font-size:14px;font-weight:800;color:var(--aink)}
  .alc-h .note{font-size:10.5px;color:var(--muted);font-weight:500;margin-left:auto;text-align:right}
  .alc-row{display:flex;align-items:center;gap:9px;padding:8px 2px;border-bottom:1px solid #f2eef8}
  .alc-row:last-child{border-bottom:0}
  .alc-em{font-size:23px;flex-shrink:0;filter:drop-shadow(0 2px 3px rgba(120,90,160,.25))}
  .alc-rmid{flex:1;min-width:0}
  .alc-rmid b{font-size:13.5px;color:var(--aink)}
  .alc-rmid .sub2{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.5}

  /* 按钮 */
  .alc-btn{border:0;border-radius:11px;padding:7px 15px;font-size:13px;font-weight:800;color:#fff;
    background:linear-gradient(180deg,#8a5fd0,#6d4b9e);box-shadow:0 4px 10px -3px rgba(109,75,158,.7),inset 0 1px 0 rgba(255,255,255,.3);
    cursor:pointer;transition:transform .08s,box-shadow .2s;white-space:nowrap}
  .alc-btn:active{transform:translateY(1px) scale(.97)}
  .alc-btn.gold{background:linear-gradient(180deg,#f0c46a,#d69a2c);color:#4a2c07;box-shadow:0 4px 10px -3px rgba(214,154,44,.6),inset 0 1px 0 rgba(255,255,255,.5)}
  .alc-btn.pink{background:linear-gradient(180deg,#ec8fb0,#d56a9a)}
  .alc-btn.sm{padding:5px 12px;font-size:12px;border-radius:9px}
  .alc-btn.off{opacity:.4;pointer-events:none;filter:grayscale(.3)}
  .alc-btn.can{animation:alcCan 1.7s ease-in-out infinite}
  @keyframes alcCan{0%,100%{box-shadow:0 4px 10px -3px rgba(109,75,158,.7),inset 0 1px 0 rgba(255,255,255,.3)}50%{box-shadow:0 4px 18px -1px rgba(160,111,197,.95),0 0 0 3px rgba(201,160,255,.35),inset 0 1px 0 rgba(255,255,255,.3)}}

  /* ── 采气 ── */
  .alc-gather{position:relative;overflow:hidden;background:linear-gradient(135deg,#f3ecfb,#faf5ff);border:1px solid #e7d9f7}
  .alc-gather .gwrap{display:flex;align-items:center;gap:14px}
  .alc-gring{position:relative;width:58px;height:58px;flex-shrink:0}
  .alc-gring svg{transform:rotate(-90deg)}
  .alc-gring .pk{position:absolute;top:0;left:0;right:0;bottom:0;display:grid;place-items:center;font-size:24px;animation:alcPick 2.2s ease-in-out infinite}
  @keyframes alcPick{0%,60%,100%{transform:rotate(0)}70%{transform:rotate(-22deg)}80%{transform:rotate(6deg)}90%{transform:rotate(-10deg)}}
  .alc-gather .gtxt{flex:1;min-width:0}
  .alc-gather .gtxt b{font-size:14px;color:var(--aink)}
  .alc-gather .gtxt .sub2{font-size:11px;color:#8a7aa5;margin-top:2px;line-height:1.5}

  /* ── 合成树 ── */
  .alc-tier{position:relative;margin:4px 0 2px}
  .alc-tier .lab{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;color:#8a5fc0;
    background:linear-gradient(90deg,#efe4fb,rgba(239,228,251,0));padding:3px 12px 3px 8px;border-radius:0 12px 12px 0;border-left:3px solid #a06fc5}
  .alc-tier.t3 .lab{color:#d56a9a;border-color:#e08aa6;background:linear-gradient(90deg,#fbe4ef,rgba(251,228,239,0))}
  .alc-recipe{position:relative;display:flex;align-items:center;gap:11px;padding:11px 12px;margin-top:8px;border-radius:15px;
    background:linear-gradient(180deg,#ffffff,#faf7fe);border:1px solid #eee3f7;
    box-shadow:0 4px 14px -8px rgba(110,75,158,.4);overflow:hidden;transition:box-shadow .25s,transform .1s}
  .alc-recipe.can{border-color:#d3b8f0;box-shadow:0 6px 20px -8px rgba(160,111,197,.6);animation:alcRecGlow 2.4s ease-in-out infinite}
  @keyframes alcRecGlow{0%,100%{box-shadow:0 6px 20px -8px rgba(160,111,197,.55)}50%{box-shadow:0 8px 26px -6px rgba(160,111,197,.85)}}
  .alc-recipe.locked{opacity:.72;background:linear-gradient(180deg,#f7f5fa,#f1eef6)}
  .alc-recipe.coop{border-color:#f2cfe0}
  .alc-recipe.coop::after{content:'💞';position:absolute;top:-6px;right:-6px;font-size:26px;opacity:.16;transform:rotate(15deg)}
  .alc-orb{position:relative;width:50px;height:50px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;
    background:radial-gradient(circle at 35% 30%,#fff,#efe3fb 55%,#dcc7f2);box-shadow:0 3px 10px -3px rgba(120,80,170,.5),inset 0 -3px 6px rgba(160,120,200,.2)}
  .alc-orb .e{font-size:27px;animation:alcFloat 3.4s ease-in-out infinite;filter:drop-shadow(0 2px 3px rgba(120,80,170,.35))}
  @keyframes alcFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
  .alc-recipe.can .alc-orb{background:radial-gradient(circle at 35% 30%,#fff,#f7e6c4 50%,#f0c46a);box-shadow:0 3px 14px -2px rgba(230,180,90,.75),inset 0 -3px 6px rgba(210,160,70,.3)}
  .alc-recipe.locked .alc-orb .e{filter:grayscale(.9) opacity(.7)}
  .alc-orb .qm{position:absolute;top:0;left:0;right:0;bottom:0;display:grid;place-items:center;font-size:24px;font-weight:900;color:#b9a7d4;background:rgba(247,244,250,.72);border-radius:50%;backdrop-filter:blur(1px)}
  .alc-rname{flex:1;min-width:0}
  .alc-rname .nm{font-size:14px;font-weight:800;color:var(--aink);display:flex;align-items:center;gap:5px;flex-wrap:wrap}
  .alc-badge{font-size:9.5px;font-weight:800;padding:1px 6px;border-radius:7px;line-height:1.5}
  .alc-badge.disc{background:#e3f6ec;color:#3f9e6d}
  .alc-badge.new{background:#fbf0d8;color:#b9862a}
  .alc-ins{margin-top:5px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}
  .alc-chip{display:inline-flex;align-items:center;gap:1px;font-size:11.5px;font-weight:700;padding:2px 7px;border-radius:9px}
  .alc-chip.ok{background:#e6f5ec;color:#3f9e6d}
  .alc-chip.no{background:#fce8e6;color:#c0392b}
  .alc-plus{color:#c3b3dc;font-size:11px;font-weight:800}
  .alc-lock{display:inline-block;margin-top:5px;font-size:10.5px;font-weight:700;color:#b06a8c;background:#f8ecf3;padding:2px 8px;border-radius:8px}
  .alc-recipe.locked .alc-lock{color:#8a7aa0;background:#eee9f4}

  /* 库存 pills */
  .alc-inv{display:flex;flex-wrap:wrap;gap:6px}
  .alc-ipill{display:inline-flex;align-items:center;gap:3px;padding:4px 10px;border-radius:11px;font-size:12.5px;font-weight:700;
    background:linear-gradient(180deg,#f6eefc,#efe3f9);color:#6d4b9e;box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 1px 3px rgba(140,95,192,.12)}
  .alc-ipill .c{color:#a06fc5;font-weight:900}
  .alc-ipill.t0{background:linear-gradient(180deg,#eef4fb,#e3edf8);color:#5b6b8c}
  .alc-ipill.t0 .c{color:#5b6b8c}

  /* 供货 生效 badge */
  .alc-live{display:inline-block;font-size:10px;font-weight:800;color:#3f9e6d;background:#e3f6ec;padding:1px 7px;border-radius:8px;animation:alcLive 1.8s ease-in-out infinite}
  @keyframes alcLive{0%,100%{opacity:1}50%{opacity:.55}}

  /* cofire */
  .alc-cofire{text-align:center;background:linear-gradient(135deg,#fbeef4,#fff5fa);border:1px solid #f4d6e5}
  .alc-cofire .st{font-size:12.5px;margin-bottom:9px;color:#a05678;font-weight:600}
  .alc-cofire .st .done{color:#d56a9a;font-weight:900}
  .alc-tick{display:inline-block;margin:0 3px;font-weight:800}

  /* help */
  .alc-help{background:linear-gradient(135deg,#f3ecfb,#f9f4ff);border:1px solid #e7d9f7;border-radius:16px;padding:12px 13px}
  .alc-help .hh{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:800;font-size:14px;color:var(--aink)}
  .alc-help .hh .tg{font-size:11px;color:#a06fc5;font-weight:700}
  .alc-help .hb{font-size:12.5px;line-height:1.75;margin-top:9px;color:#4a4458}
  .alc-help .hb .goal{font-weight:800;color:#8a5fc0;margin-bottom:5px}
  .alc-help .hb .tip{margin-top:6px;color:#9a90ad;font-size:11.5px}

  /* log */
  .alc-log{max-height:220px;overflow-y:auto}
  .alc-log .lg{font-size:11.5px;padding:5px 0;border-bottom:1px solid #f4f0f8;display:flex;gap:7px}
  .alc-log .lg .tm{color:#b7a9cf;flex-shrink:0;font-variant-numeric:tabular-nums}
  .alc-empty{color:var(--muted);font-size:12.5px;text-align:center;padding:14px}
  /* exchange input */
  .alc-exin{width:72px;padding:7px 8px;border:1px solid #ddd0ef;border-radius:10px;font-size:14px;font-weight:700;color:var(--aink);background:#fbf9fe}

  /* ── v2: Offline Events Banner ── */
  .alc-offline-banner{background:linear-gradient(135deg,#fef9e7,#fdf2d5);border:1px solid #f0d58a;
    border-radius:14px;padding:10px 13px;font-size:12px;font-weight:600;color:#7a5c10;
    display:flex;flex-wrap:wrap;align-items:center;gap:8px;animation:alcRise .4s ease both}
  .alc-offline-banner .alc-off-dismiss{font-size:11px;color:#999;cursor:pointer;margin-left:auto;
    padding:3px 8px;border-radius:8px;background:rgba(255,255,255,.6);white-space:nowrap}

  /* ── v2: Cauldron Visualization ── */
  .alc-cauldron{position:relative;width:76px;height:76px;flex-shrink:0;display:grid;place-items:center}
  .cauldron-body{position:absolute;bottom:8px;width:52px;height:36px;
    background:linear-gradient(180deg,#5a4a3a,#3a2e24);border-radius:50% 50% 40% 40%/60% 60% 30% 30%;
    box-shadow:inset 0 -4px 8px rgba(0,0,0,.4),0 2px 6px rgba(0,0,0,.3)}
  .cauldron-liquid{position:absolute;bottom:12px;width:44px;height:18px;
    background:radial-gradient(ellipse at center,#c98adf,#6d4b9e);
    border-radius:50%;transition:background .6s}
  .brewing .cauldron-liquid{background:radial-gradient(ellipse at center,#f0a040,#c96a20);
    animation:cauldronBoil .4s ease-in-out infinite}
  @keyframes cauldronBoil{0%,100%{transform:scaleY(1) scaleX(1)}50%{transform:scaleY(1.3) scaleX(.9)}}
  .cauldron-bubbles{position:absolute;bottom:20px;width:40px;height:20px}
  .bub{position:absolute;width:6px;height:6px;background:rgba(200,160,240,.6);
    border-radius:50%;animation:cauldronBub 2.8s ease-in-out infinite;opacity:0}
  .bub.b1{left:8px;animation-delay:0s}.bub.b2{left:18px;animation-delay:.7s}
  .bub.b3{left:26px;animation-delay:1.4s}.bub.b4{left:32px;animation-delay:2.1s}
  @keyframes cauldronBub{0%{opacity:0;transform:translateY(0) scale(.4)}30%{opacity:.7;transform:translateY(-8px) scale(1)}80%{opacity:.3;transform:translateY(-18px) scale(.6)}100%{opacity:0;transform:translateY(-22px) scale(.2)}}
  .brewing .bub{animation-duration:1.4s}
  .cauldron-glow{position:absolute;top:-6px;left:-6px;right:-6px;bottom:-6px;border-radius:50%;
    background:radial-gradient(circle,rgba(200,160,255,.3),transparent 65%);
    animation:alcPulse 2.6s ease-in-out infinite}
  .brewing .cauldron-glow{background:radial-gradient(circle,rgba(240,140,40,.5),transparent 65%)}
  .cauldron-core{position:relative;font-size:32px;z-index:2;
    filter:drop-shadow(0 2px 6px rgba(240,180,90,.6));animation:alcFlame 1.8s ease-in-out infinite}
  .cauldron-lv{position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);
    background:linear-gradient(180deg,#f6d67a,#d99b32);color:#4a2c07;font-size:10px;font-weight:900;
    padding:2px 8px;border-radius:10px;box-shadow:0 2px 6px rgba(0,0,0,.35)}
  .alc-cauldron.success .cauldron-liquid{background:radial-gradient(ellipse at center,#f6d67a,#c9a0ff);
    animation:cauldronBurst .5s ease-out}
  @keyframes cauldronBurst{0%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.4);filter:brightness(2)}100%{transform:scale(1);filter:brightness(1)}}
  .alc-cauldron.boom .cauldron-liquid{background:radial-gradient(ellipse at center,#888,#444)}
  .alc-cauldron.boom{animation:cauldronShake .3s ease-in-out 3}
  @keyframes cauldronShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

  /* ── v2: Temperature Picker ── */
  .alc-temp-sel{display:flex;gap:4px;margin:6px 0}
  .alc-temp-btn{border:1px solid #ddd0ef;border-radius:8px;padding:3px 8px;font-size:13px;
    background:#faf7fe;cursor:pointer;transition:all .15s}
  .alc-temp-btn.active{background:#8a5fd0;color:#fff;border-color:#8a5fd0}
  .alc-temp-btn.opt{position:relative}
  .alc-temp-btn.opt::after{content:'⭐';position:absolute;top:-6px;right:-4px;font-size:9px}
  .alc-temp-btn.locked{opacity:.35;cursor:not-allowed;background:#f0eef4}
  .alc-temp-btn:active{transform:scale(.94)}

  /* ── v2: Experiment Panel ── */
  .alc-chip-btn{border:1px solid #ddd0ef;border-radius:10px;padding:5px 10px;
    font-size:11.5px;font-weight:700;background:#faf7fe;cursor:pointer;transition:all .15s}
  .alc-chip-btn.sel{background:#8a5fd0;color:#fff;border-color:#8a5fd0}

  /* ── v2: Mystery Recipe ── */
  .alc-recipe.mystery{opacity:.65;background:linear-gradient(180deg,#f7f5fa,#f0edf4);border-style:dashed}
  .alc-recipe.mystery .alc-orb{background:radial-gradient(circle at 35% 30%,#fff,#ddd 55%,#ccc);
    box-shadow:0 3px 10px -3px rgba(100,100,100,.3)}
  .alc-recipe.mystery .alc-orb .e{filter:grayscale(.7);animation:none}

  /* ── v2: Mutation Badge ── */
  .alc-badge.mut{background:linear-gradient(135deg,#f3e8ff,#fce4f0);color:#8a3fb0;
    font-size:9.5px;padding:1px 6px;border-radius:7px}

  /* ── v3: Active Effects Strip ── */
  .alc-active-fx{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;
    background:linear-gradient(135deg,#fef7fb,#fdf0f8);border:1px solid #f0d0e0;
    border-radius:12px;margin-bottom:4px}
  .alc-active-fx .fx-tag{font-size:11.5px;font-weight:700;color:#8a3060;
    background:rgba(255,255,255,.7);padding:3px 9px;border-radius:8px}

  /* ══════════ 🏮 Y03 狼兔民宿 · Fable5 重构 v2（全部 inn- 命名，作用域隔离） ══════════ */
  #inn{--iv1:#8a5230;--iv2:#c98a4a;--igold:#e8b15a;--iink:#3a2c1c}
  #inn .inn-wrap{display:flex;flex-direction:column;gap:12px}
  .inn-rise{animation:innRise .5s cubic-bezier(.2,.7,.3,1) both}
  @keyframes innRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

  /* ── HERO 灯笼门脸 ── */
  .inn-hero{position:relative;overflow:hidden;border-radius:20px;padding:20px 16px 16px;
    background:radial-gradient(120% 90% at 50% -10%,#9a5c2e 0%,#6b3a1c 45%,#40220f 100%);
    box-shadow:0 12px 30px -10px rgba(80,42,16,.7),inset 0 1px 0 rgba(255,255,255,.12);color:#fff}
  .inn-hero .inn-bg{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden}
  .inn-hero .inn-lan{position:absolute;border-radius:50%;filter:blur(22px);opacity:.5;animation:innDrift 9s ease-in-out infinite}
  .inn-hero .inn-lan.l1{width:150px;height:150px;background:#d98a3a;top:-40px;left:-30px}
  .inn-hero .inn-lan.l2{width:120px;height:120px;background:#e8b15a;bottom:-40px;right:-20px;animation-delay:-3s}
  .inn-hero .inn-lan.l3{width:90px;height:90px;background:#f0d08a;top:30px;right:40px;opacity:.35;animation-delay:-5s}
  @keyframes innDrift{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(14px,-12px) scale(1.12)}}
  .inn-hero .inn-htop{position:relative;display:flex;align-items:center;gap:14px}
  .inn-sign{position:relative;width:76px;height:76px;flex-shrink:0;display:grid;place-items:center}
  .inn-sign .ring{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:50%;
    background:radial-gradient(circle,rgba(240,196,106,.55),rgba(232,177,90,.15) 60%,transparent 72%);animation:innPulse 2.6s ease-in-out infinite}
  @keyframes innPulse{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.15);opacity:1}}
  .inn-sign .core{position:relative;font-size:40px;line-height:1;filter:drop-shadow(0 3px 8px rgba(240,180,90,.7));animation:innSway 2.6s ease-in-out infinite}
  @keyframes innSway{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
  .inn-sign .lv{position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);white-space:nowrap;
    background:linear-gradient(180deg,#f6d67a,#d99b32);color:#4a2c07;font-size:10px;font-weight:900;
    padding:2px 8px;border-radius:10px;box-shadow:0 2px 6px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.5)}
  .inn-hero .inn-htitle{flex:1;min-width:0}
  .inn-hero .inn-htitle .t{font-size:19px;font-weight:900;letter-spacing:1px;text-shadow:0 2px 8px rgba(0,0,0,.35)}
  .inn-hero .inn-htitle .s{font-size:11px;opacity:.82;margin-top:2px}
  .inn-dexbar{margin-top:8px;height:7px;border-radius:6px;background:rgba(255,255,255,.16);overflow:hidden}
  .inn-dexbar>i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#f6d67a,#f0a86a);box-shadow:0 0 8px rgba(240,180,106,.8);transition:width .6s cubic-bezier(.2,.7,.3,1)}
  .inn-stats{position:relative;display:flex;gap:8px;margin-top:14px}
  .inn-stat{flex:1;background:rgba(255,255,255,.1);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.18);
    border-radius:14px;padding:9px 4px;text-align:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.15)}
  .inn-stat .n{font-size:16px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 1px 4px rgba(0,0,0,.3);white-space:nowrap}
  .inn-stat .l{font-size:10px;opacity:.82;margin-top:3px}

  /* ── 通用面板 ── */
  .inn-panel{background:#fff;border-radius:16px;padding:12px 13px;box-shadow:0 6px 18px -10px rgba(120,70,30,.35),0 1px 0 rgba(255,255,255,.6) inset;border:1px solid #f2e7d8}
  .inn-h{display:flex;align-items:center;gap:8px;margin-bottom:9px}
  .inn-h .ic{width:28px;height:28px;flex-shrink:0;display:grid;place-items:center;border-radius:9px;font-size:15px;
    background:linear-gradient(180deg,#faefdc,#f2dfc2);box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
  .inn-h .tt{font-size:14px;font-weight:800;color:var(--iink)}
  .inn-h .note{font-size:10.5px;color:var(--muted);font-weight:500;margin-left:auto;text-align:right}
  .inn-row{display:flex;align-items:center;gap:9px;padding:8px 2px;border-bottom:1px solid #f6efe4}
  .inn-row:last-child{border-bottom:0}
  .inn-em{font-size:23px;flex-shrink:0;filter:drop-shadow(0 2px 3px rgba(150,100,50,.25))}
  .inn-rmid{flex:1;min-width:0}
  .inn-rmid b{font-size:13.5px;color:var(--iink)}
  .inn-rmid .sub2,#inn .sub2{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.5}
  .inn-empty{color:var(--muted);font-size:12.5px;text-align:center;padding:14px}

  /* 按钮 */
  .inn-btn{border:0;border-radius:11px;padding:7px 15px;font-size:13px;font-weight:800;color:#fff;
    background:linear-gradient(180deg,#c98a4a,#a5642c);box-shadow:0 4px 10px -3px rgba(165,100,44,.7),inset 0 1px 0 rgba(255,255,255,.3);
    cursor:pointer;transition:transform .08s,box-shadow .2s;white-space:nowrap}
  .inn-btn:active{transform:translateY(1px) scale(.97)}
  .inn-btn.gold{background:linear-gradient(180deg,#f0c46a,#d69a2c);color:#4a2c07;box-shadow:0 4px 10px -3px rgba(214,154,44,.6),inset 0 1px 0 rgba(255,255,255,.5)}
  .inn-btn.pink{background:linear-gradient(180deg,#ec8fb0,#d56a9a)}
  .inn-btn.blue{background:linear-gradient(180deg,#7da3cc,#5b7fa8)}
  .inn-btn.sm{padding:5px 12px;font-size:12px;border-radius:9px}
  .inn-btn.off{opacity:.4;pointer-events:none;filter:grayscale(.3)}

  /* ── 今日客流 banner ── */
  .inn-traffic{display:flex;align-items:center;gap:11px;border-radius:16px;padding:11px 13px;border:1.5px solid}
  .inn-traffic .em{font-size:26px;flex-shrink:0}
  .inn-traffic .tx{flex:1;min-width:0}
  .inn-traffic .tx b{font-size:14px}
  .inn-traffic.busy{background:linear-gradient(135deg,#fdeecd,#fbf5e2);border-color:#e6b85a;color:#7a4e10}
  .inn-traffic.normal{background:linear-gradient(135deg,#e7f2fb,#f2f8fd);border-color:#a9cbe8;color:#3a5a78}
  .inn-traffic.slow{background:linear-gradient(135deg,#eef1ee,#f6f7f6);border-color:#c7d0c7;color:#5a6a5a}
  .inn-traffic .sub2{color:inherit;opacity:.72}

  /* ── 到客机制面板 ── */
  .inn-arrival{background:linear-gradient(135deg,#fdfaf3,#f7efe0);border-radius:16px;padding:10px 12px;border:1.5px solid #e8d5b0}
  .inn-arrival .ar-head{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:13px;color:#7a4e10}
  .inn-arrival .ar-head b{font-size:13px}
  .inn-arrival .ar-eta{margin-left:auto;font-size:10.5px;color:#b09060;font-weight:700;white-space:nowrap}
  .inn-arrival .ar-row{display:flex;align-items:flex-start;gap:6px;margin-bottom:6px}
  .inn-arrival .ar-row:last-child{margin-bottom:0}
  .inn-arrival .ar-icon{font-size:15px;flex-shrink:0;width:18px;text-align:center;line-height:1.4}
  .inn-arrival .ar-body{flex:1;min-width:0;overflow:hidden}
  .inn-arrival .ar-bar{margin-bottom:2px}
  .inn-arrival .ar-track{height:5px;background:#e8dcc8;border-radius:3px;overflow:hidden;margin-bottom:2px}
  .inn-arrival .ar-fill{height:100%;border-radius:3px;transition:width .3s}
  .inn-arrival .ar-fill.ar-rep{background:linear-gradient(90deg,#d98a3a,#f0c060)}
  .inn-arrival .ar-label{font-size:11px;color:#8a6f4d;font-weight:700}
  .inn-arrival .ar-detail{font-size:10px;color:#b09070;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .inn-arrival .ar-tiers{display:flex;align-items:center;gap:4px;margin-bottom:2px}
  .inn-arrival .ar-tier{font-size:11px;font-weight:700;padding:2px 7px;border-radius:7px;background:#e8dcc8;color:#8a6f4d}
  .inn-arrival .ar-tier.on{background:#d98a3a;color:#fff}
  .inn-arrival .ar-arrow{font-size:9px;color:#c0b090}
  .inn-arrival .ar-summary{margin-top:6px;padding-top:6px;border-top:1px dashed #e0d0b0;text-align:center;font-size:12px;color:#7a4e10;font-weight:700}

  /* ── 金牌掌柜周榜 ── */
  .inn-board .inn-vsrow{display:flex;align-items:stretch;gap:6px}
  .inn-board .side{position:relative;flex:1;text-align:center;border-radius:14px;padding:12px 6px 9px;border:1.5px solid transparent}
  .inn-board .side.wolf{background:linear-gradient(180deg,#eef1f7,#e3e9f2)}
  .inn-board .side.rabbit{background:linear-gradient(180deg,#fbeef3,#f8e2eb)}
  .inn-board .side.lead{border-color:#e8b15a;box-shadow:0 4px 14px -6px rgba(214,154,44,.7);animation:innLead 2.2s ease-in-out infinite}
  @keyframes innLead{0%,100%{box-shadow:0 4px 14px -6px rgba(214,154,44,.6)}50%{box-shadow:0 6px 20px -4px rgba(232,177,90,.9)}}
  .inn-board .crown{position:absolute;top:-13px;left:50%;transform:translateX(-50%) rotate(-8deg);font-size:22px;filter:drop-shadow(0 2px 4px rgba(180,120,30,.5));animation:innCrown 2.2s ease-in-out infinite}
  @keyframes innCrown{0%,100%{transform:translateX(-50%) rotate(-8deg) translateY(0)}50%{transform:translateX(-50%) rotate(-8deg) translateY(-3px)}}
  .inn-board .av{font-size:28px;line-height:1}
  .inn-board .nm{font-size:12px;font-weight:800;margin-top:3px;color:var(--iink)}
  .inn-board .num{font-size:17px;font-weight:900;margin-top:3px;color:#b9862a;font-variant-numeric:tabular-nums}
  .inn-board .gs{font-size:10.5px;color:var(--muted);margin-top:1px}
  .inn-board .vs{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex-shrink:0;padding:0 2px}
  .inn-board .vs .v{font-size:13px;font-weight:900;color:#d0b088;font-style:italic}
  .inn-board .vs .tie{font-size:9.5px;font-weight:700;color:var(--muted);white-space:nowrap}

  /* ── 房价 stepper ── */
  .inn-pricer{display:flex;align-items:center;gap:10px}
  .inn-pricer .pv{flex:1;text-align:center;font-weight:900;font-size:19px;color:var(--iink);font-variant-numeric:tabular-nums}
  .inn-pricer .inn-btn{min-width:52px}

  /* ── 房间卡 ── */
  .inn-room{position:relative;border-radius:15px;padding:11px 12px;margin-top:8px;overflow:hidden;
    background:linear-gradient(180deg,#ffffff,#fdf8f0);border:1px solid #f0e3cf;
    box-shadow:0 4px 14px -8px rgba(150,95,40,.4)}
  .inn-room:first-of-type{margin-top:0}
  .inn-room.rare{border-color:#e6c98a;background:linear-gradient(180deg,#fffdf6,#fdf4dd);box-shadow:0 5px 18px -8px rgba(214,164,60,.6)}
  .inn-room .rm-head{display:flex;align-items:baseline;gap:8px}
  .inn-room .rm-head b{font-size:14px;color:var(--iink)}
  .inn-room .rm-meta{font-size:11px;color:var(--muted)}
  .inn-cleanbar{height:6px;background:#f0e9dc;border-radius:4px;overflow:hidden;margin-top:5px}
  .inn-cleanbar>i{display:block;height:100%;border-radius:4px;transition:width .5s cubic-bezier(.2,.7,.3,1)}
  .inn-cleanbar>i.ok{background:linear-gradient(90deg,#6cc79a,#4fae82)}
  .inn-cleanbar>i.mid{background:linear-gradient(90deg,#eec06a,#dda43e)}
  .inn-cleanbar>i.low{background:linear-gradient(90deg,#e08a68,#cf6540)}
  .inn-room .rm-guest{display:flex;align-items:center;gap:10px;margin-top:9px}
  .inn-gorb{position:relative;width:48px;height:48px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;
    background:radial-gradient(circle at 35% 30%,#fff,#faeed8 55%,#f0d9ac);box-shadow:0 3px 10px -3px rgba(170,110,50,.5),inset 0 -3px 6px rgba(200,150,80,.2)}
  .inn-gorb .e{font-size:26px;animation:innFloat 3.4s ease-in-out infinite;filter:drop-shadow(0 2px 3px rgba(170,110,50,.35))}
  @keyframes innFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
  .inn-gorb.rare{background:radial-gradient(circle at 35% 30%,#fff,#f7e6c4 50%,#f0c46a);box-shadow:0 3px 14px -2px rgba(230,180,90,.75),inset 0 -3px 6px rgba(210,160,70,.3)}
  .inn-room .rm-ginfo{flex:1;min-width:0}
  .inn-room .gn{font-size:14px;font-weight:800;color:var(--iink)}
  .inn-room .gn.rare{color:#b9791a}
  .inn-room .gn .tag{font-size:10.5px;font-weight:600;color:var(--muted)}
  .inn-room .gl{font-size:11.5px;color:#7a6a52;margin-top:2px;line-height:1.5}
  .inn-room .gl b{color:var(--iink)}
  .inn-star0{color:#e3dac6}
  .inn-room .coopchip{display:inline-block;font-size:10px;font-weight:800;color:#d56a9a;background:#fbe9f1;padding:1px 7px;border-radius:8px}
  .inn-room .rm-empty{margin-top:9px;font-size:12px;color:#b6a88f;background:#faf5ea;border:1px dashed #e5d8bd;border-radius:11px;padding:12px;text-align:center}
  .inn-room .rm-btns{display:flex;gap:6px;margin-top:9px}
  .inn-room .rm-btns .inn-btn{flex:1}
  .inn-decor{display:block;width:100%;margin-top:7px;border:0;border-radius:10px;padding:6px 10px;font-size:11.5px;font-weight:800;
    color:#7a4fa0;background:linear-gradient(180deg,#f4ecfb,#eadcf7);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 2px 6px -3px rgba(140,95,192,.5);cursor:pointer}
  .inn-decor.off{opacity:.5;pointer-events:none;filter:grayscale(.4)}
  .inn-room .rm-max{margin-top:7px;font-size:11px;font-weight:800;text-align:center;color:#b9862a;background:#fbf3dd;border-radius:9px;padding:4px}

  /* ── 心愿卡 ── */
  .inn-req{margin-top:9px;border-radius:13px;padding:10px 11px;background:linear-gradient(180deg,#fdf7ec,#faf0dc);border:1.5px solid #ecd8ad;
    box-shadow:0 3px 10px -6px rgba(190,140,60,.55)}
  .inn-req.crisis{background:linear-gradient(180deg,#fdf0ec,#fae2d8);border-color:#e8a88f;animation:innCrisis 1.8s ease-in-out infinite}
  @keyframes innCrisis{0%,100%{box-shadow:0 3px 10px -6px rgba(200,80,50,.5)}50%{box-shadow:0 4px 16px -4px rgba(210,90,55,.85),0 0 0 3px rgba(224,120,90,.22)}}
  .inn-req .rq-head{display:flex;align-items:flex-start;gap:9px}
  .inn-req .rq-ic{font-size:24px;flex-shrink:0;line-height:1.2;animation:innFloat 3s ease-in-out infinite}
  .inn-req .rq-tx{flex:1;min-width:0}
  .inn-req .rq-wish{display:inline-block;font-size:10px;font-weight:900;color:#b9862a;background:#f6e7c2;padding:1px 8px;border-radius:8px}
  .inn-req .rq-crisis{display:inline-block;font-size:10px;font-weight:900;color:#fff;background:linear-gradient(180deg,#e07a5a,#c95535);padding:1px 8px;border-radius:8px;box-shadow:0 2px 5px -2px rgba(200,85,53,.8)}
  .inn-req .rq-say{font-size:13px;font-weight:700;color:#5a4426;margin-top:4px;line-height:1.55}
  .inn-req.crisis .rq-say{color:#7a3a24}
  .inn-req .rq-opts{display:flex;flex-direction:column;gap:6px;margin-top:9px}
  .inn-opt{display:block;width:100%;text-align:left;border:1px solid #e5cf9e;border-radius:11px;padding:8px 12px;font-size:12.5px;font-weight:700;
    color:#6a4c22;background:linear-gradient(180deg,#fffdf6,#faf1dc);box-shadow:0 2px 6px -3px rgba(180,130,55,.5),inset 0 1px 0 rgba(255,255,255,.8);cursor:pointer;
    transition:transform .08s}
  .inn-opt:active{transform:translateY(1px) scale(.985)}
  .inn-req.crisis .inn-opt{border-color:#e8b49e;color:#7a3a24;background:linear-gradient(180deg,#fffaf7,#fbeade)}
  .inn-req .rq-done{margin-top:8px;display:inline-block;font-size:11.5px;font-weight:800;color:#3f9e6d;background:#e3f6ec;padding:3px 10px;border-radius:9px}

  /* ── 一起迎客 ── */
  .inn-welcome{text-align:center;background:linear-gradient(135deg,#fbeef4,#fff5fa);border:1px solid #f4d6e5}
  .inn-welcome .st{font-size:12.5px;margin-bottom:9px;color:#a05678;font-weight:600}
  .inn-welcome .st .done{color:#d56a9a;font-weight:900}
  .inn-tick{display:inline-block;margin:0 3px;font-weight:800}

  /* ── 图鉴 pills ── */
  .inn-dex{display:flex;flex-wrap:wrap;gap:6px}
  .inn-dpill{display:inline-flex;align-items:center;gap:3px;padding:4px 10px;border-radius:11px;font-size:12.5px;font-weight:700}
  .inn-dpill.got{background:linear-gradient(180deg,#f4faf0,#e8f4e0);color:#4a7a3a;box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 1px 3px rgba(100,150,80,.14)}
  .inn-dpill.got.rare{background:linear-gradient(180deg,#fdf6e2,#f8ebc4);color:#a8842f;box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 1px 4px rgba(200,160,74,.3)}
  .inn-dpill.miss{background:#f2f0ec;color:#c0bab0;filter:grayscale(1)}

  /* ── help ── */
  .inn-help{background:linear-gradient(135deg,#fbf3e4,#fdf9f0);border:1px solid #eeddc0;border-radius:16px;padding:12px 13px}
  .inn-help .hh{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:800;font-size:14px;color:var(--iink)}
  .inn-help .hh .tg{font-size:11px;color:#c08a3a;font-weight:700}
  .inn-help .hb{font-size:12.5px;line-height:1.75;margin-top:9px;color:#54483a}
  .inn-help .hb .goal{font-weight:800;color:#b9791a;margin-bottom:5px}
  .inn-help .hb .tip{margin-top:6px;color:#ab9c85;font-size:11.5px}

  /* ── reviews / log / exchange ── */
  .inn-reviews{background:linear-gradient(180deg,#fff,#fffaf1)}
  .inn-review{border:1.5px solid #f0e2c8;border-radius:14px;padding:9px 10px;margin-top:8px;background:linear-gradient(180deg,#fffdf8,#fbf4e8);box-shadow:0 3px 10px -7px rgba(130,80,30,.38)}
  .inn-review:first-child{margin-top:0}
  .inn-review.five{border-color:#e9c260;background:linear-gradient(180deg,#fffdf3,#fbf1cf)}
  .inn-review.low{border-color:#e7b8a6;background:linear-gradient(180deg,#fff8f4,#faece4)}
  .inn-review .iv{display:flex;align-items:center;gap:7px}
  .inn-review .em{font-size:18px;line-height:1}
  .inn-review .who{font-size:13px;font-weight:900;color:var(--iink);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .inn-review .tm{font-size:10px;font-weight:800;color:#c1aa82;font-variant-numeric:tabular-nums;white-space:nowrap}
  .inn-review .score{display:flex;align-items:center;gap:8px;margin-top:5px;min-width:0;flex-wrap:wrap}
  .inn-review .score span{font-size:12px;letter-spacing:-1px}
  .inn-review .score b{font-size:15px;font-weight:900;color:#b9791a;font-variant-numeric:tabular-nums}
  .inn-review .score i{font-style:normal;font-size:10.5px;font-weight:800;color:#8a7a62;white-space:nowrap}
  .inn-review .story{font-size:11.5px;line-height:1.55;color:#6a5840;margin-top:5px;background:rgba(255,255,255,.65);border-radius:9px;padding:6px 8px}
  .inn-review .tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
  .inn-review .tags span{font-size:10px;font-weight:900;color:#b04a72;background:#fff0f6;border-radius:999px;padding:2px 8px}

  /* ── log / exchange ── */
  .inn-log{max-height:220px;overflow-y:auto}
  .inn-log .lg{font-size:11.5px;padding:5px 0;border-bottom:1px solid #f6f1e6;display:flex;gap:7px}
  .inn-log .lg .tm{color:#cbb894;flex-shrink:0;font-variant-numeric:tabular-nums}
  .inn-exin{width:72px;padding:7px 8px;border:1px solid #e8d8ba;border-radius:10px;font-size:14px;font-weight:700;color:var(--iink);background:#fdfaf3}

/* ================= 狼兔家园 · 自由大地图 (app-12-worldmap) =================
   v0712-10 行走版：🐺🐰小人+方向键+镜头跟随 · 整屏地图 · HUD 浮层 · 足迹抽屉 */
.worldview.on{display:block;position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;z-index:800;overflow:hidden;background:#bfe6f5}
.wm-wrap{height:100%}
.wm-page{position:relative;height:100%;overflow:hidden}
/* 时段天空（地图小于视口的轴用它补边，像浮空小岛） */
.wm-page.wm-day{background:linear-gradient(180deg,#8ed4f2 0%,#bce8f7 34%,#d8f3e4 100%)}
.wm-page.wm-dawn{background:linear-gradient(180deg,#ffc9a3 0%,#ffe3bd 38%,#dcf0d8 100%)}
.wm-page.wm-dusk{background:linear-gradient(180deg,#f28e6d 0%,#ffc48f 42%,#cfe4c2 100%)}
.wm-page.wm-night{background:linear-gradient(180deg,#1c2547 0%,#2c3a63 48%,#3c5266 100%)}
.wm-loading{text-align:center;color:#8a7a62;padding:70px 16px 0;font-size:14px}
.wm-gate{position:relative;width:100%;height:100%;overflow:hidden;background:#315c3c;color:#fff;isolation:isolate}
.wm-gate-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 56%;z-index:-3;transform:scale(1.015)}
.wm-gate-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(24,34,28,.22) 0%,rgba(24,34,28,.04) 40%,rgba(20,26,21,.82) 100%)}
.wm-gate-back{position:absolute;left:calc(14px + env(safe-area-inset-left,0px));top:calc(14px + env(safe-area-inset-top,0px));border:1px solid rgba(255,255,255,.42);border-radius:999px;background:rgba(28,37,31,.48);backdrop-filter:blur(10px);color:#fff;padding:9px 14px;font-size:13px;font-weight:800;cursor:pointer}
.wm-gate-brand{position:absolute;right:calc(14px + env(safe-area-inset-right,0px));top:calc(16px + env(safe-area-inset-top,0px));font-size:12px;font-weight:900;text-shadow:0 2px 8px rgba(0,0,0,.45)}
.wm-gate-brand span{margin:0 5px;font-size:9px;letter-spacing:1.5px;opacity:.84}
.wm-gate-copy{position:absolute;left:max(24px,env(safe-area-inset-left,0px));right:max(24px,env(safe-area-inset-right,0px));bottom:calc(28px + env(safe-area-inset-bottom,0px));max-width:520px;text-align:left;text-shadow:0 2px 12px rgba(0,0,0,.38)}
.wm-gate-kicker{display:block;margin-bottom:7px;font-size:10px;letter-spacing:1.8px;font-weight:800;color:#e9e1b4}.wm-gate-copy h1{margin:0;font-size:35px;line-height:1.08;letter-spacing:0}.wm-gate-copy p{max-width:430px;margin:10px 0 13px;font-size:13px;line-height:1.65;color:rgba(255,255,255,.9)}
.wm-gate-tags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}.wm-gate-tags span{padding:5px 9px;border:1px solid rgba(255,255,255,.36);border-radius:999px;background:rgba(24,33,27,.35);font-size:10px;font-weight:700;backdrop-filter:blur(6px)}
.wm-gate-btn{display:flex;align-items:center;justify-content:space-between;width:min(100%,280px);height:48px;padding:0 15px 0 18px;border:1px solid rgba(255,255,255,.3);border-radius:12px;background:#f5f0db;color:#345038;font-size:15px;font-weight:900;box-shadow:0 9px 24px rgba(12,26,16,.35);cursor:pointer;text-shadow:none}.wm-gate-btn i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#5e804f;color:#fff;font-size:20px;font-style:normal}.wm-gate-btn:active{transform:translateY(2px) scale(.99)}
/* 氛围层：云/星/日月飘在地图上空（不挡点击） */
.wm-air{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden;z-index:3}
.wm-orb{position:absolute;top:calc(58px + env(safe-area-inset-top,0px));right:14px;font-size:30px;opacity:.95;filter:drop-shadow(0 0 14px rgba(255,240,180,.9));animation:wmBob 5s ease-in-out infinite}
.wm-night .wm-orb{filter:drop-shadow(0 0 12px rgba(200,220,255,.85))}
.wm-cloud{position:absolute;font-size:30px;opacity:.5;animation:wmDrift linear infinite}
.wm-cloud.c1{top:12%;animation-duration:52s}
.wm-cloud.c2{top:30%;font-size:22px;opacity:.4;animation-duration:74s;animation-delay:-30s}
.wm-cloud.c3{top:48%;font-size:24px;opacity:.35;animation-duration:63s;animation-delay:-48s}
@keyframes wmDrift{from{left:-14%}to{left:104%}}
.wm-star{position:absolute;color:#ffe9a8;font-size:11px;animation:wmTwinkle 2.4s ease-in-out infinite}
@keyframes wmTwinkle{0%,100%{opacity:.25}50%{opacity:1}}
@keyframes wmBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
/* 顶栏：浮在地图上的半透明胶囊 */
.wm-top{position:absolute;top:0;left:0;right:0;z-index:8;display:flex;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 0;pointer-events:none;flex-wrap:wrap}
.wm-back{pointer-events:auto;border:0;background:rgba(255,252,243,.88);color:#6b5335;font-weight:800;font-size:13.5px;border-radius:999px;padding:7px 12px;box-shadow:0 2px 6px rgba(60,40,10,.22);cursor:pointer;-webkit-tap-highlight-color:transparent;backdrop-filter:blur(3px);flex:0 0 auto}
#wmCoinBadge{pointer-events:auto}
.wm-title{flex:1 1 118px;text-align:center;font-size:15.5px;font-weight:900;color:#fff;text-shadow:0 2px 6px rgba(40,30,10,.45);letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.wm-clock{background:rgba(255,252,243,.88);color:#6b5335;font-size:11px;font-weight:800;border-radius:999px;padding:7px 10px;box-shadow:0 2px 6px rgba(60,40,10,.22);white-space:nowrap;backdrop-filter:blur(3px);flex:0 0 auto}
@media (max-width:420px){
  .wm-top{gap:7px;padding:calc(8px + env(safe-area-inset-top,0px)) 10px 0;justify-content:space-between}
  .wm-back{font-size:12.5px;padding:7px 10px;order:1}
  .wm-title{order:2;flex:1 1 calc(100% - 176px);font-size:14.5px;text-align:left}
  .wm-tutor-q{order:3;flex:0 0 38px}
  .wm-clock{order:4;margin-left:auto;font-size:10.5px;padding:7px 9px;max-width:48vw;overflow:hidden;text-overflow:ellipsis}
  .wm-title span{margin-left:4px!important;padding:1px 6px!important;font-size:10px!important}
}
@media (max-width:360px){
  .wm-title{font-size:13.5px;flex-basis:calc(100% - 160px)}
  .wm-clock{max-width:54vw}
}
/* 镜头视口 = 整屏；地图用 translate 平移（镜头跟随） */
/* 视口 = 大海（水面贴图铺底，岛在其上漂） */
.wm-view{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;z-index:1;background:url(/uploads/_assets/wm/water.jpg) center/280px repeat}
.wm-dawn .wm-view{filter:sepia(.12) hue-rotate(-8deg)}
.wm-dusk .wm-view{filter:brightness(.9) sepia(.18) hue-rotate(-14deg)}
.wm-night .wm-view{filter:brightness(.5) saturate(.8) hue-rotate(6deg)}
/* 大地图 = 草地岛（草地贴图 + 不规则圆润海岸 + 沙色浪花岸线 + 投向海面的软影） */
.wm-map{position:absolute;left:0;top:0;transition:transform .16s linear;will-change:transform;
  background:url(/uploads/_assets/wm/grass.jpg) center/620px repeat;
  clip-path:polygon(100.0% 50.0%,99.8% 54.4%,99.2% 58.7%,96.6% 62.5%,93.5% 65.8%,91.6% 69.4%,90.4% 73.3%,88.7% 77.1%,85.7% 79.9%,82.0% 82.0%,78.7% 84.2%,75.8% 86.8%,72.9% 89.6%,69.5% 91.9%,65.9% 93.7%,62.3% 95.8%,58.6% 98.6%,54.4% 99.8%,50.0% 100.0%,45.7% 99.6%,41.9% 96.0%,38.6% 92.7%,35.1% 90.8%,31.4% 89.8%,27.7% 88.7%,24.1% 87.0%,20.5% 85.2%,16.5% 83.5%,12.4% 81.5%,9.3% 78.5%,7.7% 74.4%,7.0% 70.1%,5.9% 66.1%,3.8% 62.4%,1.8% 58.5%,1.4% 54.3%,2.9% 50.0%,5.2% 46.1%,6.9% 42.4%,7.7% 38.7%,8.1% 34.8%,9.0% 30.9%,10.1% 27.0%,10.9% 22.6%,11.7% 17.9%,14.6% 14.6%,17.9% 11.7%,21.8% 9.7%,26.9% 9.9%,31.1% 9.5%,34.7% 8.0%,38.3% 6.2%,42.1% 5.1%,46.0% 4.8%,50.0% 4.6%,54.0% 3.8%,58.2% 3.3%,62.4% 3.8%,66.2% 5.4%,69.9% 7.2%,74.1% 8.3%,78.6% 9.2%,82.1% 11.7%,85.2% 14.8%,86.1% 19.7%,86.4% 24.5%,87.4% 28.4%,89.3% 31.7%,91.5% 34.9%,93.4% 38.4%,95.3% 42.0%,97.7% 45.8%);
  filter:drop-shadow(0 0 2px rgba(255,250,225,.95)) drop-shadow(0 0 7px rgba(255,244,205,.6)) drop-shadow(0 12px 20px rgba(12,50,75,.45))}
.wm-night .wm-map{filter:drop-shadow(0 0 2px rgba(210,225,255,.85)) drop-shadow(0 0 7px rgba(150,175,235,.5)) drop-shadow(0 12px 20px rgba(0,5,30,.6))}
.wm-grid{position:absolute;top:0;left:0;right:0;bottom:0;display:grid}
/* 草地格：透明露出岛草地 + 很淡的格子线（守住「格子设定」） */
.wm-cell{position:relative;box-shadow:inset -1px -1px 0 rgba(255,255,255,.05),inset 1px 1px 0 rgba(30,60,20,.045)}
.wm-cell i{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:15px;opacity:.8;pointer-events:none}
/* 石板路：手绘石板贴图，按坐标连续拼接（背景定位由 JS 内联）；圆角由 JS 按连通性内联 */
.wm-cell.road{background-image:url(/uploads/_assets/wm/cobble.jpg);background-size:224px 224px;
  box-shadow:inset 0 0 0 1px rgba(150,120,70,.28),inset 0 -2px 3px rgba(120,95,55,.3)}
.wm-night .wm-cell.road{filter:brightness(.62) saturate(.85)}
/* 建设模式：蓝图虚线格 + 按压反馈 */
.building .wm-cell{cursor:pointer;outline:1px dashed rgba(255,255,255,.28);outline-offset:-1px}
.building .wm-cell:active{background:#ffe9a8}
/* 时段光照层（草地上、建筑下 → 夜里建筑像亮着灯） */
.wm-light{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;border-radius:20px}
.wm-dawn .wm-light{background:rgba(255,175,110,.16)}
.wm-dusk .wm-light{background:rgba(255,130,70,.2)}
.wm-night .wm-light{background:rgba(18,26,64,.42)}
/* overlay：建筑 + 纸条 */
.wm-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}
.wm-bubbles{position:absolute;top:0;left:0;right:0;bottom:0;z-index:4;pointer-events:none}
.wm-bubble{position:absolute;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:72px;max-width:112px;padding:8px 10px 9px;border:0;border-radius:16px;background:rgba(255,255,255,.94);box-shadow:0 2px 10px rgba(0,0,0,.12);pointer-events:auto;transform:translate(-50%,-100%);animation:wmBubbleIn .22s ease both}
.wm-bubble .wm-bubble-tip{position:absolute;left:50%;bottom:-7px;width:12px;height:12px;margin-left:-6px;background:inherit;transform:rotate(45deg);border-radius:0 0 2px 0;box-shadow:2px 2px 6px rgba(0,0,0,.05)}
.wm-bubble .wm-bubble-ttl{font-size:11px;font-weight:800;color:#40322c;line-height:1.25;text-align:center}
.wm-bubble .wm-bubble-act{font-size:10px;font-weight:700;color:var(--rabbit);line-height:1}
.wm-bubble.warm{background:linear-gradient(135deg,#fff8ef,#fffdf8)}
.wm-bubble.agenda{background:linear-gradient(135deg,#fff7fb,#fffdf7);box-shadow:0 2px 10px rgba(224,138,166,.16)}
.wm-bubble.wish{background:linear-gradient(135deg,#fff1f7,#fffdf7);box-shadow:0 2px 10px rgba(224,138,166,.18)}
.wm-bubble.surprise{background:linear-gradient(135deg,#f3f8ff,#fffdf7);box-shadow:0 2px 10px rgba(91,107,140,.14)}
.wm-bubble.kind-resident .wm-bubble-act{color:var(--wolf)}
.wm-bubble.kind-building .wm-bubble-act{color:var(--rabbit)}
.wm-bubble:active{transform:translate(-50%,-100%) scale(.96)}
@keyframes wmBubbleIn{from{opacity:0;transform:translate(-50%,-90%) scale(.85)}to{opacity:1;transform:translate(-50%,-100%) scale(1)}}
.wm-page:not(.building) .wm-bld.enter{pointer-events:auto;cursor:pointer}
.wm-bld{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:1px;box-sizing:border-box}
.wm-bld:before{content:'';position:absolute;left:7%;right:7%;top:6%;bottom:3%;background:rgba(120,150,80,.3);border-radius:14px;box-shadow:inset 0 2px 6px rgba(60,90,40,.28)}
.wm-night .wm-bld:before{background:rgba(40,60,40,.4)}
.wm-bemoji{position:relative;line-height:1.05;filter:drop-shadow(0 3px 3px rgba(30,40,10,.35));transition:transform .15s}
.wm-bld.enter .wm-bemoji{animation:wmBob 3.4s ease-in-out infinite}
.wm-bld:nth-child(odd) .wm-bemoji{animation-delay:-1.7s}
.wm-bld.enter:active .wm-bemoji{transform:scale(.86)}
.wm-night .wm-bemoji{filter:drop-shadow(0 3px 3px rgba(0,0,20,.5)) drop-shadow(0 0 10px rgba(255,220,150,.5))}
.wm-bsign{position:relative;background:#fff8ec;border:1.5px solid #e3cfa6;color:#6b5335;font-size:10.5px;font-weight:900;border-radius:999px;padding:2px 8px;margin-top:1px;white-space:nowrap;box-shadow:0 2px 4px rgba(60,40,10,.22)}
/* ── 手绘建筑 sprite（底边中心锚定 footprint 底部，只向上溢出；接地阴影替代地台） ── */
.wm-bld.sprite:before{left:14%;right:14%;top:auto;bottom:4px;height:13px;border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(28,48,14,.42),rgba(28,48,14,0) 70%);box-shadow:none}
.wm-night .wm-bld.sprite:before{background:radial-gradient(ellipse at center,rgba(0,5,25,.5),rgba(0,5,25,0) 70%)}
.wm-bsprite{position:absolute;left:50%;bottom:2px;transform:translateX(-50%);width:104%;
  filter:drop-shadow(0 3px 2px rgba(30,40,10,.22));pointer-events:none}
.wm-bld.sprite.enter .wm-bsprite{animation:wmBob 3.4s ease-in-out infinite}
.wm-bld.sprite:nth-child(odd) .wm-bsprite{animation-delay:-1.7s}
.wm-bld.sprite.enter:active .wm-bsprite{transform:translateX(-50%) scale(.94)}
.wm-night .wm-bsprite{filter:drop-shadow(0 3px 3px rgba(0,0,20,.5)) drop-shadow(0 0 10px rgba(255,220,150,.4))}
.wm-bld.sprite .wm-bsign{position:absolute;bottom:-7px;left:50%;transform:translateX(-50%);margin:0;z-index:2}
/* 小人站到相邻格：楼高亮呼吸 */
.wm-bld.near:before{border:3px solid rgba(124,197,126,.9);background:rgba(190,240,180,.4);animation:wmNearPulse 1.1s ease-in-out infinite}
.wm-bld.near .wm-bsign{border-color:#7cc57e;color:#3f7a44;box-shadow:0 0 8px rgba(124,197,126,.7)}
@keyframes wmNearPulse{0%,100%{box-shadow:0 0 8px rgba(124,197,126,.4)}50%{box-shadow:0 0 20px rgba(124,197,126,.95)}}
/* 搬楼选中态：整块亮橙虚线框 + 小屋加速蹦跶 */
.wm-bld.sel:before{left:-2%;right:-2%;top:-3%;bottom:-2%;border:3px dashed #ff9f43;background:rgba(255,190,80,.38);border-radius:14px;animation:wmSelPulse 1s ease-in-out infinite}
.wm-bld.sel .wm-bemoji{animation:wmBob .8s ease-in-out infinite}
@keyframes wmSelPulse{0%,100%{box-shadow:0 0 10px rgba(255,170,50,.55)}50%{box-shadow:0 0 22px rgba(255,190,80,.95)}}
/* 🎂 200天纪念彩蛋 · 许愿树 */
.wm-anni-tree{position:absolute;z-index:5;pointer-events:auto;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:wmAnniBob 2.2s ease-in-out infinite}
.wm-anni-glow{position:absolute;top:-6px;left:-6px;right:-6px;bottom:-6px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(255,150,180,.65),rgba(255,200,220,.25) 45%,transparent 72%);animation:wmAnniPulse 1.8s ease-in-out infinite;z-index:0}
.wm-anni-emoji{position:relative;z-index:1;font-size:38px;filter:drop-shadow(0 0 10px rgba(255,120,160,.7));animation:wmAnniFloat 3s ease-in-out infinite}
.wm-anni-label{position:relative;z-index:1;background:linear-gradient(135deg,#ffe0ec,#fff5f8);border:1.5px solid #f4a7c3;color:#c24b72;font-size:10.5px;font-weight:900;border-radius:999px;padding:2px 10px;margin-top:-4px;white-space:nowrap;text-align:center;line-height:1.35;box-shadow:0 2px 8px rgba(220,100,140,.35)}
.wm-anni-tree:active{transform:scale(.92)}
.wm-anni-tree:active .wm-anni-emoji{transform:scale(1.18)}
@keyframes wmAnniPulse{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.18)}}
@keyframes wmAnniBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes wmAnniFloat{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-5px) rotate(3deg)}}
body.wm-wish-lock{overflow:hidden}
.wm-wish-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:10020;background:rgba(35,26,38,.72);padding:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
.wm-wish-overlay.open{display:flex;align-items:flex-start;justify-content:center;animation:wmWishFade .2s ease-out}
.wm-wish-sheet{position:relative;width:100%;max-width:430px;min-height:100vh;min-height:100dvh;box-sizing:border-box;padding:18px 18px calc(26px + env(safe-area-inset-bottom,0px));background:#fffaf6;color:#49363f;box-shadow:0 0 36px rgba(20,10,25,.3)}
.wm-wish-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.wm-wish-head>div{display:flex;flex-direction:column;gap:2px}
.wm-wish-head span{font-size:9px;font-weight:900;color:#ba8a45}
.wm-wish-head b{font-size:20px;font-weight:900;color:#6f4055}
.wm-wish-close{width:40px;height:40px;border:0;border-radius:50%;background:#f2e9e4;color:#735965;font-size:17px;font-weight:900;cursor:pointer}
.wm-wish-close:active{transform:scale(.92)}
.wm-wish-main{text-align:center}
.wm-wish-kicker{display:inline-flex;align-items:center;justify-content:center;min-height:25px;padding:0 12px;border:1px solid #e2bd76;border-radius:999px;color:#9a6a2c;background:#fff7e6;font-size:11px;font-weight:900}
.wm-wish-wheel-wrap{position:relative;width:min(78vw,310px);height:min(78vw,310px);margin:12px auto 10px;filter:drop-shadow(0 14px 18px rgba(81,48,61,.2))}
.wm-wish-pointer{position:absolute;z-index:5;top:-11px;left:50%;transform:translateX(-50%);color:#6f4055;font-size:32px;line-height:1;filter:drop-shadow(0 2px 1px #fff)}
.wm-wish-wheel{position:absolute;top:0;left:0;right:0;bottom:0;border:8px solid #fff3dd;border-radius:50%;box-sizing:border-box;background:conic-gradient(#f28eaa 0 60deg,#f4c968 60deg 120deg,#7fc7b3 120deg 180deg,#83a9d8 180deg 240deg,#b99bd8 240deg 300deg,#ed9a72 300deg 360deg);box-shadow:inset 0 0 0 3px rgba(111,64,85,.14),0 0 0 3px #d7aa57;will-change:transform}
.wm-wish-wheel:before{content:'';position:absolute;top:8px;left:8px;right:8px;bottom:8px;border:1px solid rgba(255,255,255,.72);border-radius:50%}
.wm-wish-wheel-label{position:absolute;z-index:2;left:50%;top:50%;width:76px;height:48px;margin:-24px 0 0 -38px;display:flex;align-items:center;justify-content:center;transform-origin:38px 24px;color:#fff;font-size:11px;font-weight:900;line-height:1.2;text-shadow:0 1px 3px rgba(60,30,50,.4);overflow:hidden}
.wm-wish-wheel-label span{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.wm-wish-wheel-label.l0{transform:rotate(30deg) translateY(-98px) rotate(-30deg)}
.wm-wish-wheel-label.l1{transform:rotate(90deg) translateY(-98px) rotate(-90deg)}
.wm-wish-wheel-label.l2{transform:rotate(150deg) translateY(-98px) rotate(-150deg)}
.wm-wish-wheel-label.l3{transform:rotate(210deg) translateY(-98px) rotate(-210deg)}
.wm-wish-wheel-label.l4{transform:rotate(270deg) translateY(-98px) rotate(-270deg)}
.wm-wish-wheel-label.l5{transform:rotate(330deg) translateY(-98px) rotate(-330deg)}
.wm-wish-hub{position:absolute;z-index:4;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff8eb;border:5px solid #d7aa57;box-sizing:border-box;font-size:25px;box-shadow:0 3px 9px rgba(83,48,60,.25)}
.wm-wish-inputs{display:grid;gap:8px;margin:10px auto 12px;max-width:340px}
.wm-wish-inputs label{display:grid;grid-template-columns:34px 1fr;align-items:center;min-height:47px;border:1px solid #e4d3cd;border-radius:8px;background:#fff;overflow:hidden;box-shadow:0 2px 7px rgba(80,45,58,.06)}
.wm-wish-inputs i{font-style:normal;font-size:12px;font-weight:900;color:#fff;background:#9d6a7d;height:100%;display:flex;align-items:center;justify-content:center}
.wm-wish-inputs input{min-width:0;border:0;outline:0;padding:11px 12px;background:transparent;color:#49363f;font:700 14px/1.3 inherit}
.wm-wish-inputs input::placeholder{color:#b6a2a9;font-weight:600}
.wm-wish-spin{width:100%;max-width:340px;min-height:50px;border:0;border-radius:8px;background:#704258;color:#fff;font-size:15px;font-weight:900;box-shadow:0 5px 0 #4f2f3f,0 10px 20px rgba(91,52,71,.22);cursor:pointer}
.wm-wish-spin span{font-size:19px;vertical-align:-1px;margin-right:4px}
.wm-wish-spin:active{transform:translateY(3px);box-shadow:0 2px 0 #4f2f3f,0 5px 12px rgba(91,52,71,.18)}
.wm-wish-spin:disabled{opacity:.72;cursor:wait}
.wm-wish-odds{margin-top:10px;color:#a08d94;font-size:10.5px;font-weight:800}
.wm-wish-result{max-width:340px;margin:12px auto 0;padding:14px;border-radius:8px;display:flex;flex-direction:column;gap:4px;border:1px solid #dfd0c9;background:#fff}
.wm-wish-result.hit{border-color:#e8bc63;background:#fff9e9;box-shadow:0 6px 20px rgba(199,144,48,.16)}
.wm-wish-result b{font-size:12px;color:#9c7c61}
.wm-wish-result strong{font-size:22px;color:#704258;overflow-wrap:anywhere}
.wm-wish-result span{font-size:11px;color:#a08d94}
.wm-wish-saved{margin-top:12px;color:#9b7a86;font-size:11px;font-weight:800}
.wm-wish-loading,.wm-wish-error{display:flex;min-height:62vh;flex-direction:column;align-items:center;justify-content:center;color:#9b7a86;font-size:13px;font-weight:800}
.wm-wish-error button{margin-top:12px;border:0;border-radius:8px;padding:10px 18px;background:#704258;color:#fff;font-weight:900}
.wm-wish-foot{padding:6px 0 0;text-align:center}
.wm-wish-hist-btn{margin-top:12px;padding:8px 20px;border:1px solid #d7aa57;border-radius:999px;background:transparent;color:#9a6a2c;font-size:12px;font-weight:800;cursor:pointer}
.wm-wish-hist-btn:active{transform:scale(.95);background:#fff7e6}
.wm-wish-hist{display:grid;gap:12px;max-width:340px;margin:12px auto 0}
.wm-wish-hist-card{text-align:center;padding:14px;border-radius:10px;background:#fff;border:1px solid #e4d3cd;box-shadow:0 2px 10px rgba(80,45,58,.06)}
.wm-wish-hist-who{font-size:15px;font-weight:900;color:#49363f;margin-bottom:6px}
.wm-wish-hist-result{display:inline-block;padding:2px 12px;border-radius:999px;font-size:10.5px;font-weight:800;margin-bottom:4px}
.wm-wish-hist-result.hit{background:#fff9e9;color:#b6802e;border:1px solid #e8bc63}
.wm-wish-hist-result.miss{background:#f6f1f3;color:#907a83;border:1px solid #ddd}
.wm-wish-hist-big{font-size:22px;font-weight:900;color:#704258;overflow-wrap:anywhere;line-height:1.3;margin:4px 0 6px}
.wm-wish-hist-wishes{display:flex;flex-direction:column;gap:3px;margin-top:6px}
.wm-wish-hist-w{font-size:11px;color:#9b8a90;padding:3px 8px;border-radius:6px;background:#faf6f4}
.wm-wish-hist-w.hit{color:#b6802e;background:#fff9e9;font-weight:800}
.wm-wish-hist-back{margin-top:12px;padding:8px 18px;border:0;border-radius:8px;background:#f2e9e4;color:#735965;font-size:12px;font-weight:800;cursor:pointer}
.wm-wish-hist-back:active{transform:scale(.95)}
@keyframes wmWishFade{from{opacity:0}to{opacity:1}}
@media (min-width:600px){.wm-wish-overlay{padding:22px}.wm-wish-overlay.open{align-items:center}.wm-wish-sheet{min-height:0;max-height:calc(100vh - 44px);max-height:calc(100dvh - 44px);overflow-y:auto;border-radius:8px}}
@media (max-height:720px){.wm-wish-sheet{padding-top:12px}.wm-wish-wheel-wrap{width:min(61vh,270px);margin-top:8px}.wm-wish-wheel-label.l0{transform:rotate(30deg) translateY(-85px) rotate(-30deg)}.wm-wish-wheel-label.l1{transform:rotate(90deg) translateY(-85px) rotate(-90deg)}.wm-wish-wheel-label.l2{transform:rotate(150deg) translateY(-85px) rotate(-150deg)}.wm-wish-wheel-label.l3{transform:rotate(210deg) translateY(-85px) rotate(-210deg)}.wm-wish-wheel-label.l4{transform:rotate(270deg) translateY(-85px) rotate(-270deg)}.wm-wish-wheel-label.l5{transform:rotate(330deg) translateY(-85px) rotate(-330deg)}}
.wm-seltag{position:absolute;top:-15px;left:50%;transform:translateX(-50%);background:#ff9f43;color:#fff;font-size:9px;font-weight:900;border-radius:999px;padding:2px 7px;white-space:nowrap;box-shadow:0 2px 5px rgba(0,0,0,.28);z-index:3;animation:wmBob 1.2s ease-in-out infinite}
/* 纸条标记 */
.wm-note{position:absolute;transform:translate(-50%,-50%);font-size:21px;pointer-events:auto;cursor:pointer;filter:drop-shadow(0 2px 3px rgba(30,20,5,.4));z-index:2}
.wm-note.fresh{animation:wmNoteHop 1.5s ease-in-out infinite;font-size:23px}
.wm-note.fresh:after{content:'✨';position:absolute;top:-9px;right:-11px;font-size:11px;animation:wmTwinkle 1.5s ease-in-out infinite}
.wm-note.mine{opacity:.6}
.wm-note.opened{opacity:.55}
@keyframes wmNoteHop{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-62%) scale(1.12)}}
/* ── 🐺🐰 小人 ── */
.wm-hero{position:absolute;left:0;top:0;z-index:4;pointer-events:none;transition:transform .16s linear;will-change:transform;display:flex;align-items:center;justify-content:center}
.wm-hero-sh{position:absolute;bottom:7%;left:22%;right:22%;height:13%;background:rgba(40,60,20,.3);border-radius:50%;filter:blur(1px)}
.wm-night .wm-hero-sh{background:rgba(0,0,25,.45)}
.wm-hero-f{position:relative;display:flex;align-items:flex-end;justify-content:center;transition:transform .12s}
.wm-hero-b{display:block;line-height:1;filter:drop-shadow(0 3px 3px rgba(30,40,10,.4));animation:wmHeroBob 2.6s ease-in-out infinite}
.wm-night .wm-hero-b{filter:drop-shadow(0 3px 3px rgba(0,0,20,.55)) drop-shadow(0 0 8px rgba(255,235,180,.45))}
@keyframes wmHeroBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
.wm-hero.hop .wm-hero-b{animation:wmHeroHop .18s ease-out}
@keyframes wmHeroHop{0%{transform:translateY(0) scale(1,1)}45%{transform:translateY(-26%) scale(.94,1.08)}100%{transform:translateY(0) scale(1.05,.95)}}
.wm-hero.bump .wm-hero-f{animation:wmHeroBump .2s ease-out}
@keyframes wmHeroBump{0%,100%{translate:0 0}30%{translate:-3px 0}65%{translate:3px 0}}
/* 踩草小尘 */
.wm-dust{position:absolute;z-index:3;pointer-events:none;font-size:13px;opacity:.7;animation:wmDustFx .5s ease-out forwards}
@keyframes wmDustFx{0%{opacity:.7;transform:translateY(0) scale(.7)}100%{opacity:0;transform:translateY(-9px) scale(1.25)}}
/* ── HUD：进入按钮 + 方向键(左下) + 三大频道(右下) ── */
.wm-ctx{position:absolute;left:14px;bottom:calc(216px + env(safe-area-inset-bottom,0px));z-index:7}
.wm-ctx-btn{border:0;border-radius:999px;padding:10px 16px;font-size:13.5px;font-weight:900;cursor:pointer;color:#fff;
  background:linear-gradient(180deg,#8ed08f,#6cb96f);border-bottom:3px solid #55a058;box-shadow:0 4px 14px rgba(60,130,70,.45);
  -webkit-tap-highlight-color:transparent;animation:wmBob 1.4s ease-in-out infinite}
.wm-ctx-btn:active{transform:translateY(2px);border-bottom-width:1px}
.wm-dpad{position:absolute;left:12px;bottom:calc(60px + env(safe-area-inset-bottom,0px));z-index:7;display:grid;
  grid-template-columns:repeat(3,46px);grid-template-rows:repeat(3,44px);gap:4px}
.wm-dbtn{border:0;border-radius:13px;background:rgba(255,252,243,.82);color:#6b5335;font-size:16px;font-weight:900;cursor:pointer;
  box-shadow:0 3px 8px rgba(50,35,10,.26),inset 0 1px 0 rgba(255,255,255,.8);backdrop-filter:blur(3px);
  -webkit-tap-highlight-color:transparent;touch-action:none;user-select:none;-webkit-user-select:none}
.wm-dbtn:active{transform:scale(.92);background:rgba(255,238,200,.95)}
.wm-dbtn.u{grid-column:2;grid-row:1}
.wm-dbtn.l{grid-column:1;grid-row:2}
.wm-dbtn.r{grid-column:3;grid-row:2}
.wm-dbtn.d{grid-column:2;grid-row:3}
.wm-dctr{grid-column:2;grid-row:2;display:flex;align-items:center;justify-content:center;font-size:19px;opacity:.85;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(50,35,10,.3))}
.wm-acts{position:absolute;right:12px;bottom:calc(60px + env(safe-area-inset-bottom,0px));z-index:7;display:flex;flex-direction:column;align-items:flex-end;gap:8px;max-width:min(72vw,260px)}
.wm-fab{border:0;border-radius:999px;padding:9px 11px;font-size:15px;font-weight:900;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;
  background:rgba(255,248,236,.92);color:#6b5335;box-shadow:0 4px 14px rgba(50,35,10,.3);border-bottom:3px solid #e3cfa6;
  -webkit-tap-highlight-color:transparent;backdrop-filter:blur(3px)}
.wm-fab span{font-size:12px}
.wm-fab:active{transform:translateY(2px);border-bottom-width:1px}
.wm-fab.pink{background:rgba(255,227,238,.94);color:#b04a72;border-bottom-color:#f2b7cd}
.wm-act-main{min-width:118px;min-height:48px;justify-content:flex-start;align-items:center;flex-direction:row;padding:10px 13px 9px;gap:8px}
.wm-act-main .em{font-size:18px;line-height:1;flex:0 0 auto}
.wm-act-main .tx{flex:1;text-align:left;font-size:12.5px;line-height:1.15}
.wm-act-main i{font-style:normal;font-size:10px;font-weight:900;color:#b39c78;flex:0 0 auto}
.wm-act-main.on{box-shadow:0 6px 18px rgba(50,35,10,.3),0 0 0 2px rgba(255,255,255,.35) inset}
.wm-act-main.raid,.wm-act-main.guard,.wm-act-main.champ{flex-direction:row;align-items:center}
.wm-act-main.raid{background:rgba(232,244,255,.96);color:#356a9d;border-bottom-color:#b6d6ee}
.wm-act-main.raid u{display:none}
.wm-act-main.guard{background:rgba(235,244,255,.96);color:#446d9c;border-bottom-color:#bfd3ea}
.wm-act-panel{width:min(72vw,260px);background:rgba(255,252,243,.97);border-radius:18px;padding:10px;box-shadow:0 8px 24px rgba(50,35,10,.28);display:flex;flex-direction:column;gap:10px;animation:wmDpFade .18s ease-out}
.wm-act-group{display:flex;flex-direction:column;gap:7px}
.wm-act-gh{font-size:10.5px;font-weight:900;color:#b39c78;padding:0 4px}
.wm-act-sub{width:100%;justify-content:flex-start;position:relative}
.wm-act-sub span{font-size:12px}
.wm-act-panel .wm-fab.raid{align-items:flex-start}
.wm-act-panel .wm-fab.raid u{display:block;max-width:148px;font-size:9.5px;font-weight:800;color:#7a93ad;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-fab.guard{background:rgba(235,244,255,.96);color:#446d9c;border-bottom-color:#bfd3ea}
/* ── 足迹抽屉（overlay 上拉，不顶地图） ── */
.wm-drawer{position:absolute;left:0;right:0;bottom:0;z-index:9;background:rgba(255,252,243,.97);border-radius:18px 18px 0 0;
  box-shadow:0 -6px 20px rgba(50,35,10,.28);transform:translateY(calc(100% - 44px - env(safe-area-inset-bottom,0px)));transition:transform .28s ease;will-change:transform}
.wm-drawer.open{transform:translateY(0)}
.wm-dr-handle{position:relative;height:44px;display:flex;align-items:center;gap:8px;padding:6px 14px 0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-dr-bar{position:absolute;top:5px;left:50%;transform:translateX(-50%);width:38px;height:4px;border-radius:2px;background:#ddcdaa}
.wm-dr-handle .ic{font-size:15px;flex-shrink:0}
.wm-dr-handle .tx{flex:1;font-size:11.5px;font-weight:700;color:#6b5335;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-dr-handle .cv{flex-shrink:0;font-size:12px;color:#bda887;font-weight:900}
.wm-dr-body{max-height:42vh;max-height:42dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:2px 16px calc(14px + env(safe-area-inset-bottom,0px))}
.wm-feed-t{font-size:13px;font-weight:900;color:#6b5335;margin:4px 0 5px}
.wm-feed-empty{font-size:12px;color:#a8977c;padding:4px 0 2px}
.wm-feed-row{display:flex;align-items:center;gap:9px;font-size:12.5px;padding:5px 0;border-bottom:1px dashed #efe3cb}
.wm-feed-row:last-child{border-bottom:0}
.wm-fp-ava{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;box-shadow:inset 0 0 0 2px #fff;padding:0}
.wm-fp-ava.wf{background:#dfe7f6}.wm-fp-ava.rb{background:#fbdfec}
.wm-fp-act{flex:1;color:#5d4a30;font-weight:600;line-height:1.35}
.wm-fp-ago{flex-shrink:0;color:#bda887;font-size:10.5px;font-variant-numeric:tabular-nums}
/* ── 建设模式：可收起的浮动工具坞 ── */
.wm-dock.build{position:absolute;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:8;
  background:rgba(255,252,243,.97);border-radius:20px;box-shadow:0 8px 24px rgba(50,35,10,.3);padding:8px 12px 10px}
.wm-dock-hd{display:flex;align-items:center;gap:8px;cursor:pointer;padding:2px 2px 6px;-webkit-tap-highlight-color:transparent}
.wm-hint{flex:1;text-align:left;font-size:12px;font-weight:800;color:#8a6f4d}
.wm-dock-hd .cv{flex-shrink:0;font-size:12px;color:#bda887;font-weight:900}
.wm-toolrow{display:flex;gap:8px;justify-content:center}
.wm-dock.build.min .wm-toolrow,.wm-dock.build.min .wm-dock-cap{display:none}
.wm-dock.build.min{padding-bottom:6px}
.wm-tool{flex:1;max-width:88px;border:2px solid #eadfc8;background:#fff;border-radius:14px;padding:7px 0 6px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;color:#6b5335;-webkit-tap-highlight-color:transparent}
.wm-tool .ic{font-size:20px;line-height:1}
.wm-tool .lb{font-size:11px;font-weight:800}
.wm-tool.on{background:#e8f6e3;border-color:#7cc57e;box-shadow:0 0 0 2px rgba(124,197,126,.28)}
.wm-done{border:0;background:#7cc57e;color:#fff;border-radius:14px;font-size:15px;font-weight:900;padding:0 14px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-bottom:3px solid #5da860}
.wm-done span{font-size:11px}
.wm-dock-cap{text-align:center;font-size:10.5px;font-weight:700;color:#b39c78;margin-top:7px}
/* 心动值/个人币飘字（视口中央往上飘） */
.wm-coinfx{position:absolute;left:50%;top:42%;font-size:22px;font-weight:900;color:#fff;text-shadow:0 2px 8px rgba(200,60,110,.65),0 0 4px rgba(0,0,0,.3);pointer-events:none;z-index:5;animation:wmCoinUp 1.5s ease-out forwards}
.wm-coinfx.personal{top:36%;font-size:24px;color:#fff8d7;background:linear-gradient(180deg,#2b7cff,#1356c7);border:2px solid #ffd66b;border-radius:999px;padding:7px 14px;box-shadow:0 8px 22px rgba(19,86,199,.28),0 0 0 3px rgba(255,214,107,.26);text-shadow:0 2px 6px rgba(0,45,120,.65);animation:wmCoinUp 1.65s ease-out forwards}
.wm-pet-chip.pc{background:#fff1bf;color:#7a5512;border-color:#f1ce62}
@keyframes wmCoinUp{0%{opacity:0;transform:translate(-50%,-30%) scale(.6)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}100%{opacity:0;transform:translate(-50%,-170%) scale(1)}}
/* ── P2 · 📦联营仓面板（body 级浮层，低于 cgModal 的 9999） ── */
.wm-fab.gold{background:rgba(255,240,210,.94);color:#8a6420;border-bottom-color:#eccf92}
.wm-dp-ov{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9980;background:rgba(50,35,15,.45);display:flex;align-items:flex-end;justify-content:center;animation:wmDpFade .18s ease-out}
@keyframes wmDpFade{from{opacity:0}to{opacity:1}}
.wm-dp-card{width:100%;max-width:480px;max-height:82vh;max-height:82dvh;display:flex;flex-direction:column;background:#fffcf3;border-radius:22px 22px 0 0;box-shadow:0 -8px 28px rgba(50,35,10,.35);animation:wmDpUp .22s ease-out}
@keyframes wmDpUp{from{transform:translateY(36px);opacity:.6}to{transform:translateY(0);opacity:1}}
.wm-dp-loading{text-align:center;color:#8a7a62;font-size:13.5px;font-weight:700;padding:34px 16px}
.wm-dp-hd{display:flex;align-items:baseline;gap:8px;padding:15px 16px 9px;border-bottom:1.5px dashed #efe3cb}
.wm-dp-hd .ti{font-size:17px;font-weight:900;color:#6b5335}
.wm-dp-hd .su{flex:1;font-size:11px;font-weight:700;color:#b39c78;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-dp-x{align-self:center;flex-shrink:0;border:0;width:30px;height:30px;border-radius:50%;background:#f3ead8;color:#8a6f4d;font-size:14px;font-weight:900;cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-dp-x:active{transform:scale(.9)}
.wm-dp-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:6px 16px calc(18px + env(safe-area-inset-bottom,0px))}
.wm-dp-sec{margin-top:12px}
.wm-dp-st{font-size:13px;font-weight:900;color:#6b5335;margin-bottom:6px}
.wm-dp-empty{font-size:12px;color:#a8977c;background:#fbf6e9;border:1.5px dashed #e8dcc2;border-radius:12px;padding:11px 12px}
.wm-dp-row{display:flex;align-items:center;gap:9px;background:#fff;border:1.5px solid #eee3cc;border-radius:14px;padding:8px 10px 8px 12px;margin-bottom:6px}
.wm-dp-row .ic{flex-shrink:0;font-size:20px;filter:drop-shadow(0 1px 1px rgba(60,40,10,.18))}
.wm-dp-row .nm{flex:1;font-size:13.5px;font-weight:800;color:#5d4a30;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-dp-row .qt{flex-shrink:0;font-size:13px;font-weight:900;color:#8a6f4d;font-variant-numeric:tabular-nums}
.wm-dp-btn{flex-shrink:0;border:0;border-radius:999px;padding:6px 13px;font-size:12px;font-weight:900;cursor:pointer;color:#fff;background:linear-gradient(180deg,#8ed08f,#6cb96f);border-bottom:2.5px solid #55a058;-webkit-tap-highlight-color:transparent}
.wm-dp-btn:active{transform:translateY(1.5px);border-bottom-width:1px}
.wm-dp-btn.ghost{background:#fff;color:#3f7a44;border:1.5px solid #9fd2a1;border-bottom-width:2.5px;padding:5px 12px}
.wm-dp-rc{background:#fff;border:1.5px solid #eee3cc;border-radius:16px;padding:11px 12px 12px;margin-bottom:8px}
.wm-dp-rc .hd{display:flex;align-items:center;gap:7px}
.wm-dp-rc .hd .ic{font-size:19px}
.wm-dp-rc .hd .nm{flex:1;font-size:14px;font-weight:900;color:#5d4a30}
.wm-dp-rc .hd .fx{flex-shrink:0;font-size:10.5px;font-weight:900;color:#b04a72;background:#ffe3ee;border-radius:999px;padding:2px 8px;font-variant-numeric:tabular-nums}
.wm-dp-rc .ds{font-size:11.5px;color:#8a7a62;line-height:1.5;margin:5px 0 7px}
.wm-dp-rc .cs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}
.wm-dp-chip{font-size:11px;font-weight:800;border-radius:999px;padding:3px 9px}
.wm-dp-chip b{font-variant-numeric:tabular-nums}
.wm-dp-chip.ok{background:#e8f6e3;color:#3f7a44;border:1px solid #bfe3bd}
.wm-dp-chip.no{background:#fdeaea;color:#b0524a;border:1px solid #f0c9c4}
.wm-dp-cd{font-size:11.5px;font-weight:900;color:#8a6420;background:#fff4d8;border:1.5px dashed #eccf92;border-radius:10px;padding:6px 10px;margin-bottom:8px;font-variant-numeric:tabular-nums}
.wm-dp-craft{width:100%;border:0;border-radius:14px;padding:10px 0;font-size:14px;font-weight:900;cursor:pointer;color:#fff;background:linear-gradient(180deg,#ffb35c,#f79b35);border-bottom:3px solid #dd8322;-webkit-tap-highlight-color:transparent}
.wm-dp-craft:active{transform:translateY(2px);border-bottom-width:1px}
.wm-dp-craft.off{background:#efe7d6;color:#b3a284;border-bottom-color:#e0d4ba;cursor:not-allowed}
/* v0712-21 联营仓配方升级：赶集日横幅 + 目标楼小标签 + 折价划线 */
.wm-dp-mkt{font-size:12.5px;font-weight:900;color:#a35414;text-align:center;background:linear-gradient(180deg,#ffe9c4,#ffd99a);
  border:1.5px dashed #f0b45e;border-radius:12px;padding:8px 10px;margin-bottom:8px;animation:wmDpMkt 1.8s ease-in-out infinite}
@keyframes wmDpMkt{0%,100%{box-shadow:0 2px 8px rgba(220,140,40,.18)}50%{box-shadow:0 2px 12px 2px rgba(240,160,50,.35)}}
.wm-dp-rc .tg{flex-shrink:0;font-size:9.5px;font-weight:900;border-radius:999px;padding:2px 7px;white-space:nowrap;line-height:1.5}
.wm-dp-rc .tg.teashop{background:#eaf4fb;color:#3d7ba6;border:1px solid #bcd9ec}
.wm-dp-rc .tg.inn{background:#f2ecfb;color:#7a5cb0;border:1px solid #d7c9ef}
.wm-dp-rc .tg.alchemy{background:#eefaf0;color:#3f7a44;border:1px solid #bfe3bd}
.wm-dp-chip s{color:#b3a284;font-weight:800;margin-right:2px;text-decoration:line-through}
.wm-dp-chip.sale{border-style:dashed;box-shadow:0 0 0 1px rgba(240,160,50,.25)}
.wm-dp-chip.sale.ok{background:#fdf6df;color:#a3701a;border-color:#eccf92}
.wm-dp-chip.sale.ok b{color:#c25a12}
/* ── P3 · 今日时局横幅（顶栏下小胶囊浮层） ── */
.wm-evt-wrap{position:absolute;top:calc(56px + env(safe-area-inset-top,0px));left:0;right:0;z-index:7;display:flex;justify-content:center;pointer-events:none}
.wm-evt{pointer-events:auto;max-width:68%;background:rgba(255,250,238,.9);border-radius:16px;padding:5px 12px 5px 10px;box-shadow:0 2px 8px rgba(60,40,10,.22);cursor:pointer;backdrop-filter:blur(3px);animation:wmEvtIn .5s ease-out;-webkit-tap-highlight-color:transparent}
.wm-evt-hd{display:flex;align-items:center;justify-content:center;gap:6px}
.wm-evt .em{font-size:15px;line-height:1}
.wm-evt .nm{font-size:12px;font-weight:900;color:#6b5335;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-evt .cv{flex-shrink:0;font-size:10px;color:#bda887;font-weight:900}
.wm-evt-ds{display:none;font-size:11.5px;font-weight:700;color:#8a6f4d;line-height:1.55;padding:4px 2px 2px;text-align:center}
.wm-evt.open .wm-evt-ds{display:block}
/* 繁荣贡献度 HUD */
.wm-contrib{position:absolute;top:calc(88px + env(safe-area-inset-top,0px));left:10px;right:10px;z-index:7;background:rgba(30,20,10,.82);border-radius:12px;padding:8px 12px;pointer-events:auto;box-shadow:0 2px 10px rgba(0,0,0,.3);backdrop-filter:blur(4px)}
.wm-contrib-bar{display:flex;align-items:center;gap:8px}
.wm-contrib-side{font-size:12px;font-weight:900;color:#fff;white-space:nowrap;min-width:44px}
.wm-contrib-side:first-child{text-align:right}
.wm-contrib-side:last-child{text-align:left}
.wm-contrib-track{flex:1;display:flex;height:8px;border-radius:4px;overflow:hidden;background:rgba(255,255,255,.15)}
.wm-contrib-fill.wolf{background:linear-gradient(90deg,#5b8def,#3b6fd4);border-radius:4px 0 0 4px}
.wm-contrib-fill.rabbit{background:linear-gradient(90deg,#e879a0,#c95a7e);border-radius:0 4px 4px 0}
.wm-contrib-note{font-size:10px;color:rgba(255,255,255,.55);text-align:center;margin-top:4px}
.wm-contrib-close{position:absolute;top:2px;right:6px;background:none;border:none;color:rgba(255,255,255,.4);font-size:12px;cursor:pointer;padding:2px 4px}
@media(max-width:480px){
  .wm-contrib{top:calc(80px + env(safe-area-inset-top,0px));left:6px;right:6px;padding:6px 10px}
  .wm-contrib-side{font-size:11px;min-width:40px}
}
.wm-evt.k-warm{background:rgba(255,241,224,.92)}
.wm-evt.k-market{background:rgba(255,247,216,.92)}
.wm-evt.k-visitor{background:rgba(230,246,243,.92)}
.wm-evt.k-cozy{background:rgba(255,235,242,.92)}
.wm-evt.k-calm{background:rgba(240,246,231,.92)}
@keyframes wmEvtIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
/* ── P3 · 足迹抽屉标题行「📖 本周」按钮 ── */
.wm-feed-t{display:flex;align-items:center;gap:8px}
.wm-feed-t .tt{flex:1}
.wm-week-btn{flex-shrink:0;border:1.5px solid #eccf92;background:#fff8e6;color:#8a6420;font-size:11px;font-weight:900;border-radius:999px;padding:4px 10px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-week-btn:active{transform:scale(.94);background:#fff1cf}
/* ── P3 · 家园周报信笺《我们家园这一周》（body 级浮层，低于 cgModal 的 9999） ── */

/* ── P2 · ⚖️ 兔兔裁决簿 ── */
.wm-drama-ov{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9982;background:rgba(50,35,15,.5);display:flex;align-items:center;justify-content:center;padding:22px 18px;animation:wmDpFade .18s ease-out}
.wm-drama-card{width:100%;max-width:400px;max-height:84vh;max-height:84dvh;display:flex;flex-direction:column;overflow:hidden;background:linear-gradient(180deg,#fffdf7,#fff2f6);border:1.5px solid #f0ccd9;border-radius:24px;box-shadow:0 14px 38px rgba(50,35,10,.42);animation:wmPetIn .26s cubic-bezier(.34,1.56,.64,1)}
.wm-drama-hd{display:flex;align-items:flex-start;gap:12px;padding:17px 15px 12px;border-bottom:1.5px dashed #efd8df;color:#75485a}.wm-drama-hd>div{flex:1}.wm-drama-hd b{display:block;font-size:17px;font-weight:900}.wm-drama-hd i{display:block;margin-top:3px;font-size:10.5px;font-style:normal;font-weight:700;color:#b68796}.wm-drama-hd button{border:0;width:30px;height:30px;border-radius:50%;background:#fae6ed;color:#a46279;font-size:14px;font-weight:900;cursor:pointer}
.wm-drama-body{overflow-y:auto;padding:14px 15px 6px}.wm-drama-case{background:#fff;border:1.5px solid #f1dfe5;border-radius:17px;padding:14px 14px 13px;box-shadow:0 2px 8px rgba(160,90,115,.09)}.wm-drama-case .em{display:block;font-size:29px;line-height:1;margin-bottom:5px}.wm-drama-case strong{display:block;font-size:15px;color:#694651}.wm-drama-case p,.wm-drama-result p{margin:7px 0 0;font-size:13px;font-weight:700;line-height:1.72;color:#725a62}
.wm-drama-prompt{text-align:center;margin:14px 0 8px;font-size:12.5px;font-weight:900;color:#a65b76}.wm-drama-choices{display:grid;gap:8px}.wm-drama-choices button{border:1.5px solid #f1cbd8;border-radius:14px;padding:10px 12px;text-align:left;background:#fffafa;color:#75485a;cursor:pointer}.wm-drama-choices button b{display:block;font-size:13px;font-weight:900}.wm-drama-choices button i{display:block;margin-top:3px;font-style:normal;font-size:10.5px;font-weight:700;color:#ad8190;line-height:1.4}.wm-drama-choices button:active{transform:scale(.98);background:#fff0f5}
.wm-drama-wait,.wm-drama-empty{margin:14px 0 6px;text-align:center;background:#fff9ec;border:1.5px dashed #eedbb7;border-radius:15px;padding:17px 14px;font-size:12.5px;line-height:1.75;font-weight:800;color:#96754d}.wm-drama-result{margin-top:13px;background:#fff7e9;border:1.5px solid #f1dfb9;border-radius:15px;padding:12px 13px;color:#835d2b}.wm-drama-result b{font-size:13px;font-weight:900}.wm-drama-result span{display:inline-block;margin-top:8px;border-radius:999px;padding:4px 9px;background:#fff0cf;color:#a46b14;font-size:11px;font-weight:900}.wm-drama-history{margin:14px 3px 6px;padding-top:11px;border-top:1px dashed #efd6df}.wm-drama-history>b{display:block;font-size:11px;color:#a47786}.wm-drama-history span{display:block;margin-top:5px;font-size:11px;font-weight:700;color:#8b6e76}.wm-drama-ft{text-align:center;padding:9px 16px 17px}

.wm-ch-card{width:100%;max-width:400px;max-height:80vh;max-height:80dvh;display:flex;flex-direction:column;background:linear-gradient(180deg,#fffdf6,#fdf5e3);border:1.5px solid #eadfc8;border-radius:20px;box-shadow:0 12px 34px rgba(50,35,10,.42);overflow:hidden;animation:wmChIn .24s ease-out}
@keyframes wmChIn{from{transform:translateY(16px) scale(.97);opacity:.5}to{transform:translateY(0) scale(1);opacity:1}}
.wm-ch-hd{position:relative;text-align:center;padding:18px 46px 8px}
.wm-ch-ti{font-size:16.5px;font-weight:900;color:#6b5335}
.wm-ch-wk{font-size:11px;font-weight:800;color:#b39c78;margin-top:3px;letter-spacing:1.5px;font-variant-numeric:tabular-nums;min-height:14px}
.wm-ch-x{position:absolute;top:12px;right:12px;border:0;width:30px;height:30px;border-radius:50%;background:#f3ead8;color:#8a6f4d;font-size:14px;font-weight:900;cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-ch-x:active{transform:scale(.9)}
.wm-ch-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:8px 22px 6px}
.wm-ch-paper{background:#fffcf3;border:1.5px dashed #e8dcc2;border-radius:14px;padding:16px 16px 14px;box-shadow:inset 0 1px 4px rgba(180,150,90,.14)}
.wm-ch-text{font-size:14.5px;line-height:2;color:#5d4a30;font-weight:600;text-align:justify;word-break:break-word}
.wm-ch-load{text-align:center;color:#8a7a62;font-size:13.5px;font-weight:700;line-height:1.8;padding:26px 8px}
.wm-ch-load .pen{display:inline-block;font-size:26px;animation:wmBob 1.1s ease-in-out infinite}
.wm-ch-ft{text-align:center;font-size:10.5px;font-weight:700;color:#b39c78;padding:10px 16px 14px}
/* ── P3 · 居民：住在地图上的小家人（idle 蹦跶 + 心情泡 + 名牌） ── */
.wm-res{position:absolute;z-index:3;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:2px;box-sizing:border-box;transition:transform 1.5s ease-in-out;will-change:transform}
.wm-res-b{display:block;line-height:1;filter:drop-shadow(0 2px 2px rgba(30,40,10,.35));animation:wmResBob 2.3s ease-in-out infinite}
.wm-night .wm-res-b{filter:drop-shadow(0 2px 2px rgba(0,0,20,.5)) drop-shadow(0 0 6px rgba(255,235,180,.35))}
@keyframes wmResBob{0%,100%{transform:translateY(0) scale(1,1)}50%{transform:translateY(-3px) scale(1.05,.94)}}
.wm-res-mood{position:absolute;top:-3px;right:6%;font-size:12px;line-height:1;filter:drop-shadow(0 1px 1px rgba(60,40,10,.25));animation:wmResMoodFloat 2.8s ease-in-out infinite}
@keyframes wmResMoodFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-2.5px)}}
.wm-res-nm{font-size:9px;font-weight:900;color:#6b5335;background:rgba(255,252,240,.92);border:1px solid #e8dcc2;border-radius:999px;padding:1px 6px;margin-top:1px;white-space:nowrap;line-height:1.4;box-shadow:0 1px 2px rgba(60,40,10,.2)}
.wm-res.near .wm-res-nm{border-color:#f2a7c3;color:#b04a72;box-shadow:0 0 8px rgba(242,150,190,.75)}
.wm-res.near .wm-res-b{animation:wmResExcite .55s ease-in-out infinite}
@keyframes wmResExcite{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
/* 上下文按钮竖排：建筑「进入」+ 居民「🤚摸摸」可并存 */
.wm-ctx{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.wm-ctx-btn.wm-pet{background:linear-gradient(180deg,#ff9fc0,#f2739f);border-bottom-color:#d95a86;box-shadow:0 4px 14px rgba(200,80,130,.45);animation-delay:-.7s}
/* 右下 HUD：🏡居民名册 fab */
.wm-fab.lav{background:rgba(236,231,255,.94);color:#6a5aa8;border-bottom-color:#cfc4ef}
/* ── P3 · 摸头对话气泡（body 级浮层，低于 cgModal 的 9999） ── */
.wm-pet-ov{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9980;background:rgba(50,35,15,.42);display:flex;align-items:center;justify-content:center;padding:28px 26px;animation:wmDpFade .18s ease-out}
.wm-pet-card{position:relative;width:100%;max-width:320px;background:linear-gradient(180deg,#fffdf6,#fdf1ec);border:1.5px solid #f2ddd2;border-radius:24px;box-shadow:0 12px 34px rgba(50,35,10,.4);padding:22px 18px 18px;text-align:center;animation:wmPetIn .3s cubic-bezier(.34,1.56,.64,1)}
@keyframes wmPetIn{from{transform:translateY(20px) scale(.88);opacity:.4}to{transform:translateY(0) scale(1);opacity:1}}
.wm-pet-fx{position:absolute;font-size:15px;pointer-events:none;opacity:0;animation:wmPetFxUp 1.6s ease-out .15s infinite}
.wm-pet-fx.f1{left:16%;top:26%}
.wm-pet-fx.f2{right:14%;top:20%;animation-delay:.6s}
.wm-pet-fx.f3{right:26%;top:34%;animation-delay:1s;font-size:12px}
@keyframes wmPetFxUp{0%{opacity:0;transform:translateY(4px) scale(.6)}22%{opacity:1;transform:translateY(-4px) scale(1.05)}100%{opacity:0;transform:translateY(-26px) scale(.9)}}
.wm-pet-ava{font-size:52px;line-height:1.15;filter:drop-shadow(0 3px 4px rgba(60,40,10,.28));animation:wmResBob 2s ease-in-out infinite}
.wm-pet-nm{font-size:14px;font-weight:900;color:#6b5335;margin-top:2px}
.wm-pet-line{position:relative;background:#fff;border:1.5px solid #f2ddd2;border-radius:16px;padding:12px 14px;margin:12px 4px 0;font-size:14px;font-weight:700;color:#5d4a30;line-height:1.75;box-shadow:0 2px 8px rgba(180,120,90,.14)}
.wm-pet-line:before{content:'';position:absolute;top:-7px;left:50%;transform:translateX(-50%) rotate(45deg);width:12px;height:12px;background:#fff;border-left:1.5px solid #f2ddd2;border-top:1.5px solid #f2ddd2}
.wm-pet-chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:11px}
.wm-pet-chip{font-size:11.5px;font-weight:900;color:#8a6f4d;background:#fbf4e4;border:1px solid #eadfc8;border-radius:999px;padding:3px 10px;font-variant-numeric:tabular-nums}
.wm-pet-chip.pk{color:#b04a72;background:#ffe3ee;border-color:#f2b7cd;animation:wmResMoodFloat 1.6s ease-in-out infinite}
.wm-pet-ok{margin-top:14px;border:0;border-radius:999px;padding:10px 34px;font-size:14px;font-weight:900;cursor:pointer;color:#fff;background:linear-gradient(180deg,#ff9fc0,#f2739f);border-bottom:3px solid #d95a86;box-shadow:0 4px 14px rgba(200,80,130,.4);-webkit-tap-highlight-color:transparent}
.wm-pet-ok:active{transform:translateY(2px);border-bottom-width:1px}
/* ── P3 · 🏡居民名册（body 级底部浮层） ── */
.wm-rs-ov{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9980;background:rgba(50,35,15,.45);display:flex;align-items:flex-end;justify-content:center;animation:wmDpFade .18s ease-out}
.wm-rs-card{width:100%;max-width:480px;max-height:76vh;max-height:76dvh;display:flex;flex-direction:column;background:#fffcf3;border-radius:22px 22px 0 0;box-shadow:0 -8px 28px rgba(50,35,10,.35);animation:wmDpUp .22s ease-out}
.wm-rs-loading{text-align:center;color:#8a7a62;font-size:13.5px;font-weight:700;padding:34px 16px}
.wm-rs-hd{display:flex;align-items:baseline;gap:8px;padding:15px 16px 9px;border-bottom:1.5px dashed #efe3cb}
.wm-rs-hd .ti{font-size:17px;font-weight:900;color:#6b5335}
.wm-rs-hd .su{flex:1;font-size:11.5px;font-weight:800;color:#b39c78;font-variant-numeric:tabular-nums}
.wm-rs-x{align-self:center;flex-shrink:0;border:0;width:30px;height:30px;border-radius:50%;background:#f3ead8;color:#8a6f4d;font-size:14px;font-weight:900;cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-rs-x:active{transform:scale(.9)}
.wm-rs-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:10px 16px calc(18px + env(safe-area-inset-bottom,0px))}
.wm-rs-row{display:flex;align-items:center;gap:11px;background:#fff;border:1.5px solid #eee3cc;border-radius:16px;padding:10px 12px;margin-bottom:8px}
.wm-rs-row .av{flex-shrink:0;width:42px;height:42px;border-radius:50%;background:#fbf4e4;display:flex;align-items:center;justify-content:center;font-size:24px;box-shadow:inset 0 0 0 2px #fff,0 1px 3px rgba(60,40,10,.15)}
.wm-rs-row .mid{flex:1;min-width:0}
.wm-rs-row .nm{font-size:14px;font-weight:900;color:#5d4a30;display:flex;align-items:center;gap:6px}
.wm-rs-row .tr{font-size:10px;font-weight:800;color:#8a6f4d;background:#fbf4e4;border:1px solid #eadfc8;border-radius:999px;padding:1px 7px}
.wm-rs-bar{height:7px;background:#f3ead8;border-radius:999px;margin:5px 0 4px;overflow:hidden}
.wm-rs-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#ffb1cd,#f2739f);transition:width .4s ease}
.wm-rs-row .st{font-size:11px;font-weight:700;color:#8a7a62;font-variant-numeric:tabular-nums}
.wm-rs-row .pt{flex-shrink:0;font-size:10.5px;font-weight:900;color:#b04a72;background:#ffe9f2;border-radius:999px;padding:4px 9px;white-space:nowrap}
.wm-rs-row.lock{opacity:.72;background:#fbf7ec;border-style:dashed}
.wm-rs-row.lock .av{background:#efe9da;font-size:20px}
.wm-rs-cap{text-align:center;font-size:10.5px;font-weight:700;color:#b39c78;padding:6px 8px 2px}
/* ── P4 · 🏛️ 纪念馆（照片回忆墙，body 级浮层，低于 cgModal 的 9999） ── */
.wm-fab.sky{background:rgba(223,239,251,.94);color:#3d6f96;border-bottom-color:#b7d7ec}
.wm-fab.wm-wide{grid-column:1/-1}
.wm-mu-ov{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9980;background:rgba(50,35,15,.5);display:flex;align-items:flex-end;justify-content:center;animation:wmDpFade .18s ease-out}
.wm-mu-card{width:100%;max-width:480px;max-height:86vh;max-height:86dvh;display:flex;flex-direction:column;background:linear-gradient(180deg,#fffdf6,#fdf5e8);border-radius:22px 22px 0 0;box-shadow:0 -8px 28px rgba(50,35,10,.35);animation:wmDpUp .22s ease-out}
.wm-mu-loading{text-align:center;color:#8a7a62;font-size:13.5px;font-weight:700;padding:34px 16px}
.wm-mu-hd{position:relative;padding:15px 48px 10px 18px;border-bottom:1.5px dashed #efe3cb}
.wm-mu-hd .ti{font-size:17px;font-weight:900;color:#6b5335}
.wm-mu-hd .su{font-size:11.5px;font-weight:800;color:#b39c78;margin-top:3px;font-variant-numeric:tabular-nums}
.wm-mu-x{position:absolute;top:15px;right:12px;border:0;width:30px;height:30px;border-radius:50%;background:#f3ead8;color:#8a6f4d;font-size:14px;font-weight:900;cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-mu-x:active{transform:scale(.9)}
.wm-mu-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 15px calc(18px + env(safe-area-inset-bottom,0px))}
.wm-mu-empty{text-align:center;color:#a8977c;font-size:13px;font-weight:700;line-height:2.1;background:#fbf6e9;border:1.5px dashed #e8dcc2;border-radius:16px;padding:26px 16px}
.wm-mu-empty .ic{font-size:34px;line-height:1.4;display:inline-block}
.wm-mu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 11px;padding:2px 2px 0}
.wm-mu-shot{background:#fff;border:1px solid #eee3cc;border-radius:6px;padding:7px 7px 9px;box-shadow:0 3px 10px rgba(60,40,10,.16);cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-mu-shot:nth-child(odd){transform:rotate(-1.3deg)}
.wm-mu-shot:nth-child(even){transform:rotate(1.2deg)}
.wm-mu-shot:active{transform:scale(.95)}
.wm-mu-ph{position:relative;border-radius:4px;overflow:hidden;background:#f3ead8}
.wm-mu-ph img{display:block;width:100%;height:128px;object-fit:cover}
.wm-mu-who{position:absolute;top:5px;left:5px;font-size:13px;line-height:1;background:rgba(255,252,240,.92);border-radius:50%;padding:3px 4px;box-shadow:0 1px 3px rgba(60,40,10,.28)}
.wm-mu-dt{font-size:10px;font-weight:800;color:#b39c78;margin-top:6px;font-variant-numeric:tabular-nums;letter-spacing:.5px}
.wm-mu-cap{font-size:11.5px;font-weight:700;color:#6b5335;line-height:1.55;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.wm-mu-ft{text-align:center;font-size:10.5px;font-weight:700;color:#b39c78;padding:14px 8px 2px}
/* ── P3 · 🏅 家园图鉴卡片 ── */
.wm-col-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 9px;padding:0 2px}
.wm-col-card{background:#fff;border:1.5px solid #eee3cc;border-radius:14px;padding:11px 10px 10px;text-align:center}
.wm-col-card.done{background:linear-gradient(180deg,#f9fcf2,#f2f9e3);border-color:#d4e8b8}
.wm-col-card.ready{border-color:#f2b7cd;box-shadow:0 0 12px rgba(240,150,190,.35)}
.wm-col-card .em{display:block;font-size:26px;line-height:1.2}.wm-col-card b{display:block;font-size:12px;font-weight:900;color:#6b5335;margin:3px 0 1px}.wm-col-card i{display:block;font-style:normal;font-size:10px;font-weight:700;color:#a2895f;line-height:1.35}.wm-col-bar{height:5px;background:#f3ead8;border-radius:999px;margin:6px 2px 3px;overflow:hidden}.wm-col-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#ffc1d5,#f2739f);transition:width .5s ease}.wm-col-card.done .wm-col-bar span{background:linear-gradient(90deg,#a8d5a2,#6cbe5a)}.wm-col-card u{display:block;text-decoration:none;font-size:10px;font-weight:800;color:#b39c78}
/* 放大查看（比纪念馆高一层，仍低于 cgModal 9999） */
.wm-mu-big-ov{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9985;background:rgba(30,20,8,.74);display:flex;align-items:center;justify-content:center;padding:22px 18px;animation:wmDpFade .15s ease-out}
.wm-mu-big-card{position:relative;width:100%;max-width:380px;max-height:88vh;max-height:88dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#fff;border-radius:12px;padding:12px 12px 16px;box-shadow:0 16px 44px rgba(0,0,0,.5);animation:wmPetIn .28s cubic-bezier(.34,1.56,.64,1)}
.wm-mu-big-card img{display:block;width:100%;border-radius:8px;background:#f3ead8}
.wm-mu-big-meta{display:flex;align-items:center;gap:7px;margin-top:11px;font-size:12.5px;font-weight:900;color:#8a6f4d}
.wm-mu-big-meta .em{font-size:17px;line-height:1}
.wm-mu-big-meta .wh{color:#6b5335}
.wm-mu-big-meta .dt{margin-left:auto;color:#b39c78;font-variant-numeric:tabular-nums}
.wm-mu-big-cap{margin-top:7px;font-size:14.5px;font-weight:700;color:#5d4a30;line-height:1.8;word-break:break-word}
.wm-mu-big-x{position:absolute;top:18px;right:18px;border:0;width:30px;height:30px;border-radius:50%;background:rgba(255,252,240,.92);color:#8a6f4d;font-size:14px;font-weight:900;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.3);-webkit-tap-highlight-color:transparent}
.wm-mu-big-x:active{transform:scale(.9)}

.wm-fab.rose{position:relative;background:rgba(255,224,236,.96);color:#c0416f;border-bottom-color:#f4aac6}
.wm-pb-badge{position:absolute;top:-5px;right:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#ff4d7d;color:#fff;font-size:10px;font-weight:900;line-height:16px;text-align:center;box-shadow:0 1px 4px rgba(200,20,70,.5)}
.wm-mu-tabs{display:flex;gap:7px;padding:10px 15px 0;flex-wrap:wrap;align-items:center}
.wm-mu-tab{display:inline-flex;align-items:center;gap:3px;border:1.5px solid #eaddc2;background:#fbf6e9;color:#a2895f;border-radius:999px;padding:6px 13px;font-size:12px;font-weight:800;line-height:1.3;cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap}
.wm-mu-tab.on{background:linear-gradient(180deg,#ffd9e6,#ffc6d9);color:#b23a67;border-color:#f3aac5}
.wm-mu-tab:active{transform:translateY(1px)}
.wm-mu-tabs.wm-ss-toptabs{padding:10px 15px 6px;border-bottom:1px solid rgba(210,190,150,.55);gap:8px}
.wm-mu-tabs.wm-ss-subtabs{padding:8px 15px 4px;gap:8px}
.wm-ss-topbtn{background:rgba(244,234,214,.7);color:#8b6c3d;padding:7px 14px;font-size:13px}
.wm-ss-topbtn.on{background:linear-gradient(180deg,#f8e7bb,#f3d892);color:#6c4a12;border-color:#d7b76a;box-shadow:0 4px 12px rgba(120,88,25,.18)}
.wm-ss-subbtn{background:rgba(255,255,255,.78);color:#8c6d47;padding:6px 13px;font-size:12px}
.wm-ss-subbtn.on{background:#fff7e8;color:#6d4c16;border-color:#e1c07f;box-shadow:inset 0 0 0 1px rgba(229,193,120,.35)}
.wm-mu-shot.solo{width:64%;max-width:230px;margin:0 auto 14px}
.wm-pc{position:relative;background:linear-gradient(180deg,#fff8fb,#fff1f6);border:1.5px solid #f4d3e0;border-radius:14px;padding:13px 15px 12px;margin:0 auto 14px;max-width:400px;box-shadow:0 4px 14px rgba(180,60,110,.14)}
.wm-pc.collected{opacity:.5;transition:opacity .5s}
.wm-pc-top{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:900;color:#b8608a;margin-bottom:8px}
.wm-pc-top .em{font-size:17px;line-height:1}
.wm-pc-top .dt{color:#c99;font-variant-numeric:tabular-nums;letter-spacing:.5px}
.wm-pc-top .st{margin-left:auto;background:#ffe4ef;color:#c05480;border-radius:999px;padding:2px 9px;font-size:11px}
.wm-pc-img{border-radius:10px;overflow:hidden;margin-bottom:9px;background:#fbeaf1}
.wm-pc-img img{display:block;width:100%;max-height:260px;object-fit:cover}
.wm-pc-line{font-size:14.5px;font-weight:700;color:#6a4a58;line-height:1.9;word-break:break-word}
.wm-pc-sign{text-align:right;font-size:13px;margin-top:6px;color:#c07a98;font-weight:900}
.wm-pc-act{text-align:center;margin-top:11px}
.wm-mu-tag{position:absolute;top:5px;right:5px;font-size:10px;font-weight:900;background:rgba(80,140,220,.92);color:#fff;border-radius:999px;padding:2px 7px;box-shadow:0 1px 3px rgba(30,60,120,.4)}
.wm-decree{background:linear-gradient(180deg,#fff6ea,#fdeccf);border:1.5px solid #e8c98c;border-radius:14px;padding:12px 15px;margin:0 auto 14px;max-width:400px;box-shadow:0 4px 14px rgba(150,100,20,.16)}
.wm-decree-top{display:flex;align-items:center;gap:7px;margin-bottom:7px}
.wm-decree-top .em{font-size:17px;line-height:1}
.wm-decree-top .ti{font-size:14px;font-weight:900;color:#8a5a12}
.wm-decree-top .dt{margin-left:auto;font-size:11px;color:#b89a5e;font-variant-numeric:tabular-nums}
.wm-decree-body{font-size:13px;font-weight:600;color:#6d5326;line-height:1.75;word-break:break-word}
.wm-mu-expedition{background:linear-gradient(180deg,#edf5ee,#d9eadb);border-color:#9fc5a7}
.wm-mu-expedition .wm-decree-top .ti{color:#356345}
/* ── P4 · 🎨 装饰层：地图摆件（观赏不挡点击）+ 建设选盘 ── */
.wm-dec{position:absolute;z-index:1;pointer-events:none;display:flex;align-items:flex-end;justify-content:center;padding-bottom:9%;box-sizing:border-box}
.wm-dec-sh{position:absolute;bottom:6%;left:30%;right:30%;height:9%;background:rgba(60,90,30,.26);border-radius:50%;filter:blur(1px)}
.wm-night .wm-dec-sh{background:rgba(0,0,25,.4)}
.wm-dec-b{position:relative;display:block;line-height:1;filter:drop-shadow(0 2px 2px rgba(40,50,10,.32));animation:wmDecSway 3.2s ease-in-out infinite;transform-origin:50% 100%}
.wm-night .wm-dec-b{filter:drop-shadow(0 2px 2px rgba(0,0,20,.45)) drop-shadow(0 0 6px rgba(255,225,160,.35))}
@keyframes wmDecSway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
/* 🎨工具下已摆装饰小幅摇晃提示「可点格撤除」 */
.wm-dec.rm .wm-dec-b{animation:wmDecWig .55s ease-in-out infinite}
@keyframes wmDecWig{0%,100%{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(5deg) translateY(-2px)}}
/* 手绘装饰 sprite（底边中心贴格底，可略向上溢出；轻摇） */
.wm-dec-img{position:relative;display:block;width:92%;height:auto;pointer-events:none;
  filter:drop-shadow(0 2px 2px rgba(40,50,10,.32));animation:wmDecSway 3.2s ease-in-out infinite;transform-origin:50% 100%}
.wm-night .wm-dec-img{filter:drop-shadow(0 2px 2px rgba(0,0,20,.45)) drop-shadow(0 0 6px rgba(255,225,160,.35))}
.wm-dec.rm .wm-dec-img{animation:wmDecWig .55s ease-in-out infinite}
/* 装饰选盘（工具坞内、工具行上方，按 cat 分组） */
.wm-dc-pal{max-height:30vh;max-height:30dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#fbf6e9;border:1.5px dashed #e8dcc2;border-radius:14px;padding:7px 9px 9px;margin-bottom:8px}
.wm-dock.build.min .wm-dc-pal{display:none}
.wm-dc-load{text-align:center;font-size:12px;font-weight:800;color:#a8977c;padding:10px 4px}
.wm-dc-cat{font-size:10.5px;font-weight:900;color:#b39c78;margin:6px 2px 4px}
.wm-dc-cat:first-child{margin-top:1px}
.wm-dc-row{display:flex;flex-wrap:wrap;gap:6px}
.wm-dc-it{border:2px solid #eadfc8;background:#fff;border-radius:12px;width:calc((100% - 24px)/5);min-width:52px;padding:6px 2px 5px;display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
.wm-dc-it .em{font-size:19px;line-height:1.15}
.wm-dc-it .nm{font-size:9.5px;font-weight:800;color:#8a6f4d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.wm-dc-it:active{transform:scale(.92)}
.wm-dc-it.on{background:#ffeef5;border-color:#f48fb1;box-shadow:0 0 0 2px rgba(244,143,177,.3)}
.wm-dc-it.on .nm{color:#b04a72}
/* ── v0712-17 · 三小人在场：对方快照小人 + 一一🍼（AI 崽） ── */
.wm-ava{position:absolute;z-index:3;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:2px;box-sizing:border-box;will-change:transform}
.wm-ava-sh{position:absolute;bottom:7%;left:24%;right:24%;height:12%;background:rgba(40,60,20,.26);border-radius:50%;filter:blur(1px)}
.wm-night .wm-ava-sh{background:rgba(0,0,25,.4)}
.wm-ava-b{position:relative;display:block;line-height:1;filter:drop-shadow(0 2px 2px rgba(30,40,10,.35));animation:wmResBob 2.6s ease-in-out infinite}
.wm-night .wm-ava-b{filter:drop-shadow(0 2px 2px rgba(0,0,20,.5)) drop-shadow(0 0 6px rgba(255,235,180,.35))}
.wm-ava-nm{font-size:9px;font-weight:900;color:#6b5335;background:rgba(255,252,240,.92);border:1px solid #e8dcc2;border-radius:999px;padding:1px 6px;margin-top:1px;white-space:nowrap;line-height:1.4;box-shadow:0 1px 2px rgba(60,40,10,.2)}
/* 对方 = 最后位置快照，不是实时 → 半透明些 + 「TA 在这」淡标签 */
.wm-ava-peer{opacity:.78}
.wm-ava-peer .wm-ava-b{animation-duration:3.4s}
.wm-ava-ago{position:absolute;top:-13px;left:50%;transform:translateX(-50%);font-size:8.5px;font-weight:800;color:#8a7a62;background:rgba(255,252,240,.85);border:1px dashed #e0d2b4;border-radius:999px;padding:1px 7px;white-space:nowrap;line-height:1.5;box-shadow:0 1px 2px rgba(60,40,10,.14)}
.wm-night .wm-ava-ago{background:rgba(255,252,240,.72)}
/* 一一🍼：轻快小蹦跶 + 粉名牌 + 温柔游走过渡 */
.wm-ava-yiyi{transition:transform 1.5s ease-in-out}
.wm-ava-yiyi .wm-ava-b{animation:wmYyBob 1.7s ease-in-out infinite}
@keyframes wmYyBob{0%,100%{transform:translateY(0) scale(1,1)}30%{transform:translateY(-4px) scale(.95,1.06)}55%{transform:translateY(0) scale(1.06,.93)}}
.wm-ava-yiyi .wm-ava-nm{color:#b04a72;border-color:#f2c9d8;background:rgba(255,244,249,.94)}
/* 走近高亮：名牌泛粉光 + 兴奋小跳 */
.wm-ava.near .wm-ava-nm{border-color:#f2a7c3;color:#b04a72;box-shadow:0 0 8px rgba(242,150,190,.75)}
.wm-ava.near .wm-ava-b{animation:wmResExcite .55s ease-in-out infinite}
/* 上下文按钮：🫶 抱抱对方 / 🤲 逗逗一一（暖橙，和进入/摸摸并存） */
.wm-ctx-btn.wm-poke{background:linear-gradient(180deg,#ffc48a,#f59a5b);border-bottom-color:#dd7f42;box-shadow:0 4px 14px rgba(220,130,60,.45)}
/* ── v0712-18 · 三小人图片头像（圆形裁切 + 白描边；加载失败 JS 回落 emoji） ── */
.wm-face{display:block;border-radius:50%;object-fit:cover;border:2px solid #fff;background:#fff;box-shadow:0 2px 5px rgba(30,40,10,.3);box-sizing:border-box}
.wm-night .wm-face{box-shadow:0 2px 5px rgba(0,0,20,.5),0 0 8px rgba(255,235,180,.4)}
.wm-face-em{display:block;line-height:1}
/* ── v0712-18 · 装饰选盘：💗价格 + 余额条 + 买不起置灰 ── */
.wm-dc-bal{font-size:11px;font-weight:900;color:#8a6f4d;background:#fff;border:1.5px solid #f2d9e2;border-radius:999px;padding:4px 10px;margin:1px 0 6px;text-align:center}
.wm-dc-bal b{color:#e05c8a}
.wm-dc-it .pr{font-size:9px;font-weight:900;color:#e05c8a;line-height:1.3;white-space:nowrap}
.wm-dc-it.off{opacity:.45;filter:grayscale(.55)}
.wm-dc-it.off .pr{color:#a8977c}
/* ── v0712-22 · 🏡 家园美观度胶囊（选盘顶部、余额条下）：分数 + 里程碑进度条 ── */
.wm-dc-beauty{background:linear-gradient(180deg,#fff,#fff6ef);border:1.5px solid #f2ddc2;border-radius:14px;padding:6px 10px 7px;margin:0 0 7px;text-align:center}
.wm-dc-bt-top{font-size:11px;font-weight:900;color:#8a6f4d;line-height:1.5}
.wm-dc-bt-top b{color:#e08a3c;font-size:12.5px}
.wm-dc-bt-bar{height:7px;background:#f3e7d2;border-radius:999px;margin:5px 6px 4px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(120,90,40,.15)}
.wm-dc-bt-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#ffcf8a,#ff9fc0);box-shadow:0 0 6px rgba(255,160,190,.6);transition:width .4s ease}
.wm-dc-bt-ms{font-size:10px;font-weight:800;color:#b39c78;line-height:1.5}
.wm-dc-bt-ms b{color:#e05c8a;font-size:11px}
.wm-dc-bt-ms.max{color:#e08a3c;font-weight:900;margin-top:3px}

/* ── v0712-19 · 新手引导浮层（body 级，盖 HUD、低于 cgModal 9999） ── */
.wm-tutor{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9950;-webkit-tap-highlight-color:transparent;animation:wmDpFade .22s ease-out}
.wm-tutor-dim{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(46,30,18,.55)}
/* 聚光洞：金色高亮框 + 超大 box-shadow 压暗四周（目标本体点亮） */
.wm-tutor-spot{position:absolute;border-radius:18px;border:3px solid #ffd98a;pointer-events:none;
  box-shadow:0 0 0 4000px rgba(46,30,18,.55);animation:wmTutorPulse 1.4s ease-in-out infinite}
@keyframes wmTutorPulse{
  0%,100%{border-color:#ffd98a;box-shadow:0 0 0 4000px rgba(46,30,18,.55),0 0 0 0 rgba(255,205,120,.0)}
  50%{border-color:#ffbf5e;box-shadow:0 0 0 4000px rgba(46,30,18,.55),0 0 16px 5px rgba(255,205,120,.8)}}
.wm-tutor-arr{position:absolute;font-size:27px;line-height:1;pointer-events:none;
  filter:drop-shadow(0 2px 5px rgba(30,15,0,.45));animation:wmBob 1s ease-in-out infinite}
/* 引导卡：暖色信纸 */
.wm-tutor-card{position:absolute;left:16px;right:16px;background:linear-gradient(180deg,#fffdf6,#fff3e2);
  border:2px solid #ffe3b3;border-radius:20px;padding:17px 16px 14px;box-shadow:0 10px 32px rgba(50,30,10,.4)}
.wm-tutor-no{position:absolute;top:-12px;left:16px;background:linear-gradient(180deg,#ffb35c,#ff9640);color:#fff;
  font-size:11px;font-weight:900;border-radius:999px;padding:3px 11px;box-shadow:0 2px 6px rgba(200,120,30,.45);letter-spacing:1px}
.wm-tutor-ti{font-size:16.5px;font-weight:900;color:#6b4a26;margin:2px 0 6px}
.wm-tutor-ds{font-size:13px;line-height:1.7;color:#8a6f4d;font-weight:600}
.wm-tutor-btns{display:flex;gap:10px;margin-top:12px;justify-content:flex-end;align-items:center}
.wm-tutor-skip{border:0;background:transparent;color:#b3a086;font-size:13px;font-weight:800;padding:9px 10px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-tutor-next{border:0;background:linear-gradient(180deg,#ffb35c,#ff9640);color:#fff;font-size:14px;font-weight:900;
  border-radius:999px;padding:10px 20px;box-shadow:0 4px 12px rgba(230,130,40,.45);border-bottom:3px solid #e07f2e;cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-tutor-next:active{transform:translateY(2px);border-bottom-width:1px}
/* 顶栏 ❔ 重看引导小按钮（和返回/时钟同款胶囊质感） */
.wm-tutor-q{pointer-events:auto;border:0;background:rgba(255,252,243,.88);color:#6b5335;font-size:13px;font-weight:900;
  width:30px;height:30px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 6px rgba(60,40,10,.22);cursor:pointer;-webkit-tap-highlight-color:transparent;backdrop-filter:blur(3px)}
.wm-tutor-q:active{transform:scale(.9)}

/* ── v0712-20 · 居民送礼 + 每日心愿 ── */
/* 走近居民的心愿小气泡（ctx 按钮上方，暖白纸片 + 粉虚线） */
.wm-ctx-wish{max-width:230px;font-size:11.5px;font-weight:900;color:#b04a72;background:rgba(255,250,244,.95);
  border:1.5px dashed #f2b7cd;border-radius:12px 12px 12px 3px;padding:5px 11px;line-height:1.5;
  box-shadow:0 2px 8px rgba(180,80,120,.2);animation:wmResMoodFloat 1.8s ease-in-out infinite}
/* 摸摸+送礼并排一行 */
.wm-ctx-duo{display:flex;gap:8px;align-items:center}
.wm-ctx-btn.wm-gift{background:linear-gradient(180deg,#ffc76e,#f5a743);border-bottom-color:#dd8b2c;box-shadow:0 4px 14px rgba(220,150,50,.45);animation-delay:-.35s}
/* 送礼选盘：底部上拉卡（同名册质感） */
.wm-gf-ov{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9980;background:rgba(50,35,15,.45);display:flex;align-items:flex-end;justify-content:center;animation:wmDpFade .18s ease-out}
.wm-gf-card{width:100%;max-width:480px;max-height:72vh;max-height:72dvh;display:flex;flex-direction:column;background:#fffcf3;border-radius:22px 22px 0 0;box-shadow:0 -8px 28px rgba(50,35,10,.35);animation:wmDpUp .22s ease-out}
.wm-gf-loading{text-align:center;color:#8a7a62;font-size:13.5px;font-weight:700;padding:34px 16px}
.wm-gf-foot{text-align:center;padding:0 0 calc(16px + env(safe-area-inset-bottom,0px))}
.wm-gf-hd{display:flex;align-items:center;gap:10px;padding:14px 16px 10px;border-bottom:1.5px dashed #efe3cb}
.wm-gf-hd .av{flex-shrink:0;width:44px;height:44px;border-radius:50%;background:#fbf4e4;display:flex;align-items:center;justify-content:center;font-size:26px;box-shadow:inset 0 0 0 2px #fff,0 1px 3px rgba(60,40,10,.15)}
.wm-gf-hd .mid{flex:1;min-width:0}
.wm-gf-hd .ti{font-size:16px;font-weight:900;color:#6b5335}
.wm-gf-hd .ws{font-size:11.5px;font-weight:900;color:#b04a72;margin-top:2px}
.wm-gf-x{flex-shrink:0;border:0;width:30px;height:30px;border-radius:50%;background:#f3ead8;color:#8a6f4d;font-size:14px;font-weight:900;cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-gf-x:active{transform:scale(.9)}
.wm-gf-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 16px calc(18px + env(safe-area-inset-bottom,0px))}
.wm-gf-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.wm-gf-it{position:relative;border:2px solid #eadfc8;background:#fff;border-radius:14px;padding:14px 2px 8px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
.wm-gf-it:active{transform:scale(.92)}
.wm-gf-it .em{font-size:24px;line-height:1.15}
.wm-gf-it .nm{font-size:10px;font-weight:800;color:#8a6f4d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.wm-gf-it .qt{font-size:9.5px;font-weight:900;color:#b39c78;font-variant-numeric:tabular-nums}
/* 命中今日心愿：粉金高亮 + 「TA 想要 ❤」小旗 + 呼吸光 */
.wm-gf-it.wish{background:#fff2f7;border-color:#f48fb1;animation:wmGfWish 1.6s ease-in-out infinite}
.wm-gf-it.wish .nm{color:#b04a72}
.wm-gf-it.wish .tag{position:absolute;top:-9px;left:50%;transform:translateX(-50%);font-size:8.5px;font-weight:900;color:#fff;
  background:linear-gradient(180deg,#ff9fc0,#f2739f);border-radius:999px;padding:2px 8px;white-space:nowrap;line-height:1.4;box-shadow:0 2px 6px rgba(200,80,130,.4)}
@keyframes wmGfWish{0%,100%{box-shadow:0 0 0 0 rgba(244,143,177,.0)}50%{box-shadow:0 0 12px 3px rgba(244,143,177,.55)}}
.wm-gf-empty{text-align:center;font-size:13px;font-weight:700;color:#8a7a62;line-height:1.8;padding:26px 10px}
.wm-gf-empty .ic{font-size:34px;line-height:1.4}
.wm-gf-cap{text-align:center;font-size:10.5px;font-weight:700;color:#b39c78;padding:10px 8px 2px}
/* 送礼结果气泡：命中心愿加撒 💗✨ + 卡片泛粉光；回赠单独一行惊喜 */
.wm-pet-fx.f4{left:24%;top:14%;animation-delay:.3s;font-size:17px}
.wm-pet-fx.f5{left:10%;top:44%;animation-delay:.85s;font-size:13px}
.wm-pet-fx.f6{right:10%;top:46%;animation-delay:1.25s;font-size:16px}
.wm-pet-card.wm-gf-wow{border-color:#f4a9c4;animation:wmPetIn .3s cubic-bezier(.34,1.56,.64,1),wmGfWow 1.8s ease-in-out .3s infinite}
@keyframes wmGfWow{0%,100%{box-shadow:0 12px 34px rgba(50,35,10,.4)}50%{box-shadow:0 12px 34px rgba(50,35,10,.4),0 0 22px 6px rgba(244,143,177,.5)}}
.wm-gf-hit{display:inline-block;margin-top:7px;font-size:11px;font-weight:900;color:#fff;background:linear-gradient(180deg,#ff9fc0,#f2739f);
  border-radius:999px;padding:3px 12px;box-shadow:0 2px 8px rgba(200,80,130,.4);animation:wmResMoodFloat 1.5s ease-in-out infinite}
.wm-gf-back{margin:10px 4px 0;font-size:12.5px;font-weight:900;color:#b04a72;background:#fff0f6;border:1.5px dashed #f2b7cd;
  border-radius:12px;padding:8px 12px;line-height:1.6;animation:wmDpFade .4s ease-out}
/* 名册每居民「今日想要」一行 */
.wm-rs-wish{font-size:11px;font-weight:800;color:#b04a72;margin-top:3px}
.wm-rs-wish b{font-weight:900}

/* ── v0712-23 · 一一自主行为气泡 + 💞 狼兔团聚 ── */
/* 一一🍼头顶的小活动泡：「🛏️ 在民宿被子里打滚」（粉纸片 + 轻飘；pointer-events 随 .wm-ava 为 none，不挡路） */
.wm-yy-act{position:absolute;top:-26px;left:50%;font-size:9px;font-weight:900;color:#b04a72;
  background:rgba(255,244,249,.94);border:1.5px dashed #f2c9d8;border-radius:12px 12px 12px 3px;padding:2px 8px;
  white-space:nowrap;line-height:1.5;box-shadow:0 2px 6px rgba(180,80,120,.22);animation:wmYyActFloat 2.4s ease-in-out infinite}
@keyframes wmYyActFloat{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-3px)}}
.wm-night .wm-yy-act{background:rgba(255,244,249,.85)}
/* 逗逗气泡里「一一今天在干嘛」小行（复用 pet 气泡卡内） */
.wm-yy-doing{display:inline-block;margin-top:8px;font-size:11.5px;font-weight:900;color:#b04a72;background:#fff0f6;
  border:1.5px dashed #f2b7cd;border-radius:999px;padding:4px 12px;line-height:1.5}
/* 💞 团聚小胶囊：顶栏下居中浮着（有时局横幅时往下让一让），呼吸粉光，不挡点击 */
.wm-ru-wrap{position:absolute;top:calc(94px + env(safe-area-inset-top,0px));left:0;right:0;z-index:7;display:flex;justify-content:center;pointer-events:none}
.wm-ru-wrap.below-evt{top:calc(128px + env(safe-area-inset-top,0px))}
.wm-ru-pill{font-size:11px;font-weight:900;color:#b04a72;background:rgba(255,240,246,.92);border:1.5px solid #f2b7cd;
  border-radius:999px;padding:4px 13px;box-shadow:0 2px 8px rgba(200,80,130,.28);backdrop-filter:blur(3px);
  animation:wmRuIn .5s ease-out,wmRuGlow 2.2s ease-in-out .5s infinite}
@keyframes wmRuIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes wmRuGlow{0%,100%{box-shadow:0 2px 8px rgba(200,80,130,.28)}50%{box-shadow:0 2px 8px rgba(200,80,130,.28),0 0 14px 3px rgba(244,143,177,.55)}}
.wm-night .wm-ru-pill{background:rgba(255,240,246,.85)}

/* ── v0712-24 · 🏛️ 纪念馆：📊 家园小统计 + 🌱 里程碑时间线 ── */
.wm-mu-st-lead{text-align:center;font-size:12px;font-weight:800;color:#a2895f;margin:2px 6px 12px;line-height:1.65}
.wm-mu-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 2px}
.wm-mu-stat{background:linear-gradient(180deg,#fff,#fdf5e8);border:1.5px solid #efe2c8;border-radius:16px;padding:13px 8px 11px;display:flex;flex-direction:column;align-items:center;gap:3px;box-shadow:0 3px 10px rgba(60,40,10,.1);animation:wmDpFade .3s ease-out}
.wm-mu-stat .em{font-size:23px;line-height:1.2;filter:drop-shadow(0 1px 2px rgba(60,40,10,.15))}
.wm-mu-stat .num{font-size:23px;font-weight:900;color:#e0743c;line-height:1.2;font-variant-numeric:tabular-nums}
.wm-mu-stat .num i{font-style:normal;font-size:11.5px;font-weight:900;color:#b39c78;margin-left:2px}
.wm-mu-stat .lb{font-size:11px;font-weight:800;color:#8a6f4d;line-height:1.4}
/* 单数张时最后一张横躺满行：emoji+数字+文案一排 */
.wm-mu-stat.wide{grid-column:1/-1;flex-direction:row;justify-content:center;gap:9px;padding:11px 8px}
.wm-mu-stat.wide .em{font-size:20px}
.wm-mu-stat.wide .num{font-size:20px}
/* 时间线：左侧一根暖粉渐变线，圆点骑在线上 */
.wm-mu-tl{position:relative;padding:4px 2px 2px 6px}
.wm-mu-tl:before{content:'';position:absolute;left:17.5px;top:14px;bottom:14px;width:3px;border-radius:99px;background:linear-gradient(180deg,#ffb9d2,#f6dfae 68%,#efe3cb)}
.wm-mu-tl-it{position:relative;display:flex;align-items:center;gap:11px;padding:8px 2px}
.wm-mu-tl-it .dot{position:relative;z-index:1;flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:900;background:#f6efdd;border:2px solid #ddcfae;color:transparent;box-sizing:border-box}
.wm-mu-tl-it .bd{flex:1;min-width:0}
.wm-mu-tl-it .lb{font-size:13.5px;font-weight:900;color:#b3a086;line-height:1.45}
.wm-mu-tl-it .dt{font-size:10.5px;font-weight:800;color:#c4b394;margin-top:1px;font-variant-numeric:tabular-nums;letter-spacing:.4px}
.wm-mu-tl-it .day{flex:0 0 auto;font-size:10px;font-weight:900;color:#b3a086;background:#f6efdd;border-radius:999px;padding:2px 9px;font-variant-numeric:tabular-nums}
/* 已达成：粉光点亮 ✓ + 文案回暖 */
.wm-mu-tl-it.ok .dot{background:linear-gradient(180deg,#ffb3cd,#f2739f);border-color:#fff;color:#fff;box-shadow:0 0 10px 2px rgba(244,143,177,.55)}
.wm-mu-tl-it.ok .lb{color:#6b5335}
.wm-mu-tl-it.ok .dt{color:#b39c78}
.wm-mu-tl-it.ok .day{background:#ffe4ef;color:#c05480}
/* 「📍今天」小卡：卡在最后一个点亮和下一个约定之间，粉虚线 + 心形骑线 + 进度条 */
.wm-mu-tl-now{position:relative;margin:5px 0 7px 38px;background:#fff0f6;border:1.5px dashed #f2b7cd;border-radius:14px;padding:9px 12px 10px;animation:wmDpFade .3s ease-out}
.wm-mu-tl-now:before{content:'💗';position:absolute;left:-31px;top:calc(50% - 8px);font-size:16px;line-height:1;filter:drop-shadow(0 0 6px rgba(244,143,177,.85));animation:wmResMoodFloat 1.8s ease-in-out infinite}
.wm-mu-tl-now .pin{font-size:12.5px;font-weight:900;color:#b04a72;line-height:1.5}
.wm-mu-tl-now .bar{height:7px;background:#ffe0ec;border-radius:999px;margin:7px 1px 6px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(180,80,120,.18)}
.wm-mu-tl-now .bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#ffcf8a,#ff9fc0);box-shadow:0 0 6px rgba(255,160,190,.65)}
.wm-mu-tl-now .hint{font-size:11px;font-weight:800;color:#c4708f;line-height:1.55}
.wm-mu-tl-now .hint b{color:#e0447e;font-size:12.5px;font-variant-numeric:tabular-nums}

/* ── v0712-25 · P7 🏆 家园繁荣榜 ── */
/* HUD 按钮：香槟金（和纪念馆并排第 3 行） */
.wm-act-panel .wm-fab.raid{background:rgba(232,244,255,.96);color:#356a9d;border-bottom-color:#b6d6ee;flex-direction:column;gap:2px;padding:8px 11px}
.wm-act-panel .wm-fab.raid u{display:block;max-width:94px;font-size:9.5px;font-weight:800;color:#7a93ad;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-fab.camp{background:rgba(234,248,225,.96);color:#577c35;border-bottom-color:#bfd7a0}
.wm-front-wrap{position:absolute;top:calc(94px + env(safe-area-inset-top,0px));left:0;right:0;z-index:7;display:flex;justify-content:center;pointer-events:none}
.wm-front-wrap.below-evt{top:calc(128px + env(safe-area-inset-top,0px))}
.wm-front-alert{pointer-events:auto;display:flex;align-items:center;gap:10px;max-width:min(92vw,360px);border:0;border-radius:18px;padding:8px 12px;background:linear-gradient(180deg,rgba(255,244,235,.98),rgba(255,234,222,.96));box-shadow:0 6px 18px rgba(120,55,30,.24);cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-front-alert .em{font-size:18px;line-height:1;animation:wmResMoodFloat 1.2s ease-in-out infinite}
.wm-front-alert .bd{flex:1;display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.wm-front-alert .bd b{font-size:12.5px;color:#8f4728;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-front-alert .bd i{font-style:normal;font-size:10.5px;font-weight:800;color:#b17657;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.wm-front-alert .go{flex-shrink:0;font-size:11px;font-weight:900;color:#c55f39}
.wm-front-pulse{position:absolute;z-index:2;pointer-events:none}
.wm-front-pulse i{display:block;width:100%;height:100%;border-radius:999px;background:linear-gradient(90deg,rgba(240,88,72,.08),rgba(224,52,44,.88),rgba(240,88,72,.08));box-shadow:0 0 18px rgba(224,52,44,.45);animation:wmFrontPulse 1.15s ease-in-out infinite}
.wm-front-pulse.north,.wm-front-pulse.south{left:14%;right:14%;height:9px}
.wm-front-pulse.north{top:10px}.wm-front-pulse.south{bottom:12px}
.wm-front-pulse.east,.wm-front-pulse.west{top:18%;bottom:18%;width:9px}
.wm-front-pulse.east{right:10px}.wm-front-pulse.west{left:10px}
.wm-front-pulse.east i,.wm-front-pulse.west i{background:linear-gradient(180deg,rgba(240,88,72,.08),rgba(224,52,44,.88),rgba(240,88,72,.08))}
@keyframes wmFrontPulse{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}
.wm-outpost-wrap{position:absolute;right:12px;top:50%;transform:translateY(-50%);z-index:6;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.wm-outpost-list{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.wm-outpost-chip{display:flex;align-items:center;gap:8px;max-width:138px;border:0;border-radius:16px 0 0 16px;padding:7px 10px;background:rgba(255,252,244,.96);box-shadow:0 4px 12px rgba(70,45,15,.2);cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-outpost-chip .em{font-size:16px;line-height:1}
.wm-outpost-chip .bd{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.wm-outpost-chip .bd b{font-size:11px;color:#6b5335;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:98px}
.wm-outpost-chip .bd i{font-style:normal;font-size:9px;font-weight:800;color:#9b8767;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:98px}
.wm-outpost-chip.go{background:linear-gradient(180deg,rgba(238,247,255,.97),rgba(223,239,251,.96))}
.wm-outpost-chip.lock,.wm-outpost-chip.cap,.wm-outpost-chip.dim{opacity:.92}
.wm-outpost{display:flex;align-items:center;gap:8px;max-width:132px;border:0;border-radius:18px 0 0 18px;padding:9px 10px;background:linear-gradient(180deg,rgba(255,248,236,.96),rgba(244,235,218,.95));box-shadow:0 6px 18px rgba(70,45,15,.24);cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-outpost .bd{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.wm-outpost .bd b{font-size:12px;color:#6b5335;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:96px}
.wm-outpost .bd i{font-style:normal;font-size:10px;font-weight:800;color:#9b8767;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:96px}
/* 👑 冠军彩带横幅：金粉渐变 + 六枚小彩纸各自飘 */
.wm-ss-champ{position:relative;overflow:hidden;text-align:center;background:linear-gradient(135deg,#fff3d0,#ffe3ee);
  border:2px solid #f3cf8a;border-radius:16px;padding:14px 12px 12px;margin:0 2px 13px;box-shadow:0 4px 14px rgba(200,150,40,.22);animation:wmDpFade .3s ease-out}
.wm-ss-champ .tt{font-size:16.5px;font-weight:900;color:#a5690e;line-height:1.4;text-shadow:0 1px 0 #fff}
.wm-ss-champ .ds{font-size:11.5px;font-weight:800;color:#b98a3a;margin-top:3px;line-height:1.5}
.wm-ss-cf{position:absolute;font-size:14px;line-height:1;pointer-events:none;animation:wmSsCf 2.2s ease-in-out infinite}
.wm-ss-cf.c1{left:6%;top:10%}.wm-ss-cf.c2{left:20%;top:58%;animation-delay:.4s}.wm-ss-cf.c3{left:38%;top:6%;animation-delay:.9s;font-size:11px}
.wm-ss-cf.c4{right:34%;top:60%;animation-delay:.2s;font-size:12px}.wm-ss-cf.c5{right:16%;top:8%;animation-delay:.7s}.wm-ss-cf.c6{right:5%;top:52%;animation-delay:1.1s}
@keyframes wmSsCf{0%,100%{transform:translateY(0) rotate(-8deg);opacity:.85}50%{transform:translateY(-6px) rotate(10deg);opacity:1}}
/* 排行榜行：名次 + 头像 + 名字/比例条 + 分数 */
.wm-ss-list{display:flex;flex-direction:column;gap:8px;padding:0 2px}
.wm-ss-row{display:flex;align-items:center;gap:9px;background:linear-gradient(180deg,#fff,#fdf6ea);
  border:1.5px solid #efe2c8;border-radius:15px;padding:9px 11px;box-shadow:0 2px 8px rgba(60,40,10,.08);animation:wmDpFade .3s ease-out}
.wm-ss-row .rk{flex:0 0 26px;text-align:center;font-size:19px;line-height:1.2}
.wm-ss-row .rk i{font-style:normal;font-size:13px;font-weight:900;color:#b3a086;font-variant-numeric:tabular-nums}
.wm-ss-row .em{flex:0 0 auto;font-size:22px;line-height:1.2;filter:drop-shadow(0 1px 2px rgba(60,40,10,.15))}
.wm-ss-row .bd{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.wm-ss-row .nm-line{display:flex;align-items:center;gap:6px;min-width:0}
.wm-ss-row .nm-line b{font-size:13.5px;font-weight:900;color:#6b5335;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-ss-row .tag{font-style:normal;text-decoration:none;flex:0 0 auto;font-size:9px;font-weight:900;border-radius:999px;padding:1.5px 7px;line-height:1.5;white-space:nowrap}
.wm-ss-row .tag.us{color:#fff;background:linear-gradient(180deg,#ff9fc0,#f2739f);box-shadow:0 1px 5px rgba(200,80,130,.4)}
.wm-ss-row .tag.foe{color:#c03636;background:#ffe4e0;border:1px solid #f2a49a}
.wm-ss-row .bar{height:6px;background:#f3ead8;border-radius:999px;overflow:hidden}
.wm-ss-row .bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#f6cf8a,#eab35e)}
.wm-ss-row .sc{flex:0 0 auto;font-size:15px;font-weight:900;color:#c98a2e;font-variant-numeric:tabular-nums}
.wm-ss-row .sc i{font-style:normal;font-size:9.5px;font-weight:900;color:#c4b394;margin-left:1px}
/* 我们的家：暖粉描边 + 呼吸光 + 粉条 */
.wm-ss-row.home{background:linear-gradient(180deg,#fff8fb,#ffeef5);border:2px solid #f48fb1;animation:wmDpFade .3s ease-out,wmSsHome 2s ease-in-out .3s infinite}
.wm-ss-row.home .nm-line b{color:#b04a72}
.wm-ss-row.home .bar{background:#ffe0ec}
.wm-ss-row.home .bar i{background:linear-gradient(90deg,#ffcf8a,#ff9fc0);box-shadow:0 0 6px rgba(255,160,190,.6)}
.wm-ss-row.home .sc{color:#e0447e}
@keyframes wmSsHome{0%,100%{box-shadow:0 2px 8px rgba(200,80,130,.16)}50%{box-shadow:0 2px 8px rgba(200,80,130,.16),0 0 12px 3px rgba(244,143,177,.45)}}
/* 宿敌：面色发红一点，紧咬感 */
.wm-ss-row.nm{background:linear-gradient(180deg,#fff,#fdf0ec);border-color:#eec6b8}
/* 繁荣度构成小徽章条 */
.wm-ss-sub{font-size:12px;font-weight:900;color:#8a6f4d;margin:15px 4px 8px;line-height:1.5}
.wm-ss-parts{display:flex;flex-wrap:wrap;gap:7px;padding:0 2px}
.wm-ss-part{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(180deg,#fff,#fdf5e8);
  border:1.5px solid #efe2c8;border-radius:999px;padding:4px 10px 4px 8px;box-shadow:0 2px 6px rgba(60,40,10,.08)}
.wm-ss-part .em{font-size:13px;line-height:1.2}
.wm-ss-part .lb{font-size:10.5px;font-weight:800;color:#8a6f4d}
.wm-ss-part .vl{font-size:12px;font-weight:900;color:#c98a2e;font-variant-numeric:tabular-nums}
.wm-ss-cap{font-size:10.5px;font-weight:700;color:#b39c78;margin:8px 4px 0;line-height:1.6}
/* 合作提示：粉虚线暖底，放最显眼 */
.wm-ss-tip{display:flex;align-items:flex-start;gap:8px;background:#fff0f6;border:1.5px dashed #f2b7cd;border-radius:14px;
  padding:10px 12px;margin:14px 2px 0;animation:wmDpFade .35s ease-out}
.wm-ss-tip .ic{flex:0 0 auto;font-size:17px;line-height:1.3}
.wm-ss-tip .tx{font-size:12px;font-weight:800;color:#b04a72;line-height:1.65}
/* 当前名次一句话 */
.wm-ss-rank{text-align:center;font-size:12px;font-weight:800;color:#8a6f4d;margin:11px 4px 2px;line-height:1.6}
.wm-ss-rank b{font-size:15px;font-weight:900;color:#e0743c;font-variant-numeric:tabular-nums}
.wm-ss-rank.champ b{color:#c98a2e}

/* ══════════ v0712-26 · 📋 家园手册 tab（battle-pass 日/周任务，繁荣榜面板内） ══════════ */
/* tab 条：复用 .wm-mu-tabs 胶囊，收窄一点下边距 */
.wm-ss-tabs{padding:10px 15px 2px}
/* 顶部一句引导（可带💗余额） */
.wm-hb-lead{text-align:center;font-size:12px;font-weight:800;color:#a2895f;margin:2px 6px 12px;line-height:1.65}
.wm-hb-lead b{font-weight:900;color:#e0743c;font-variant-numeric:tabular-nums}
/* 分组小标题：☀️今日 / 🗓️本周 */
.wm-hb-sub{display:flex;align-items:baseline;gap:7px;margin:14px 4px 8px}
.wm-hb-sub:first-of-type{margin-top:2px}
.wm-hb-sub b{font-size:13.5px;font-weight:900;color:#6b5335}
.wm-hb-sub i{font-style:normal;font-size:10.5px;font-weight:800;color:#c4b394;font-variant-numeric:tabular-nums;letter-spacing:.4px}
.wm-hb-none{text-align:center;color:#a8977c;font-size:12px;font-weight:700;background:#fbf6e9;border:1.5px dashed #e8dcc2;border-radius:14px;padding:16px 12px}
/* 任务行 */
.wm-hb-list{display:flex;flex-direction:column;gap:8px;padding:0 2px}
.wm-hb-row{display:flex;align-items:center;gap:9px;background:linear-gradient(180deg,#fff,#fdf6ea);
  border:1.5px solid #efe2c8;border-radius:15px;padding:9px 10px;box-shadow:0 2px 8px rgba(60,40,10,.08);animation:wmDpFade .3s ease-out}
.wm-hb-row.go{border-color:#f3aac5;background:linear-gradient(180deg,#fff,#fff0f6);box-shadow:0 3px 10px rgba(240,120,160,.16)}
.wm-hb-row.did{opacity:.62}
.wm-hb-row .em{flex:0 0 30px;text-align:center;font-size:20px;line-height:1.2;filter:drop-shadow(0 1px 2px rgba(60,40,10,.15))}
.wm-hb-row .bd{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.wm-hb-row .lb-line{display:flex;align-items:center;gap:6px;min-width:0}
.wm-hb-row .lb-line b{font-size:13px;font-weight:900;color:#6b5335;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-hb-row .rw{flex:0 0 auto;text-decoration:none;font-size:10.5px;font-weight:900;color:#c05480;background:#ffe4ef;border-radius:999px;padding:1px 7px;font-variant-numeric:tabular-nums}
.wm-hb-row .pg-line{display:flex;align-items:center;gap:7px}
.wm-hb-row .bar{flex:1;height:7px;border-radius:99px;background:#f3ead8;overflow:hidden}
.wm-hb-row .bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#ffc06e,#f7a04a);transition:width .3s ease}
.wm-hb-row .bar.full i{background:linear-gradient(90deg,#ffa9c8,#f2739f)}
.wm-hb-row .pg{flex:0 0 auto;font-size:10.5px;font-weight:900;color:#b39c78;font-variant-numeric:tabular-nums}
/* 状态按钮：go 亮粉可点 / off 未完成置灰 / did 已领 */
.wm-hb-btn{flex:0 0 auto;border:0;border-radius:999px;padding:7px 13px;font-size:12px;font-weight:900;
  cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap}
.wm-hb-btn.go{background:linear-gradient(180deg,#ff9fc3,#f2739f);color:#fff;box-shadow:0 3px 8px rgba(242,115,159,.4)}
.wm-hb-btn.go:active{transform:scale(.93)}
.wm-hb-btn.off{background:#f0e9d8;color:#c0b295;cursor:default}
.wm-hb-btn.did{background:#f6efdd;color:#a2895f;cursor:default;font-size:11px;padding:7px 10px}

/* ── v0712-27 · 共防招募 D1：🏠家园需求 / 🔓解锁阶梯 / 居民需求&搭子 / 🛡️守卫队 ── */
.wm-hn-list{display:flex;flex-direction:column;gap:7px;padding:0 2px}
.wm-hn-row{display:flex;align-items:center;gap:8px;background:linear-gradient(180deg,#fff,#fdf6ea);
  border:1.5px solid #eee3cc;border-radius:13px;padding:7px 11px}
.wm-hn-row .em{flex:0 0 auto;font-size:16px;line-height:1.2}
.wm-hn-row .lb{flex:0 0 34px;font-size:12px;font-weight:900;color:#6b5335}
.wm-hn-row .bar{flex:1;height:8px;border-radius:99px;background:#f3ead8;overflow:hidden}
.wm-hn-row .bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#a8dba0,#6cc46a);transition:width .3s ease}
.wm-hn-row .vl{flex:0 0 36px;text-align:right;font-size:12px;font-weight:900;color:#7aa858;font-variant-numeric:tabular-nums}
.wm-hn-row.low{border-color:#f0d8a0;background:linear-gradient(180deg,#fff,#fdf2dc)}
.wm-hn-row.low .bar i{background:linear-gradient(90deg,#ffd28a,#f0b050)}
.wm-hn-row.low .vl{color:#cf9430}

.wm-ul-next{text-align:center;font-size:12px;font-weight:800;color:#b04a72;background:#fff0f6;
  border:1.5px dashed #f2b7cd;border-radius:13px;padding:9px 12px;margin:0 2px 9px;line-height:1.65}
.wm-ul-next b{font-size:14px;font-weight:900;color:#e0447e;font-variant-numeric:tabular-nums}
.wm-ul-next.all{color:#7aa858;background:#f2fbe9;border-color:#c6e5ae}
.wm-ul-list{display:flex;flex-direction:column;gap:7px;padding:0 2px}
.wm-ul-step{display:flex;align-items:center;gap:9px;background:#fbf7ec;border:1.5px dashed #e5d9c0;
  border-radius:13px;padding:8px 11px;opacity:.78}
.wm-ul-step .dot{flex:0 0 auto;font-size:14px;line-height:1.2}
.wm-ul-step .em{flex:0 0 auto;font-size:18px;line-height:1.2;filter:grayscale(.7)}
.wm-ul-step .bd{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.wm-ul-step .bd b{font-size:12px;font-weight:900;color:#9b8a6c;line-height:1.4}
.wm-ul-step .bd i{font-style:normal;font-size:10.5px;font-weight:800;color:#bcab8c;font-variant-numeric:tabular-nums}
.wm-ul-step.on{background:linear-gradient(180deg,#fff,#f4fbec);border:1.5px solid #c6e5ae;opacity:1}
.wm-ul-step.on .em{filter:none}
.wm-ul-step.on .bd b{color:#5d7a3a}
.wm-ul-step.on .bd i{color:#8fb168}

/* 居民名册卡：四需求小条 + 搭子标 + 守卫标 */
.wm-rs-guard{font-size:10px;font-weight:900;color:#4a6fa5;background:#e6f0fd;border:1px solid #c2d8f2;
  border-radius:999px;padding:1px 7px;white-space:nowrap}
.wm-rs-needs{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;margin:5px 0 2px}
.wm-rs-need{display:flex;align-items:center;gap:4px;min-width:0}
.wm-rs-need .em{flex:0 0 auto;font-size:11.5px;line-height:1.2}
.wm-rs-need .bar{flex:1;height:5px;border-radius:99px;background:#f3ead8;overflow:hidden}
.wm-rs-need .bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#b6d99c,#84c46e);transition:width .3s ease}
.wm-rs-need .vl{flex:0 0 auto;font-size:9px;font-weight:900;color:#a2895f;font-variant-numeric:tabular-nums;white-space:nowrap}
.wm-rs-need.low .bar{background:#f7e9c8}
.wm-rs-need.low .bar i{background:linear-gradient(90deg,#ffd28a,#f0b050)}
.wm-rs-need.low .vl{color:#cf9430;animation:wmRsCry 1.6s ease-in-out infinite}
@keyframes wmRsCry{0%,100%{opacity:1}50%{opacity:.55}}
.wm-rs-bonds{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.wm-rs-bond{font-size:10px;font-weight:800;color:#8a6fa5;background:#f2ecfb;border:1px solid #ddd0f0;
  border-radius:999px;padding:1.5px 7px;white-space:nowrap}
.wm-rs-bond.soul{color:#b04a72;background:#ffe9f2;border-color:#f2c2d6}

/* 🛡️ 守卫队 tab */
.wm-sq-lock{text-align:center;background:#f6f1e4;border:1.5px dashed #d9cdb2;border-radius:18px;
  padding:26px 18px;margin:6px 2px;color:#9b8a6c}
.wm-sq-lock .ic{display:block;font-size:34px;margin-bottom:8px;filter:grayscale(.4)}
.wm-sq-lock .tt{font-size:14.5px;font-weight:900;color:#7d6b4c;margin-bottom:6px}
.wm-sq-lock .ds{font-size:11.5px;font-weight:700;line-height:1.7}
.wm-sq-top{display:flex;align-items:baseline;justify-content:space-between;margin:2px 4px 10px}
.wm-sq-top .n{font-size:13px;font-weight:900;color:#6b5335}
.wm-sq-top .pw{font-size:12px;font-weight:800;color:#8a6f4d}
.wm-sq-top .pw b{font-size:15px;font-weight:900;color:#e0743c;font-variant-numeric:tabular-nums}
.wm-sq-yy-lead{text-align:center;font-size:12px;font-weight:900;color:#b04a72;background:linear-gradient(180deg,#fff4f9,#ffe9f2);
  border:1.5px solid #f2b7cd;border-radius:13px;padding:8px 12px;margin:0 2px 9px;line-height:1.6}
.wm-sq-empty{text-align:center;color:#a8977c;font-size:12px;font-weight:700;background:#fbf6e9;
  border:1.5px dashed #e8dcc2;border-radius:14px;padding:18px 14px;margin:0 2px;line-height:1.7}
.wm-sq-list{display:flex;flex-direction:column;gap:8px;padding:0 2px}
.wm-sq-row{display:flex;align-items:center;gap:9px;background:linear-gradient(180deg,#fff,#fdf6ea);
  border:1.5px solid #eee3cc;border-radius:15px;padding:9px 11px}
.wm-sq-row.lead{border-color:#f0c46a;background:linear-gradient(180deg,#fffdf4,#fdf2d5);box-shadow:0 3px 10px rgba(220,160,50,.16)}
.wm-sq-row .av{flex:0 0 38px;height:38px;border-radius:50%;background:#fbf4e4;display:flex;align-items:center;
  justify-content:center;font-size:21px;box-shadow:inset 0 0 0 2px #fff,0 1px 3px rgba(60,40,10,.15)}
.wm-sq-row .bd{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.wm-sq-row .nm-line{display:flex;align-items:center;gap:6px;min-width:0}
.wm-sq-row .nm-line b{font-size:13px;font-weight:900;color:#6b5335;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-sq-row .cap-tag{font-style:normal;text-decoration:none;flex:0 0 auto;font-size:9.5px;font-weight:900;color:#a5761c;
  background:#fdeec2;border:1px solid #ecd18e;border-radius:999px;padding:1px 6px;white-space:nowrap}
.wm-sq-row .tr-tag{font-style:normal;text-decoration:none;flex:0 0 auto;font-size:9.5px;font-weight:800;color:#8a6f4d;
  background:#fbf4e4;border:1px solid #eadfc8;border-radius:999px;padding:1px 6px;white-space:nowrap}
.wm-sq-row .st{font-size:10.5px;font-weight:700;color:#8a7a62;font-variant-numeric:tabular-nums;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-sq-row .bar{display:block;height:7px;border-radius:999px;background:#efe3cd;overflow:hidden;margin-top:2px}
.wm-sq-row .bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#f3c26a,#ec9d4d)}
.wm-sq-btn{flex:0 0 auto;border:0;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900;
  cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap}
.wm-sq-btn:active{transform:scale(.93)}
.wm-sq-btn.go{background:linear-gradient(180deg,#9ec3ef,#6f9fd8);color:#fff;box-shadow:0 2px 7px rgba(90,140,200,.35)}
.wm-sq-btn.lead{background:#fdeec2;color:#a5761c;border:1px solid #ecd18e}
.wm-sq-btn.out{background:#f3ead8;color:#8a6f4d}
.wm-sq-btn.yy{background:linear-gradient(180deg,#ffb1cd,#f2739f);color:#fff;box-shadow:0 2px 7px rgba(242,115,159,.35)}
.wm-sq-acts{display:flex;gap:8px;margin:11px 2px 2px}
.wm-sq-big{flex:1;border:0;border-radius:14px;padding:11px 10px;font-size:13px;font-weight:900;
  cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap}
.wm-sq-big:active{transform:scale(.96)}
.wm-sq-big.go{background:linear-gradient(180deg,#9ec3ef,#6f9fd8);color:#fff;box-shadow:0 3px 9px rgba(90,140,200,.35)}
.wm-sq-big.match{background:linear-gradient(180deg,#ffb1cd,#f2739f);color:#fff;box-shadow:0 3px 9px rgba(242,115,159,.35)}
.wm-sq-big.off{background:#f0e9d8;color:#c0b295;cursor:default}
.wm-sq-yy{display:flex;align-items:center;gap:8px;background:#fff4f9;border:1.5px dashed #f2c2d6;
  border-radius:13px;padding:8px 11px;margin:9px 2px 0}
.wm-sq-yy .tx{flex:1;font-size:11px;font-weight:800;color:#b04a72;line-height:1.6}
.wm-sq-pick-hd{display:flex;align-items:center;gap:9px;margin:2px 2px 10px}
.wm-sq-back{flex:0 0 auto;border:0;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:900;
  background:#f3ead8;color:#8a6f4d;cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-sq-back:active{transform:scale(.93)}
.wm-sq-pick-hd .ti{font-size:13.5px;font-weight:900;color:#6b5335}
.wm-sq-match-tip{font-size:11px;font-weight:800;color:#b04a72;background:#fff0f6;border:1.5px dashed #f2b7cd;
  border-radius:13px;padding:8px 11px;margin:0 2px 9px;line-height:1.65}
.wm-sq-row.pickable{cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-sq-row.pickable:active{transform:scale(.985)}
.wm-sq-row.picked{border-color:#f48fb1;background:linear-gradient(180deg,#fff8fb,#ffeef5);box-shadow:0 3px 10px rgba(240,120,160,.18)}
.wm-sq-row .pk{flex:0 0 auto;font-size:11px;font-weight:900;color:#c9b896}
.wm-sq-row.picked .pk{color:#e0447e}

/* ============ 大世界升级 v0714：预规划分区 + 建楼面板 + 多动作互动面板 ============ */
/* 分区块：草地上淡色分区（衬在格子下、不挡点击）+ 区名标签单独层清晰可读 */
.wm-districts{position:absolute;top:0;left:0;right:0;bottom:0;z-index:0;pointer-events:none}
.wm-grid{position:relative;z-index:1}
.wm-district{position:absolute;border-radius:22px;opacity:.42;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.4),inset 0 0 40px rgba(255,255,255,.25)}
.wm-dist-lb{position:absolute;z-index:2;pointer-events:none;font-size:12px;font-weight:900;
  color:#5f4a2c;background:rgba(255,255,255,.72);border-radius:11px;padding:2px 9px;
  white-space:nowrap;box-shadow:0 1px 4px rgba(120,95,50,.16);letter-spacing:.5px}
.wm-page.building .wm-district{opacity:.6}
.wm-page.building .wm-dist-lb{background:rgba(255,255,255,.9)}

/* 工具坞：6 个工具挤一行 → 缩小一点 */
.wm-tool{max-width:70px}
.wm-tool .ic{font-size:18px}
.wm-tool .lb{font-size:10px}
.wm-done{max-width:70px}

/* 🏗️ 建楼面板 */
.wm-bp{background:#fbf7ee;border:1.5px solid #ecdfc4;border-radius:14px;padding:8px 9px;margin-bottom:8px;max-height:38vh;overflow-y:auto}
.wm-bp-hd{font-size:12px;color:#7a6038;font-weight:800;margin-bottom:7px}
.wm-bp-hd b{color:#c98a2b;font-size:14px}
.wm-bp-row{display:flex;flex-wrap:wrap;gap:7px}
.wm-bp-it{width:calc(33.33% - 5px);box-sizing:border-box;border:2px solid #ecdfc4;background:#fff;
  border-radius:12px;padding:7px 4px 6px;display:flex;flex-direction:column;align-items:center;gap:2px;
  cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-bp-it .em{font-size:22px;line-height:1}
.wm-bp-it .nm{font-size:11px;font-weight:800;color:#5f4a2c;text-align:center;line-height:1.15}
.wm-bp-it .tag{font-size:9px;font-weight:800;color:#9a8763}
.wm-bp-it.on{border-color:#7cc57e;background:#eaf6e6;box-shadow:0 0 0 2px rgba(124,197,126,.3)}
.wm-bp-it.placed{border-color:#cfe6d0;background:#f4faf3}
.wm-bp-it.placed .tag{color:#5fae6c}
.wm-bp-it.locked{opacity:.62;background:#f3efe6;border-style:dashed}
.wm-bp-it.locked .nm{color:#93866c}
.wm-bp-it.locked .tag{color:#b58a4a}

/* 🫶 互动动作面板（靠近小人弹出）*/
.wm-pkm-ov{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9980;background:rgba(30,22,14,.28);
  display:flex;align-items:flex-end;justify-content:center;padding:0 14px calc(84px + env(safe-area-inset-bottom,0px))}
.wm-pkm-card{width:100%;max-width:420px;background:#fff;border-radius:20px;padding:12px 12px 14px;
  box-shadow:0 12px 40px rgba(60,40,20,.3);animation:wmPkmUp .18s ease}
@keyframes wmPkmUp{from{transform:translateY(16px);opacity:.6}to{transform:none;opacity:1}}
.wm-pkm-hd{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.wm-pkm-hd .av{font-size:22px}
.wm-pkm-hd .nm{flex:1;font-size:15px;font-weight:900;color:#5f4a2c}
.wm-pkm-x{border:none;background:#f0e9dc;color:#8a7550;width:26px;height:26px;border-radius:50%;
  font-size:13px;font-weight:900;cursor:pointer}
.wm-pkm-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.wm-pkm-it{width:calc(20% - 7px);min-width:60px;border:2px solid #f3d9e2;background:linear-gradient(180deg,#fff,#fff6fa);
  border-radius:14px;padding:9px 2px 7px;display:flex;flex-direction:column;align-items:center;gap:3px;
  cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-pkm-it:active{transform:scale(.94)}
.wm-pkm-it .em{font-size:23px;line-height:1}
.wm-pkm-it .lb{font-size:11px;font-weight:800;color:#b0537a}

/* 🎒 给一一带东西面板 */
.wm-pkm-give{width:100%;margin-top:10px;border:none;border-radius:14px;padding:11px;
  background:linear-gradient(135deg,#ffe1ec,#fff2d9);color:#b0537a;font-size:13px;font-weight:900;
  cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:0 2px 8px rgba(220,150,180,.25)}
.wm-pkm-give:active{transform:scale(.98)}
.wm-yy-ov{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9985;background:rgba(30,22,14,.32);
  display:flex;align-items:flex-end;justify-content:center;padding:0 12px calc(20px + env(safe-area-inset-bottom,0px))}
.wm-yy-card{width:100%;max-width:420px;background:#fffdf9;border-radius:22px;padding:14px;
  box-shadow:0 14px 44px rgba(60,40,20,.34);max-height:76vh;overflow-y:auto;animation:wmPkmUp .2s ease}
.wm-yy-loading,.wm-yy-empty{text-align:center;color:#9a8763;padding:26px 10px;font-size:13px;line-height:1.7}
.wm-yy-hd{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.wm-yy-face{width:44px;height:44px;border-radius:50%;overflow:hidden;flex-shrink:0;display:flex;
  align-items:center;justify-content:center;font-size:26px;background:#fdeef4;box-shadow:0 2px 6px rgba(220,150,180,.25)}
.wm-yy-face img{width:100%;height:100%;object-fit:cover}
.wm-yy-meta{flex:1;min-width:0}
.wm-yy-nm{font-size:15px;font-weight:900;color:#5f4a2c}
.wm-yy-nm b{color:#e0447e}
.wm-yy-int{font-size:11.5px;color:#9a8763;font-weight:700;margin-top:2px}
.wm-yy-doing2{font-size:12px;color:#8a7550;background:#f7f0e4;border-radius:10px;padding:5px 9px;margin:2px 0 6px}
.wm-yy-wish{font-size:12px;color:#b5722a;background:#fff5e2;border:1px dashed #f0cd8a;border-radius:11px;padding:6px 9px;margin-bottom:6px}
.wm-yy-wish b{color:#e0447e}
.wm-yy-cap{font-size:11.5px;color:#9a8763;font-weight:800;margin-bottom:6px}
.wm-yy-cap b{color:#e0447e;font-size:14px}
.wm-yy-cat{font-size:12px;font-weight:800;color:#7a6038;margin:8px 0 5px}
.wm-yy-row{display:flex;flex-wrap:wrap;gap:7px}
.wm-yy-it{position:relative;width:calc(25% - 6px);box-sizing:border-box;border:2px solid #f0e4d0;
  background:#fff;border-radius:13px;padding:8px 3px 6px;display:flex;flex-direction:column;align-items:center;gap:2px;
  cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-yy-it:active{transform:scale(.94)}
.wm-yy-it[disabled]{opacity:.5;pointer-events:none}
.wm-yy-it .em{font-size:22px;line-height:1}
.wm-yy-it .nm{font-size:10.5px;font-weight:800;color:#5f4a2c;text-align:center;line-height:1.1}
.wm-yy-it .qty{font-size:9.5px;font-weight:800;color:#a89373}
.wm-yy-it.wish{border-color:#f4b8cf;background:linear-gradient(180deg,#fff,#fff4f8);box-shadow:0 0 0 2px rgba(240,150,180,.22)}
.wm-yy-star{position:absolute;top:-7px;right:-4px;font-size:14px}
.wm-yy-gb{font-size:12px;color:#c9772a;background:#fff6e6;border-radius:11px;padding:7px 10px;margin:8px 0 2px;line-height:1.5}

/* ===== D2 · ⚔️ 家园共防 tab ===== */
.wm-df-raid{border-radius:16px;padding:11px 12px;margin:2px 2px 12px;border:2px solid #f0d6a6;
  background:linear-gradient(180deg,#fffaf0,#fdf2dc)}
.wm-df-raid.warn{border-color:#f2b98a;background:linear-gradient(180deg,#fff5ec,#fde7d6)}
.wm-df-raid.ok{border-color:#bfe0a8;background:linear-gradient(180deg,#f6fbef,#e9f5db)}
.wm-df-raid.done-ok{border-color:#bfe0a8;background:linear-gradient(180deg,#f4fbec,#e4f3d3)}
.wm-df-raid.done-warn{border-color:#e9d3b0;background:linear-gradient(180deg,#fbf6ec,#f3ead6)}
.wm-df-raid .rt{display:flex;align-items:center;gap:8px}
.wm-df-raid .rt .em{font-size:26px;line-height:1}
.wm-df-raid .rt .tx{flex:1;font-size:13.5px;font-weight:800;color:#7a5c33}
.wm-df-raid .rt .tx b{color:#d9663a;font-size:15px}
.wm-df-raid .rt .cd{font-size:11.5px;font-weight:900;color:#c26a2c;background:#fff2dc;border-radius:9px;padding:3px 7px;white-space:nowrap}
.wm-df-raid .bar{height:9px;border-radius:6px;background:#efe3cd;overflow:hidden;margin:9px 0 6px}
.wm-df-raid .bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#8fd06a,#5db94e)}
.wm-df-raid.warn .bar i{background:linear-gradient(90deg,#f4b45f,#ec8f4d)}
.wm-df-raid.nemesis{border-color:#d98a7a;background:linear-gradient(180deg,#fdefe9,#f7ddd4)}
.wm-df-raid.nemesis .bar i{background:linear-gradient(90deg,#e8896a,#d5603f)}
.wm-df-raid.nemesis .rt .tx b{color:#c0442a}
.wm-df-raid .nem-tag{display:inline-block;font-size:10.5px;font-weight:900;color:#fff;letter-spacing:.5px;
  background:linear-gradient(90deg,#d5603f,#b8402a);border-radius:8px;padding:3px 9px;margin-bottom:8px;
  box-shadow:0 2px 6px rgba(184,64,42,.28)}
.wm-df-raid .nums{font-size:11.5px;font-weight:800;color:#8a6f47;line-height:1.6}
.wm-df-raid .nums b{color:#d9663a;font-size:14px}
.wm-df-raid .df-who{display:flex;gap:8px;margin:8px 0 6px}
.wm-df-raid .df-who span{flex:1;text-align:center;font-size:11.5px;font-weight:800;color:#a8926c;
  background:#f7efdf;border-radius:10px;padding:5px 0;border:1.5px solid #ece0c8}
.wm-df-raid .df-who span.on{color:#3e8c3a;background:#eaf7df;border-color:#bfe0a8}
.wm-df-raid .mini{font-size:10.5px;font-weight:700;color:#a8926c;margin-top:7px;line-height:1.6}
.wm-df-lanes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:9px 0 8px}
.wm-df-lane{background:rgba(255,255,255,.62);border:1.5px solid #ecdcbf;border-radius:12px;padding:7px 8px}
.wm-df-lane.active{border-color:#d97a47;background:rgba(255,247,235,.96);box-shadow:0 0 0 2px rgba(217,122,71,.12)}
.wm-df-lane .hd{font-size:10.5px;font-weight:900;color:#7e6340;line-height:1.35}
.wm-df-lane .tx{font-size:10px;font-weight:800;color:#a18965;line-height:1.35;margin-top:4px}
.wm-df-lane .bar{height:7px;border-radius:999px;background:#efe3cd;overflow:hidden;margin-top:6px}
.wm-df-lane .bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#efc16e,#e6954a)}
.wm-df-lane.active .bar i{background:linear-gradient(90deg,#e8896a,#d5603f)}
.wm-df-calm{text-align:center;border-radius:16px;padding:16px 12px;margin:2px 2px 12px;
  background:linear-gradient(180deg,#fffdf6,#f7f4e8);border:1.5px dashed #e2d6ba;
  font-size:13px;font-weight:800;color:#8a7550;line-height:1.7}
.wm-df-calm span{display:block;font-size:11px;font-weight:700;color:#a89373;margin-top:5px}
.wm-df-detail{font-size:11px;font-weight:700;color:#8a7550;background:#faf5e8;border-radius:12px;
  padding:9px 11px;margin:0 2px 8px;line-height:1.75}
.wm-df-detail b{color:#7a6038}
.wm-df-wins{font-size:12px;font-weight:800;color:#9a8763;text-align:center;margin:0 2px 10px}
.wm-df-wins b{color:#d9663a;font-size:15px}
.wm-df-sec{font-size:13px;font-weight:900;color:#7a6038;margin:12px 4px 7px}
.wm-df-manual{background:linear-gradient(180deg,#fff8f1,#f8efe4);border:1.5px solid #efd9ba;border-radius:14px;
  padding:10px 11px;margin:0 2px 10px}
.wm-df-manual-tip{font-size:11px;font-weight:800;color:#876946;line-height:1.65}
.wm-df-manual-tip b{color:#d9663a}
.wm-df-manual-stat{font-size:11px;font-weight:800;color:#a06f3f;background:#fff3e0;border-radius:10px;
  padding:7px 9px;margin-top:8px;line-height:1.5}
.wm-df-last{font-size:10.5px;font-weight:800;color:#8d7858;margin-top:8px;line-height:1.6}
.wm-df-waves{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.wm-df-wave{min-width:54px;text-align:center;border-radius:999px;padding:6px 9px;background:#f4ead9;border:1px solid #e7d6b8;
  font-size:10.5px;font-weight:900;color:#9a835f}
.wm-df-wave.done{background:#e8f4df;border-color:#b8d99d;color:#4d8c43}
.wm-df-wave.mine{box-shadow:0 0 0 2px rgba(111,159,216,.18)}

/* ── 遭遇操作板（防守亲自迎击 + 远征 v2）── */
.wm-eb-card{border-radius:14px;padding:10px 11px;margin:0 0 8px;border:1.5px solid #efd9ba;
  background:linear-gradient(180deg,#fffdf6,#fcf5e7)}
.wm-eb-card.pressure{border-color:#f2b98a;background:linear-gradient(180deg,#fff7ee,#fef0e0);
  box-shadow:0 2px 10px rgba(220,140,60,.12);animation:wmEbPulse 2.4s ease-in-out infinite}
@keyframes wmEbPulse{0%,100%{box-shadow:0 2px 10px rgba(220,140,60,.12)}50%{box-shadow:0 2px 18px rgba(220,120,30,.22)}}
.wm-eb-card-badge{font-size:10.5px;font-weight:900;color:#d9663a;margin-bottom:6px}
.wm-eb-card-body{font-size:13px;font-weight:800;color:#7a5c33;line-height:1.6}
.wm-eb-card-hint{font-size:10.5px;font-weight:800;color:#a06f3f;margin-top:7px;
  background:#fff3e0;border-radius:8px;padding:5px 8px;line-height:1.45}
.wm-eb-card-stat{font-size:10.5px;font-weight:800;color:#8a6f47;margin-top:7px;line-height:1.5}
.wm-eb-tactics{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.wm-eb-tac{flex:0 0 auto;border:1.5px solid #e7d6b8;border-radius:999px;padding:6px 11px;
  font-size:11px;font-weight:800;color:#8a6f4d;background:#faf5e8;cursor:pointer;
  -webkit-tap-highlight-color:transparent;transition:all .15s}
.wm-eb-tac:active{transform:scale(.94)}
.wm-eb-tac.on{background:linear-gradient(180deg,#f8e7bb,#f3d892);color:#6c4a12;
  border-color:#d7b76a;box-shadow:0 2px 8px rgba(180,130,45,.22)}
.wm-eb-pick-label{font-size:11px;font-weight:900;color:#7a6038;margin:8px 0 4px}
.eb-candidate.aff{border-color:#bfdba8}
.eb-candidate.rec{border-color:#f0c46a;box-shadow:0 0 0 2px rgba(240,196,106,.18)}
.eb-tag-aff{font-style:normal;text-decoration:none;flex:0 0 auto;font-size:9px;font-weight:900;
  color:#4d8c43;background:#e8f4df;border-radius:6px;padding:2px 6px}
.eb-tag-rec{font-style:normal;text-decoration:none;flex:0 0 auto;font-size:9px;font-weight:900;
  color:#a5761c;background:#fef3d5;border-radius:6px;padding:2px 6px}
.eb-tip{color:#a06f3f !important;font-style:italic}

/* D3-3 · 手动战斗演出层：规则不变，只补可见的出击场面 */
.wm-bf-ov{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9988;background:rgba(30,20,10,.5);display:flex;align-items:center;justify-content:center;
  padding:18px 14px;animation:wmDpFade .18s ease-out}
.wm-bf-card{width:100%;max-width:420px;background:linear-gradient(180deg,#fffdf7,#fbf2e5);border:1.5px solid #ecd9bb;border-radius:24px;
  padding:15px 15px 14px;box-shadow:0 16px 42px rgba(50,35,12,.34);overflow:hidden}
.wm-bf-card.wave{background:linear-gradient(180deg,#fffdf7,#fbf2e5)}
.wm-bf-card.win{background:linear-gradient(180deg,#fafff5,#edf7e4);border-color:#bfe0a8}
.wm-bf-card.lose{background:linear-gradient(180deg,#fffaf2,#f7ece0);border-color:#e7ccb0}
.wm-bf-top{display:flex;align-items:center;gap:8px;justify-content:space-between}
.wm-bf-badge{flex:0 0 auto;font-size:11px;font-weight:900;color:#fff;background:linear-gradient(90deg,#d5603f,#b8402a);
  border-radius:999px;padding:4px 10px;box-shadow:0 2px 7px rgba(184,64,42,.28)}
.wm-bf-meta{font-size:10.5px;font-weight:800;color:#a18868;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-bf-title{font-size:19px;font-weight:900;color:#6b5335;text-align:center;margin-top:10px}
.wm-bf-desc{font-size:12px;font-weight:800;color:#866948;line-height:1.7;text-align:center;margin-top:8px}
.wm-bf-arena{display:grid;grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr);align-items:center;gap:6px;margin-top:14px}
.wm-bf-side{position:relative;background:rgba(255,255,255,.72);border:1.5px solid #efe1c9;border-radius:18px;padding:12px 9px 10px;text-align:center;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}
.wm-bf-side .av{width:56px;height:56px;border-radius:50%;margin:0 auto 7px;background:#fff7e8;display:flex;align-items:center;justify-content:center;
  font-size:31px;box-shadow:inset 0 0 0 2px #fff,0 3px 10px rgba(80,60,25,.12)}
.wm-bf-side .nm{font-size:14px;font-weight:900;color:#6b5335;line-height:1.35}
.wm-bf-side .sub{font-size:10px;font-weight:800;color:#9a8564;line-height:1.55;margin-top:3px}
.wm-bf-side.hero{background:linear-gradient(180deg,#fff,#f6f2ff)}
.wm-bf-side.foe{background:linear-gradient(180deg,#fffaf7,#fdeee4)}
.wm-bf-mid{position:relative;height:82px;display:flex;align-items:center;justify-content:center}
.wm-bf-hit,.wm-bf-hit2{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);line-height:1}
.wm-bf-hit{font-size:34px;opacity:0;filter:drop-shadow(0 3px 10px rgba(200,90,40,.24))}
.wm-bf-hit2{font-size:22px;opacity:0}
.wm-bf-card.play .wm-bf-side.hero{animation:wmBfHero .56s cubic-bezier(.22,.8,.28,1.2)}
.wm-bf-card.play .wm-bf-side.foe{animation:wmBfFoe .56s cubic-bezier(.22,.8,.28,1.2)}
.wm-bf-card.play .wm-bf-hit{animation:wmBfHit .95s ease .2s both}
.wm-bf-card.play .wm-bf-hit2{animation:wmBfSpark .9s ease .24s both}
@keyframes wmBfHero{0%{transform:translateX(-14px) scale(.94);opacity:.4}55%{transform:translateX(9px) scale(1.03)}100%{transform:none;opacity:1}}
@keyframes wmBfFoe{0%{transform:translateX(14px) scale(.94);opacity:.4}55%{transform:translateX(-9px) scale(1.03)}100%{transform:none;opacity:1}}
@keyframes wmBfHit{0%{opacity:0;transform:translate(-50%,-50%) scale(.4) rotate(-12deg)}38%{opacity:1;transform:translate(-50%,-50%) scale(1.2) rotate(6deg)}100%{opacity:.12;transform:translate(-50%,-50%) scale(1.55) rotate(0)}}
@keyframes wmBfSpark{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}45%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.8)}}
.wm-bf-bar{height:10px;border-radius:999px;background:#efe3cd;overflow:hidden;margin-top:12px}
.wm-bf-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#f3c26a,#ec9d4d)}
.wm-bf-card.win .wm-bf-bar i{background:linear-gradient(90deg,#96d672,#5ebf53)}
.wm-bf-card.lose .wm-bf-bar i{background:linear-gradient(90deg,#efc184,#e49b62)}
.wm-bf-stat{text-align:center;font-size:11px;font-weight:800;color:#8d7656;line-height:1.6;margin-top:8px}
.wm-bf-stat b{font-size:14px;font-weight:900;color:#d9663a;font-variant-numeric:tabular-nums}
.wm-bf-card.win .wm-bf-stat b{color:#4f9a43}
.wm-bf-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:10px}
.wm-bf-tags span{font-size:10px;font-weight:900;color:#8a6f4d;background:#fff7ea;border:1px solid #ecdcbf;border-radius:999px;padding:4px 9px}
.wm-bf-cap{text-align:center;font-size:11px;font-weight:800;color:#b04a72;background:#fff0f6;border:1.5px dashed #f2b7cd;border-radius:12px;
  padding:8px 10px;margin-top:10px;line-height:1.65}
.wm-bf-actions{text-align:center;margin-top:13px}
.wm-bf-btn{border:0;border-radius:999px;padding:10px 24px;font-size:13px;font-weight:900;color:#fff;
  background:linear-gradient(180deg,#9ec3ef,#6f9fd8);box-shadow:0 4px 12px rgba(90,140,200,.35);cursor:pointer;-webkit-tap-highlight-color:transparent}
.wm-bf-btn:active{transform:scale(.95)}
.wm-sq-btn.up small{display:block;font-size:8.5px;font-weight:700;opacity:.85;margin-top:1px;line-height:1}


/* M24 · 兔兔换装间 */
.duStage{position:relative;min-height:calc(100vh - 154px);margin:0 -12px 12px;padding:14px 14px 16px;overflow:hidden;color:#fff;background:radial-gradient(circle at 50% 18%,#fff2c7 0,#f0bad1 24%,#8b73c9 56%,#322245 100%)}
.duGlow{position:absolute;left:50%;top:82px;width:220px;height:220px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.82),rgba(255,230,160,.18) 48%,rgba(255,255,255,0) 72%);filter:blur(1px);pointer-events:none}
.duTop{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.duEyebrow{font-size:11px;font-weight:900;letter-spacing:.08em;opacity:.78}.duTitle{font-size:27px;font-weight:950;line-height:1.1;text-shadow:0 3px 12px rgba(40,20,60,.28)}
.duTabs{position:relative;z-index:1;display:flex;gap:7px;margin:12px 0 8px}.duTabs .btn{flex:1;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.32);color:#fff;box-shadow:none}.duTabs .on{background:#fff;color:#6c4a7d}
.duHero{position:relative;z-index:1;display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:6px;margin:6px 0 8px}.duFrame{position:relative;margin:0 auto;width:min(74vw,300px);height:min(74vw,300px);border-radius:30px;padding:8px;background:rgba(255,255,255,.28);box-shadow:0 20px 55px rgba(24,12,36,.36),inset 0 0 0 1px rgba(255,255,255,.34)}.duFrame img{width:100%;height:100%;object-fit:cover;border-radius:24px;background:#fff;display:block}.duArrow{width:38px;height:54px;border:0;border-radius:999px;background:rgba(255,255,255,.24);color:#fff;font-size:34px;font-weight:300;line-height:1;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.duPreviewName{position:relative;z-index:1;text-align:center;font-size:17px;font-weight:950;text-shadow:0 2px 9px rgba(40,20,60,.28)}.duEconomy{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.duMoney{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.26);border-radius:14px;padding:7px 6px;text-align:center}.duMoney b{display:block;font-size:15px;font-variant-numeric:tabular-nums}.duMoney span{display:block;font-size:10px;opacity:.86;margin-top:1px}.duTicket{position:relative;z-index:1;margin-top:8px;padding:8px 10px;border-radius:14px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.26);font-size:12px;font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.duAction{position:relative;z-index:1;margin-top:9px}.duAction .btn{width:100%;padding:12px 10px;background:#fff;color:#6d4d78;border-radius:14px;font-size:14px;font-weight:950}.duCost{margin-top:6px;text-align:center;font-size:11px;opacity:.88;line-height:1.5}
.duCatalogGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.duTile{border:0;border-radius:14px;padding:0;background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.05);overflow:hidden;text-align:left;color:var(--ink)}.duTile.on{box-shadow:0 0 0 2px var(--gold),0 2px 10px rgba(180,130,45,.18)}.duTile img{width:100%;height:110px;object-fit:cover;display:block;background:#f7f1e8}.duTile div{padding:6px 6px 7px}.duTile b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.duTile span{display:block;margin-top:2px;font-size:9.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (min-width:760px){.duStage{border-radius:0 0 24px 24px}.duFrame{width:320px}.duCatalogGrid{grid-template-columns:repeat(5,1fr)}}

.duPreview{position:relative;width:100%;height:100%;border-radius:24px;overflow:hidden;background:linear-gradient(180deg,#fffdfb,#fff4fb)}.duPreview img{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:0}.duPreview img.whole{border-radius:24px}.duPreview img.layer{pointer-events:none}
.duPartTabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:7px;-webkit-overflow-scrolling:touch}.duPartTabs button{flex:0 0 auto;border:0;border-radius:999px;padding:7px 11px;background:#f0e9f4;color:#7c6187;font-size:12px;font-weight:900}.duPartTabs button.on{background:#8e6fb0;color:#fff}.duPartScroller{display:flex;gap:8px;overflow-x:auto;padding:2px 0 8px;-webkit-overflow-scrolling:touch}.duPartOpt{flex:0 0 78px;border:0;border-radius:14px;padding:5px;background:#faf7fb;color:#5d5064;text-align:center;box-shadow:inset 0 0 0 1px #eadff0}.duPartOpt.on{box-shadow:0 0 0 2px var(--gold),0 2px 10px rgba(180,130,45,.18);background:#fff}.duPartOpt img{width:68px;height:68px;object-fit:contain;border-radius:10px;background:linear-gradient(180deg,#fff,#fff7fb)}.duPartOpt span{display:block;margin-top:4px;font-size:10px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.duPartOpt em{display:block;margin-top:2px;font-style:normal;font-size:9px;font-weight:800;color:#9b87a3}.duPartFoot{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap;border-top:1px solid #f0e8f4;padding-top:9px}.duPartFoot span{flex:1;min-width:140px;font-size:11px;font-weight:800;color:#8a758f;line-height:1.45}.duPartActions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.duPartFoot .btn{padding:8px 12px;font-size:12px;background:#8e6fb0}

/* ===== 移动端空间优化（≤480px）：页面不要太挤 ===== */
@media (max-width:480px){
  /* 整体呼吸感 */
  body{padding-bottom:82px}
  main{padding:14px 11px 20px}
  h2{font-size:13px;margin:18px 0 10px}

  /* 卡片间距拉大 */
  .card, .card.small{padding:14px 12px;margin-bottom:11px;border-radius:16px}

  /* 游戏列表：统一用两列 + 更大触控区 */
  .grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .gcell{padding:14px 10px;border-radius:16px}
  .gcell .ic{font-size:32px}
  .gcell .nm{font-size:13px;margin-top:7px}
  .gcell .rw{font-size:11px;margin-top:4px}

  /* 农场地块：更宽松 */
  .fmGrid{gap:12px}
  .fmPlot{padding:12px 8px;min-height:104px;border-radius:16px}
  .fmPlot .fmEm{font-size:34px}
  .fmPlot .fmNm{font-size:12px;margin-top:4px}

  /* 设施 / 研究区 */
  #fmFacilities{padding:8px 2px}
  #fmFacilities > div{padding:10px 0}

  /* 模式切换栏 */
  .modebar{gap:10px;margin-bottom:12px}
  .modebar button{padding:10px;font-size:13px;border-radius:12px}

  /* 奶茶小店卡片 */
  .tsCard{flex:0 0 112px;padding:12px 8px;border-radius:16px}
  .tsRow{gap:12px;padding-bottom:12px}

  /* 排行榜条目 */
  .lbRow{padding:10px 11px;border-radius:14px;margin-bottom:8px;gap:10px}

  /* 赛季手册条目 */
  .hbMsn{padding:10px 0}
  .hbTier{padding:12px 13px;border-radius:15px;margin-bottom:9px;gap:12px}

  /* 底部导航：5 个按钮别太挤 */
  nav{gap:0;padding:8px 0 calc(10px + env(safe-area-inset-bottom,0px))}
  nav button{font-size:10px;gap:2px}
  nav button .ico{font-size:19px}

  /* 紧凑 header */
  header.compact{padding:12px 14px 12px}
  header.compact .brand{font-size:14px}
  header.compact .money{padding:7px 12px}
  header.compact .money b{font-size:14px}

  /* 浮层/弹窗内边距柔和 */
  .dialogBox{padding:20px 18px}
  #rvOverlay{padding:28px 22px}

  /* 钱包页 */
  #wallet{padding:2px}
  .ledger{padding:8px 0;font-size:13px}

  /* 通用子标题 */
  .sub{font-size:11px;line-height:1.55}

  /* —— owner tabs（炼金/民宿三人切换）—— */
  .owner-tabs{display:flex;gap:6px;padding:8px 6px 2px;justify-content:center}
  .otab{flex:1;max-width:110px;padding:6px 8px;border-radius:12px;border:1.5px solid #ddd;background:#f8f8f8;font-size:13px;font-weight:700;cursor:pointer;color:var(--muted);transition:all .15s}
  .otab.sel{background:var(--gold);color:#fff;border-color:var(--gold);box-shadow:0 3px 12px -5px rgba(200,150,50,.5)}
  .otab:hover:not(.sel){border-color:#b9a;background:#f3eff9}

  /* —— mini rival board（炼金/民宿页内嵌榜单快照）—— */
  .mini-board{display:flex;gap:6px;padding:4px 2px}
  .mini-board .mb-side{flex:1;text-align:center;border-radius:12px;padding:8px 4px;background:#f7f5fa;border:1.5px solid transparent;position:relative}
  .mini-board .mb-side.lead{border-color:#e8b15a;box-shadow:0 3px 12px -5px rgba(214,154,44,.5)}
  .mini-board .mb-crown{position:absolute;top:-12px;left:50%;transform:translateX(-50%);font-size:18px}
  .mini-board .mb-av{font-size:24px;line-height:1}
  .mini-board .mb-nm{font-size:11px;font-weight:800;color:var(--iink)}
  .mini-board .mb-sc{font-size:15px;font-weight:900;color:#b9862a}
  .mini-board .mb-vs{display:flex;align-items:center;font-size:12px;font-weight:900;color:#d0b088}

  /* ══════════ 🍇 Y04 狼兔酒庄「陈酿时光」══════════ */
  .wn-panel{background:var(--card);border-radius:14px;padding:12px;margin-bottom:10px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
  .wn-h{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:14px;font-weight:700;cursor:default}
  .wn-h .ic{font-size:20px;width:28px;text-align:center}
  .wn-h .tt{flex:1}
  .wn-h .note{font-size:11px;color:var(--muted);font-weight:400}
  .wn-h .tg{font-size:11px;color:var(--muted);cursor:pointer}
  .wn-sub{font-size:11px;color:var(--muted);padding:4px 0}
  .wn-radar{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px}
  .wn-alert{display:flex;align-items:center;gap:8px;border:1.5px solid #eadfce;background:#fffaf1;border-radius:8px;padding:8px;min-height:54px}
  .wn-alert-ic{font-size:20px;width:24px;text-align:center;flex-shrink:0}
  .wn-alert-txt{flex:1;min-width:0}
  .wn-alert-txt b{display:block;font-size:12px;color:var(--ink);line-height:1.25}
  .wn-alert-txt span{display:block;font-size:11px;color:#8a6f4d;line-height:1.35;margin-top:2px}
  .wn-alert .btn{font-size:11px;padding:3px 8px;flex-shrink:0}
  .wn-orders{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:6px}
  .wn-order{border:1.5px solid #e8e4dc;background:#fff;border-radius:8px;padding:8px;position:relative;min-height:128px}
  .wn-order.hot{border-color:#c9a24a;background:#fffaf0;box-shadow:0 3px 10px rgba(201,162,74,.15);cursor:pointer}
  .wn-order.done{opacity:.58;background:#f7f7f4}
  .wn-order-top{display:flex;gap:6px;align-items:center;justify-content:space-between}
  .wn-order-top b{font-size:13px;color:var(--ink)}
  .wn-order-top span{font-size:11px;font-weight:900;color:#a76b28}
  .wn-order-need{font-size:12px;font-weight:800;color:#5d3f4f;margin-top:5px;line-height:1.35}
  .wn-order-note{font-size:11px;color:#8a6f4d;margin-top:4px;line-height:1.35}
  .wn-order-foot{font-size:11px;color:#999;margin-top:6px;min-height:15px}
  .wn-order .btn{font-size:11px;padding:3px 8px;margin-top:6px}
  .wn-duo{font-size:11px;color:#8a6f4d;background:#f7f3ee;border-radius:8px;padding:6px 8px;margin-top:8px}
  .wn-duo.on{color:#1f7a55;background:#eefaf4;font-weight:800}
  .wn-order-hit{display:inline-block;font-size:11px;color:#9b661d;background:#fff3d4;border-radius:8px;padding:2px 6px;margin-top:3px}
  .wn-rise{animation:wnRise .35s ease-out both}
  @keyframes wnRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
  /* Hero */
  .wn-hero{background:linear-gradient(135deg,#f5f0fa,#faf5ee);border-radius:16px;padding:16px;margin-bottom:10px;position:relative;overflow:hidden}
  .wn-hero .wn-bg{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}
  .wn-hero .wn-orb{position:absolute;border-radius:50%;opacity:.12}
  .wn-hero .o1{width:80px;height:80px;background:#a06fc5;top:-20px;right:-10px}
  .wn-hero .o2{width:60px;height:60px;background:#c9a24a;bottom:-10px;left:30%}
  .wn-hero .wn-htop{display:flex;align-items:center;gap:12px;position:relative;z-index:1}
  .wn-hero .wn-barrel-icon{font-size:42px;flex-shrink:0}
  .wn-hero .wn-htitle{flex:1;min-width:0}
  .wn-hero .wn-htitle .t{font-size:20px;font-weight:900}
  .wn-hero .wn-htitle .s{font-size:12px;color:#8a6f4d;margin-top:2px}
  .wn-hero .wn-htitle .s.wn-talent{color:#5bb98c;font-weight:700}
  .wn-hero .wn-dexbar{height:5px;background:#e8e0f0;border-radius:3px;margin-top:6px;overflow:hidden}
  .wn-hero .wn-dexbar i{display:block;height:100%;background:linear-gradient(90deg,#a06fc5,#c9a24a);border-radius:3px}
  /* 藤架网格 */
  .wn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px}
  .wn-plot{background:var(--card);border-radius:12px;border:1.5px solid #e8e4dc;overflow:hidden;cursor:pointer}
  .wn-plot.empty{border-style:dashed;border-color:#d8d4cc;background:#fafaf9}
  .wn-plot-inner{padding:8px;text-align:center}
  .wn-bar{height:5px;background:#f0ede8;border-radius:3px;margin:4px 0;overflow:hidden}
  .wn-bar i{display:block;height:100%;background:linear-gradient(90deg,#a06fc5,#c9a24a);border-radius:3px;transition:width 1s}
  .wn-cellar{display:flex;flex-direction:column;gap:4px}
  /* 芯片按钮 */
  .wn-chip-btn{padding:4px 10px;border-radius:18px;border:1.5px solid #ddd;background:#faf8f5;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}
  .wn-chip-btn:hover{border-color:#c9a24a;background:#fdf7ee}
}

/* ══════════ Y04 狼兔酒庄 · 高级酒窖视觉重构 v0721 ══════════ */
#winery{
  --wn-ink:#2d2017;
  --wn-muted:#7d6850;
  --wn-paper:#f7f0e4;
  --wn-panel:#fcf7ef;
  --wn-line:rgba(101,71,42,.18);
  --wn-wine:#5c1f34;
  --wn-plum:#3a241f;
  --wn-forest:#5b4635;
  --wn-sage:#92725a;
  --wn-gold:#c7a063;
  --wn-copper:#9f6637;
  margin:-12px auto 0;
  min-height:calc(100vh - 72px);
  padding:18px 18px 30px;
  position:relative;
  overflow:hidden;
  color:var(--wn-ink);
  background:
    linear-gradient(180deg,rgba(250,244,234,.94),rgba(241,232,216,.97) 44%,#e4d2b9 100%),
    repeating-linear-gradient(90deg,rgba(84,57,35,.07) 0 2px,transparent 2px 44px),
    linear-gradient(135deg,#6b4730 0%,#3f2a20 36%,#7f5638 72%,#4d1828 100%);
}
#winery:before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  pointer-events:none;
  opacity:.34;
  background:
    repeating-linear-gradient(0deg,rgba(255,255,255,.12) 0 1px,transparent 1px 28px),
    linear-gradient(110deg,transparent 0%,rgba(255,244,225,.28) 48%,transparent 76%);
  mix-blend-mode:soft-light;
}
#winery *{letter-spacing:0}
#winery #wnBox.empty{
  max-width:420px;
  margin:28px auto;
  color:#8d7d6d;
  background:rgba(255,253,247,.84);
  border:1px solid rgba(145,113,72,.18);
  border-radius:8px;
}
.wn-vintage{
  border-color:rgba(113,47,65,.42);
  background:linear-gradient(135deg,rgba(255,251,239,.98),rgba(241,222,198,.97));
}
.wn-vintage-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.wn-vintage-kicker{font-size:10px;font-weight:950;letter-spacing:.12em;color:#8c5a38}
.wn-vintage h2{margin:4px 0 3px;font-size:23px;line-height:1.1;color:var(--wn-wine)}
.wn-vintage p{margin:0;color:var(--wn-muted);font-size:12px}
.wn-vintage-count{min-width:58px;padding:7px 9px;border-radius:8px;text-align:center;color:#fff8ed;background:linear-gradient(145deg,#6f2038,#9c5a36)}
.wn-vintage-count b{display:block;font-size:21px;line-height:1}.wn-vintage-count span{font-size:10px;font-weight:800}
.wn-vintage-current,.wn-vintage-picker,.wn-vintage-await{margin-top:13px;padding:11px;border:1px solid rgba(116,75,43,.18);border-radius:8px;background:rgba(255,255,255,.45)}
.wn-vintage-title{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center}.wn-vintage-title>span{font-size:22px}.wn-vintage-title b{display:block;font-size:13px}.wn-vintage-title small{display:block;margin-top:2px;color:var(--wn-muted);font-size:11px}.wn-vintage-title em{font-style:normal;font-size:12px;font-weight:900;color:#8e4c31}
.wn-vintage-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px}.wn-vintage-check{display:flex;gap:5px;align-items:center;padding:6px 7px;border-radius:6px;background:rgba(103,73,47,.07);color:#745f4c;font-size:11px}.wn-vintage-check b{flex:1}.wn-vintage-check em{font-style:normal;font-weight:900}.wn-vintage-check.done{color:#3e704d;background:rgba(74,121,80,.11)}
.wn-vintage-picker>b,.wn-vintage-await>b{display:block;font-size:13px}.wn-vintage-picker>span,.wn-vintage-await>span{display:block;margin-top:3px;color:var(--wn-muted);font-size:11px}.wn-vintage-routes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}.wn-vintage-route{padding:10px;border:1px solid rgba(116,75,43,.20);border-radius:7px;text-align:left;color:var(--wn-ink);background:rgba(255,255,255,.56);cursor:pointer}.wn-vintage-route:hover{border-color:#a46a3c;transform:translateY(-1px)}.wn-vintage-route i{display:block;font-style:normal;font-size:18px}.wn-vintage-route b,.wn-vintage-route span{display:block;margin-top:4px}.wn-vintage-route b{font-size:12px}.wn-vintage-route span{color:var(--wn-muted);font-size:10px;line-height:1.35}
.wn-vintage-collection,.wn-vintage-history{margin-top:11px;font-size:11px}.wn-vintage-collection>b,.wn-vintage-history>b{display:block;margin-bottom:5px;color:#76533b}.wn-label-row{display:flex;gap:5px;flex-wrap:wrap}.wn-label-chip{padding:4px 7px;border:1px solid rgba(119,74,45,.22);border-radius:999px;color:#633b33;background:#fff9ed;font-weight:800}.wn-vintage-history span{display:block;padding:5px 7px;border-left:2px solid #c79d64;color:var(--wn-muted);background:rgba(255,255,255,.33)}


.wn-operations-list{display:grid;gap:7px}
.wn-operation{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;padding:9px 10px;border-radius:7px;border-left:3px solid var(--wn-sage);background:rgba(255,255,255,.48)}
.wn-operation.p0{border-left-color:var(--wn-wine);background:rgba(130,45,58,.07)}
.wn-operation.p1{border-left-color:var(--wn-copper)}
.wn-operation b{font-size:12px}.wn-operation span{font-size:11px;line-height:1.35;color:var(--wn-muted)}
.wn-operation em{font-size:10px;font-style:normal;color:#a25c36;font-weight:800}.wn-operation .btn{grid-column:2;grid-row:1 / span 2}
.wn-operation.featured{padding:8px 0 4px 12px;border:0;border-left:4px solid var(--wn-wine);border-radius:0;background:transparent;box-shadow:none}
.wn-operation.featured b{font-size:15px;line-height:1.3}.wn-operation.featured>span{font-size:11.5px}.wn-operation.idle{border-left-color:var(--wn-sage)}
.wn-next-btn{grid-column:2;grid-row:1 / span 3;min-width:112px;min-height:44px;padding:8px 12px;border:0;border-radius:7px;background:var(--wn-wine);color:#fff8ed;font-size:12px;font-weight:950;cursor:pointer}.wn-next-btn span{margin-left:4px;color:inherit;font-size:17px}.wn-next-btn:not(.primary){min-width:92px;min-height:38px;background:#74533a}.wn-next-btn:active{transform:translateY(1px)}
.wn-operations-more{border-top:1px solid rgba(116,75,43,.13)}.wn-operations-more>summary{display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:6px 4px;color:#765f4b;font-size:11px;font-weight:900;list-style:none;cursor:pointer}.wn-operations-more>summary::-webkit-details-marker{display:none}.wn-operations-more>summary span{color:inherit;font-size:17px;transition:transform .16s}.wn-operations-more[open]>summary span{transform:rotate(90deg)}.wn-operations-more>div{display:grid;gap:7px;padding-top:2px}
.wn-radar-panel>summary{margin:0;list-style:none;cursor:pointer}.wn-radar-panel>summary::-webkit-details-marker{display:none}.wn-radar-panel>summary .note{display:flex;align-items:center;gap:5px}.wn-radar-panel>summary .note i{color:inherit;font-size:16px;font-style:normal;transition:transform .16s}.wn-radar-panel[open]>summary{margin-bottom:12px}.wn-radar-panel[open]>summary .note i{transform:rotate(90deg)}
.wn-plot-right,.wn-plot-streak,.wn-plot-wait{font-size:10px;font-weight:800;line-height:1.35;margin-bottom:3px}
.wn-plot-right{color:#76553a}.wn-plot-right.owner{color:#8b5127}.wn-plot-right.priority{color:#8e3148}
.wn-plot-streak{color:#8b6731}.wn-plot-wait{color:#7b536e}
.wn-plot.reserved{border-color:rgba(159,102,55,.55)}.wn-plot.priority{border-color:rgba(115,38,63,.58);box-shadow:0 0 0 2px rgba(115,38,63,.09)}
@media (min-width:1180px){
  max-width:1180px;
  margin:0 auto;
  position:relative;
  z-index:1;
}
.wn-stage{display:grid;gap:12px;margin-bottom:14px}
.wn-layout{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(300px,.72fr);gap:14px;align-items:start}
.wn-maincol,.wn-sidecol{display:grid;gap:12px;min-width:0}
.wn-panel{
  background:
    linear-gradient(180deg,rgba(252,247,239,.97),rgba(244,234,220,.95)),
    linear-gradient(145deg,rgba(255,255,255,.16),transparent 48%);
  border:1px solid var(--wn-line);
  border-radius:8px;
  padding:14px;
  margin:0;
  box-shadow:0 18px 42px rgba(57,36,21,.12),0 1px 0 rgba(255,255,255,.66) inset;
  backdrop-filter:blur(8px);
}
.wn-h{
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:12px;
  font-size:14px;
  font-weight:900;
  color:var(--wn-ink);
}
.wn-h .ic{
  width:26px;
  height:26px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:linear-gradient(180deg,#f1dfbf,#e0c28b);
  color:#7b5427;
  font-size:13px;
  font-weight:950;
  box-shadow:0 0 0 1px rgba(123,84,39,.16) inset;
  flex:0 0 auto;
}
.wn-h .tt{flex:1;min-width:0}
.wn-h .note,.wn-h .tg{
  font-size:11px;
  font-weight:800;
  color:#9a8060;
  white-space:nowrap;
}
.wn-h .tg{cursor:pointer}
.wn-sub{
  font-size:12px;
  line-height:1.55;
  color:var(--wn-muted);
}
.wn-rise{animation:wnRise .38s cubic-bezier(.2,.7,.2,1) both}
@keyframes wnRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

.wn-hero{
  min-height:250px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 154px;
  gap:16px;
  padding:22px;
  margin:0;
  position:relative;
  overflow:hidden;
  color:#fff7e9;
  border:1px solid rgba(240,203,121,.34);
  border-radius:8px;
  background:
    linear-gradient(135deg,rgba(71,42,28,.98) 0%,rgba(45,28,21,.98) 38%,rgba(92,54,34,.97) 72%,rgba(76,19,35,.97) 100%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.045) 0 1px,transparent 1px 30px);
  box-shadow:0 22px 58px rgba(54,32,21,.30),0 1px 0 rgba(255,255,255,.18) inset;
}
.wn-hero:before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  background:
    linear-gradient(90deg,rgba(255,255,255,.08),transparent 22%,transparent 72%,rgba(237,194,108,.14)),
    repeating-linear-gradient(0deg,transparent 0 18px,rgba(255,255,255,.025) 18px 19px);
  pointer-events:none;
}
.wn-hero-copy,.wn-hero-art,.wn-stats{position:relative;z-index:1}
.wn-kicker{
  display:inline-flex;
  align-items:center;
  height:24px;
  padding:0 10px;
  border:1px solid rgba(230,197,127,.44);
  color:#f0d9a4;
  background:rgba(255,255,255,.06);
  border-radius:999px;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.wn-htitle .t{
  margin-top:12px;
  font-size:29px;
  line-height:1.08;
  font-weight:950;
  color:#fff9ec;
}
.wn-htitle .s{
  margin-top:8px;
  color:#dec7a6;
  font-size:13px;
  line-height:1.45;
  font-weight:700;
}
.wn-dexbar{
  width:min(340px,100%);
  height:7px;
  margin-top:14px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  box-shadow:0 0 0 1px rgba(255,255,255,.08) inset;
}
.wn-dexbar i{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#9b6a36,#e4c07f,#7d1f37);
  box-shadow:0 0 18px rgba(240,210,138,.44);
}
.wn-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:18px;
}
.wn-hero-tools{width:min(420px,100%);margin-top:13px}.wn-hero-tools>summary{display:flex;align-items:center;justify-content:space-between;width:max-content;min-height:36px;padding:7px 10px;border:1px solid rgba(221,188,126,.30);border-radius:7px;background:rgba(86,52,32,.23);color:#f4dfbd;font-size:11px;font-weight:900;list-style:none;cursor:pointer}.wn-hero-tools>summary::-webkit-details-marker{display:none}.wn-hero-tools>summary span{margin-left:8px;color:inherit;font-size:16px;transition:transform .16s}.wn-hero-tools[open]>summary span{transform:rotate(90deg)}.wn-hero-tools .wn-hero-actions{margin-top:8px}
.wn-hero-art{min-height:170px}
.wn-bottle{
  position:absolute;
  left:38px;
  bottom:13px;
  width:48px;
  height:118px;
  border-radius:18px 18px 8px 8px;
  background:linear-gradient(90deg,#151311,#244336 28%,#5b1430 58%,#170f14 100%);
  box-shadow:0 22px 32px rgba(0,0,0,.36),0 0 0 1px rgba(255,255,255,.18) inset;
}
.wn-bottle:before{
  content:"";
  position:absolute;
  left:15px;
  top:-40px;
  width:18px;
  height:48px;
  border-radius:7px 7px 4px 4px;
  background:linear-gradient(90deg,#161510,#304c3f,#160f14);
  box-shadow:0 0 0 1px rgba(255,255,255,.16) inset;
}
.wn-bottle:after{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  bottom:32px;
  height:28px;
  border-radius:4px;
  background:linear-gradient(135deg,#e7c879,#a77738);
  box-shadow:0 0 0 1px rgba(255,255,255,.22) inset;
}
.wn-glass{
  position:absolute;
  right:22px;
  bottom:14px;
  width:42px;
  height:66px;
  border:2px solid rgba(255,246,219,.56);
  border-top:0;
  border-radius:8px 8px 18px 18px;
}
.wn-glass:before{
  content:"";
  position:absolute;
  left:4px;
  right:4px;
  bottom:7px;
  height:28px;
  border-radius:4px 4px 12px 12px;
  background:linear-gradient(180deg,#8a173b,#4a1025);
}
.wn-glass:after{
  content:"";
  position:absolute;
  left:18px;
  top:57px;
  width:2px;
  height:34px;
  background:rgba(255,246,219,.55);
  box-shadow:-10px 34px 0 5px rgba(255,246,219,.25),10px 34px 0 5px rgba(255,246,219,.25);
}
.wn-vault-line{
  position:absolute;
  left:10px;
  right:2px;
  bottom:0;
  height:44px;
  border-top:1px solid rgba(234,207,149,.28);
  background:linear-gradient(180deg,rgba(255,255,255,.08),transparent);
}
.wn-stats{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  align-content:start;
}
.wn-stat{
  min-height:70px;
  padding:10px 10px 9px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border-radius:8px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,248,236,.08);
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset;
}
.wn-stat .n{
  color:#fff3e1;
  font-size:16px;
  line-height:1.15;
  font-weight:950;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  overflow:visible;
  text-overflow:clip;
  word-break:normal;
  overflow-wrap:normal;
}
.wn-stat .l{
  margin-top:6px;
  color:#d8c19d;
  font-size:11px;
  font-weight:800;
  line-height:1.25;
  white-space:normal;
}
.wn-stat.gold,.wn-stat.hot{
  border-color:rgba(239,210,138,.24);
  background:rgba(255,244,221,.1);
}
.wn-stat.gold .n,.wn-stat.hot .n{color:#fff3e1}

.wn-btn{
  min-height:34px;
  border:1px solid rgba(38,25,20,.16);
  border-radius:8px;
  padding:8px 13px;
  background:linear-gradient(180deg,#7c5737,#593b27);
  color:#fffaf0;
  box-shadow:0 8px 18px rgba(76,52,31,.20),0 1px 0 rgba(255,255,255,.18) inset;
  font-size:12px;
  font-weight:950;
  cursor:pointer;
}
.wn-btn.gold{
  color:#2b1c0c;
  border-color:rgba(122,84,29,.28);
  background:linear-gradient(180deg,#e7c98e,#c28d47);
  box-shadow:0 10px 22px rgba(151,103,38,.24),0 1px 0 rgba(255,255,255,.42) inset;
}
.wn-btn.glass{
  color:#fff2dc;
  border-color:rgba(221,188,126,.34);
  background:rgba(86,52,32,.26);
  box-shadow:0 1px 0 rgba(255,255,255,.10) inset;
}
.wn-btn.small{min-height:30px;padding:6px 10px;font-size:11px}
.wn-btn.micro{min-height:24px;padding:3px 8px;font-size:10px}
.wn-btn.icon{
  min-width:30px;
  min-height:28px;
  padding:4px 7px;
  font-size:11px;
}
.wn-btn.muted{opacity:.72}
.wn-btn.ghost{opacity:.48;background:linear-gradient(180deg,#7d6357,#564640)}
.wn-btn.wide{width:100%;justify-content:center;margin-top:8px}
.wn-btn:disabled,.wn-upgrade:disabled{cursor:default}

.wn-radar{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.wn-alert{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:76px;
  padding:12px;
  border:1px solid rgba(115,87,48,.16);
  border-radius:8px;
  background:linear-gradient(180deg,#fdf7ed,#f2e6d2);
}
.wn-alert.hot{border-color:rgba(190,145,57,.38);background:linear-gradient(180deg,#fff1cf,#efdfbf)}
.wn-alert-ic{
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:#e7d3b0;
  font-size:18px;
  flex:0 0 auto;
}
.wn-alert-txt{flex:1;min-width:0}
.wn-alert-txt b{display:block;color:var(--wn-ink);font-size:13px;line-height:1.25}
.wn-alert-txt span{display:block;margin-top:4px;color:#796758;font-size:11px;line-height:1.35}

.wn-order-panel{overflow:hidden}
.wn-orders{
  display:flex;
  gap:10px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x proximity;
  padding:2px 2px 7px;
  margin:0 -2px -7px;
}
.wn-orders::-webkit-scrollbar{height:8px}
.wn-orders::-webkit-scrollbar-thumb{
  border-radius:999px;
  background:rgba(140,103,61,.26);
}
.wn-orders::-webkit-scrollbar-track{background:rgba(255,255,255,.16)}
.wn-order{
  flex:0 0 224px;
  min-height:118px;
  padding:11px 11px 10px;
  display:flex;
  flex-direction:column;
  border:1px solid rgba(97,72,45,.15);
  border-radius:8px;
  background:
    linear-gradient(180deg,#fffdf8,#f2e8da),
    linear-gradient(90deg,rgba(109,75,46,.06),transparent 42%);
  box-shadow:0 10px 24px rgba(58,40,26,.06);
  scroll-snap-align:start;
}
.wn-order.hot{
  cursor:pointer;
  border-color:rgba(190,145,57,.42);
  background:
    linear-gradient(180deg,#fff4d7,#f1e0bf),
    linear-gradient(90deg,rgba(164,108,44,.08),transparent 48%);
  box-shadow:0 14px 28px rgba(154,103,36,.14);
}
.wn-order.done{opacity:.58;filter:saturate(.55)}
.wn-order.expired{opacity:.72;background:linear-gradient(180deg,#f4eee4,#e7dccb)}
.wn-order-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.wn-order-top b{font-size:14px;color:#2b2019;line-height:1.25}
.wn-order-top span{
  color:#6a4518;
  background:#ecd2a0;
  border:1px solid rgba(151,103,38,.18);
  border-radius:999px;
  padding:2px 8px;
  font-size:11px;
  font-weight:950;
}
.wn-order-need{margin-top:7px;font-size:12px;line-height:1.35;font-weight:950;color:#443125}
.wn-order-note{
  margin-top:5px;
  color:#7a6655;
  font-size:11px;
  line-height:1.38;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:30px;
}
.wn-order-foot{
  margin-top:auto;
  padding-top:7px;
  min-height:15px;
  color:#8b7254;
  font-size:11px;
  font-weight:800;
}
.wn-order-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.wn-order-tag{
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:2px 7px;
  border-radius:999px;
  font-size:10px;
  font-weight:950;
}
.wn-order-tag.featured{color:#6a4518;background:#f0d8a8}
.wn-order-tag.flash{color:#6e243d;background:#edd3dc}
.wn-order-timer{margin-top:6px;color:#8d6134;font-size:11px;font-weight:900}
.wn-order .wn-btn{margin-top:8px;align-self:flex-start}

.wn-player-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.wn-player-card{
  padding:11px;
  border-radius:8px;
  border:1px solid rgba(82,58,36,.14);
  background:linear-gradient(180deg,#fbf4e7,#f2e5d1);
}
.wn-player-card.wolf{background:linear-gradient(180deg,#f8efe2,#f0e1cb)}
.wn-player-card.rabbit{background:linear-gradient(180deg,#fcf1e8,#f3e3d2)}
.wn-player-top,.wn-player-row{display:flex;justify-content:space-between;gap:8px;align-items:center}
.wn-player-top b{font-size:13px}
.wn-player-top span{font-size:11px;font-weight:950;color:#946d33}
.wn-player-row{margin-top:7px;color:#7a6d68;font-size:11px}
.wn-player-row b{
  color:#352a25;
  font-size:12px;
  text-align:right;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.wn-duo{
  margin-top:10px;
  padding:9px 10px;
  border-radius:8px;
  color:#715c45;
  background:#efe2cf;
  font-size:12px;
  line-height:1.35;
  font-weight:800;
}
.wn-duo.on{color:#6d4020;background:#f6ead5;border:1px solid rgba(153,111,52,.16)}
.wn-expo-head{
  margin-bottom:10px;
  color:#5a4737;
}
.wn-expo-head b{display:block;color:#2f241d;font-size:13px;line-height:1.3}
.wn-expo-head span{display:block;margin-top:4px;font-size:11px;color:#876f56;font-weight:800}
.wn-expo-reward{
  margin-bottom:10px;
  padding:10px;
  border:1px solid rgba(165,121,49,.18);
  border-radius:8px;
  background:linear-gradient(180deg,#f9ecd1,#efdfbe);
}
.wn-expo-reward b{display:block;color:#382718;font-size:12px;line-height:1.3}
.wn-expo-reward span{display:block;margin-top:4px;color:#7f6342;font-size:11px;font-weight:850}
.wn-expo-board{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.wn-expo-row{
  padding:10px;
  border:1px solid rgba(92,66,41,.14);
  border-radius:8px;
  background:linear-gradient(180deg,#fcf7ee,#efe2ce);
}
.wn-expo-row.wolf{background:linear-gradient(180deg,#f8efe4,#efe0ca)}
.wn-expo-row.rabbit{background:linear-gradient(180deg,#fcf2e8,#f2e1cf)}
.wn-expo-row b{display:block;color:#2f241d;font-size:13px}
.wn-expo-title{
  display:inline-flex;
  align-items:center;
  margin-top:5px;
  padding:2px 7px;
  border-radius:999px;
  color:#6f4b1f;
  background:#f3dfb2;
  font-size:10px;
  font-style:normal;
  font-weight:950;
}
.wn-expo-row span{
  display:block;
  margin-top:3px;
  color:#8b704f;
  font-size:11px;
  font-weight:850;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.wn-expo-metrics{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:8px;
  color:#5d4a3a;
  font-size:11px;
  font-weight:900;
}
.wn-showcase-empty{
  padding:12px;
  border:1px dashed rgba(118,89,56,.18);
  border-radius:8px;
  color:#876f56;
  background:#f7ecdc;
  font-size:12px;
  line-height:1.5;
}
.wn-showcase-card{
  padding:12px;
  border:1px solid rgba(100,72,43,.16);
  border-radius:8px;
  background:linear-gradient(180deg,#fdf7ee,#efdfc8);
  box-shadow:0 10px 22px rgba(74,53,32,.08);
}
.wn-showcase-card.wolf{background:linear-gradient(180deg,#f9efe3,#efdfc6)}
.wn-showcase-card.rabbit{background:linear-gradient(180deg,#fcf1e6,#f2e0ca)}
.wn-showcase-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.wn-showcase-top b{display:block;color:#30241d;font-size:13px;line-height:1.3}
.wn-showcase-top span{display:block;margin-top:4px;color:#876f56;font-size:11px;font-weight:800}
.wn-showcase-top strong{
  color:#7a551e;
  font-size:20px;
  line-height:1;
  font-weight:950;
  white-space:nowrap;
}
.wn-showcase-wine{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:10px;
}
.wn-showcase-wine .em{
  width:40px;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:rgba(255,255,255,.58);
  font-size:22px;
  box-shadow:0 1px 0 rgba(255,255,255,.65) inset;
}
.wn-showcase-wine b{display:block;color:#2f241d;font-size:15px;line-height:1.2}
.wn-showcase-wine span{display:block;margin-top:4px;color:#7b6656;font-size:11px;font-weight:850}
.wn-showcase-engraving{
  margin-top:8px;
  padding:8px 10px;
  border-radius:8px;
  color:#6b4a29;
  background:rgba(255,255,255,.45);
  font-size:11px;
  font-weight:900;
}
.wn-showcase-foot{
  margin-top:10px;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:8px;
  color:#6e5b49;
  font-size:11px;
  font-weight:900;
}
.wn-race{display:flex;align-items:center;gap:9px;color:#5e514b;font-size:12px;font-weight:900}
.wn-race-track{height:12px;flex:1;min-width:90px;border-radius:999px;overflow:hidden;background:#eadfcd;box-shadow:0 0 0 1px rgba(80,52,28,.10) inset}
.wn-race-track i{display:block;height:100%}
.wn-race-track .wolf{float:left;background:linear-gradient(90deg,#7b5b46,#b08a62)}
.wn-race-track .rabbit{float:right;background:linear-gradient(90deg,#9f4b5a,#d08874)}

.wn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:8px}
.wn-vineyard .wn-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.wn-plot{
  min-height:128px;
  cursor:pointer;
  overflow:hidden;
  border:1px solid rgba(84,61,35,.16);
  border-radius:8px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.68),rgba(255,255,255,.18)),
    repeating-linear-gradient(90deg,rgba(104,79,49,.07) 0 1px,transparent 1px 24px),
    linear-gradient(145deg,#eadcc5,#f7eee0 46%,#cfbb9b);
  box-shadow:0 10px 18px rgba(76,58,32,.07),0 1px 0 rgba(255,255,255,.72) inset;
}
.wn-plot.empty{
  border-style:dashed;
  background:linear-gradient(180deg,rgba(255,252,245,.72),rgba(239,230,212,.54));
}
.wn-plot.golden-open,.wn-plot.golden-held{
  border-color:#bd8631;
  box-shadow:0 10px 18px rgba(76,58,32,.07),0 1px 0 rgba(255,255,255,.72) inset,0 0 0 2px rgba(235,190,76,.19);
}
.wn-plot.golden-open{background:linear-gradient(180deg,rgba(255,252,233,.9),rgba(244,216,146,.55))}
.wn-vineyard-tip{margin:-2px 0 10px;color:#876326;font-size:10px;line-height:1.5;font-weight:800}
.wn-plot-claim{margin-top:4px;color:#865e1c;font-size:9px;font-weight:950}
.wn-plot.upgrade.locked{opacity:.58}
.wn-plot-inner{
  min-height:128px;
  padding:10px 8px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.wn-plot-bonus{
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-height:18px;
  padding:1px 6px;
  margin-bottom:6px;
  border-radius:999px;
  color:#6d4c18;
  background:#ecd6a6;
  border:1px solid rgba(158,110,38,.18);
  font-size:9px;
  font-weight:950;
}
.wn-plot-em{font-size:24px;line-height:1;margin-bottom:6px;filter:drop-shadow(0 4px 8px rgba(60,35,20,.14))}
.wn-plot-add{font-size:24px;line-height:1;color:#af8b46;font-weight:300}
.wn-plot-name{max-width:100%;font-size:12px;font-weight:950;color:#2e241d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wn-plot-meta,.wn-plot-time{margin-top:3px;font-size:10px;color:#77695f;font-weight:700}
.wn-bar{
  width:100%;
  height:7px;
  margin:8px 0 2px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(63,48,31,.13);
}
.wn-bar i{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#7faa80,#d2b15d);
  transition:width 1s ease;
}
.wn-ready{
  margin-top:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:22px;
  border-radius:999px;
  padding:2px 8px;
  color:#174f3c;
  background:#e7f3e9;
  font-size:10px;
  font-weight:950;
}
.wn-ready.late{color:#8a4a31;background:#f7e0d3}
.wn-ready.inline{margin:0 6px 0 0}
.wn-plot-actions{display:flex;justify-content:center;gap:5px;min-height:24px;margin-top:6px}
.wn-plot-lock{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:22px;
  padding:2px 8px;
  border-radius:999px;
  color:#846a54;
  background:rgba(123,97,72,.10);
  font-size:10px;
  font-weight:950;
}

.wn-chip-row{display:flex;flex-wrap:wrap;gap:8px}
.wn-chip-row+.wn-chip-row{margin-top:8px}
.wn-stock-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:12px 0 8px;
  color:#3d2c22;
}
.wn-stock-heading:first-of-type{margin-top:0}
.wn-stock-heading b{font-size:13px}
.wn-stock-heading span{
  color:#907659;
  font-size:11px;
  font-weight:900;
}
.wn-chip-btn{
  min-height:38px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border:1px solid rgba(78,56,34,.16);
  border-radius:8px;
  color:#34261d;
  background:linear-gradient(180deg,#fffdf8,#efe5d4);
  box-shadow:0 8px 16px rgba(57,39,23,.06);
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.wn-chip-btn span{font-size:17px;line-height:1}
.wn-chip-btn b{max-width:118px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wn-chip-btn em,.wn-chip-btn i{font-style:normal}
.wn-chip-btn em{color:#8c6b3a;font-variant-numeric:tabular-nums}
.wn-chip-btn i{
  margin-left:2px;
  color:#fff8e8;
  background:#31584a;
  border-radius:999px;
  padding:2px 7px;
  font-size:10px;
}
.wn-chip-btn.passive{
  cursor:default;
  background:linear-gradient(180deg,#f9f5ee,#ede5d8);
}
.wn-chip-btn.passive i{
  color:#725b42;
  background:#eadcc7;
}
.wn-chip-btn.muted{opacity:.56}
.wn-stock-note{margin-top:10px}

.wn-cellar-compare{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  align-items:start;
}
.wn-cellar-section{min-width:0}
.wn-cellar-list{display:grid;gap:10px}
.wn-cellar-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
  color:#3a2b22;
}
.wn-cellar-heading b{
  min-width:0;
  font-size:14px;
  white-space:normal;
  overflow-wrap:anywhere;
}
.wn-cellar-heading span{
  color:#8f744e;
  font-size:11px;
  font-weight:900;
  flex:0 0 auto;
}
.wn-cellar-panel .wn-jar{gap:10px}
.wn-cellar-panel .wn-jar-actions{align-items:stretch}
.wn-cellar-panel .wn-mini-actions{justify-content:flex-end}
.wn-jar{
  --tier:#b58a45;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:8px;
}
.wn-jar.tier-new{--tier:#8d88a2}
.wn-jar.tier-fresh{--tier:#b64257}
.wn-jar.tier-aged{--tier:#6f1830}
.wn-jar.tier-reserve{--tier:#b98339}
.wn-jar.tier-vintage{--tier:#d2aa45}
.wn-jar.tier-century{--tier:#8f6b2a}
.wn-barrel-shell{
  position:relative;
  padding:10px 8px 12px;
  filter:drop-shadow(0 12px 20px rgba(61,36,16,.16));
}
.wn-barrel-lid,.wn-barrel-base{
  position:absolute;
  left:12%;
  right:12%;
  height:18px;
  border-radius:999px;
  border:1px solid rgba(112,70,40,.28);
  background:linear-gradient(180deg,#e6c48f,#b67843);
  box-shadow:
    inset 0 2px 0 rgba(255,247,232,.52),
    inset 0 -4px 10px rgba(95,56,28,.2);
  pointer-events:none;
}
.wn-barrel-lid{top:2px}
.wn-barrel-base{
  bottom:2px;
  background:linear-gradient(180deg,#c68d57,#9d6336);
}
.wn-barrel-body{
  position:relative;
  min-height:178px;
  padding:22px 14px 18px;
  border-radius:38px 38px 48px 48px/20px 20px 30px 30px;
  border:1px solid rgba(99,58,30,.18);
  background:
    linear-gradient(90deg,rgba(99,61,32,.16),transparent 17%,transparent 83%,rgba(91,55,28,.15)),
    linear-gradient(180deg,#cf9a5e 0%,#bb7f48 24%,#d9ab6b 51%,#b77642 78%,#a9683b 100%);
  overflow:hidden;
}
.wn-barrel-body::before{
  content:"";
  position:absolute;
  top:10px;left:7%;right:7%;bottom:10px;
  border-radius:32px 32px 42px 42px/16px 16px 26px 26px;
  border:1px solid rgba(255,245,225,.18);
  pointer-events:none;
}
.wn-barrel-body::after{
  content:"";
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  background:linear-gradient(90deg,rgba(82,45,22,.16),transparent 18%,transparent 82%,rgba(82,45,22,.16));
  pointer-events:none;
}
.wn-barrel-band{
  position:absolute;
  left:9%;
  right:9%;
  height:9px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg,#4e3528,#221510);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 3px 8px rgba(33,19,14,.24);
  pointer-events:none;
}
.wn-barrel-band.top{top:22px}
.wn-barrel-band.mid{top:calc(50% - 6px)}
.wn-barrel-band.bottom{bottom:22px}
.wn-barrel-label{
  position:relative;
  z-index:1;
  width:min(100%,228px);
  margin:9px auto 0;
  padding:9px 9px 8px;
  border-radius:12px;
  border:1px solid rgba(120,89,53,.22);
  background:linear-gradient(180deg,rgba(255,249,236,.96),rgba(246,233,208,.93));
  box-shadow:
    0 8px 18px rgba(91,59,33,.14),
    inset 0 1px 0 rgba(255,255,255,.7);
}
.wn-barrel-head{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.wn-jar-em{
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:1px solid rgba(113,77,43,.18);
  background:linear-gradient(180deg,#fbf0dd,#e2c79c);
  font-size:18px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
  flex:0 0 auto;
}
.wn-jar-title{
  display:flex;
  align-items:center;
  align-content:flex-start;
  gap:6px;
  flex-wrap:wrap;
  min-width:0;
}
.wn-jar-title b{
  flex:1 1 100%;
  font-size:14px;
  color:#2d211b;
  line-height:1.2;
}
.wn-couple,.wn-bad{
  display:inline-flex;
  border-radius:999px;
  padding:2px 7px;
  font-size:10px;
  font-weight:950;
}
.wn-couple{color:#7b2f50;background:#ffe9f0}
.wn-bad{color:#943b34;background:#ffe3dc}
.wn-barrel-tags,.wn-barrel-notes{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin-top:7px;
}
.wn-barrel-tag,.wn-barrel-note{
  display:inline-flex;
  align-items:center;
  min-height:20px;
  max-width:100%;
  padding:2px 7px;
  border-radius:999px;
  border:1px solid rgba(118,87,55,.18);
  background:rgba(255,252,245,.86);
  color:#654a36;
  font-size:9px;
  line-height:1.25;
  font-weight:900;
  box-sizing:border-box;
}
.wn-barrel-tag.tier{
  color:#fff8ed;
  background:var(--tier);
  border-color:transparent;
}
.wn-barrel-tag.value{
  color:#724916;
  background:#f5dfb7;
}
.wn-barrel-tag.metric{
  color:#6a5539;
  background:#f2ead9;
}
.wn-barrel-tag.quality.q-steady{color:#594f58;background:#ece6ef}
.wn-barrel-tag.quality.q-silk{color:#215345;background:#deefe7}
.wn-barrel-tag.quality.q-inspired{color:#2e4d7e;background:#dfe9f8}
.wn-barrel-tag.quality.q-signature{color:#71461a;background:#f6e2bf}
.wn-barrel-tag.quality.q-anointed{color:#6e1d38;background:#f8dde8}
.wn-barrel-tag.gold,.wn-barrel-note.gold{
  color:#6e4615;
  background:#f6e3be;
}
.wn-barrel-note.seal{
  color:#5d2f42;
  background:#f3e4ea;
}
.wn-barrel-note.accent{
  color:#31517d;
  background:#dce7fb;
}
.wn-barrel-note.rose{
  color:#7a3151;
  background:#f9e2eb;
}
.wn-barrel-note.danger{
  color:#943b34;
  background:#fbe0d7;
}
/* 收益推荐卡（v0923）：按建议类型着色 */
.wn-barrel-note.advice{
  border-style:dashed;
  border-color:currentColor;
}
.wn-barrel-note.adv-wait,.wn-barrel-note.adv-order{
  color:#1f5c37;
  background:#e1f3e4;
}
.wn-barrel-note.adv-sell,.wn-barrel-note.adv-pressure,.wn-barrel-note.adv-dump{
  color:#8a4a1c;
  background:#fdeedd;
}
.wn-barrel-note.adv-balance,.wn-barrel-note.adv-shelf{
  color:#31517d;
  background:#dce7fb;
}
.wn-barrel-note.adv-keep,.wn-barrel-note.adv-max{
  color:#7a3151;
  background:#f9e2eb;
}
/* 故事墙（v0925-wall1） */
.wn-wall-panel .wn-wall-empty{
  padding:18px 10px;text-align:center;color:#8a7a63;font-size:12.5px;
}
.wn-wall-list{display:flex;flex-direction:column;gap:8px}
.wn-wall-card{
  border:1px solid rgba(123,90,58,.16);border-radius:10px;
  background:linear-gradient(180deg,rgba(255,251,243,.94),rgba(246,239,228,.8));
  padding:8px 10px;
}
.wn-wall-card.couple{border-color:rgba(214,106,145,.4);background:linear-gradient(180deg,#fff6fa,#fdeaef)}
.wn-wall-card.spoiled{opacity:.72;border-style:dashed}
.wn-wall-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.wn-wall-name{font-weight:600;font-size:12.8px;color:#4a3a26}
.wn-wall-route{font-size:11px;padding:1px 7px;border-radius:9px;white-space:nowrap}
.wn-wall-route.sold{color:#1f5c37;background:#def0e2}
.wn-wall-route.expo{color:#31517d;background:#dce7fb}
.wn-wall-meta{margin-top:3px;font-size:11px;color:#8a7a63}
.wn-wall-tag{display:inline-block;margin-left:6px;font-size:10.5px;padding:0 6px;border-radius:8px}
.wn-wall-tag.couple{color:#a13a68;background:#fbd9e6}
.wn-wall-tag.spoiled{color:#8a4a1c;background:#f4e3cf}
.wn-wall-note{margin-top:5px;font-size:12px;line-height:1.55;color:#5c4a33}
.wn-wall-extra{margin-top:3px;font-size:11px;color:#9a8a70}
.wn-wall-statrow{display:flex;gap:8px;margin-top:8px}
.wn-wall-stat{flex:1;text-align:center;background:rgba(255,251,243,.9);border:1px solid rgba(123,90,58,.12);border-radius:9px;padding:7px 4px}
.wn-wall-stat b{display:block;font-size:15px;color:#4a3a26}
.wn-wall-stat span{font-size:10.5px;color:#8a7a63}
.wn-wall-tip{margin-top:8px;font-size:11px;color:#9a8a70;text-align:center}
.wn-seal-display{
  margin-top:7px;
  padding:6px 8px;
  border-radius:8px;
  border:1px solid rgba(123,90,58,.14);
  background:linear-gradient(180deg,rgba(255,251,243,.92),rgba(244,236,225,.78));
}
.wn-seal-display.compact{padding:5px 7px}
.wn-seal-svg{
  display:block;
  width:100%;
  height:56px;
}
.wn-seal-svg.compact{height:42px}
.wn-seal-svg polyline{
  fill:none;
  stroke:#761c3b;
  stroke-width:2.4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.wn-seal-meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  margin-top:6px;
  color:#755743;
  font-size:11px;
  line-height:1.35;
}
.wn-seal-meta b{color:#5f2d41}
.wn-barrel-seal{
  margin-top:7px;
  padding:5px 6px;
  border-radius:8px;
  background:rgba(120,71,46,.08);
  border:1px solid rgba(112,72,44,.12);
}
.wn-barrel-seal .wn-seal-display{margin-top:0}
.wn-barrel-seal .wn-seal-display.compact{padding:3px 5px}
.wn-barrel-seal .wn-seal-svg.compact{height:22px}
.wn-quality-line{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:7px;
  padding:7px 9px;
  border:1px solid rgba(126,93,55,.14);
  border-radius:8px;
  background:linear-gradient(180deg,rgba(255,250,241,.9),rgba(244,235,219,.76));
  font-size:11px;
  line-height:1.3;
}
.wn-barrel-label .wn-quality-line{margin-top:10px}
.wn-quality-badge{
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-height:22px;
  padding:2px 8px;
  border-radius:999px;
  font-size:10px;
  font-weight:950;
  white-space:nowrap;
}
.wn-quality-badge.q-steady{color:#594f58;background:#ece6ef}
.wn-quality-badge.q-silk{color:#215345;background:#deefe7}
.wn-quality-badge.q-inspired{color:#2e4d7e;background:#dfe9f8}
.wn-quality-badge.q-signature{color:#71461a;background:#f6e2bf}
.wn-quality-badge.q-anointed{color:#6e1d38;background:#f8dde8}
.wn-quality-mult{
  color:#7c694c;
  font-weight:950;
  font-variant-numeric:tabular-nums;
}
.wn-tier-badge{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:2px 8px;
  border-radius:999px;
  color:#fffaf0;
  background:var(--tier);
  font-size:11px;
  font-weight:950;
}
.wn-order-hit{
  display:inline-flex;
  width:fit-content;
  max-width:100%;
  margin-top:7px;
  padding:5px 8px;
  border-radius:8px;
  color:#6a4518;
  background:#f6e5bd;
  border:1px solid rgba(171,121,42,.18);
  font-size:11px;
  line-height:1.35;
  font-weight:900;
}
.wn-jar-actions{display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.wn-cellar-panel .wn-jar-actions .wn-btn{
  min-height:30px;
  padding:6px 10px;
  font-size:11px;
}
.wn-mini-actions{display:flex;gap:5px}
.wn-cellar-slot{
  min-height:132px;
  padding:16px 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#ad9f8f;
  border:1px dashed rgba(119,86,51,.24);
  border-radius:42px 42px 56px 56px/24px 24px 38px 38px;
  background:
    linear-gradient(180deg,rgba(252,247,238,.9),rgba(244,233,216,.72)),
    repeating-linear-gradient(90deg,transparent 0 26px,rgba(116,82,48,.04) 26px 27px);
  font-size:11px;
  font-weight:800;
}
@media (min-width:1180px){
  .wn-cellar-panel .wn-jar{
    grid-template-columns:minmax(0,1fr) 106px;
    align-items:end;
  }
  .wn-cellar-panel .wn-jar-actions{
    align-self:end;
  }
}
.wn-empty-cellar{
  min-height:116px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  text-align:center;
  border:1px dashed rgba(119,86,51,.24);
  border-radius:8px;
  background:rgba(255,252,245,.56);
}
.wn-empty-cellar b{font-size:15px;color:#38271f}
.wn-empty-cellar span{max-width:360px;color:#7c6b5d;font-size:12px;line-height:1.55}

.wn-duel-panel{
  border-color:rgba(110,24,48,.22);
  background:linear-gradient(145deg,#fff8ef,#f5e9dc 58%,#f8eef0);
}
.wn-duel-state,.wn-duel-winner{
  color:#402a25;
  font-size:13px;
  font-weight:950;
  margin-bottom:8px;
}
.wn-upgrade-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.wn-upgrade{
  min-height:58px;
  text-align:left;
  padding:10px;
  border:1px solid rgba(75,52,35,.16);
  border-radius:8px;
  background:linear-gradient(180deg,#fffaf0,#efe4d2);
  color:#2e241d;
}
.wn-upgrade.can{cursor:pointer}
.wn-upgrade.locked{opacity:.5}
.wn-upgrade b{display:block;font-size:12px;line-height:1.25}
.wn-upgrade span{display:block;margin-top:4px;color:#927143;font-size:11px;font-weight:900}
.wn-action-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.wn-action-row span{color:#826d5a;font-size:12px;font-weight:800}
.wn-tier-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.wn-tier-card{
  min-height:76px;
  padding:9px 6px;
  text-align:center;
  border:1px solid rgba(77,55,34,.13);
  border-radius:8px;
  background:linear-gradient(180deg,#fffaf0,#efe6d7);
}
.wn-tier-card span{display:block;font-size:20px;line-height:1}
.wn-tier-card b{display:block;margin-top:5px;color:#33251d;font-size:12px}
.wn-tier-card i{display:block;margin-top:3px;color:#9b6b22;font-style:normal;font-size:13px;font-weight:950}
.wn-tier-card em{display:block;margin-top:2px;color:#8b7a6b;font-style:normal;font-size:10px;font-weight:800}
.wn-log-list{max-height:220px;overflow:auto;padding-right:2px}
.wn-log-row{
  padding:6px 0;
  border-bottom:1px solid rgba(91,66,39,.08);
  color:#7b6c60;
  font-size:11px;
  line-height:1.45;
}
.wn-log-row:last-child{border-bottom:0}
.wn-help .hb{color:#695b51;font-size:12px;line-height:1.65}
.wn-help .goal{
  margin-bottom:8px;
  padding:10px;
  border-radius:8px;
  color:#2f241e;
  background:#f4e7d2;
  font-weight:950;
}
.wn-help .goal span{color:#7d6b5a;font-weight:700}
.wn-help .tip{
  margin-top:8px;
  padding:9px;
  border-radius:8px;
  color:#674619;
  background:#f8e8c4;
  font-weight:900;
}

.wn-modal{color:#2e211b}
.wn-modal h3{font-size:18px;margin:0 0 8px;color:#24161d}
.wn-modal p{margin:0 0 12px;color:#76665a;font-size:13px;line-height:1.55}
.wn-ritual-card{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin:0 0 12px;
  padding:12px;
  border:1px solid rgba(143,102,41,.18);
  border-radius:8px;
  color:#5a4430;
  background:linear-gradient(145deg,#fff7e7,#f3e7d2 58%,#efe0cf);
}
.wn-ritual-mark{
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  color:#fff5e2;
  background:linear-gradient(180deg,#7a1f3b,#4a1025);
  box-shadow:0 10px 18px rgba(74,16,37,.18);
  font-size:15px;
  font-weight:950;
  flex:0 0 auto;
}
.wn-ritual-copy{min-width:0}
.wn-ritual-copy b{
  display:block;
  color:#35251b;
  font-size:13px;
  line-height:1.3;
}
.wn-ritual-copy span{
  display:block;
  margin-top:4px;
  color:#7a6655;
  font-size:11px;
  line-height:1.5;
  font-weight:800;
}
.wn-ritual-state{
  margin:0 0 10px;
  padding:8px 10px;
  border-radius:8px;
  color:#725a45;
  background:#f4eadc;
  font-size:11px;
  line-height:1.45;
  font-weight:850;
}
.wn-ritual-state b{color:#35251b}
.wn-ritual-state.on{
  color:#174f3c;
  background:#e8f3ea;
  border:1px solid rgba(52,112,83,.14);
}
.wn-seal-shell{
  margin:0 0 12px;
  padding:12px;
  border:1px solid rgba(125,92,58,.18);
  border-radius:8px;
  background:linear-gradient(180deg,#fffaf0,#f2e8d9);
}
.wn-seal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.wn-seal-head b{
  color:#38271f;
  font-size:13px;
}
.wn-seal-pad{
  display:block;
  width:100%;
  height:140px;
  border-radius:8px;
  background:#fffcf6;
  box-shadow:inset 0 0 0 1px rgba(116,85,53,.14);
  touch-action:none;
  cursor:crosshair;
}
.wn-seal-tip{
  margin-top:8px;
  color:#7d6a5a;
  font-size:11px;
  line-height:1.45;
  font-weight:800;
}
.wn-choice-list{display:grid;gap:8px;max-height:55vh;overflow:auto;padding-right:2px}
.wn-choice{
  display:flex;
  gap:11px;
  align-items:center;
  padding:12px;
  border:1px solid rgba(83,60,37,.16);
  border-radius:8px;
  background:linear-gradient(180deg,#fffdf8,#f3eadc);
  cursor:pointer;
}
.wn-choice.locked{cursor:default;opacity:.48}
.wn-choice [data-winery-variety]{min-width:0;overflow-wrap:anywhere}
.wn-choice:has([data-winery-variety]){display:block;position:relative}
.wn-choice:has([data-winery-variety]) .wn-choice-em{position:absolute;top:12px;left:12px;width:28px;height:28px;font-size:20px}
.wn-choice [data-winery-variety]>b{padding-left:36px;min-height:28px;display:flex;align-items:center}
.wn-variety-note{font-size:12px;line-height:1.5;color:#6f6057;margin:8px 0}
.wn-choice-em{
  width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:#f0e0c8;
  font-size:22px;
  flex:0 0 auto;
}
.wn-choice b{display:block;color:#2d211b;font-size:14px}
.wn-choice span,.wn-choice em{display:block;margin-top:3px;font-size:12px;line-height:1.35;font-style:normal}
.wn-choice span{color:#6f6057}
.wn-choice em{color:#9a6e31;font-weight:850}
.wn-modal-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.wn-open-value{
  margin:10px 0;
  padding:10px;
  border-radius:8px;
  color:#6a4518;
  background:#f6e5bd;
  font-size:13px;
  font-weight:900;
}
.wn-open-value b{font-size:17px}
.wn-field{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin:9px 0;
  color:#5d4c43;
  font-size:13px;
  font-weight:850;
}
.wn-field.stacked{
  flex-direction:column;
  align-items:stretch;
}
.wn-field input{
  width:120px;
  padding:8px 9px;
  border:1px solid rgba(83,60,37,.22);
  border-radius:8px;
  color:#261914;
  background:#fffaf2;
  font:inherit;
}
.wn-field.stacked input{width:100%}
.wn-engrave-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 10px;
}
.wn-engrave-chip{
  min-height:32px;
  padding:6px 11px;
  border:1px solid rgba(93,64,37,.16);
  border-radius:999px;
  color:#412f24;
  background:linear-gradient(180deg,#fffdf8,#efe4d3);
  box-shadow:0 8px 14px rgba(63,42,26,.07);
  font-size:11px;
  font-weight:950;
  cursor:pointer;
}
.wn-engrave-chip.ghost{
  color:#725f53;
  background:linear-gradient(180deg,#faf8f3,#efe8de);
}

@media (max-width:820px){
  #winery{padding:16px 12px 28px}
  .wn-layout{grid-template-columns:1fr}
}
@media (max-width:560px){
  #winery{margin:-6px -11px 0;padding:16px 11px 24px}
  .wn-stage,.wn-layout,.wn-maincol,.wn-sidecol{gap:10px}
  .wn-panel{padding:12px}
  .wn-hero{grid-template-columns:1fr;min-height:auto;padding:20px 16px}
  .wn-hero-art{display:none}
  .wn-htitle .t{font-size:23px;margin-top:8px}
  .wn-htitle .s{font-size:12px;margin-top:6px}
  .wn-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
  .wn-stat{min-height:52px;padding:8px 8px 7px}
  .wn-stat .n{font-size:14px}
  .wn-stat .l{font-size:10px;margin-top:4px}
  .wn-dexbar{margin-top:10px}
  .wn-hero-actions{margin-top:14px;gap:6px}
  .wn-operation.featured{grid-template-columns:1fr}.wn-operation.featured .wn-next-btn{grid-column:1;grid-row:auto;width:100%;margin-top:7px}
  .wn-radar,.wn-grid{grid-template-columns:1fr}
  .wn-orders{gap:9px;padding-bottom:5px}
  .wn-vineyard .wn-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .wn-order{flex-basis:78vw;min-height:auto}
  .wn-player-grid,.wn-expo-board{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    padding:0;
    margin:0;
    overflow:visible;
  }
  .wn-player-card,.wn-expo-row{
    min-width:0;
    width:100%;
  }
  .wn-player-top,.wn-player-row{
    align-items:flex-start;
  }
  .wn-player-top b,.wn-expo-row b{font-size:12px}
  .wn-player-top span,.wn-player-row,.wn-expo-row span,.wn-expo-metrics{font-size:10px}
  .wn-expo-title{padding:2px 6px;font-size:9px}
  .wn-cellar-compare{gap:8px}
  .wn-cellar-heading{gap:6px;margin-bottom:8px}
  .wn-cellar-heading b{font-size:12px}
  .wn-cellar-heading span{font-size:10px}
  .wn-cellar-panel .wn-jar{padding:10px}
  .wn-cellar-panel .wn-jar-em{width:36px;height:36px;font-size:21px}
  .wn-cellar-panel .wn-jar-title b{font-size:13px}
  .wn-cellar-panel .wn-jar-meta,
  .wn-cellar-panel .wn-jar-row,
  .wn-cellar-panel .wn-jar-value,
  .wn-cellar-panel .wn-jar-hint,
  .wn-cellar-panel .wn-sip{font-size:10px}
  .wn-cellar-panel .wn-quality-line{padding:6px 8px}
  .wn-cellar-panel .wn-quality-badge{font-size:9px}
  .wn-cellar-panel .wn-quality-mult{font-size:10px}
  .wn-cellar-panel .wn-empty-cellar{min-height:92px;padding:8px}
  .wn-cellar-panel .wn-empty-cellar b{font-size:13px}
  .wn-cellar-panel .wn-empty-cellar span{font-size:10px}
  .wn-barrel-shell{padding:8px 4px 10px}
  .wn-barrel-lid,.wn-barrel-base{left:10%;right:10%;height:15px}
  .wn-barrel-body{
    min-height:146px;
    padding:18px 9px 14px;
    border-radius:28px 28px 36px 36px/15px 15px 24px 24px;
  }
  .wn-barrel-body::before{
    top:8px;left:6%;right:6%;bottom:8px;
    border-radius:24px 24px 30px 30px/12px 12px 18px 18px;
  }
  .wn-barrel-band{left:8%;right:8%;height:8px}
  .wn-barrel-band.top{top:18px}
  .wn-barrel-band.bottom{bottom:18px}
  .wn-barrel-label{
    width:min(100%,150px);
    margin-top:7px;
    padding:7px 7px 6px;
  }
  .wn-cellar-panel .wn-jar-em{width:28px;height:28px;font-size:16px}
  .wn-cellar-panel .wn-jar-title b{font-size:11px}
  .wn-barrel-tags,.wn-barrel-notes{gap:3px;margin-top:5px}
  .wn-barrel-tag,.wn-barrel-note{
    min-height:18px;
    padding:2px 6px;
    font-size:8px;
  }
  .wn-cellar-panel .wn-quality-line{padding:4px 6px}
  .wn-cellar-panel .wn-quality-badge,
  .wn-cellar-panel .wn-quality-mult{font-size:8px}
  .wn-barrel-seal{margin-top:5px;padding:4px}
  .wn-barrel-seal .wn-seal-display.compact{padding:2px 4px}
  .wn-barrel-seal .wn-seal-svg.compact{height:18px}
  .wn-cellar-slot{min-height:112px;padding:12px 8px;font-size:10px}
  .wn-vintage-checks,.wn-vintage-routes{grid-template-columns:1fr}
  .wn-vintage h2{font-size:21px}
  .wn-vintage-count{min-width:52px}
  .wn-upgrade-grid{grid-template-columns:1fr}
  .wn-jar{grid-template-columns:1fr}
  .wn-jar-actions{align-items:stretch}
  .wn-mini-actions{justify-content:flex-end}
  .wn-tier-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wn-action-row .wn-btn{flex:1}
  .wn-modal-actions .wn-btn{flex:1}
}

/* ═══════════ Y07 共赴山海 v2（战报英雄卡 + 黎明登山场景） ═══════════ */
#wtBox>*{animation:wtIn .45s cubic-bezier(.2,.8,.3,1) both}
#wtBox>*:nth-child(2){animation-delay:.05s}
#wtBox>*:nth-child(3){animation-delay:.1s}
#wtBox>*:nth-child(4){animation-delay:.15s}
#wtBox>*:nth-child(5){animation-delay:.2s}
#wtBox>*:nth-child(6){animation-delay:.25s}
@keyframes wtIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ── 卡片骨架 ── */
.wt-card{background:var(--card,#fff);border-radius:16px;padding:14px;margin-bottom:10px;box-shadow:0 2px 10px rgba(42,42,50,.05)}
.wt-card-title{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:800;margin-bottom:10px;color:var(--ink,#2a2a32)}
.wt-card-title .wt-chip{margin-left:auto;background:linear-gradient(135deg,#fdf3dd,#f7e7c8);color:#8a6a2b;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:800}
.wt-card-title .wt-sub{margin-left:auto;font-size:11px;color:var(--muted,#9a9aa5);font-weight:500}

/* ── 沉浸式页头（战报 + 关键数据） ── */
.wt-hero{position:relative;overflow:hidden;border-radius:18px;padding:18px 16px 36px;margin-bottom:10px;color:#fff;box-shadow:0 6px 20px rgba(42,42,50,.16)}
.wt-hero::before{content:'';position:absolute;right:-30px;top:-42px;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.3),transparent 65%)}
.wt-hero.m-win{background:linear-gradient(135deg,#3f8f6b,#7cc9a0)}
.wt-hero.m-good{background:linear-gradient(135deg,#5c9a7e,#a3d9bf)}
.wt-hero.m-flat{background:linear-gradient(135deg,#77808f,#a9b2c0)}
.wt-hero.m-ouch{background:linear-gradient(135deg,#c76a7e,#e8a3ae)}
.wt-ph-ridge{position:absolute;left:0;right:0;bottom:0;width:100%;height:56px;display:block}
.wt-ph-title{position:relative;font-size:12px;font-weight:800;letter-spacing:2.5px;opacity:.92;margin-bottom:7px}
.wt-hero-num{position:relative;font-size:40px;font-weight:900;line-height:1.05;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.wt-hero-num small{font-size:13px;font-weight:700;opacity:.85}
.wt-diff{font-size:12px;font-weight:800;border-radius:999px;padding:3px 10px;background:rgba(255,255,255,.26);align-self:center}
.wt-hero-vs{font-size:11px;font-weight:800;background:rgba(255,255,255,.24);border-radius:999px;padding:3px 9px;align-self:center;margin-left:auto}
.wt-hero-line{position:relative;margin-top:7px;font-size:13px;line-height:1.55;opacity:.96;max-width:92%}
.wt-hero-line.lead{font-size:15px;font-weight:700;padding:4px 0 2px}
.wt-ph-chips{position:relative;display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.wt-ph-chips span{font-size:11px;font-weight:800;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.32);border-radius:999px;padding:4px 10px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}

/* ── 今日称重 ── */
.wt-checkin-row{display:flex;gap:8px;align-items:stretch}
.wt-kg-input{flex:1;display:flex;align-items:center;background:#f4f2ee;border:1.5px solid #e5e1d8;border-radius:12px;padding:0 12px;transition:border-color .2s}
.wt-kg-input:focus-within{border-color:var(--gold,#c8a24a)}
.wt-kg-input input{flex:1;min-width:0;border:0;background:none;outline:0;padding:11px 0;font-size:17px;font-weight:700;color:var(--ink,#2a2a32);text-align:center}
.wt-kg-input input::-webkit-outer-spin-button,.wt-kg-input input::-webkit-inner-spin-button{-webkit-appearance:none}
.wt-kg-input span{font-size:12px;color:var(--muted,#9a9aa5);font-weight:700}
.wt-strike{background:linear-gradient(135deg,var(--wolf,#5b6b8c),var(--rabbit,#e08aa6));border-radius:12px;padding:0 18px;font-size:15px;white-space:nowrap;box-shadow:0 3px 10px rgba(224,138,166,.35)}
.wt-strike:active,.wt-rescue:active,.wt-goal-btn:active{transform:scale(.96)}
.wt-done{background:#eef7ef;border:1px solid #cfe8d2;border-radius:12px;padding:11px 12px;font-size:13px;color:#3e7a52;line-height:1.6}
.wt-done b{font-size:15px}

/* ── 目标设置/修改 ── */
.wt-goal-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wt-field span{display:block;font-size:11px;color:var(--muted,#9a9aa5);margin-bottom:4px;font-weight:600}
.wt-field input{width:100%;padding:10px;border:1.5px solid #e5e1d8;border-radius:10px;font-size:16px;box-sizing:border-box;background:#faf9f6;outline:0}
.wt-field input:focus{border-color:var(--gold,#c8a24a)}
.wt-goal-hint{font-size:11.5px;color:var(--muted,#9a9aa5);margin:8px 0}
.wt-goal-btn{width:100%;margin-top:2px;padding:11px;border-radius:12px;background:linear-gradient(135deg,var(--wolf,#5b6b8c),var(--rabbit,#e08aa6));font-size:15px}
.wt-edit .wt-checkin-row .wt-goal-btn{width:auto;padding:0 16px}
.wt-fold{cursor:pointer;user-select:none;-webkit-user-select:none}
.wt-fold-tip{margin-left:auto;font-size:10.5px;color:var(--muted,#9a9aa5);font-weight:500}

/* ── 黎明登山场景 ── */
.wt-svg{width:100%;max-width:380px;display:block;margin:0 auto}
.wt-cloud{animation:wtCloud 9s ease-in-out infinite alternate}
.wt-cloud.c2{animation-duration:12s;animation-delay:1.2s}
@keyframes wtCloud{from{transform:translateX(-7px)}to{transform:translateX(9px)}}
.wt-sunglow{transform-box:fill-box;transform-origin:center;animation:wtSun 4.5s ease-in-out infinite alternate}
@keyframes wtSun{from{opacity:.22;transform:scale(1)}to{opacity:.42;transform:scale(1.12)}}
.wt-flag{transform-box:fill-box;transform-origin:0% 100%;animation:wtFlag 3s ease-in-out infinite alternate}
@keyframes wtFlag{from{transform:rotate(-4deg)}to{transform:rotate(5deg)}}
.wt-climb{animation:wtClimb 2.6s ease-in-out infinite alternate}
.wt-climb.me{animation-delay:.5s}
@keyframes wtClimb{from{transform:translateY(-1.5px)}to{transform:translateY(2px)}}
.wt-star{animation:wtStar 2.4s ease-in-out infinite alternate}
.wt-star.s2{animation-delay:.6s;animation-duration:3.1s}
.wt-star.s3{animation-delay:1.1s}
.wt-star.s4{animation-delay:1.7s;animation-duration:2.8s}
@keyframes wtStar{from{opacity:.25}to{opacity:.95}}
.wt-bird{animation:wtBird 5.5s ease-in-out infinite alternate}
.wt-bird.b2{animation-delay:1.4s;animation-duration:6.5s}
@keyframes wtBird{from{transform:translate(0,0)}to{transform:translate(9px,-5px)}}
.wt-mist{animation:wtMist 7s ease-in-out infinite alternate}
@keyframes wtMist{from{transform:translateX(-8px);opacity:.12}to{transform:translateX(8px);opacity:.22}}
.wt-scene-legend{display:flex;justify-content:space-around;margin-top:8px;font-size:12px;font-weight:700;color:var(--muted,#9a9aa5)}
.wt-scene-legend .mid{color:#8a6a2b}

/* ── 变身进度 ── */
.wt-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}
.wt-tile{border-radius:12px;padding:10px 6px}
.wt-tile b{display:block;font-size:21px;font-weight:900;line-height:1.1}
.wt-tile span{display:block;font-size:10.5px;color:var(--muted,#9a9aa5);margin-top:3px;font-weight:600}
.wt-tile.t-a{background:#eef2f9;color:var(--wolf,#5b6b8c)}
.wt-tile.t-b{background:#fdf1ec;color:#c07a5a}
.wt-tile.t-c{background:#f3f0e4;color:#8a6a2b}
.wt-trend{margin-top:12px;background:linear-gradient(135deg,#f8f7f4,#f4f1f7);border-radius:12px;padding:9px 10px 6px}
.wt-trend-head{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted,#9a9aa5);font-weight:700;margin-bottom:2px}
.wt-trend-head b{color:#8a6a2b;font-size:11px}
.wt-trend-svg{width:100%;height:66px;display:block}
.wt-bar-head{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted,#9a9aa5);margin-top:12px;font-weight:700}
.wt-bar-head b{color:var(--wolf,#5b6b8c)}
.wt-bar-head .nc{color:#8a6a2b}
.wt-bar{position:relative;height:10px;border-radius:999px;background:#efece6;margin-top:6px}
.wt-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--wolf,#5b6b8c),var(--rabbit,#e08aa6));box-shadow:0 0 8px rgba(224,138,166,.45);transition:width .5s ease}
.wt-bar em{position:absolute;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#fff;border:3px solid var(--gold,#c8a24a);box-shadow:0 1px 4px rgba(0,0,0,.18);transition:left .5s ease}
.wt-bar b{position:absolute;top:2px;bottom:2px;width:2px;border-radius:2px;background:rgba(42,42,50,.14)}
.wt-bar.slim{height:7px;margin-top:8px}
.wt-bar.slim em{display:none}
.wt-streak{font-size:12px;color:var(--muted,#9a9aa5);margin-top:8px}
.wt-streak b{color:#d3543f}
.wt-ms{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.wt-ms span{background:linear-gradient(135deg,#fdf3dd,#f7e7c8);color:#8a6a2b;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:800}
.wt-camps{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.wt-camp-btn{background:linear-gradient(135deg,#e8b46a,#d39a45);border-radius:999px;padding:6px 12px;font-size:12px;animation:wtCanPulse 1.6s ease infinite}
@keyframes wtCanPulse{0%,100%{box-shadow:0 0 0 2px rgba(232,180,106,.3)}50%{box-shadow:0 0 0 5px rgba(232,180,106,.16)}}

/* ── 胖瘦同盟 ── */
.wt-ally-top{display:flex;align-items:center;gap:8px}
.wt-ava{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.wt-ava.a-wolf{background:#e7ecf6;box-shadow:0 0 0 2px var(--wolf,#5b6b8c)}
.wt-ava.a-rabbit{background:#fbe6ee;box-shadow:0 0 0 2px var(--rabbit,#e08aa6)}
.wt-heart{font-size:16px;display:inline-block;animation:wtBeat 1.2s ease-in-out infinite}
@keyframes wtBeat{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
.wt-ally-days{margin-left:auto;text-align:right}
.wt-ally-days b{font-size:26px;font-weight:900;color:var(--wolf,#5b6b8c);display:block;line-height:1}
.wt-ally-days span{font-size:11px;color:var(--muted,#9a9aa5)}
.wt-ally-today{margin-top:10px;border-radius:10px;padding:8px 10px;font-size:12.5px;text-align:center}
.wt-ally-today.ok{background:#eef7ef;color:#3e7a52}
.wt-ally-today.wait{background:#fdf6ec;color:#b07838}
.wt-ally-badge{text-align:center;font-size:11.5px;color:var(--muted,#9a9aa5);margin-top:6px}
.wt-ally-rival{margin-top:10px;padding:10px;background:linear-gradient(135deg,#f6f3fa,#fbf4f7);border-radius:12px}
.wt-ally-rival-head{display:flex;justify-content:space-between;font-size:12.5px;font-weight:800;color:var(--ink,#2a2a32)}
.wt-ally-rival-head b{color:var(--rabbit,#e08aa6)}
.wt-ally-rival-sub{font-size:11.5px;color:var(--muted,#9a9aa5);margin:3px 0 2px}
.wt-ally-act{text-align:center;margin-top:10px}
.wt-rescue{background:#d3717f;border-radius:999px;padding:8px 18px;font-size:13px}

/* ── 降级与适配 ── */
@media (prefers-reduced-motion:reduce){
  #wtBox>*,.wt-cloud,.wt-sunglow,.wt-flag,.wt-climb,.wt-heart,.wt-camp-btn,.wt-star,.wt-bird,.wt-mist{animation:none!important}
}
@media(max-width:480px){
  .wt-card{border-radius:13px;padding:12px}
  .wt-hero-num{font-size:32px}
  .wt-goal-grid{grid-template-columns:1fr}
  .wt-tile b{font-size:18px}
  .wt-ava{width:38px;height:38px;font-size:19px}
}

/* v1.1：M05 页 tab 按钮选中态 */
.m05tabbtn.on{background:var(--gold,#e8c97a)!important;border-color:#c8a24a!important;color:#4a3a24!important;font-weight:800;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.m05-school-route{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:4px}.m05-school-route>i{font-style:normal;color:#c8cad2}.m05-school-step{min-width:0;text-align:center;color:#a4a6ad}.m05-school-step b{display:flex;width:28px;height:28px;margin:0 auto 3px;align-items:center;justify-content:center;border-radius:50%;background:#f0f1f4}.m05-school-step span{display:block;font-size:10px;line-height:1.2;overflow-wrap:anywhere}.m05-school-step.done{color:#55735b}.m05-school-step.done b{background:#e4f6e6}.m05-school-story{font-size:11.5px;line-height:1.65;padding:8px 10px;background:#f4f0fa;border:1px solid #ddd1ec;border-radius:8px}.m05-school-harvest{margin-top:4px;color:#667d57}

/* ═══════════ 成长中心 v1.3：学习即时反馈动画（§2.6 ①） ═══════════ */
@keyframes cg-pop-in { from{transform:translateX(-50%) scale(.55);opacity:0} to{transform:translateX(-50%) scale(1);opacity:1} }
@keyframes cg-pop-out { from{transform:translateX(-50%) scale(1);opacity:1} to{transform:translateX(-50%) scale(.7);opacity:0} }
@keyframes cg-flash-bg { 0%{background:#fff3d6} 60%{background:#fff3d6} 100%{background:transparent} }
.cg-levelup-card{position:fixed;left:50%;top:36%;transform:translateX(-50%);z-index:9999;width:min(300px,86vw);
  background:linear-gradient(145deg,#fff8ef,#fdf0d8);border:2px solid #e8c97a;border-radius:16px;
  box-shadow:0 10px 34px rgba(180,140,60,.35);padding:18px 16px;text-align:center;
  animation:cg-pop-in .38s cubic-bezier(.2,1.4,.4,1) both}
.cg-levelup-card.cg-levelup-out{animation:cg-pop-out .38s ease-in both}
.cg-levelup-inner{font-size:17px;font-weight:800;color:#b08a4a;letter-spacing:1px;line-height:1.5}
.cg-levelup-sub{font-size:12px;font-weight:600;color:#8a7448;margin-top:6px}
.cg-flash-new{animation:cg-flash-bg 1.8s ease-out both;border-radius:6px;padding:2px 4px}

/* ===== M29 弹弓打猪头 · 横屏沉浸 ===== */
html.b29fs header.compact, html.b29fs #subBar, html.b29fs nav{display:none !important}
html.b29fs body{overflow:hidden;background:#0e1524}
html.b29fs #m29{position:fixed;top:0;left:0;right:0;bottom:0;z-index:999;background:linear-gradient(180deg,#0e1524,#16233c);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;margin:0;overflow:hidden}
html.b29fs #m29setup{display:flex !important;flex-direction:column;align-items:center;gap:10px;width:min(92vw,720px);margin:0}
html.b29fs #m29setup .card{background:transparent;box-shadow:none}
html.b29fs #m29setup .sub{color:#bcd}
html.b29fs #m29game{display:flex !important;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;gap:10px;position:relative}
html.b29fs #m29cv{width:auto !important;max-width:100vw;height:auto;max-height:calc(100vh - 120px)}
html.b29fs .b29-btns{position:absolute;bottom:calc(12px + env(safe-area-inset-bottom,0px));left:0;right:0;display:flex;gap:10px;width:min(92vw,420px);margin:0 auto}
html.b29fs .b29-btns .btn{font-size:14px}
html.b29fs #m29done{position:absolute;bottom:calc(64px + env(safe-area-inset-bottom,0px));left:0;right:0;width:min(92vw,460px);margin:0 auto}
html.b29fs #m29done .card{background:rgba(18,26,40,.92);color:#fff}
html.b29fs #m29done .sub{color:#bcd}

/* ==================== v0816 个人岛补完：主题皮肤 + 施工提示 ==================== */
.pi-build-tip{position:absolute;left:50%;top:calc(64px + env(safe-area-inset-top,0px));transform:translateX(-50%);z-index:6;background:rgba(42,37,32,.85);color:#ffe9b8;border-radius:999px;padding:6px 13px;font-size:11px;font-weight:800;white-space:nowrap;max-width:92vw;overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 8px rgba(0,0,0,.25)}
/* 主题皮肤（PRD §2.8）：整岛色调切换。
   .pi-map 的草地纹理不透明会盖住页面渐变——主题色必须同时叠到 .pi-map 上，
   否则岛面永远是默认海边草地（v0825 补：此前只叠 .pi-view，地图区看不到主题色） */
.pi-page.pi-forest{background:linear-gradient(180deg,#5c8a5a 0%,#8fbf7d 38%,#d4e8c8 100%)}
.pi-page.pi-forest .pi-view{background:linear-gradient(180deg,rgba(92,138,90,.45),rgba(212,232,200,.45)),url(/uploads/_assets/wm/water.jpg) center/280px repeat}
.pi-page.pi-forest .pi-map{background:linear-gradient(rgba(74,124,60,.32),rgba(74,124,60,.32)),url(/uploads/_assets/wm/grass.jpg) center/620px repeat}
.pi-page.pi-forest .pi-cell2.grass{background:rgba(74,124,60,.28)}
.pi-page.pi-forest .pi-cell2.sand{background:rgba(196,222,170,.34)}
.pi-page.pi-forest .pi-hud,.pi-page.pi-forest .pi-mode{background:rgba(38,66,34,.92)}
.pi-page.pi-star{background:linear-gradient(180deg,#23264d 0%,#3b3f7d 38%,#6a6fae 100%)}
.pi-page.pi-star .pi-view{background:linear-gradient(180deg,rgba(35,38,77,.6),rgba(106,111,174,.55)),url(/uploads/_assets/wm/water.jpg) center/280px repeat}
.pi-page.pi-star .pi-map{background:linear-gradient(rgba(35,38,77,.5),rgba(35,38,77,.5)),url(/uploads/_assets/wm/grass.jpg) center/620px repeat}
.pi-page.pi-star .pi-cell2.grass{background:rgba(106,90,205,.16)}
.pi-page.pi-star .pi-cell2.sand{background:rgba(138,122,224,.22)}
.pi-page.pi-star .pi-hud,.pi-page.pi-star .pi-mode{background:rgba(24,26,58,.92)}
.pi-page.pi-sakura{background:linear-gradient(180deg,#f7c8d8 0%,#fbdbe6 38%,#fdeef3 100%)}
.pi-page.pi-sakura .pi-view{background:linear-gradient(180deg,rgba(247,200,216,.5),rgba(253,238,243,.5)),url(/uploads/_assets/wm/water.jpg) center/280px repeat}
.pi-page.pi-sakura .pi-map{background:linear-gradient(rgba(247,200,216,.42),rgba(247,200,216,.42)),url(/uploads/_assets/wm/grass.jpg) center/620px repeat}
.pi-page.pi-sakura .pi-cell2.grass{background:rgba(238,158,190,.16)}
.pi-page.pi-sakura .pi-cell2.sand{background:rgba(250,205,222,.3)}
.pi-page.pi-sakura .pi-hud,.pi-page.pi-sakura .pi-mode{background:rgba(200,120,150,.92)}
/* 夜晚：海面一起入夜（原 pi-page 渐变被 pi-view 水纹图遮住，主题/夜色都要叠在水纹上才可见） */
.pi-page.pi-night .pi-view{background:linear-gradient(180deg,rgba(28,37,71,.6),rgba(60,82,102,.6)),url(/uploads/_assets/wm/water.jpg) center/280px repeat}

/* ==================== v0816-island12 · 个人岛「更多」底部抽屉 ==================== */
.pi-sheet-mask{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9998;background:rgba(20,14,8,.45);opacity:0;transition:opacity .22s ease;pointer-events:none}
.pi-sheet-mask.on{opacity:1;pointer-events:auto}
.pi-sheet{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:linear-gradient(180deg,#fffdf7,#fdf6e9);border-radius:22px 22px 0 0;box-shadow:0 -8px 30px rgba(60,40,10,.22);transform:translateY(105%);transition:transform .26s cubic-bezier(.32,.72,.3,1);padding:14px 16px calc(20px + env(safe-area-inset-bottom,0px));max-height:80vh;overflow-y:auto}
.pi-sheet.on{transform:translateY(0)}
.pi-sheet-grip{width:44px;height:5px;border-radius:999px;background:rgba(120,95,60,.25);margin:2px auto 12px}
.pi-sheet-title{font-size:15px;font-weight:800;color:#5b4636;text-align:center;margin-bottom:4px}
.pi-sheet-sub{font-size:10px;color:#a08a6a;text-align:center;margin-bottom:12px}
.pi-sheet-group{margin-bottom:14px}
.pi-sheet-group-title{font-size:11px;font-weight:800;color:#b3926a;letter-spacing:1px;margin:0 2px 6px;display:flex;align-items:center;gap:6px}
.pi-sheet-group-title::after{content:'';flex:1;height:1px;background:rgba(179,146,106,.28)}
.pi-sheet-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pi-sheet-btn{background:#fff;border:1px solid rgba(179,146,106,.25);border-radius:14px;padding:10px 6px 9px;text-align:center;box-shadow:0 2px 6px rgba(120,95,60,.08);cursor:pointer;transition:transform .12s ease}
.pi-sheet-btn:active{transform:scale(.95)}
.pi-sheet-btn b{display:block;font-size:21px;line-height:1.2;margin-bottom:3px}
.pi-sheet-btn span{display:block;font-size:11px;font-weight:800;color:#6b5335}
.pi-sheet-btn small{display:block;font-size:9px;color:#a08a6a;margin-top:2px;line-height:1.25}
.pi-sheet-close{margin-top:6px;width:100%;border:0;border-radius:14px;background:rgba(179,146,106,.18);color:#8a6d4a;padding:11px;font-size:13px;font-weight:800;cursor:pointer}
/* 🏝️ 岛上动态底部抽屉：复用自由大世界「家园足迹」(wm-drawer) 样式，贴底吸附 */
.pi-drawer-pos{position:absolute;left:0;right:0;bottom:0}
.pi-loading{color:#a08a6a;font-size:12px;text-align:center;padding:8px 0}
/* ⬆️ 升级模式：可升级（资源够）的建筑/装饰箭头标注 */
.pi-upgradable{outline:2px dashed rgba(232,162,61,.75);outline-offset:1px;border-radius:8px}
.pi-up-arrow{position:absolute;top:-11px;right:-4px;font-style:normal;font-size:15px;line-height:1;filter:drop-shadow(0 1px 2px rgba(60,40,10,.35));animation:piUpBob 1s ease-in-out infinite}
.pi-decor2 .pi-up-arrow{top:-9px}
@keyframes piUpBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

/* 农场 tab 分组（v0816 v2）：等分按钮栏（与成长中心一致），顶部固定主体按 tab 切换 */
.fm-tabs{display:flex;gap:6px;margin:10px 0 6px}
.fm-tab{flex:1;border:1px solid #e3d5b8;border-radius:10px;background:#fbf7ee;color:#8a7a5c;padding:8px 2px;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap;transition:all .15s}
.fm-tab.on{background:var(--gold,#e8c97a);border-color:#c8a24a;color:#4a3a24;font-weight:800;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.fm-tabpane{animation:fmFade .18s ease}
@keyframes fmFade{from{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:none}}

/* ==================== v0816-v06 等级徽章 + 升级仪式 ==================== */
.pi-lvwrap{display:inline-flex;align-items:center;gap:6px;pointer-events:auto}
.pi-lvbadge{background:linear-gradient(135deg,#f6c95c,#e8a23d)!important;color:#4a3200!important;cursor:pointer;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:900;white-space:nowrap;box-shadow:0 2px 8px rgba(90,60,0,.35);animation:piLvPulse 2.6s ease-in-out infinite}
.pi-lvbadge.ready{background:linear-gradient(135deg,#ffd98a,#ff9d3d)!important;box-shadow:0 0 0 3px rgba(255,157,61,.45),0 2px 10px rgba(90,60,0,.4)}
@keyframes piLvPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
.pi-lvbar{display:inline-block;width:64px;height:8px;background:rgba(255,252,243,.55);border-radius:999px;overflow:hidden;box-shadow:inset 0 1px 3px rgba(60,40,10,.25)}
.pi-lvbar i{display:block;height:100%;background:linear-gradient(90deg,#f6c95c,#ff9d3d);border-radius:999px;transition:width .4s}

/* ==================== v0822 个人岛动效包：落位弹跳 / 飘字 / 波浪欢呼 / 主题粒子 / 昼夜星星 / 施工浮标 / 扩格浮现 ==================== */
/* 落位弹跳（摆装饰/盖建筑/搬位/邀居民）：复用大世界 m21bldpop */
.pi-pop{animation:m21bldpop .55s cubic-bezier(.34,1.56,.64,1);z-index:6}
/* 定点飘字（互动 ❤️+心情 / 波浪欢呼 emoji）：挂在 .pi-map 内，绝对定位于居民旁 */
.pi-float{position:absolute;z-index:8;font-size:15px;font-weight:900;color:#e2596b;text-shadow:0 1px 2px #fff,0 0 6px rgba(255,255,255,.85);pointer-events:none;white-space:nowrap;animation:piFloatUp 1.25s ease-out both}
@keyframes piFloatUp{0%{opacity:0;transform:translateY(8px) scale(.6)}18%{opacity:1;transform:translateY(-4px) scale(1.15)}100%{opacity:0;transform:translateY(-48px) scale(1)}}
/* 全岛波浪欢呼（聚会/神龛）：居民依次起跳（inline animation 挂 keyframes） */
@keyframes piCheer{0%,100%{transform:translateY(0) scale(1,1)}30%{transform:translateY(-11px) scale(.95,1.07)}55%{transform:translateY(0) scale(1.08,.92)}75%{transform:translateY(-4px) scale(1)}}
/* 🍼 一一专属蹦跳（比普通居民 piResBob 更活泼，带挤压回弹） */
.pi-res.pi-yiyi{animation:piYiyiHop 1.9s ease-in-out infinite}
@keyframes piYiyiHop{0%,100%{transform:translateY(0) scale(1,1)}28%{transform:translateY(-6px) scale(.96,1.06)}52%{transform:translateY(0) scale(1.07,.93)}72%{transform:translateY(-3px) scale(1)}}
/* 主题氛围粒子：樱花瓣飘落 / 萤火虫 / 星星闪烁（位置与时延由 JS 内联错开） */
.pi-air i.pi-petal{position:absolute;top:-6vh;font-style:normal;font-size:17px;opacity:.92;animation:piPetalFall 9s linear infinite;filter:drop-shadow(0 1px 2px rgba(170,90,130,.3))}
@keyframes piPetalFall{0%{transform:translateY(-4vh) rotate(0) translateX(0)}25%{transform:translateY(24vh) rotate(130deg) translateX(18px)}50%{transform:translateY(50vh) rotate(250deg) translateX(-14px)}75%{transform:translateY(77vh) rotate(370deg) translateX(16px)}100%{transform:translateY(106vh) rotate(480deg) translateX(-10px)}}
.pi-air i.pi-firefly{position:absolute;width:5px;height:5px;border-radius:50%;background:#f4ffb8;box-shadow:0 0 7px 2px rgba(216,255,150,.85);opacity:0;animation:piFly 5.6s ease-in-out infinite}
@keyframes piFly{0%,100%{opacity:0;transform:translate(0,0)}15%{opacity:.95;transform:translate(4px,-8px)}35%{opacity:.35;transform:translate(12px,-16px)}55%{opacity:.9;transform:translate(-6px,-9px)}75%{opacity:.4;transform:translate(-13px,-4px)}90%{opacity:.85;transform:translate(5px,-15px)}}
.pi-air i.pi-tw{position:absolute;font-style:normal;font-size:22px;color:#eef2ff;opacity:.85;text-shadow:0 0 10px rgba(190,215,255,.95);animation:piTw 3.4s ease-in-out infinite}
@keyframes piTw{0%,100%{opacity:.22;transform:scale(.85)}50%{opacity:1;transform:scale(1.12)}}
/* 夜间不再把星星整体 display:none：.pi-tw 亮着闪（覆盖 .pi-night .pi-air i{display:none}） */
.pi-night .pi-air i.pi-tw{display:block}
/* 填海施工浮标：岛缘 🌢 波浪上下颠簸，提示这边正在长新地 */
.pi-map.pi-building::after{content:"🌊";position:absolute;right:2px;top:34%;font-size:20px;line-height:1;pointer-events:none;z-index:3;animation:piBuoy 2.2s ease-in-out infinite;filter:drop-shadow(0 2px 3px rgba(15,60,90,.45))}
@keyframes piBuoy{0%,100%{transform:translateY(0) rotate(-7deg)}50%{transform:translateY(-6px) rotate(7deg)}}
/* 填海完工新格错峰浮现（animation-delay 内联按 (x+y) 错开） */
.pi-cell2.pi-newcell{animation:piCellIn .5s cubic-bezier(.34,1.4,.64,1) both}
@keyframes piCellIn{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}
/* 进岛入场：整页轻微放大淡入（每次 openPersonalIsland 一次性） */
.pi-page.pi-enter{animation:piEnter .34s ease-out}
@keyframes piEnter{from{opacity:0;transform:scale(.965)}to{opacity:1;transform:scale(1)}}
/* 升级仪式：等级徽章爆点放大回弹（覆盖常态 piLvPulse 一瞬） */
.pi-lvbadge.pi-burst{animation:piBadgeBurst 1.1s cubic-bezier(.34,1.56,.64,1)}
@keyframes piBadgeBurst{0%{transform:scale(1)}28%{transform:scale(1.55) rotate(6deg)}46%{transform:scale(.94)}64%{transform:scale(1.22) rotate(-3deg)}100%{transform:scale(1)}}
/* 升级仪式彩带：复用大世界 m21confall，时长/左偏/字号 JS 内联随机 */
.pi-confetti{position:absolute;top:-6vh;pointer-events:none;animation:m21confall linear both}
/* 红点脉冲：任务/入口红点出现时呼吸提醒（复用 scDotPulse） */
#islandAgendaDot,#islandDot{animation:scDotPulse 2.2s ease-in-out infinite}
/* v0822 动效降级：眩晕敏感用户全关（粒子隐藏、动画归零），与上方旧降级块互补 */
@media (prefers-reduced-motion: reduce){
  .pi-res.pi-yiyi{animation:none}
  .pi-pop,.pi-newcell,.pi-page.pi-enter,.pi-lvbadge.pi-burst,#islandAgendaDot,#islandDot{animation:none!important}
  .pi-float,.pi-confetti,.pi-air .pi-petal,.pi-air .pi-firefly,.pi-air .pi-tw,.pi-map.pi-building::after{display:none}
}
/* ==================== v0822-2 体验补完：渡船过渡 / 模式退出 chip / celebration 弹入 ==================== */
/* 岛间渡船：我的岛 ↔ TA 的岛，🚢 横渡 0.95s（600ms 处换岛，像靠岸） */
.pi-boat{position:absolute;inset:0;z-index:9;pointer-events:none;overflow:hidden}
.pi-boat i{position:absolute;bottom:32%;left:0;font-size:44px;font-style:normal;opacity:0;filter:drop-shadow(0 3px 5px rgba(15,60,90,.4))}
.pi-boat.sail i{opacity:1;animation:piSail .95s ease-in-out forwards}
@keyframes piSail{0%{transform:translateX(-25vw) translateY(0) rotate(-3deg)}25%{transform:translateX(20vw) translateY(-6px) rotate(3deg)}50%{transform:translateX(60vw) translateY(0) rotate(-2deg)}75%{transform:translateX(100vw) translateY(-5px) rotate(2deg)}100%{transform:translateX(130vw) translateY(0) rotate(0)}}
/* 布置模式统一退出 chip（移动/升级/建造/盖小窝/选装饰时出现） */
.pi-exit{position:absolute;left:50%;bottom:calc(168px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:4;border:0;border-radius:999px;background:rgba(42,37,32,.72);color:#ffe9b8;padding:6px 14px;font-size:11px;font-weight:900;box-shadow:0 2px 7px rgba(60,40,10,.25);cursor:pointer}
.pi-exit:active{transform:translateX(-50%) translateY(2px)}
/* celebration 横幅弹入（保留 translateX(-50%) 居中定位不被 scale 吃掉） */
.pi-build-tip.pi-celebrate{animation:piTipPop .55s cubic-bezier(.34,1.56,.64,1) both}
@keyframes piTipPop{0%{transform:translateX(-50%) scale(.6);opacity:0}70%{transform:translateX(-50%) scale(1.08);opacity:1}100%{transform:translateX(-50%) scale(1)}}
@media (prefers-reduced-motion: reduce){
  .pi-boat{display:none}
  .pi-build-tip.pi-celebrate{animation:none}
}

/* ==================== 天空事件（低概率全岛奇观：流星雨/萤火虫夜/双彩虹） ==================== */
.pi-air i.pi-meteor{position:absolute;top:5%;left:-8%;font-style:normal;font-size:22px;opacity:0;filter:drop-shadow(0 0 8px rgba(200,220,255,.9));animation:piMeteor 3s ease-in infinite}
@keyframes piMeteor{0%{opacity:0;transform:translate(0,0) rotate(-32deg)}5%{opacity:1}32%{opacity:1;transform:translate(112vw,46vh) rotate(-32deg)}34%,100%{opacity:0;transform:translate(112vw,46vh) rotate(-32deg)}}
.pi-air i.pi-rainbow{position:absolute;top:7%;left:50%;transform:translateX(-50%);font-style:normal;font-size:46px;opacity:.95;animation:piBob 4s ease-in-out infinite;filter:drop-shadow(0 0 16px rgba(255,220,160,.75))}
/* 全岛氛围：夜空加深 / 暮光 / 雨后暖光（叠加在主题之上，事件当天有效） */
.pi-page.pi-sky-meteor .pi-view{background:linear-gradient(180deg,rgba(16,22,44,.52),rgba(16,22,44,0) 46%)}
.pi-page.pi-sky-meteor .pi-map{filter:saturate(.92) brightness(.94)}
.pi-page.pi-sky-firefly .pi-view{background:linear-gradient(180deg,rgba(44,52,18,.30),rgba(44,52,18,0) 42%)}
.pi-page.pi-sky-rainbow .pi-view{background:linear-gradient(180deg,rgba(255,214,140,.28),rgba(255,214,140,0) 44%)}
/* 事件横幅：独立 top 偏移避免与施工提示/celebration 叠位 */
.pi-build-tip.pi-sky-tip{top:calc(96px + env(safe-area-inset-top,0px));border:1px solid rgba(122,162,247,.55);background:linear-gradient(90deg,rgba(38,52,110,.92),rgba(64,84,160,.85));animation:piTipPop .55s cubic-bezier(.34,1.56,.64,1) both;white-space:normal;line-height:1.5}
.pi-build-tip.pi-sky-tip .btn{margin:0 2px;padding:3px 10px;font-size:11px}
.pi-build-tip.pi-sky-tip .pi-sky-done{color:#9fd0ff}
.pi-build-tip.pi-sky-tip .pi-sky-other{color:#d9b8f5;font-size:10px;font-weight:700}
@media (prefers-reduced-motion: reduce){
  .pi-air .pi-meteor{display:none}
  .pi-air i.pi-rainbow{animation:none}
  .pi-build-tip.pi-sky-tip{animation:none}
}
/* ==================== v0822-3 体验第三批:漂流瓶码头标记 / 盖章卡 / 灯塔灯条 / 换季双烛 / 骨架屏 ==================== */
/* 漂流瓶:海上漂(慢颠簸) / 到岸(✨ 闪烁招手),贴在码头右侧 */
.pi-bottle{position:absolute;z-index:5;border:0;background:transparent;padding:0;cursor:pointer;pointer-events:auto;animation:piBuoy 2.6s ease-in-out infinite}
.pi-bottle span{font-size:22px;line-height:1;filter:drop-shadow(0 2px 3px rgba(15,60,90,.45))}
.pi-bottle.sea{opacity:.75}
.pi-bottle.here i{position:absolute;top:-9px;right:-9px;font-style:normal;font-size:12px;animation:piGlint 1.4s ease-in-out infinite}
@keyframes piGlint{0%,100%{opacity:.35;transform:scale(.8) rotate(-8deg)}50%{opacity:1;transform:scale(1.25) rotate(10deg)}}
/* 集章盖章卡:大数字 + 进度条 + 斜盖红章 */
.pi-stamp-head{display:flex;align-items:center;justify-content:center;gap:10px;padding:6px 0 2px}
.pi-stamp-big{font-size:30px;line-height:1}.pi-stamp-big b{font-size:34px;color:#c96f4a;margin-left:4px}
.pi-stamp-bar{height:9px;background:#eee2c9;border-radius:999px;overflow:hidden;margin:8px 12px 4px}
.pi-stamp-bar i{display:block;height:100%;background:linear-gradient(90deg,#f6c95c,#e0788a);border-radius:999px;transition:width .5s}
.pi-stamp-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;padding:10px 0 2px}
.pi-stamp-slot{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;width:58px;padding:8px 0 6px;background:#fffdf7;border:1px dashed rgba(179,146,106,.5);border-radius:10px}
.pi-stamp-slot b{font-size:24px;line-height:1;filter:grayscale(1);opacity:.45}
.pi-stamp-slot small{font-size:9px;color:#9a7f56;font-weight:800}
.pi-stamp-slot em{font-style:normal;font-size:9px;color:#c9c0ad;font-weight:900}
.pi-stamp-slot.lit b{filter:none;opacity:1;transform:rotate(-12deg) scale(1.08)}
.pi-stamp-slot.lit{border-style:solid;border-color:rgba(201,111,74,.55)}
.pi-stamp-slot.lit em{color:#c96f4a}
/* 灯塔灯条:近 14 晚,来过 🏮 亮橙,没来 🕯️ 灰 */
.pi-lh-strip{display:flex;gap:6px;overflow-x:auto;padding:8px 2px 4px;-webkit-overflow-scrolling:touch}
.pi-lh-day{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:34px;padding:6px 2px 5px;border-radius:9px;background:#f6f0df}
.pi-lh-day b{font-size:17px;line-height:1}
.pi-lh-day small{font-size:8.5px;font-weight:800;color:#9a7f56;white-space:nowrap}
.pi-lh-day.lit{background:linear-gradient(180deg,#ffe9c4,#ffd98e);box-shadow:0 0 8px rgba(240,170,60,.35)}
.pi-lh-day.lit small{color:#8a5a10}
/* 换季双烛:点亮的火苗摇曳(复用炼金 alcFlame) */
.pi-candles{display:flex;justify-content:center;gap:26px;padding:12px 0 4px}
.pi-candle{display:flex;flex-direction:column;align-items:center;gap:3px}
.pi-candle b{font-size:34px;line-height:1;filter:grayscale(.9);opacity:.6}
.pi-candle small{font-size:11px;font-weight:900;color:#6b5335}
.pi-candle.lit b{filter:none;opacity:1;animation:alcFlame 1.6s ease-in-out infinite}
.pi-candle.lit small{color:#c96f4a}
/* 首载骨架屏:三块 shimmer */
.pi-skeleton{padding:96px 22px 140px;display:flex;flex-direction:column;gap:14px}
.pi-skeleton i{display:block;border-radius:14px;background:linear-gradient(100deg,rgba(255,252,243,.45) 30%,rgba(255,255,255,.85) 50%,rgba(255,252,243,.45) 70%);background-size:200% 100%;animation:piShimmer 1.3s linear infinite}
.pi-skeleton i:nth-child(1){height:120px}.pi-skeleton i:nth-child(2){height:52px;width:72%}.pi-skeleton i:nth-child(3){height:52px;width:54%}
@keyframes piShimmer{from{background-position:120% 0}to{background-position:-80% 0}}
@media (prefers-reduced-motion: reduce){
  .pi-bottle,.pi-bottle.here i,.pi-candle.lit b,.pi-skeleton i{animation:none}
  .pi-stamp-bar i{transition:none}
}
/* ==================== 🏮 v0822-4 深夜食堂动效层：火候手感 / 结算弹跳 / 深夜氛围 ==================== */
/* 头部灯笼：±3° 摇摆（深夜身份感，单元素） */
@keyframes dnLantern{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
.dn-lantern{display:inline-block;transform-origin:50% 10%;animation:dnLantern 3.2s ease-in-out infinite}
/* 火候条：金区呼吸光（眼睛的落点） */
@keyframes dnGoldPulse{0%,100%{box-shadow:0 0 5px 1px rgba(255,216,108,.35)}50%{box-shadow:0 0 14px 3px rgba(255,171,66,.8)}}
.dn-gold{animation:dnGoldPulse 1.3s ease-in-out infinite}
/* 最后 4 秒：底色红脉冲（危险区） */
@keyframes dnDanger{0%,100%{background:#3b3040}50%{background:#5c2a2c}}
.dn-danger{animation:dnDanger .55s ease-in-out infinite}
/* 起锅定格：判定印章盖下来 */
@keyframes dnStamp{0%{opacity:0;transform:translate(-50%,-50%) scale(2.4)}45%{opacity:1;transform:translate(-50%,-50%) scale(.9)}62%{transform:translate(-50%,-50%) scale(1.08)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.dn-stamp{position:absolute;left:50%;top:44%;z-index:3;font-size:29px;font-weight:900;white-space:nowrap;transform:translate(-50%,-50%);animation:dnStamp .38s cubic-bezier(.2,1.2,.4,1) both;text-shadow:0 2px 12px rgba(0,0,0,.65)}
/* 起锅命中环：锚在针的位置（复用 fxRing 关键帧做缩放消散） */
.dn-hitring{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;border:3px solid rgba(255,229,168,.95);animation:fxRing .7s ease-out both}
/* 连击赌注火焰 */
@keyframes dnFlame{0%,100%{transform:scale(1) rotate(-2deg)}30%{transform:scale(1.14) rotate(2.5deg)}60%{transform:scale(.94) rotate(-1deg)}}
.dn-flame{display:inline-block;animation:dnFlame .85s ease-in-out infinite}
/* 客人卡入场（只在客席变化的那次渲染播放，由 JS 控制） */
@keyframes dnCardIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.dn-cardin{animation:dnCardIn .38s ease both}
/* 已招待：人走了的灰度感 */
.dn-served{filter:grayscale(.55);opacity:.62}
/* 好感条增长 + 跨门槛心跳 */
@keyframes dnFavGrow{from{width:0}}
.dn-favgrow{animation:dnFavGrow .7s cubic-bezier(.25,1,.35,1) both}
@keyframes dnBeat{0%,100%{transform:scale(1)}25%{transform:scale(1.4)}45%{transform:scale(.92)}65%{transform:scale(1.18)}}
.dn-beat{display:inline-block;animation:dnBeat .7s ease both .5s}
/* 研发翻车：一缕烟 */
@keyframes dnSmoke{0%{opacity:0;transform:translateY(8px) scale(.7)}25%{opacity:.9}100%{opacity:0;transform:translateY(-36px) scale(1.6)}}
.dn-smoke{display:inline-block;animation:dnSmoke 1.7s ease-out both}
/* 线索打字机光标 */
@keyframes dnCaret{0%,45%{opacity:1}50%,100%{opacity:0}}
.dn-caret{display:inline-block;width:2px;height:1em;background:#e8b46a;margin-left:1px;vertical-align:-2px;animation:dnCaret 1s steps(1) infinite}
/* 弹窗/卡内按压反馈（diner 作用域） */
.dn-dlg .btn:active,.dn-press:active{transform:scale(.96)}
/* 新故事翻卡复用 rvFlip；结算数字复用 fxNumPop；新菜卡复用 cbPop；纪念品金框复用 vipGlow */
.dn-souv{animation:vipGlow 1.6s ease infinite}
/* 动效降级：与岛上一致，粒子隐藏、循环动画归零（一次性揭示类压到瞬时） */
@media (prefers-reduced-motion: reduce){
  .dn-lantern,.dn-gold,.dn-danger,.dn-flame,.dn-souv{animation:none}
  .dn-air .pi-firefly,.dn-air .pi-tw{display:none}
  .dn-cardin,.dn-favgrow,.dn-beat,.dn-smoke,.dn-stamp,.dn-hitring{animation-duration:.01s}
}

/* ===== 🎬 兔兔高频游戏动效层 v0822-5（farm/inn/teashop，复用 fx 粒子体系） ===== */
/* 🎯 定点飘字（fxGoldAt）：从元素中心向上飘出渐隐 */
.fxFloat{position:absolute;left:50%;top:34%;font-size:14px;font-weight:900;color:#c8a24a;text-shadow:0 1px 2px rgba(255,255,255,.9),0 0 6px rgba(255,224,130,.65);white-space:nowrap;animation:fxFloatUp 1.3s cubic-bezier(.2,.7,.3,1) both;pointer-events:none}
@keyframes fxFloatUp{0%{opacity:0;transform:translate(-50%,4px) scale(.6)}18%{opacity:1;transform:translate(-50%,-12px) scale(1.12)}70%{opacity:1}100%{opacity:0;transform:translate(-50%,-46px) scale(1)}}
/* 💧 浇水：水滴落下 + 复用 fxRing 涟漪 */
.fxDrop{position:absolute;top:22%;font-size:14px;animation:fxDropIn .7s ease-in both;pointer-events:none}
@keyframes fxDropIn{0%{opacity:0;transform:translateY(-14px)}30%{opacity:1}100%{opacity:0;transform:translateY(10px)}}
/* 🌾 农场全熟金浪：一道高光从左到右扫过整片地块（只在「刚刚全熟」时触发一次） */
#fmPlots.fmGoldWave{position:relative}
#fmPlots.fmGoldWave::after{content:'';position:absolute;inset:-4px;pointer-events:none;border-radius:16px;background:linear-gradient(100deg,transparent 32%,rgba(255,214,102,.3) 45%,rgba(255,243,190,.55) 50%,rgba(255,214,102,.3) 55%,transparent 68%);transform:translateX(-130%) skewX(-8deg);animation:fmGoldSweep 1.5s ease .05s both}
@keyframes fmGoldSweep{0%{transform:translateX(-130%) skewX(-8deg)}100%{transform:translateX(130%) skewX(-8deg)}}
/* 💰 客栈宿金入袋：进账那一刻钱数字弹跳一下 */
#innCoins.pulse .n{animation:innCoinPop .75s cubic-bezier(.2,.85,.3,1) both}
@keyframes innCoinPop{0%{transform:scale(1)}28%{transform:scale(1.3) rotate(-4deg)}56%{transform:scale(.92) rotate(3deg)}100%{transform:scale(1)}}
/* 🏮 候客厅满：门脸挂只灯笼摇摆发光 + 呼吸光晕，催你快去分房 */
.inn-hero.full{animation:innFullGlow 2s ease-in-out infinite}
@keyframes innFullGlow{0%,100%{box-shadow:0 0 0 0 rgba(217,138,58,0)}50%{box-shadow:0 0 18px 3px rgba(217,138,58,.4)}}
.inn-hero .inn-fullan{position:absolute;top:8px;right:16px;font-size:24px;transform-origin:50% -4px;animation:innLanSwing 1.5s ease-in-out infinite;filter:drop-shadow(0 0 9px rgba(235,150,70,.8));pointer-events:none;z-index:1}
@keyframes innLanSwing{0%,100%{transform:rotate(8deg)}50%{transform:rotate(-8deg)}}
/* 🛎️ 新客进房 pop-in + 星光（只对「这一帧新出现」的客人触发） */
.inn-gorb.new{animation:innGuestIn .6s cubic-bezier(.2,1.5,.4,1) both}
@keyframes innGuestIn{0%{opacity:0;transform:scale(.2) translateY(16px)}62%{opacity:1;transform:scale(1.14) translateY(-3px)}100%{opacity:1;transform:scale(1) translateY(0)}}
.inn-gorb.new::after{content:'✨';position:absolute;top:-9px;right:-9px;font-size:12px;animation:fxNumPop .7s .3s ease both}
/* ☕ 茶馆出杯区：大杯持续冒热气（纯 CSS 循环，30s 重渲染会重启但不可察） */
.tsSteam{position:absolute;top:-4px;width:7px;height:13px;border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.9));filter:blur(2px);pointer-events:none;animation:tsSteamUp 2.8s ease-in-out infinite}
.tsSteam.s1{left:34%}
.tsSteam.s2{left:50%;animation-delay:.95s}
.tsSteam.s3{left:64%;animation-delay:1.9s}
@keyframes tsSteamUp{0%{opacity:0;transform:translateY(8px) scaleX(.7)}30%{opacity:.85}100%{opacity:0;transform:translateY(-24px) scaleX(1.4)}}
/* 动效降级：与 diner 层一致 */
@media (prefers-reduced-motion: reduce){
  .fxFloat,.fxDrop{animation-duration:.01s}
  #fmPlots.fmGoldWave::after{animation:none;opacity:0}
  #innCoins.pulse .n,.inn-gorb.new,.inn-gorb.new::after{animation-duration:.01s}
  .inn-hero.full,.inn-hero .inn-fullan{animation:none}
  .tsSteam{display:none}
}

/* ==================== M02/M04/M06/M11/M13 module refresh ==================== */
#m02,#m04,#m06,#m11,#m13{--module-ink:#293044;--module-muted:#777b8c;--module-line:rgba(52,59,84,.12);max-width:620px;margin:0 auto;padding-bottom:18px}
#m02{--module-accent:#d77d9c;--module-soft:#fff2f5;--module-deep:#453b58}
#m04{--module-accent:#cf704f;--module-soft:#fff2e8;--module-deep:#30495c}
#m06{--module-accent:#8273c6;--module-soft:#f1efff;--module-deep:#36335f}
#m11{--module-accent:#5c8a68;--module-soft:#edf5ee;--module-deep:#29463a}
#m13{--module-accent:#7277ba;--module-soft:#eef0ff;--module-deep:#272c57}
.module-hero{position:relative;min-height:190px;margin:2px -10px 16px;padding:26px 24px 22px;overflow:hidden;border-radius:0 0 26px 26px;color:#fff;isolation:isolate;box-shadow:0 12px 28px rgba(34,32,48,.14)}
.module-hero:before,.module-hero:after{content:"";position:absolute;z-index:-1;border-radius:50%;pointer-events:none}
.module-hero:before{width:180px;height:180px;right:-48px;top:-74px;background:rgba(255,255,255,.13);box-shadow:0 0 0 24px rgba(255,255,255,.04),0 0 0 48px rgba(255,255,255,.025)}
.module-hero:after{width:120px;height:120px;left:-54px;bottom:-72px;background:rgba(255,255,255,.1)}
.diary-hero{background:linear-gradient(135deg,#705d86 0%,#b87891 100%)}
.dice-hero{background:linear-gradient(135deg,#2e5368 0%,#d1775f 100%)}
.sync-hero{background:linear-gradient(135deg,#3d426f 0%,#8175be 58%,#c186ad 100%)}
.grove-hero{background:linear-gradient(135deg,#29463a 0%,#5c8a68 100%)}
.radio-hero{background:linear-gradient(135deg,#272c57 0%,#7277ba 100%)}
.hero-copy{position:relative;z-index:2;max-width:74%}
.hero-kicker{display:block;font-size:10px;letter-spacing:1.8px;font-weight:800;opacity:.76;margin-bottom:8px}
.module-hero h1{font-size:28px;line-height:1.15;letter-spacing:0;font-weight:800;margin:0 0 8px;color:#fff}
.module-hero p{font-size:13px;line-height:1.55;margin:0;opacity:.9;max-width:270px}
.hero-stats{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}
.hero-stats span{font-size:11px;line-height:1;padding:6px 9px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.12);backdrop-filter:blur(6px)}
.hero-art{position:absolute;right:22px;bottom:8px;width:145px;height:145px;display:grid;place-items:center;pointer-events:none}
.diary-book{font-size:76px;filter:drop-shadow(0 14px 8px rgba(42,27,43,.25));animation:moduleFloat 4.8s ease-in-out infinite;transform:rotate(-9deg)}
.diary-heart{position:absolute;right:8px;top:29px;font-size:27px;color:#ffd9e4;text-shadow:0 0 16px rgba(255,198,220,.95);animation:modulePulse 2.2s ease-in-out infinite}
.diary-spark{position:absolute;left:13px;top:29px;color:#fff4bc;font-size:23px;animation:moduleTwinkle 2.8s ease-in-out infinite}
.dice-cube{font-size:84px;color:#fff3d9;text-shadow:0 13px 16px rgba(39,43,52,.28);animation:diceFloat 3.8s ease-in-out infinite}
.dice-glow{position:absolute;width:96px;height:96px;border-radius:26px;background:rgba(255,211,135,.18);filter:blur(4px);transform:rotate(16deg);animation:diceGlow 2.4s ease-in-out infinite}
.dice-dot{position:absolute;right:2px;top:16px;color:#ffe8b2;font-size:17px;animation:moduleTwinkle 2.4s ease-in-out infinite .4s}
.sync-art{perspective:300px}.sync-face{position:absolute;display:grid;place-items:center;width:65px;height:76px;border-radius:18px;border:1px solid rgba(255,255,255,.5);background:linear-gradient(145deg,rgba(255,255,255,.32),rgba(255,255,255,.12));font-size:38px;box-shadow:0 12px 20px rgba(35,34,74,.22),inset 0 1px rgba(255,255,255,.5);backdrop-filter:blur(7px)}
.sync-face.wolf{left:10px;top:36px;transform:rotate(-9deg);animation:syncWolf 4.3s ease-in-out infinite}.sync-face.rabbit{right:8px;top:27px;transform:rotate(8deg);animation:syncRabbit 4.3s ease-in-out infinite}
.sync-link{position:absolute;z-index:3;left:50%;top:57%;transform:translate(-50%,-50%);font-family:Georgia,serif;font-size:35px;font-weight:700;color:#fff3c6;text-shadow:0 0 14px rgba(255,238,177,.75);animation:modulePulse 2.5s ease-in-out infinite}.sync-spark{position:absolute;right:1px;top:9px;color:#fff1b5;font-size:17px;animation:moduleTwinkle 2.9s ease-in-out infinite}
.grove-tree{font-size:86px;filter:drop-shadow(0 13px 8px rgba(16,45,31,.28));animation:moduleFloat 5.6s ease-in-out infinite}
.grove-moon{position:absolute;right:2px;top:11px;color:#f6e7aa;font-size:42px;text-shadow:0 0 18px rgba(255,233,160,.6);animation:moonBreathe 4.2s ease-in-out infinite}
.grove-firefly{position:absolute;color:#ffe6a3;font-size:12px;text-shadow:0 0 10px #fff1a9;animation:fireflyBlink 2.7s ease-in-out infinite}
.grove-firefly.f1{left:13px;top:35px}.grove-firefly.f2{right:24px;bottom:27px;animation-delay:1.1s}
.radio-mic{font-size:73px;filter:drop-shadow(0 13px 8px rgba(25,27,55,.34));animation:micFloat 4.6s ease-in-out infinite;z-index:2}
.radio-orbit{position:absolute;border:1px solid rgba(220,224,255,.48);border-radius:50%;transform:rotate(-22deg);animation:radioOrbit 4.8s linear infinite}
.radio-orbit.r1{width:117px;height:64px}.radio-orbit.r2{width:144px;height:82px;transform:rotate(28deg);animation-duration:6.4s;animation-direction:reverse}
.radio-wave{position:absolute;right:-1px;bottom:18px;font-size:17px;letter-spacing:1px;color:#e3e5ff;transform:rotate(-15deg);opacity:.8;animation:waveBlink 1.8s ease-in-out infinite}
#m02 .datebar,#m04 .datebar,#m13 .datebar{margin:0 0 15px!important;background:rgba(255,255,255,.7)!important;border:1px solid var(--module-line)!important;box-shadow:none!important;border-radius:12px!important;padding:8px 10px!important}
.module-flow{animation:moduleEnter .42s ease both}
.module-section-label{display:flex;align-items:center;gap:10px;margin:18px 2px 9px;color:var(--module-ink)}
.module-section-label>span{display:grid;place-items:center;width:25px;height:25px;flex:0 0 25px;border-radius:9px;background:var(--module-soft);color:var(--module-accent);font-size:11px;font-weight:900}
.module-section-label b{display:block;font-size:14px;line-height:1.2;color:var(--module-ink)}
.module-section-label small{display:block;margin-top:3px;font-size:11px;line-height:1.3;font-weight:500;color:var(--module-muted)}
.module-card{border:1px solid var(--module-line);border-radius:16px;box-shadow:0 7px 18px rgba(45,42,58,.055);padding:15px 14px;position:relative;overflow:hidden}
.module-card:after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--module-accent);opacity:.62}
.prompt-card,.radio-theme{background:linear-gradient(135deg,#fff,var(--module-soft));min-height:88px}
.prompt-card b,.radio-theme b{font-size:17px;line-height:1.55;color:var(--module-deep)}
.prompt-card .sub,.radio-theme .sub{color:var(--module-muted)}
.compose-card{background:#fff;padding:13px 13px 11px}
.compose-card textarea{display:block;width:100%;min-height:102px;resize:vertical;border:1px solid var(--module-line);border-radius:12px;background:linear-gradient(180deg,#fff,#fcfbfd);padding:12px;font:inherit;font-size:14px;line-height:1.65;color:var(--module-ink);outline:none;transition:border-color .2s,box-shadow .2s}
.compose-card textarea:focus{border-color:var(--module-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--module-accent) 16%,transparent)}
.compose-card textarea::placeholder{color:#b4b5bf}
.compose-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}
.compose-footer .btn{width:auto;min-width:112px;padding:9px 13px;box-shadow:0 5px 12px color-mix(in srgb,var(--module-accent) 22%,transparent);transition:transform .2s,box-shadow .2s}
.compose-footer .btn:hover{transform:translateY(-2px);box-shadow:0 8px 16px color-mix(in srgb,var(--module-accent) 28%,transparent)}
.compose-footer .btn:active{transform:translateY(1px) scale(.98)}
.field-hint{font-size:10px;line-height:1.4;color:var(--module-muted)}
.status-line{padding:7px 9px;border-radius:9px;background:var(--module-soft);color:var(--module-deep);font-size:11px}
.reveal-card,.answer-card,.timeline-card,.radio-board{min-height:74px}
.reveal-card>div,.answer-card>div,.radio-board>div{border-bottom:1px solid var(--module-line)!important;padding:10px 0!important;margin:0!important;background:transparent!important;border-radius:0!important}
.reveal-card>div:last-child,.answer-card>div:last-child,.radio-board>div:last-child{border-bottom:0!important}
.reveal-card .btn,.timeline-card .btn,.radio-board .btn{border-radius:999px;padding:6px 10px;font-size:11px}
.era-card{text-align:center;background:linear-gradient(135deg,var(--module-deep),var(--module-accent));color:#fff;padding:13px 14px}
.era-card:after{display:none}.era-card .sub{color:rgba(255,255,255,.72)}
.grove-compose{background:linear-gradient(180deg,#fff,var(--module-soft))}
.timeline-card{background:linear-gradient(180deg,#fff,var(--module-soft));padding-top:8px}
.timeline-card:after{opacity:.35}
.dice-session{background:radial-gradient(circle at 50% 9%,#fffaf0 0,#fff 44%,var(--module-soft) 100%);text-align:center}
.dice-session:before{content:"TODAY'S ROLL";display:block;letter-spacing:1.5px;font-size:9px;color:var(--module-accent);font-weight:900;margin-bottom:2px}
.dice-session>div:first-child{font-size:56px!important;line-height:1.1;margin:5px 0 8px!important;filter:drop-shadow(0 7px 6px rgba(190,111,69,.18));animation:diceResult .7s cubic-bezier(.2,1.5,.4,1) both}
.dice-session>div:nth-child(2){color:var(--module-deep);font-size:13px!important}
.dice-session>div:last-child{font-size:17px!important;line-height:1.55;margin-top:8px!important;color:var(--module-ink)}
.answer-card{background:linear-gradient(135deg,#fff,var(--module-soft))}
.radio-compose{background:linear-gradient(180deg,#fff,var(--module-soft))}
.radio-board{background:linear-gradient(135deg,#fff,var(--module-soft))}
.radio-board>div b{color:var(--module-deep)}
.radio-board>button{width:100%;margin-top:12px!important}
.prompt-eyebrow{margin-bottom:5px;letter-spacing:.4px}.prompt-meta{display:inline-block;margin-top:7px;padding:3px 7px;border-radius:999px;background:rgba(255,255,255,.7)}
.sneak-card{margin-top:10px;background:linear-gradient(135deg,#fffbf0,#fff5dc);border-style:dashed;border-color:rgba(200,162,74,.48)}
.sneak-card:after{background:var(--gold)}.sneak-row{display:flex;align-items:center;gap:10px}.sneak-icon{font-size:24px}.sneak-copy{flex:1;min-width:0}.sneak-copy .sub{font-size:10.5px;line-height:1.45}.sneak-card .btn{padding:7px 10px;border-radius:999px;background:var(--gold);white-space:nowrap}
.peek-reveal{margin-top:11px;padding:11px;border-radius:11px;background:#fff;border:1px solid rgba(200,162,74,.32);animation:revealUnfold .48s cubic-bezier(.2,1.2,.4,1) both}
.memory-prompt{margin:0 0 7px;padding:9px 10px;background:var(--module-soft);border-radius:10px;border-left:3px solid var(--module-accent)}
.memory-entry{position:relative;padding-left:10px!important}.memory-entry:before,.answer-entry:before,.broadcast-entry:before{content:"";position:absolute;left:0;top:12px;width:3px;height:24px;border-radius:3px;background:var(--wolf);opacity:.58}.memory-entry.rabbit:before,.answer-entry.rabbit:before,.broadcast-entry.rabbit:before{background:var(--rabbit)}
.memory-copy,.answer-copy,.broadcast-copy{margin-top:6px;line-height:1.65;color:var(--module-ink);white-space:pre-wrap;overflow-wrap:anywhere}.memory-photo{display:block;width:100%;max-height:240px;object-fit:cover;border-radius:11px;margin-top:8px}.memory-liked{display:inline-block;margin-top:7px;color:var(--module-accent)!important;font-weight:700}

/* M02 · 把功能卡收进同一本有装订痕迹的交换日记 */
#m02{--diary-paper:#fffdf7;--diary-rule:rgba(111,153,177,.18);--diary-margin:rgba(215,125,156,.3);--diary-edge:#e6ddd0;background:linear-gradient(180deg,rgba(250,246,241,0) 0,rgba(247,241,234,.7) 42%,rgba(247,241,234,.35) 100%)}
#m02 .module-section-label>span{border-radius:50%;border:1px solid rgba(215,125,156,.2);background:#fff8f9;box-shadow:0 2px 7px rgba(97,73,83,.08);font-family:Georgia,serif;font-style:italic}
#m02 .diary-paper{padding-left:47px;border-color:var(--diary-edge);border-radius:8px 16px 16px 8px;background-color:var(--diary-paper);background-image:linear-gradient(90deg,transparent 0,transparent 35px,var(--diary-margin) 35px,var(--diary-margin) 36px,transparent 36px),repeating-linear-gradient(180deg,transparent 0,transparent 27px,var(--diary-rule) 27px,var(--diary-rule) 28px);box-shadow:0 10px 22px rgba(72,57,46,.08),inset 0 1px rgba(255,255,255,.9);overflow:hidden}
#m02 .diary-paper:before{content:"";position:absolute;z-index:2;left:10px;top:11px;bottom:11px;width:13px;background:radial-gradient(circle at 50% 7px,#b8a99c 0 2px,#f5eee5 2.5px 4px,transparent 4.5px) 0 0/13px 25px repeat-y;opacity:.9;pointer-events:none}
#m02 .diary-paper:after{left:35px;top:0;bottom:0;width:1px;background:var(--diary-margin);opacity:1}
#m02 .prompt-card{min-height:104px;padding-top:18px;padding-bottom:17px;transform:rotate(-.2deg)}
#m02 .prompt-card .prompt-eyebrow{display:inline-block;margin:0 0 7px;padding:2px 7px;background:rgba(255,255,255,.78);border:1px solid rgba(215,125,156,.16);border-radius:3px;color:#a5677e;font-size:10px;letter-spacing:.7px;transform:rotate(-1deg)}
#m02 .diary-question{font-family:"Kaiti SC","STKaiti","KaiTi",ui-serif,serif;font-size:18px!important;font-weight:700;line-height:1.55!important;color:#473d4b!important}
#m02 .prompt-meta,#m02 .diary-page-meta{background:rgba(255,253,247,.88);border:1px solid rgba(111,153,177,.14);color:#85808a}
#m02 .compose-card{padding-top:14px;padding-right:13px;padding-bottom:12px}
#m02 .compose-card .status-line{position:relative;margin:0 0 9px!important;padding:7px 9px;background:rgba(253,232,239,.82);border:1px solid rgba(215,125,156,.1);border-radius:3px;box-shadow:0 2px 5px rgba(94,71,80,.04);transform:rotate(.15deg)}
#m02 .compose-card textarea{min-height:142px;padding:4px 7px 2px;border:0;border-radius:0;background:transparent;font-size:15px;line-height:28px;box-shadow:none!important;caret-color:var(--module-accent)}
#m02 .compose-card textarea:focus{border:0;box-shadow:none}
#m02 .compose-card textarea::placeholder{color:#aaa6ad}
#m02 .compose-footer{margin-top:8px;padding-top:8px;border-top:1px dashed rgba(112,102,98,.2)}
#m02 .compose-footer .btn{border-radius:6px;background:linear-gradient(135deg,#71657f,#b57991);box-shadow:0 5px 12px rgba(92,71,96,.18)}
#m02 .reveal-card{padding-top:14px;padding-right:13px;padding-bottom:16px}
#m02 .diary-page-date{display:block;margin:0 0 11px!important;padding:0 0 7px!important;border-bottom:1px dashed rgba(91,83,79,.22)!important;color:#82777d;font-family:Georgia,"Songti SC",serif;font-size:11px;letter-spacing:.35px}
#m02 .reveal-card>.memory-prompt{margin:0 0 8px!important;padding:7px 9px!important;border:0!important;border-radius:2px!important;background:rgba(249,230,235,.66)!important;box-shadow:0 2px 5px rgba(96,69,80,.04);transform:rotate(-.15deg)}
#m02 .reveal-card>.memory-entry{padding:9px 2px 12px!important;border-bottom:1px dashed rgba(91,83,79,.2)!important}
#m02 .reveal-card>.memory-entry:last-child{border-bottom:0!important}
#m02 .memory-entry:before{left:-12px;top:14px;width:6px;height:20px;border-radius:1px;background:rgba(91,107,140,.45);transform:rotate(-4deg)}
#m02 .memory-entry.rabbit:before{background:rgba(215,125,156,.58)}
#m02 .memory-entry>b{display:inline-block;padding:1px 6px 1px 3px;border-bottom:2px solid rgba(91,107,140,.18);font-size:13px}
#m02 .memory-entry.rabbit>b{border-bottom-color:rgba(215,125,156,.25)}
#m02 .memory-copy{min-height:28px;margin-top:5px;font-family:"Kaiti SC","STKaiti","KaiTi",ui-serif,serif;font-size:16px;line-height:28px;color:#403a40}
#m02 .memory-photo{border-radius:5px;border:5px solid #fff;box-shadow:0 4px 12px rgba(68,57,52,.15);transform:rotate(-.4deg)}
#m02 .memory-liked{padding:2px 7px;border-radius:3px;background:rgba(249,230,235,.7);transform:rotate(-1deg)}
#m02 .sneak-card{border-radius:8px;background:#fff9e9;box-shadow:0 6px 14px rgba(91,72,43,.06);transform:rotate(.15deg)}
#m02hist .prompt-card{margin-bottom:12px}
#m02hist .reveal-card{transform:rotate(.12deg)}
.answer-entry{position:relative;padding-left:11px!important}.answer-copy{font-size:13.5px}
.era-summary{display:grid;grid-template-columns:1fr 1px 1fr;align-items:center}.era-summary i{display:block;width:1px;height:34px;background:rgba(255,255,255,.28)}.era-summary>div{display:flex;flex-direction:column;align-items:center}.era-num{font-size:24px;line-height:1;font-weight:900}.era-summary small{margin-top:5px;font-size:10px;color:rgba(255,255,255,.74)}.era-note{margin-top:10px!important;padding-top:9px;border-top:1px solid rgba(255,255,255,.16)}
.tree-entry{position:relative;padding:11px 0;border-bottom:1px solid var(--module-line)}.tree-entry:last-child{border-bottom:0}.tree-head{display:flex;align-items:center;gap:5px;font-size:12px}.tree-head .sub{font-size:10px}.tree-tag{margin-left:auto;padding:2px 7px;border-radius:999px;background:#fff;color:var(--module-muted);font-size:9px;border:1px solid var(--module-line)}
.seal-card{display:flex;align-items:center;gap:10px;margin-top:8px;padding:10px;border-radius:12px;background:linear-gradient(135deg,#29463a,#4f7559);color:#fff;box-shadow:0 7px 14px rgba(41,70,58,.15)}.seal-lock{font-size:22px;animation:lockBreathe 2.8s ease-in-out infinite}.seal-card>div{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}.seal-card small{font-size:9px;color:rgba(255,255,255,.65)}.seal-card b{font-size:11px;line-height:1.4}.seal-card .btn{background:#e1bc6b;color:#40351f;white-space:nowrap;padding:6px 9px}
.tree-copy{margin:7px 0 0 17px;padding:9px 11px;border-radius:4px 11px 11px 11px;background:#fff;line-height:1.65;color:var(--module-ink);white-space:pre-wrap;overflow-wrap:anywhere}.tree-photo{width:62px;height:62px;border-radius:10px;object-fit:cover;margin:7px 0 0 17px;cursor:pointer}
.radio-live{display:inline-flex;align-items:center;gap:5px;margin-bottom:7px;padding:4px 8px;border-radius:999px;background:#df5b68;color:#fff;font-size:9px;font-weight:900;letter-spacing:1px;box-shadow:0 0 0 0 rgba(223,91,104,.38);animation:onAirPulse 2.1s ease-out infinite}.radio-live:before{content:"";width:5px;height:5px;border-radius:50%;background:#fff}
.broadcast-entry{position:relative;padding-left:11px!important}.broadcast-echo{display:inline-block;margin-left:4px;padding:2px 7px;border-radius:999px;background:var(--module-soft);color:var(--module-accent);font-size:9px;font-weight:800}.broadcast-photo{width:68px;height:68px;object-fit:cover;border-radius:10px;margin-top:7px;cursor:pointer}

/* M13 · 深夜双人收音机：节目单、播音台与左右声道 */
#m13{--radio-night:#262947;--radio-panel:#35385e;--radio-paper:#fff8e8;--radio-brass:#d6ad62;--radio-live:#e75c68;--radio-rule:rgba(65,69,108,.12);background:linear-gradient(180deg,transparent 0,rgba(37,40,69,.035) 38%,rgba(37,40,69,.07) 100%)}
#m13 .radio-hero{background:linear-gradient(145deg,#222542 0%,#3f4475 57%,#696daa 100%);box-shadow:0 14px 30px rgba(29,31,57,.22)}
#m13 .radio-hero:before{background:rgba(180,187,255,.09);box-shadow:0 0 0 24px rgba(180,187,255,.035),0 0 0 48px rgba(180,187,255,.02)}
.radio-frequency{position:absolute;right:7px;top:15px;z-index:1;display:flex;align-items:baseline;gap:3px;padding:5px 8px;border:1px solid rgba(238,209,145,.36);border-radius:5px;background:#20243a;color:#f2cc7d;font-family:"SFMono-Regular",Consolas,monospace;box-shadow:inset 0 0 12px rgba(0,0,0,.3),0 4px 10px rgba(20,21,39,.2);transform:rotate(1deg)}
.radio-frequency b{font-size:15px;letter-spacing:1px;text-shadow:0 0 8px rgba(241,198,105,.42)}.radio-frequency small{font-size:7px;letter-spacing:1px}
#m13 .radio-mic{font-size:66px;margin-top:22px}
#m13 .radio-wave{right:2px;bottom:12px;color:#efce87}
#m13 .datebar{background:#f8f5ec!important;border-color:#ded8cb!important;border-radius:7px!important}
#m13 .module-section-label>span{border-radius:50%;border:1px solid rgba(74,78,128,.15);background:#f0eff8;color:#6569a5;font-family:"SFMono-Regular",Consolas,monospace}
#m13 .radio-theme{min-height:118px;padding:15px 16px 13px;border:1px solid #d9cfb9;border-radius:7px;background-color:var(--radio-paper);background-image:repeating-linear-gradient(180deg,transparent 0,transparent 27px,var(--radio-rule) 27px,var(--radio-rule) 28px);box-shadow:0 8px 20px rgba(55,47,38,.08);transform:rotate(-.15deg)}
#m13 .radio-theme:before{content:"";position:absolute;left:7px;right:7px;top:7px;height:5px;background:radial-gradient(circle at left,#c7b99e 0 2px,transparent 2.5px),radial-gradient(circle at right,#c7b99e 0 2px,transparent 2.5px);pointer-events:none}
#m13 .radio-theme:after{display:none}
.radio-program-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;color:#878173;font-family:"SFMono-Regular",Consolas,monospace;font-size:9px;font-weight:800;letter-spacing:1px}
#m13 .radio-live{margin:0;border-radius:4px;padding:4px 7px;background:var(--radio-live)}
.radio-archive{padding:4px 7px;border-radius:4px;background:#5f638e;color:#fff}
#m13 .radio-theme>b{display:block;min-height:43px;font-family:"Songti SC","STSong",ui-serif,serif;font-size:18px;line-height:1.55;color:#33354f}
.radio-frequency-strip{display:flex;align-items:center;gap:6px;margin-top:9px;padding-top:7px;border-top:1px dashed rgba(69,66,61,.22);color:#8e816b;font-family:"SFMono-Regular",Consolas,monospace;font-size:8px;letter-spacing:.8px}
.radio-frequency-strip i{display:inline-block;width:28px;height:4px;background:repeating-linear-gradient(90deg,#777b9e 0 1px,transparent 1px 4px)}
#m13 .radio-compose{padding:12px;border:1px solid #20233e;border-radius:9px;background:linear-gradient(145deg,#3b3e63,#292c4d);box-shadow:0 10px 23px rgba(33,35,62,.18),inset 0 1px rgba(255,255,255,.11)}
#m13 .radio-compose:before,#m13 .radio-board:before{content:"";position:absolute;inset:7px;background:radial-gradient(circle at left top,#8b8eaa 0 2px,transparent 2.5px),radial-gradient(circle at right top,#8b8eaa 0 2px,transparent 2.5px),radial-gradient(circle at left bottom,#8b8eaa 0 2px,transparent 2.5px),radial-gradient(circle at right bottom,#8b8eaa 0 2px,transparent 2.5px);opacity:.62;pointer-events:none}
#m13 .radio-compose:after,#m13 .radio-board:after{display:none}
#m13 .radio-compose .status-line{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 9px!important;padding:0;background:transparent}
#m13 .radio-compose .status-line span{min-width:0;padding:6px 7px;border:1px solid rgba(255,255,255,.09);border-radius:5px;background:rgba(15,17,35,.22);color:#aeb1c9;font-size:9px;line-height:1.35;text-align:center}
#m13 .radio-compose .status-line span.on{border-color:rgba(119,210,154,.27);color:#b9eccb}
#m13 .radio-compose .status-line span:before{content:"○";margin-right:4px;color:#777b9a}#m13 .radio-compose .status-line span.on:before{content:"●";color:#79d19a;text-shadow:0 0 7px rgba(121,209,154,.8)}
#m13 .radio-compose textarea{min-height:138px;border:1px solid #d9cfb9;border-radius:5px;background-color:var(--radio-paper);background-image:linear-gradient(90deg,transparent 0,transparent 25px,rgba(222,101,112,.18) 25px,rgba(222,101,112,.18) 26px,transparent 26px),repeating-linear-gradient(180deg,transparent 0,transparent 27px,var(--radio-rule) 27px,var(--radio-rule) 28px);padding:13px 12px 10px 35px;font-size:15px;line-height:28px;color:#343346;box-shadow:inset 0 1px 4px rgba(65,58,48,.06)}
#m13 .radio-compose textarea:focus{border-color:#e1c47f;box-shadow:0 0 0 3px rgba(214,173,98,.14)}
#m13 .radio-compose .field-hint{color:#bbbdd0}
#m13 .radio-broadcast-btn{border:1px solid #f1828b;border-radius:6px;background:linear-gradient(180deg,#ed6e79,#c74450);color:#fff;box-shadow:0 5px 12px rgba(15,17,34,.26),inset 0 1px rgba(255,255,255,.26)}
#m13 .radio-broadcast-btn i{display:inline-block;width:7px;height:7px;margin-right:3px;border-radius:50%;background:#fff;box-shadow:0 0 8px rgba(255,255,255,.8)}
#m13 .radio-board{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:12px;border:1px solid #20233e;border-radius:9px;background:linear-gradient(145deg,#303354,#222541);box-shadow:0 10px 23px rgba(33,35,62,.17),inset 0 1px rgba(255,255,255,.1)}
#m13 .radio-board>.radio-channel{min-width:0;margin:0!important;padding:10px!important;border:1px solid #d8ceb9!important;border-radius:6px!important;background:var(--radio-paper)!important;box-shadow:inset 0 0 0 2px rgba(255,255,255,.55),0 4px 10px rgba(14,16,31,.16)}
#m13 .radio-board>.radio-channel.wolf{border-top:3px solid #7d86a8!important}#m13 .radio-board>.radio-channel.rabbit{border-top:3px solid #d98aa6!important}
.radio-channel-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px;padding-bottom:7px;border-bottom:1px solid rgba(61,60,69,.13)}
.radio-channel-head>span{font-family:"SFMono-Regular",Consolas,monospace;font-size:7px;letter-spacing:.8px;color:#8c887d}.radio-channel-head>b{grid-column:1;font-size:12px;color:#33354a}.radio-channel-head>i{grid-column:2;grid-row:1/3;font-family:"SFMono-Regular",Consolas,monospace;font-size:7px;font-style:normal;color:#b3aa9b}.radio-channel.is-live .radio-channel-head>i{color:#cf4d59}
.radio-signal{display:flex!important;align-items:center!important;gap:2px!important;height:20px;margin:7px 0 5px!important;padding:0!important;border:0!important;background:transparent!important}
.radio-signal i{display:block;width:3px;height:4px;border-radius:3px;background:#777ca4;animation:radioBars 1.2s ease-in-out infinite}.radio-signal i:nth-child(2),.radio-signal i:nth-child(7){animation-delay:.15s}.radio-signal i:nth-child(3),.radio-signal i:nth-child(6){animation-delay:.3s}.radio-signal i:nth-child(4),.radio-signal i:nth-child(5){animation-delay:.45s}
.radio-channel.rabbit .radio-signal i{background:#d17e9d}.radio-channel.is-silent .radio-signal i{height:2px!important;animation:none;opacity:.35}
#m13 .radio-board .broadcast-copy{min-height:51px;margin:0;padding:7px 0;font-family:"Songti SC","STSong",ui-serif,serif;font-size:15px;line-height:1.65;color:#393746}
.radio-silence{display:flex!important;min-height:63px!important;flex-direction:column;align-items:center;justify-content:center;margin:0!important;padding:5px!important;border:0!important;background:transparent!important;color:#aaa59b}.radio-silence span{font-size:17px;letter-spacing:4px}.radio-silence small{margin-top:3px;font-size:8px}
#m13 .broadcast-echo{margin:7px 0 0;padding:3px 6px;border-radius:3px;background:#f5e1e7;color:#ad5774}
#m13 .broadcast-photo{width:100%;height:92px;border:4px solid #fff;border-radius:3px;box-shadow:0 3px 8px rgba(53,45,39,.13)}
#m13 .radio-echo-btn{width:100%;margin-top:8px;padding:7px 5px;border-radius:5px;background:#767aa8;font-size:9px;white-space:normal}
#m13hist .radio-theme{margin-bottom:11px}
@keyframes radioBars{0%,100%{height:4px}35%{height:16px}65%{height:8px}}
.sync-question{background:linear-gradient(135deg,#fff,var(--module-soft));padding:17px 15px}.sync-question-kicker{font-size:11px;font-weight:800;color:var(--module-accent);letter-spacing:.3px;margin-bottom:9px}.sync-question-copy{font-size:18px;line-height:1.6;font-weight:750;color:var(--module-deep);overflow-wrap:anywhere}.sync-question-meta{display:inline-block;margin-top:10px;padding:4px 8px;border-radius:999px;background:#fff;border:1px solid var(--module-line);font-size:10px}
.sync-answer{background:linear-gradient(180deg,#fff,var(--module-soft));padding:14px}.sync-player-turn{margin-bottom:11px}.sync-player-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.sync-player-head b{font-size:13px;color:var(--module-deep)}.sync-player-head span{font-size:9px;color:var(--module-accent);padding:3px 7px;border-radius:999px;background:var(--module-soft)}
.sync-tip{margin:3px 0 10px!important;line-height:1.5}.sync-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sync-choice{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%;min-height:44px;padding:9px 10px!important;text-align:left;border:1px solid var(--module-line)!important;background:#fff!important;color:var(--module-deep)!important;box-shadow:0 3px 8px rgba(49,45,84,.05)}.sync-choice span{display:grid;place-items:center;width:22px;height:22px;flex:0 0 22px;border-radius:7px;background:var(--module-soft);color:var(--module-accent);font-size:10px;font-weight:900}.sync-choice:active{transform:scale(.98);border-color:var(--module-accent)!important}
.sync-input,.sync-textarea{display:block;width:100%;border:1px solid var(--module-line);border-radius:12px;background:#fff;padding:11px 12px;font:inherit;font-size:15px;color:var(--module-ink);outline:none}.sync-input{margin:5px 0}.sync-textarea{min-height:86px;resize:vertical;margin:5px 0 9px;line-height:1.6}.sync-input:focus,.sync-textarea:focus{border-color:var(--module-accent);box-shadow:0 0 0 3px rgba(130,115,198,.12)}.sync-unit{margin:0 0 9px!important}.sync-submit{display:block;width:100%;margin-top:7px;padding:10px!important}
#m06sortList{display:grid;gap:7px}.m06sortItem{display:flex;align-items:center;gap:9px;border:1px solid var(--module-line);border-radius:11px;padding:9px 10px;font-size:13px;line-height:1.45;background:#fff;cursor:pointer;transition:transform .16s,border-color .16s,background .16s}.m06sortItem:active{transform:scale(.985)}.m06sortItem.picked{border-color:var(--module-accent)!important;background:var(--module-soft)}.sort-index{display:grid;place-items:center;width:22px;height:22px;flex:0 0 22px;border-radius:7px;background:#f3f2f7;color:var(--module-muted);font-size:10px;font-weight:800}.m06sortItem.picked .sort-index{background:var(--module-accent);color:#fff}.sort-copy{flex:1;min-width:0}.m06sortBadge{margin-left:auto!important;color:var(--module-accent)!important;font-size:10px;font-weight:800;white-space:nowrap;float:none!important}
.sync-waiting{display:flex;align-items:center;gap:9px;margin-top:10px;padding:10px;border:1px dashed var(--module-line);border-radius:11px;background:rgba(255,255,255,.62)}.sync-waiting>span{font-size:22px;filter:grayscale(.5);opacity:.7}.sync-waiting>div{display:flex;flex:1;min-width:0;flex-direction:column}.sync-waiting b{font-size:11px;color:var(--module-deep)}.sync-waiting small{font-size:9px;color:var(--module-muted);margin-top:2px}.sync-waiting i{font-style:normal;color:var(--module-accent);font-size:11px;font-weight:900;letter-spacing:2px;animation:waitingDots 1.6s ease-in-out infinite}.sync-waiting.done i{animation:none;font-size:16px}.sync-waiting.done>span{filter:none;opacity:1}
.match-reveal{display:flex;flex-direction:column;align-items:center;text-align:center;padding:8px 5px 14px}.match-reveal>span{font-size:34px;line-height:1;animation:matchPop .65s cubic-bezier(.2,1.5,.4,1) both}.match-reveal>b{font-size:18px;color:var(--module-deep);margin-top:7px}.match-reveal>small{font-size:10px;color:var(--module-muted);margin-top:4px}.match-reveal.matched>b{color:#6d5fb5}.sync-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sync-person{position:relative;padding:10px;border-radius:12px;background:#fff;border:1px solid var(--module-line);min-width:0}.sync-person.wolf{box-shadow:inset 3px 0 var(--wolf)}.sync-person.rabbit{box-shadow:inset 3px 0 var(--rabbit)}.sync-person>b{display:block;font-size:11px;margin-bottom:5px}.sync-person>div{font-size:12px;line-height:1.55;overflow-wrap:anywhere}.m06AnswerSort>div{padding:3px 0}.sync-result{margin-top:10px}.sync-answer.revealed{margin-top:10px}

/* M06 · 心电感应实验台：测试卡、答案舱与中央默契仪 */
#m06{--sync-night:#303253;--sync-panel:#41446d;--sync-paper:#fbfaf4;--sync-lavender:#7770bb;--sync-pink:#db84a3;--sync-green:#6eb99b;--sync-grid:rgba(79,83,128,.085);background:linear-gradient(180deg,transparent 0,rgba(90,79,133,.035) 43%,rgba(90,79,133,.075) 100%)}
#m06 .sync-hero{background:linear-gradient(140deg,#35375c 0%,#6662a3 56%,#9a72ad 100%);box-shadow:0 14px 30px rgba(42,39,76,.2)}
#m06 .sync-hero:before{background:rgba(217,209,255,.1);box-shadow:0 0 0 24px rgba(217,209,255,.035),0 0 0 48px rgba(217,209,255,.02)}
.sync-meter{position:absolute;z-index:0;inset:18px 5px 9px;border:1px solid rgba(255,255,255,.22);border-radius:70px 70px 14px 14px;background:repeating-radial-gradient(ellipse at 50% 80%,transparent 0 13px,rgba(255,255,255,.07) 14px 15px,transparent 16px 25px)}
.sync-meter:before,.sync-meter:after{content:"";position:absolute;bottom:12px;width:27px;height:5px;border-radius:5px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.42) 0 2px,transparent 2px 5px)}
.sync-meter:before{left:14px}.sync-meter:after{right:14px}.sync-meter i{position:absolute;left:50%;bottom:9px;width:1px;height:52px;background:linear-gradient(transparent,#ffe5a4);transform-origin:bottom;transform:rotate(8deg);animation:syncNeedle 3.4s ease-in-out infinite}.sync-meter b{position:absolute;left:50%;bottom:4px;transform:translateX(-50%);font:700 7px/1 "SFMono-Regular",Consolas,monospace;letter-spacing:1.5px;color:#f8dc9b}
#m06 .sync-face{z-index:2;border-radius:9px;background:linear-gradient(145deg,rgba(255,255,255,.3),rgba(255,255,255,.12));box-shadow:0 9px 18px rgba(31,30,59,.2),inset 0 1px rgba(255,255,255,.5)}
#m06 .sync-link{top:61%;color:#ffe1a3;font-size:30px}
#m06 .datebar{margin:0 0 15px!important;padding:8px 10px!important;border:1px solid rgba(67,70,104,.13)!important;border-radius:7px!important;background:#f8f7f3!important;box-shadow:none!important}
#m06 .module-section-label>span{border:1px solid rgba(112,105,180,.16);border-radius:50%;background:#f0eff9;color:#6f68b1;font-family:"SFMono-Regular",Consolas,monospace}
#m06 .sync-question{min-height:171px;padding:15px 16px 13px;border:1px solid #d8d6cb;border-radius:7px;background-color:var(--sync-paper);background-image:linear-gradient(var(--sync-grid) 1px,transparent 1px),linear-gradient(90deg,var(--sync-grid) 1px,transparent 1px);background-size:18px 18px;box-shadow:0 9px 21px rgba(48,44,65,.08);transform:rotate(-.12deg)}
#m06 .sync-question:before{content:"";position:absolute;left:50%;top:-1px;width:72px;height:13px;transform:translateX(-50%);border:1px solid #a8a5a0;border-top:0;border-radius:0 0 6px 6px;background:linear-gradient(180deg,#d3d0ca,#f0eee8);box-shadow:0 2px 3px rgba(44,42,40,.12)}
#m06 .sync-question:after{display:none}
.sync-test-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0 13px;padding-bottom:7px;border-bottom:1px solid rgba(57,58,72,.18);font-family:"SFMono-Regular",Consolas,monospace;font-size:8px;letter-spacing:.8px;color:#777582}.sync-test-head span{font-weight:900;color:#665fa1}.sync-test-head b{font-size:8px;color:#8f8c91}
#m06 .sync-question-kicker{display:inline-block;margin:0 0 7px;padding:3px 7px;border-radius:3px;background:#e9e7f6;color:#655e9f;font-size:10px}
#m06 .sync-question-copy{min-height:55px;font-family:"Songti SC","STSong",ui-serif,serif;font-size:19px;line-height:1.55;color:#303148}
.sync-test-scale{display:flex;align-items:flex-end;gap:4px;margin-top:9px;padding-top:8px;border-top:1px dashed rgba(57,58,72,.18)}.sync-test-scale i{display:block;width:2px;height:7px;background:#8d88b3}.sync-test-scale i:nth-child(2),.sync-test-scale i:nth-child(4){height:4px}.sync-test-scale i:nth-child(3){height:10px}.sync-test-scale b{margin-left:auto;font:700 7px/1 "SFMono-Regular",Consolas,monospace;letter-spacing:.8px;color:#99959b}
#m06 .sync-answer{padding:12px;border:1px solid #292b4a;border-radius:9px;background:linear-gradient(145deg,#41446d,#2c2f51);box-shadow:0 11px 24px rgba(38,37,64,.18),inset 0 1px rgba(255,255,255,.1)}
#m06 .sync-answer:before{content:"";position:absolute;inset:7px;background:radial-gradient(circle at left top,#9294b3 0 2px,transparent 2.5px),radial-gradient(circle at right top,#9294b3 0 2px,transparent 2.5px),radial-gradient(circle at left bottom,#9294b3 0 2px,transparent 2.5px),radial-gradient(circle at right bottom,#9294b3 0 2px,transparent 2.5px);opacity:.62;pointer-events:none}#m06 .sync-answer:after{display:none}
.sync-console-label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 3px 9px;color:#b8bad0;font:700 8px/1.3 "SFMono-Regular",Consolas,monospace;letter-spacing:1px}.sync-console-label b{color:#d9bde1;font-size:8px}
#m06 .sync-player-turn{position:relative;margin:0 0 9px;padding:10px;border:1px solid #d9d6cb;border-top:3px solid var(--sync-lavender);border-radius:6px;background:var(--sync-paper);box-shadow:inset 0 0 0 2px #fff,0 4px 10px rgba(18,19,37,.16)}
#m06 .sync-player-head{padding-bottom:8px;border-bottom:1px solid rgba(61,60,74,.13)}
#m06 .sync-player-head b{color:#34354e}#m06 .sync-player-head span{border-radius:3px;background:#eae8f5;color:#6863a0;font-family:"SFMono-Regular",Consolas,monospace;font-size:8px}
#m06 .sync-tip{color:#74717d}
#m06 .sync-choices{gap:7px}
#m06 .sync-choice{min-height:47px;border:1px solid #d9d5c9!important;border-radius:5px;background:#fffdf7!important;color:#393847!important;box-shadow:0 3px 0 #d3cfc4!important;font-family:"Songti SC","STSong",ui-serif,serif;font-size:13px}
#m06 .sync-choice span{border-radius:50%;background:#e8e6f4;color:#625d9a;font-family:"SFMono-Regular",Consolas,monospace}
#m06 .sync-choice:active{transform:translateY(2px);box-shadow:0 1px 0 #d3cfc4!important}
#m06 .sync-waiting{position:relative;margin:0;padding:10px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:rgba(16,18,37,.23)}
#m06 .sync-waiting>span{display:grid;place-items:center;width:31px;height:31px;border:1px solid rgba(255,255,255,.13);border-radius:50%;background:rgba(255,255,255,.06);font-size:17px}
#m06 .sync-waiting b{color:#e1e1ec}#m06 .sync-waiting small{color:#9fa2bb}#m06 .sync-waiting i{color:#d5b9dd}
#m06 .sync-waiting.done{border-color:rgba(110,185,155,.35);background:rgba(61,127,103,.17)}#m06 .sync-waiting.done i{color:#8fd1b6}
#m06 .sync-submit{border:1px solid #948dd2;border-radius:5px;background:linear-gradient(180deg,#7d76bd,#5f5a9d);box-shadow:0 4px 0 #4b487e}
#m06 .sync-input,#m06 .sync-textarea{border-color:#d7d3c8;border-radius:5px;background:#fffdf7;box-shadow:inset 0 2px 5px rgba(60,55,48,.05)}#m06 .sync-input:focus,#m06 .sync-textarea:focus{border-color:#8b84c6;box-shadow:0 0 0 3px rgba(125,118,189,.12)}
#m06sortList{gap:6px}#m06 .m06sortItem{border-color:#d9d5c9;border-radius:5px;background:#fffdf7;box-shadow:0 2px 0 #d7d2c8}#m06 .m06sortItem.picked{border-color:#7770bb!important;background:#efedf9}#m06 .sort-index{border-radius:50%;background:#e8e6f2}
#m06 .sync-answer.revealed{margin-top:0;background:linear-gradient(145deg,#444873,#2d3051)}
#m06 .match-reveal{position:relative;margin:0 0 10px;padding:13px 7px 15px;border:1px solid rgba(255,255,255,.11);border-radius:6px;background:rgba(14,16,34,.22)}
#m06 .match-reveal:before{content:"SYNC METER";color:#969ab8;font:700 7px/1 "SFMono-Regular",Consolas,monospace;letter-spacing:1.4px}
#m06 .match-reveal>span{display:grid;place-items:center;width:48px;height:48px;margin-top:8px;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(255,255,255,.06);color:#efc4d2;font-size:25px;text-shadow:0 0 14px rgba(239,196,210,.65)}
#m06 .match-reveal>b{color:#fff}#m06 .match-reveal.matched>b{color:#f0d2dc}#m06 .match-reveal>small{color:#b8bad0}
#m06 .sync-person{min-height:91px;padding:10px;border:1px solid #d9d5ca;border-radius:6px;background:var(--sync-paper);box-shadow:inset 0 0 0 2px #fff}
#m06 .sync-person.wolf{border-top:3px solid #7f88a9;box-shadow:inset 0 0 0 2px #fff}#m06 .sync-person.rabbit{border-top:3px solid #dc88a6;box-shadow:inset 0 0 0 2px #fff}
#m06 .sync-person>b{padding-bottom:6px;border-bottom:1px solid rgba(61,60,74,.13);color:#34354b}#m06 .sync-person>div{font-family:"Songti SC","STSong",ui-serif,serif;font-size:14px;color:#34333f}
#m06hist .sync-question{margin-bottom:11px}#m06hist .sync-answer{margin-top:0}
@keyframes syncNeedle{0%,100%{transform:rotate(-18deg)}50%{transform:rotate(22deg)}}
@keyframes moduleEnter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes moduleFloat{0%,100%{transform:translateY(0) rotate(-9deg)}50%{transform:translateY(-8px) rotate(-5deg)}}
@keyframes diceFloat{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-8px) rotate(8deg)}}
@keyframes diceGlow{0%,100%{opacity:.35;transform:rotate(16deg) scale(.9)}50%{opacity:.9;transform:rotate(24deg) scale(1.1)}}
@keyframes diceResult{from{opacity:0;transform:scale(.5) rotate(-14deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes modulePulse{0%,100%{transform:scale(.92);opacity:.7}50%{transform:scale(1.12);opacity:1}}
@keyframes moduleTwinkle{0%,100%{opacity:.3;transform:scale(.75) rotate(-10deg)}50%{opacity:1;transform:scale(1.2) rotate(10deg)}}
@keyframes moonBreathe{0%,100%{transform:scale(.94);opacity:.78}50%{transform:scale(1.08);opacity:1}}
@keyframes fireflyBlink{0%,100%{opacity:.2;transform:translate(0,0)}45%{opacity:1}70%{opacity:.45;transform:translate(6px,-8px)}}
@keyframes micFloat{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-7px) rotate(4deg)}}
@keyframes radioOrbit{from{transform:rotate(-22deg) rotate(0deg)}to{transform:rotate(-22deg) rotate(360deg)}}
@keyframes waveBlink{0%,100%{opacity:.35;transform:translateX(0) rotate(-15deg)}50%{opacity:1;transform:translateX(5px) rotate(-15deg)}}
@keyframes revealUnfold{from{opacity:0;transform:scaleY(.72);transform-origin:top}to{opacity:1;transform:scaleY(1);transform-origin:top}}
@keyframes lockBreathe{0%,100%{transform:scale(.92);opacity:.72}50%{transform:scale(1.08);opacity:1}}
@keyframes onAirPulse{0%{box-shadow:0 0 0 0 rgba(223,91,104,.38)}70%{box-shadow:0 0 0 7px rgba(223,91,104,0)}100%{box-shadow:0 0 0 0 rgba(223,91,104,0)}}
@keyframes syncWolf{0%,100%{transform:translateY(0) rotate(-9deg)}50%{transform:translateY(-6px) rotate(-5deg)}}
@keyframes syncRabbit{0%,100%{transform:translateY(0) rotate(8deg)}50%{transform:translateY(5px) rotate(4deg)}}
@keyframes waitingDots{0%,100%{opacity:.35}50%{opacity:1}}
@keyframes matchPop{from{opacity:0;transform:scale(.4) rotate(-14deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@media (max-width:480px){
  #m02,#m04,#m06,#m11,#m13{padding-bottom:12px}
  .module-hero{min-height:178px;margin-left:-10px;margin-right:-10px;padding:23px 19px 19px;border-radius:0 0 22px 22px}
  .module-hero h1{font-size:25px}.module-hero p{font-size:12px}.hero-copy{max-width:72%}.hero-art{right:7px;transform:scale(.88);transform-origin:bottom right}
  .module-section-label{margin-top:16px}.module-card{border-radius:14px;padding:13px 12px}.compose-footer{align-items:flex-end}.field-hint{max-width:45%}
  .seal-card{align-items:flex-start;flex-wrap:wrap}.seal-card .btn{margin-left:32px}.sneak-row{align-items:flex-start}.sneak-icon{font-size:21px}
  .sync-choices{grid-template-columns:1fr}.sync-pair{grid-template-columns:1fr}.sync-question-copy{font-size:16px}.sync-face{transform:scale(.9)}
  #m02 .diary-paper{padding-left:43px;background-image:linear-gradient(90deg,transparent 0,transparent 32px,var(--diary-margin) 32px,var(--diary-margin) 33px,transparent 33px),repeating-linear-gradient(180deg,transparent 0,transparent 27px,var(--diary-rule) 27px,var(--diary-rule) 28px)}
  #m02 .diary-paper:before{left:7px}#m02 .diary-paper:after{left:32px}
  #m13 .radio-board{grid-template-columns:1fr}.radio-frequency{right:2px;top:10px}.radio-frequency b{font-size:13px}
  #m13 .radio-compose:before,#m13 .radio-board:before{display:none}
}
@media (prefers-reduced-motion: reduce){
  .module-flow,.module-hero *,.module-hero:before,.module-hero:after,.dice-session>div:first-child,.peek-reveal,.seal-lock,.radio-live,.radio-signal i,.sync-waiting i,.match-reveal>span{animation:none!important}
  .compose-footer .btn{transition:none}.compose-card textarea{transition:none}
}

/* ==================== 兔兔高频玩法 · 公共 UI 优化 v20260917 ==================== */
.app-header{position:relative;z-index:6;box-shadow:0 8px 22px rgba(63,51,78,.13)}
.app-header #meChip{min-height:32px;cursor:pointer}.btn{cursor:pointer;transition:transform .14s,filter .14s}.btn:active{transform:translateY(1px) scale(.98)}
#subBar{min-height:48px;box-shadow:0 5px 16px rgba(54,47,65,.055)}#subBar .sbBack{display:flex;align-items:center;min-height:34px;padding:4px 7px;border-radius:8px}#subBar .sbBack:active{background:#f2eff3}
.frequent-view{max-width:940px;margin:0 auto}.frequent-view>.fm-tabs{position:sticky;top:51px;z-index:4;padding:7px;background:rgba(247,245,242,.94);border:1px solid rgba(91,107,140,.08);border-radius:12px;box-shadow:0 5px 14px rgba(50,43,58,.055);backdrop-filter:blur(10px)}
.fm-tab{min-height:42px}.owner-tabs .otab{min-height:40px}
#m05{--pet-accent:#e28aab;--pet-ink:#4b4052}#m05 .m05-hero-card{overflow:hidden;border:1px solid rgba(224,138,166,.16);background:linear-gradient(180deg,#fff 0%,#fff8fb 100%);box-shadow:0 10px 28px rgba(96,70,87,.09)}#m05 .m05-hero-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--wolf),var(--rabbit),#e5b557)}
#m05 .m05-tabs{position:sticky;top:51px;z-index:4;padding:6px;border-radius:13px;background:rgba(247,245,242,.94);box-shadow:0 5px 16px rgba(62,53,71,.07);backdrop-filter:blur(10px)}#m05 .m05tabbtn{min-height:42px;background:#ebe8ef!important;color:#716b78!important}#m05 .m05tabbtn.on{background:var(--wolf)!important;color:#fff!important}
#m05 .m05-portrait-card{padding:13px 10px 11px;border:1px solid rgba(224,138,166,.15);background:linear-gradient(180deg,#fff,#fffbfd)}
#m05 .m05-portrait-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin:0 2px 11px}
#m05 .m05-portrait-head>div{display:flex;min-width:0;flex-direction:column;gap:2px}#m05 .m05-portrait-head b{font-size:14px;color:var(--pet-ink)}#m05 .m05-portrait-head small{font-size:10.5px;line-height:1.45;color:var(--muted)}
#m05 .m05-portrait-head .m05-portrait-summary{display:flex;flex:0 0 auto;align-items:flex-end;gap:4px}#m05 .m05-portrait-summary span,#m05 .m05-portrait-summary strong{padding:3px 7px;border:1px solid #ead6df;border-radius:999px;background:#fff6fa;color:#8b6173;font-size:10px;font-weight:800;white-space:nowrap}#m05 .m05-portrait-summary strong{color:#a86481;font-size:11px}
#m05 .m05-portrait-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
#m05 .m05-portrait-item{position:relative;min-width:0;overflow:hidden;border:1px solid #e9e4e8;border-radius:13px;background:#fff;box-shadow:0 4px 12px rgba(69,54,70,.055)}
#m05 .m05-portrait-item.current{border-color:#d69ab3;box-shadow:0 0 0 2px rgba(224,138,166,.13),0 5px 15px rgba(91,66,83,.1)}
#m05 .m05-portrait-top{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:7px 7px 6px;color:#aaa3aa;font-size:9px;font-weight:800;letter-spacing:.2px}
#m05 .m05-portrait-top em{padding:2px 5px;border-radius:999px;background:#f1eff2;color:#8e8890;font-style:normal;letter-spacing:0}
#m05 .m05-portrait-item.unlocked .m05-portrait-top em{background:#eaf6ec;color:#4f7a58}#m05 .m05-portrait-item.claimable .m05-portrait-top em{background:#fff0d6;color:#a66923}#m05 .m05-portrait-item.poor .m05-portrait-top em{background:#f7e8e8;color:#a25b5b}
#m05 .m05-portrait-art{position:relative;display:block;width:100%;aspect-ratio:2/3;overflow:hidden;border:0;border-radius:0;background:linear-gradient(145deg,#f6edf2,#e8edf5);font:inherit;cursor:default}
#m05 button.m05-portrait-art{cursor:zoom-in}#m05 .m05-portrait-art img{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .25s,filter .25s}
#m05 .m05-portrait-item.unlocked button.m05-portrait-art:active img{transform:scale(1.025)}#m05 .m05-portrait-item.claimable .m05-portrait-art img{filter:blur(2px) saturate(.68) brightness(.9);transform:scale(1.035)}#m05 .m05-portrait-item.poor .m05-portrait-art img{filter:grayscale(.55) blur(3px) brightness(.76);transform:scale(1.055)}#m05 .m05-portrait-item.locked .m05-portrait-art img{filter:grayscale(.9) blur(5px) brightness(.68);transform:scale(1.07)}
#m05 .m05-portrait-fallback{position:absolute;inset:0;display:grid;place-items:center;color:#a98c9b;font-size:38px}#m05 .m05-portrait-art.missing .m05-portrait-fallback{background:linear-gradient(145deg,#fff4f8,#edf1f8)}
#m05 .m05-portrait-veil{position:absolute;z-index:2;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;background:linear-gradient(180deg,rgba(49,43,53,.08),rgba(49,43,53,.32));color:#fff;text-shadow:0 1px 5px rgba(0,0,0,.35)}#m05 .m05-portrait-veil i{font-size:21px;font-style:normal}#m05 .m05-portrait-veil b{font-size:10px}
#m05 .m05-portrait-zoom{position:absolute;z-index:2;right:6px;bottom:6px;padding:3px 6px;border-radius:999px;background:rgba(36,31,39,.62);color:#fff;font-size:9px;font-weight:700}
#m05 .m05-portrait-copy{display:flex;min-width:0;flex-direction:column;padding:8px 7px 9px}#m05 .m05-portrait-copy>div{display:flex;min-width:0;align-items:center;gap:4px}#m05 .m05-portrait-copy>div>b{overflow:hidden;flex:1;color:#48414b;font-size:12px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}#m05 .m05-portrait-copy>small{margin-top:2px;color:#aaa3aa;font-size:9px;line-height:1.35}
#m05 .m05-portrait-owners{display:flex;flex:0 0 auto;gap:1px}#m05 .m05-portrait-owners i{filter:grayscale(1);font-size:10px;font-style:normal;opacity:.25}#m05 .m05-portrait-owners i.on{filter:none;opacity:1}
#m05 .m05-portrait-price{margin-top:5px;color:#9a6c2d;font-size:9.5px;font-weight:800;line-height:1.35}
#m05 .m05-portrait-claim{width:100%;min-height:36px;margin-top:6px;padding:6px 4px;border-radius:9px;font-size:10.5px;line-height:1.25;white-space:normal}#m05 .m05-portrait-claim:disabled{opacity:.7}#m05 .m05-portrait-claim.poor{background:#e9e5e7!important;color:#8f858a!important}
#m05 .m05-portrait-current{position:absolute;z-index:3;top:31px;left:-25px;width:92px;padding:3px 0;transform:rotate(-42deg);background:#dc86aa;color:#fff;text-align:center;font-size:8px;font-weight:900;box-shadow:0 2px 5px rgba(76,50,67,.18)}
#farm,#teashop{padding-bottom:18px}#farm>#fmBoard,#teashop>#tsBoard{margin-top:2px}#farm .card,#teashop .card{border:1px solid rgba(92,80,52,.07);box-shadow:0 6px 18px rgba(69,59,42,.055)}
#inn .inn-wrap{max-width:900px;margin:0 auto}.inn-hero{overflow:hidden}
.owner-tabs{display:flex;gap:6px;padding:8px 6px 2px;justify-content:center}.otab{flex:1;max-width:110px;min-height:40px;padding:6px 8px;border:1.5px solid #ddd;border-radius:12px;background:#f8f8f8;color:var(--muted);font-size:13px;font-weight:700;cursor:pointer;transition:all .15s}.otab.sel{border-color:var(--gold);background:var(--gold);color:#fff;box-shadow:0 3px 12px -5px rgba(200,150,50,.5)}.otab:hover:not(.sel){border-color:#b9a;background:#f3eff9}
.mini-board{display:flex;align-items:stretch;gap:6px;padding:4px 2px}.mini-board .mb-side{position:relative;flex:1;min-width:0;padding:8px 4px;border:1.5px solid transparent;border-radius:12px;background:#f7f5fa;text-align:center}.mini-board .mb-side.lead{border-color:#e8b15a;box-shadow:0 3px 12px -5px rgba(214,154,44,.5)}.mini-board .mb-crown{position:absolute;top:-12px;left:50%;transform:translateX(-50%);font-size:18px}.mini-board .mb-av{font-size:24px;line-height:1}.mini-board .mb-nm{color:var(--iink);font-size:11px;font-weight:800}.mini-board .mb-sc{color:#b9862a;font-size:15px;font-weight:900}.mini-board .mb-vs{display:flex;align-items:center;flex-shrink:0;color:#d0b088;font-size:12px;font-weight:900}
.dn-head-main{display:flex;align-items:center;gap:8px}.dn-head-brand{min-width:0}.dn-head-spacer{flex:1}.dn-head-actions{display:flex;flex-shrink:0;gap:6px}.dn-head-tool{padding:5px 10px!important;font-size:10px!important;white-space:nowrap}.dn-head-rank{flex-shrink:0;text-align:right;white-space:nowrap}
#diner{overflow-x:hidden;border-radius:18px}#dinerWrap{overflow-x:hidden}
#fxLayer{overflow:hidden}
@media (min-width:900px){
  header.compact{padding-left:max(24px,calc((100vw - 1160px)/2));padding-right:max(24px,calc((100vw - 1160px)/2));border-radius:0 0 20px 20px}
  #subBar{padding-left:max(24px,calc((100vw - 1160px)/2));padding-right:max(24px,calc((100vw - 1160px)/2))}
  nav{padding-left:calc((100vw - 760px)/2);padding-right:calc((100vw - 760px)/2)}
  .home-view{max-width:820px;margin:0 auto}.home-titlebar{margin-top:6px!important}
  .games-view{max-width:980px;margin:0 auto}.games-view .split{gap:16px}.games-view .catgames .grid{grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px}.games-view .gcell{min-height:118px;display:flex;flex-direction:column;justify-content:center}
  .hm-float-actions{right:max(18px,calc((100vw - 980px)/2))}
  #m05 .m05-portrait-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}
}
@media (min-width:560px) and (max-width:899px){#m05 .m05-portrait-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}}
@media (max-width:720px){
  .world-event-home{grid-template-columns:34px minmax(0,1fr) auto;padding:10px 9px}.world-event-home em{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.weekly-facts{grid-template-columns:1fr}.weekly-facts section:nth-child(odd){border-right:0}.memorial-item{grid-template-columns:70px minmax(0,1fr)}
  .games-frequent{margin-left:-1px;margin-right:-1px;padding:12px 10px;border-radius:16px}.games-section-head{margin:0 3px 9px}.games-section-head small{display:none}.frequent-rail{display:flex;gap:8px;margin:0 -2px;padding:2px 2px 7px;scroll-snap-type:x proximity}.frequent-game{flex:0 0 112px;scroll-snap-align:start}.frequent-art{aspect-ratio:1.42}.frequent-copy b{font-size:12px}
  .hm-island{margin-left:-1px;margin-right:-1px;padding:10px 7px 12px;border-radius:18px}.hm-care{max-width:560px;margin-bottom:70px}
  .home-titlebar{display:grid!important;grid-template-columns:minmax(0,1fr) 36px minmax(126px,auto) 36px;gap:5px!important}.home-titlebar h2{font-size:15px}.home-titlebar .home-date-step{display:grid;place-items:center;width:36px;height:36px;padding:0!important;border-radius:10px!important}.home-titlebar input{width:100%;height:36px;padding:4px!important;min-width:0}
  .home-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.home-stat{padding:7px 3px}.home-stat span{font-size:9px}.home-stat b{font-size:14px}
  .frequent-view>.fm-tabs{top:51px;overflow-x:auto;justify-content:flex-start}.frequent-view>.fm-tabs .fm-tab{flex:0 0 auto;min-width:94px;padding-left:9px;padding-right:9px}
  #m05 .m05-tabs{overflow-x:auto;overflow-y:hidden;justify-content:flex-start;scrollbar-width:none;-webkit-overflow-scrolling:touch}#m05 .m05-tabs::-webkit-scrollbar{display:none}#m05 .m05tabbtn{flex:0 0 auto!important;min-width:82px;padding-left:7px!important;padding-right:7px!important;font-size:10px!important;white-space:nowrap}
  .dn-head-main{display:grid;grid-template-columns:28px minmax(0,1fr) auto}.dn-head-brand{grid-column:2/4}.dn-head-spacer{display:none}.dn-head-actions{grid-column:1/3;grid-row:2;margin-top:4px}.dn-head-rank{grid-column:3;grid-row:2;margin-top:4px}
  .wm-gate-copy{left:20px;right:20px;bottom:calc(22px + env(safe-area-inset-bottom,0px))}.wm-gate-copy h1{font-size:31px}.wm-gate-copy p{font-size:12px}.wm-gate-scene{object-position:center center}.wm-gate-brand span{display:none}
}
@media (max-width:370px){
  #m05 .m05-portrait-head{align-items:stretch;flex-direction:column}#m05 .m05-portrait-head .m05-portrait-summary{align-items:center;flex-direction:row;justify-content:flex-start}#m05 .m05-portrait-grid{gap:7px}#m05 .m05-portrait-copy{padding-left:6px;padding-right:6px}#m05 .m05-portrait-claim{font-size:10px}
  .home-titlebar{grid-template-columns:minmax(0,1fr) 34px 118px 34px}.home-titlebar h2{font-size:13px}.home-titlebar input{font-size:11px!important}.home-stat-grid{grid-template-columns:repeat(2,1fr)}
}

/* P4-B 四店统一经营台 */
.store-ops-brief{margin:4px 0 12px}.store-ops-loading,.store-ops-error{padding:15px;border:1px solid #e7e1d6;border-radius:15px;background:#fffaf2;color:var(--muted);text-align:center;font-size:12px}
.store-ops-card{overflow:hidden;border:1px solid rgba(118,92,54,.16);border-radius:18px;background:linear-gradient(145deg,#fffdf8,#f8f3e9);box-shadow:0 10px 28px rgba(80,60,36,.09)}
.store-ops-card>header{display:grid;grid-template-columns:42px minmax(0,1fr) minmax(160px,auto);align-items:center;gap:9px;padding:13px 14px;border-bottom:1px solid rgba(118,92,54,.1);background:rgba(255,255,255,.55)}
.store-ops-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:14px;background:#fff;box-shadow:0 4px 12px rgba(80,60,36,.1);font-size:23px;animation:storeOpsFloat 3.6s ease-in-out infinite}
.store-ops-card header span:nth-child(2){display:flex;min-width:0;flex-direction:column}.store-ops-card header small{color:#a18459;font-size:9px;font-weight:800;letter-spacing:.5px}.store-ops-card header b{color:#493e32;font-size:15px}.store-ops-card header em{max-width:250px;color:#8f8172;font-size:9px;font-style:normal;line-height:1.45;text-align:right}
.store-ops-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(118,92,54,.1)}.store-ops-metrics>div{display:flex;min-width:0;flex-direction:column;padding:11px 12px;background:#fffdf9}.store-ops-metrics small{color:#9d8a74;font-size:9px}.store-ops-metrics b{margin:2px 0;color:#4d4032;font-size:16px}.store-ops-metrics span{overflow:hidden;color:#8c8175;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.store-ops-decision{padding:12px 14px}.store-ops-decision-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.store-ops-decision-head>span{display:flex;min-width:0;flex-direction:column}.store-ops-decision-head small{color:#9b866f;font-size:9px}.store-ops-decision-head b{color:#453a31;font-size:13px}.store-ops-decision-head i{padding:4px 7px;border-radius:999px;background:#e8f4e9;color:#4d7e57;font-size:9px;font-style:normal;white-space:nowrap}.store-ops-decision-head i.pending{background:#fff0d2;color:#a66d20;animation:storeOpsPulse 1.7s ease-in-out infinite}
.store-ops-decision select{width:100%;margin-top:9px;padding:10px 32px 10px 10px;border:1px solid #ded4c5;border-radius:11px;background:#fff;color:#453d36;font-size:12px;font-weight:700}.store-ops-impact{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px}.store-ops-impact span{padding:7px;border-radius:9px;background:rgba(255,255,255,.7);color:#786d61;font-size:9px;line-height:1.4}
.store-ops-actions{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:10px}.store-ops-actions small{max-width:64%;color:#8e8174;font-size:9px;line-height:1.4}.store-ops-actions .btn{flex:0 0 auto;padding:8px 11px;font-size:10px}.store-ops-actions .btn:disabled{filter:grayscale(.5);opacity:.55}
.store-ops-ledger{border-top:1px solid rgba(118,92,54,.1);background:rgba(255,255,255,.48)}.store-ops-ledger summary{padding:10px 14px;color:#6a5c4d;font-size:11px;font-weight:800;cursor:pointer}.store-ops-ledger summary span{float:right;color:#a08e79;font-size:9px}.store-ops-tx{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 14px;border-top:1px dashed rgba(118,92,54,.1)}.store-ops-avatar{display:grid;place-items:center;width:27px;height:27px;overflow:hidden;border-radius:50%;background:#eee4d4;color:#745d40;font-size:10px;font-weight:900}.store-ops-avatar img{width:100%;height:100%;object-fit:cover;object-position:center top}.store-ops-tx>span:nth-child(2){display:flex;min-width:0;flex-direction:column}.store-ops-tx b{font-size:10px;color:#51483f}.store-ops-tx small{overflow:hidden;color:#95877a;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.store-ops-tx strong{color:#9b6e2d;font-size:10px}.store-ops-empty{padding:12px;color:#978a7d;text-align:center;font-size:10px}
@keyframes storeOpsFloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3px) rotate(2deg)}}@keyframes storeOpsPulse{0%,100%{opacity:.72}50%{opacity:1}}
@media(max-width:620px){.store-ops-card>header{grid-template-columns:38px minmax(0,1fr)}.store-ops-card>header em{display:none}.store-ops-icon{width:36px;height:36px}.store-ops-metrics{grid-template-columns:1fr 1fr}.store-ops-metrics>div:last-child{grid-column:1/-1}.store-ops-impact{grid-template-columns:1fr}.store-ops-actions{align-items:stretch;flex-direction:column}.store-ops-actions small{max-width:none}.store-ops-actions .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.store-ops-icon,.store-ops-decision-head i.pending{animation:none!important}}
