*{box-sizing:border-box} html{overflow-x:hidden} :root{--paper:#f8f5ee;--ink:#343634;--muted:#8d918c;--line:#e8e4dc;--green:#5d8f72;--deep:#273f35;--gold:#be8750;--shadow:0 14px 36px rgba(67,68,54,.1);--font-base:"PingFang SC","Noto Sans SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:"SF Mono",Menlo,Consolas,"Noto Sans Mono CJK SC",monospace} html,body{margin:0;min-width:320px;background:#eeeae2;color:var(--ink);font-family:var(--font-base);overflow-x:hidden}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{width:100%;max-width:520px;min-height:100vh;margin:0 auto;background:linear-gradient(#f6f2eb 0,#fbfaf7 45%,#f5f1e9 100%);position:relative;padding-bottom:78px;box-shadow:0 0 40px rgba(36,45,37,.05)}.topbar{height:88px;padding:27px 17px 10px;display:flex;align-items:center;gap:12px;flex-shrink:0}.avatar{height:47px;width:47px;border-radius:50%;background:#dce4dd;display:grid;place-items:center;position:relative;border:1px solid #c8d7cb;padding:0;overflow:hidden;flex-shrink:0;min-width:47px}.avatar:before{content:"";position:absolute;width:20px;height:22px;border-radius:50% 50% 45% 45%;background:#222d29;top:8px}.avatar span{position:relative;margin-top:11px;color:#ead8bb;font-size:13px;z-index:1}.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}.avatar.has-image:before,.avatar.has-image span{display:none}.player-brief{display:flex;flex-direction:column;gap:2px;min-width:0}.player-brief b{font-size:13px;color:#3c463e;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-brief small{display:flex;align-items:center;gap:8px;font-size:10px;color:#7c847c}.player-brief small .res-text{font-size:10px}.player-brief small .res-text b{font-size:10px}.res-text{white-space:nowrap}.res-text b{color:#42513f;font-weight:700}.resource-pill{display:none}.resource i{display:block;width:11px;height:14px;transform:rotate(30deg);border-radius:8px 8px 8px 2px}.resource.crystal i{background:#4d9bc1}.resource.immortal i{width:12px;height:12px;border-radius:50%;background:#71a75c}.resource b{font-weight:600}.ad-shop{margin-left:auto;white-space:nowrap;padding:8px 0;font-size:11px;color:#72746f}.ad-shop em{font-size:20px;font-style:normal;vertical-align:-2px}.shop-icon{font-size:14px;margin-right:3px}.quick-nav{display:flex;justify-content:space-around;align-items:start;padding:5px 18px 6px;border-top: 1px solid rgba(223, 220, 213, .65);border-bottom:1px solid rgba(223,220,213,.65)}.quick-nav button{min-width:52px;position:relative;color:#646864}.quick-nav span{display:block;font-size:23px;line-height:27px;font-family:var(--font-base)}.quick-nav span[hidden]{display:none}.quick-nav small{font-size:11px;white-space:nowrap}.quick-nav .dot:after{content:"";position:absolute;top:1px;right:9px;width:5px;height:5px;border-radius:50%;background:#db7559}.quick-nav .dot:before{content:""}
/* 顶部 + 底部导航图标：用 mask-image 把 SVG 当遮罩，单色背景由 CSS 控制 (#646864) */
.quick-nav .nav-icon,.bottom-nav .nav-icon{display:block;width:30px;height:30px;margin:0 auto 1px;background-color:#646864;-webkit-mask:var(--mask) no-repeat center / contain;mask:var(--mask) no-repeat center / contain;-webkit-user-drag:none;user-select:none}.hero-card{position:relative;padding:19px 17px 0}
/* 装备栏：给一个 relative + 固定高度的容器，让 10 个 position:absolute 的 .gear-slot 有定位锚点，
   同时把 hero-card 撑到 335px，避免下面的 forge-section 上移压住角色/装备 */
.equipment-grid{position:relative;width:100%;height:335px;padding:0 6px;flex-shrink:0}
/* 器灵/法相：嵌到 character-panel 左右两侧，跟装备同款 55×55 圆角方框，顶部跟装备栏对齐 */
.quick-slot{position:absolute;top:6px;width:55px;height:55px;border-radius:10px;border:1px solid #e3e3de;background:#fbfaf6;display:grid;grid-template-rows:1fr auto;place-items:center;gap:0;padding:4px 2px;cursor:pointer;pointer-events:auto;flex-shrink:0;transition:.2s;z-index:3}
.quick-slot:active{transform:scale(.95)}
.quick-slot-icon{font-family:var(--font-base);font-size:18px;line-height:1;font-weight:700;color:#7e4ba8}
.quick-slot-name{font-size:9px;color:#7c847c;letter-spacing:.5px;margin-top:2px}
.quick-slot-spirit{left:22px;border-color:#d6c8e0}
.quick-slot-spirit .quick-slot-icon{color:#7e4ba8}
.quick-slot-phase{right:22px;border-color:#e0d4b8}
.quick-slot-phase .quick-slot-icon{color:#b58a2c}
.character-panel .power-summary{padding:0 76px;line-height:1.15}
/* 属性折叠：参考竞技场奖励下拉，一级属性下面 ▼ 按钮展开二级 + 三级属性 */
.stat-expand-wrap{position:relative;margin-top:4px;z-index:5}
.stat-expand-toggle{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:2px 0;border:0;background:none;font-size:10px;color:#8a908a;cursor:pointer;letter-spacing:1px;pointer-events:auto}
.stat-expand-toggle:hover{color:#3f6d4d}
.stat-expand-arrow{display:inline-block;font-size:9px;line-height:1;transition:transform .15s;color:#a4aaa4}
.stat-expand-wrap.open .stat-expand-arrow{transform:rotate(180deg);color:#3f6d4d}
.stat-expand-dropdown{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:6;margin:0;padding:9px 12px;background:#fff;border:1px solid #dfe4dc;border-radius:12px;box-shadow:0 8px 20px rgba(50,60,50,.15);display:flex;flex-direction:column;gap:5px;pointer-events:auto}
.stat-expand-dropdown .stat-row{margin-top:0;font-size:10px}
.stat-expand-dropdown .stat-row b{font-weight:600}
.stat-expand-dropdown[hidden]{display:none}
/* 底部 bar：现在只剩 三级属性 一个按钮，居中显示 */
.hero-quick-section{display:flex;justify-content:center;gap:10px;padding:6px 16px 16px;margin-top:-2px}
.hero-quick-btn{font-size:11px;color:#5b655b;padding:6px 14px;border-radius:14px;background:#fbfaf6;border:1px solid #d6dcd2;display:inline-flex;align-items:center;gap:4px;font-weight:600;letter-spacing:.5px;box-shadow:0 1px 3px rgba(50,55,45,.05);cursor:pointer;min-width:64px;justify-content:center}
.hero-quick-btn:active{transform:scale(.96)}
.hero-quick-spirit{color:#7e4ba8;border-color:#d6c8e0}
.hero-quick-phase{color:#b58a2c;border-color:#e0d4b8}
.hero-quick-attr{color:#2d6a96;border-color:#bfd3df}
/* 器灵 modal：4 格属性槽 */
.spirit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0 6px}
/* 器灵 4 个 slot：跟宝石框一样的大方块 */
.spirit-stat-cell{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 4px;border-radius:12px;border:1.5px dashed transparent}
.spirit-stat-cell.quality-white{border-color:#d5d7d2;background:rgba(180,180,170,.04)}
.spirit-stat-cell.quality-green{border-color:#3a7c4a;background:rgba(58,124,74,.06)}
.spirit-stat-cell.quality-blue{border-color:#4d8ac1;background:rgba(77,138,193,.07)}
.spirit-stat-cell.quality-purple{border-color:#9560c4;background:rgba(149,96,196,.09)}
.spirit-stat-cell.quality-orange{border-color:#d77f3a;background:rgba(215,127,58,.08)}
.spirit-stat-cell.quality-red{border-color:#d56f65;background:rgba(213,111,101,.09)}
.spirit-stat-cell.quality-gold{border-color:#d9b64c;background:rgba(217,182,76,.12)}
.spirit-stat-cell.quality-dark{border-color:#a8862c;background:rgba(168,134,44,.10)}
.spirit-stat-cell.quality-rainbow{border-color:#d167d1;background:linear-gradient(135deg,#ffe9f7 0%,#e9f0ff 34%,#e4fff6 68%,#fff6df 100%)}
.spirit-stat-cell.quality-dark .spirit-stat-box.is-filled{background:linear-gradient(180deg,#fdf7e7,#f3e6c4);border-color:#c39a3f;color:#a8862c}
.spirit-stat-cell.quality-rainbow .spirit-stat-box.is-filled{background:linear-gradient(135deg,#fff3fb 0%,#f0f5ff 40%,#eafff8 70%,#fff9e6 100%);border-color:#d167d1;color:#8a2a7c}
.spirit-stat-cell.quality-dark .spirit-stat-label{color:#a8862c}
.spirit-stat-cell.quality-rainbow .spirit-stat-label{color:#8a2a7c}
.spirit-stat-cell.quality-dark .spirit-stat-quality{color:#a8862c}
.spirit-stat-cell.quality-rainbow .spirit-stat-quality{color:#8a2a7c}
.spirit-stat-box{width:90%;aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;border:1.5px solid #d8dbd4;background:#eeeae2;color:#b3b6b1;cursor:pointer;transition:.15s;position:relative}
.spirit-stat-box.is-empty:hover{background:#e3e0d6;border-color:#c8ccc8}
/* 已锁定框：按品质变色 */
.spirit-stat-cell.quality-white .spirit-stat-box.is-filled{background:linear-gradient(180deg,#fafaf7,#f3f2ed);border-color:#c5c8c0;color:#7a7c75}
.spirit-stat-cell.quality-green .spirit-stat-box.is-filled{background:linear-gradient(180deg,#f3faf3,#e7f3e6);border-color:#7bb088;color:#3a7c4a}
.spirit-stat-cell.quality-blue .spirit-stat-box.is-filled{background:linear-gradient(180deg,#f3f8fc,#e8f1f7);border-color:#85b1d4;color:#4d8ac1}
.spirit-stat-cell.quality-purple .spirit-stat-box.is-filled{background:linear-gradient(180deg,#faf5fc,#f1eaf7);border-color:#bf8fd9;color:#9560c4}
.spirit-stat-cell.quality-orange .spirit-stat-box.is-filled{background:linear-gradient(180deg,#fef6ec,#fce6cc);border-color:#e0ae6d;color:#d77f3a}
.spirit-stat-cell.quality-red .spirit-stat-box.is-filled{background:linear-gradient(180deg,#fef2ef,#fbdcd6);border-color:#e08a80;color:#d56f65}
.spirit-stat-cell.quality-gold .spirit-stat-box.is-filled{background:linear-gradient(180deg,#fffaeb,#fff0b8);border-color:#d9b64c;color:#b88f2a}
.spirit-stat-box.is-filled{cursor:pointer;opacity:.95}
.spirit-stat-box:active{transform:scale(.96)}
.spirit-stat-plus{font-size:30px;line-height:1;color:#c8ccc8;font-weight:300}
.spirit-stat-hint{font-size:10px;color:#8b948c;margin-top:2px}
/* 属性名（攻击/暴击/...）按品质变色 */
.spirit-stat-cell.quality-white .spirit-stat-label{color:#7a7c75}
.spirit-stat-cell.quality-green .spirit-stat-label{color:#3a7c4a}
.spirit-stat-cell.quality-blue .spirit-stat-label{color:#4d8ac1}
.spirit-stat-cell.quality-purple .spirit-stat-label{color:#9560c4}
.spirit-stat-cell.quality-orange .spirit-stat-label{color:#d77f3a}
.spirit-stat-cell.quality-red .spirit-stat-label{color:#d56f65}
.spirit-stat-cell.quality-gold .spirit-stat-label{color:#b88f2a}
.spirit-stat-label{font-size:13px;font-weight:700;letter-spacing:1px}
.spirit-stat-lock{font-size:9px;color:#a4a79f;margin-top:2px;letter-spacing:.5px}
/* 品质文字（紫色·+18%）按品质变色 */
.spirit-stat-cell.quality-white .spirit-stat-quality{color:#7a7c75}
.spirit-stat-cell.quality-green .spirit-stat-quality{color:#3a7c4a}
.spirit-stat-cell.quality-blue .spirit-stat-quality{color:#4d8ac1}
.spirit-stat-cell.quality-purple .spirit-stat-quality{color:#9560c4}
.spirit-stat-cell.quality-orange .spirit-stat-quality{color:#d77f3a}
.spirit-stat-cell.quality-red .spirit-stat-quality{color:#d56f65}
.spirit-stat-cell.quality-gold .spirit-stat-quality{color:#b88f2a}
.spirit-stat-quality{font-size:9px;font-weight:700;text-align:center;letter-spacing:.5px}
.spirit-stat-progress{width:100%;height:5px;background:rgba(0,0,0,.06);border-radius:3px;overflow:hidden}
.spirit-stat-progress span{display:block;height:100%;background:linear-gradient(90deg,#7e9d6e,#3e684f)}
.spirit-stat-prog-text{font-size:9px;color:#8b948c;text-align:center}
.spirit-stat-actions{margin-top:2px}
.spirit-stat-upgrade{padding:4px 8px;font-size:10px;border-radius:9px;border:1px solid #d6dcd2;background:#fff;color:#3e684f;cursor:pointer}
.spirit-stat-upgrade:active{transform:scale(.96)}
.spirit-stat-done{font-size:9px;color:#9aa6a0}
.spirit-slot{border:1px solid #d9decd;border-radius:12px;padding:10px 6px;text-align:center;background:#fbfaf6;position:relative}
.spirit-slot.quality-white{border-color:#d5d7d2;background:#f6f7f4}
.spirit-slot.quality-green{border-color:#b8d2bd;background:#eff6ee}
.spirit-slot.quality-blue{border-color:#b8d3e0;background:#eff5f8}
.spirit-slot.quality-purple{border-color:#cdb9dc;background:#f5f0f7}
.spirit-slot.quality-orange{border-color:#e0ae6d;background:#fff5e8}
.spirit-slot.quality-red{border-color:#d87c71;background:#fff0ee}
.spirit-slot.quality-gold{border-color:#d9b64c;background:#fff9df}
.spirit-slot-name{font-size:11px;font-weight:700;color:#3e684f;margin-bottom:4px}
.spirit-slot-progress{height:6px;background:rgba(0,0,0,.06);border-radius:3px;overflow:hidden;margin:6px 0}
.spirit-slot-progress span{display:block;height:100%;background:linear-gradient(90deg,#7e9d6e,#3e684f)}
.spirit-slot-actions{margin-top:6px;display:flex;gap:4px;justify-content:center}
.spirit-slot-actions button{padding:5px 8px;font-size:11px;border-radius:8px;border:1px solid #e0e5dd;background:#fff;color:#3e684f}
.spirit-slot-stat-select{width:100%;padding:5px;font-size:12px;border:1px solid #d6dcd2;border-radius:8px;background:#fff;margin:4px 0}
.spirit-slot-stat-pick{width:100%;padding:9px 6px;font-size:12px;border:1px solid #d6c8e0;border-radius:10px;background:linear-gradient(180deg,#fbf6fb,#f5edf7);color:#7e4ba8;font-weight:700;cursor:pointer;margin:4px 0;transition:.15s}
.spirit-slot-stat-pick:hover{background:linear-gradient(180deg,#f4eaf8,#ecdcf3);transform:translateY(-1px)}
.spirit-slot-stat-pick.is-locked{background:#f4f7f3;color:#5b655b;border-color:#cfd6cb;opacity:.75;cursor:not-allowed}
.spirit-slot-stat-pick.is-locked:hover{transform:none}
.spirit-repair-row-v2{align-items:stretch}
.spirit-repair-input{flex:0 0 auto;display:flex;flex-direction:column;gap:4px;justify-content:center}
.spirit-repair-input label{font-size:10px;color:#8b948c}
.spirit-repair-input input{width:86px;height:40px;padding:0 10px;border:1px solid #dfe5de;border-radius:10px;background:#fbfcf9;color:#354238;font-size:14px;font-weight:700;outline:none;box-sizing:border-box}
.spirit-repair-input input:focus{border-color:#87aa8d}
.spirit-repair-row-v2 button:disabled{opacity:.4;cursor:not-allowed}
.spirit-repair-row{display:flex;gap:8px;justify-content:center;margin-top:14px}
.spirit-repair-row button{flex:1;padding:8px;border-radius:14px;border:1px solid #d6d9d0;background:#fbfaf6;color:#3e684f;font-size:13px;font-weight:700}
.spirit-repair-row button.primary{background:linear-gradient(135deg,#476f53,#315b43);color:#fff;border:0}
.spirit-repair-row small{display:block;font-size:10px;color:#8b948c;margin-top:2px;font-weight:400}
.spirit-meta-row{display:flex;justify-content:space-between;padding:10px 14px;background:#fbfaf6;border:1px solid #e7e2d9;border-radius:11px;margin:10px 0;font-size:12px;color:#5b655b}
/* 法相 modal：4 个 tab + 进度 + 进阶 */
.phase-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin:8px 0 16px}.phase-tabs button{position:relative;padding:7px 2px 6px;border-radius:10px;background:#f1f4ef;color:#8b928b;font-size:11px;font-weight:700;border:1px solid #e0e5dd}
.phase-tabs button{padding:9px 4px;border-radius:11px;background:#f1f4ef;color:#8b928b;font-size:12px;font-weight:700;border:1px solid #e0e5dd}
.phase-tabs button.active{background:linear-gradient(135deg,#476f53,#315b43);color:#fff;border:0}.phase-tabs button small{font-size:9px;font-weight:400;opacity:.85}
.phase-progress-row{padding:14px;background:#fbfaf6;border:1px solid #e7e2d9;border-radius:14px;margin:10px 0}
.phase-progress-row b{font-size:13px;color:#3e684f}
.phase-progress-bar{height:12px;background:#eeeae2;border-radius:6px;overflow:hidden;margin:8px 0}
.phase-progress-bar span{display:block;height:100%;background:linear-gradient(90deg,#cbb270,#b58a2c);transition:width .2s}
.phase-level-row{padding:10px 14px;background:#fbfaf6;border:1px solid #e7e2d9;border-radius:11px;margin:10px 0;display:flex;justify-content:space-between;align-items:center;font-size:12px}
.phase-level-track{display:grid;grid-template-columns:repeat(20,1fr);gap:2px;margin-top:6px}
.phase-level-track span{height:8px;border-radius:2px;background:#eeeae2}
.phase-level-track span.on{background:linear-gradient(180deg,#d9b64c,#b58a2c)}
.phase-bonus-pill{background:linear-gradient(135deg,#fbf5e3,#f3e9ce);color:#b58a2c;font-weight:700;padding:4px 10px;border-radius:10px;font-size:12px;border:1px solid #e0d4b8}
.phase-refine-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:10px 12px;border:1px solid #e3d9bf;border-radius:12px;background:linear-gradient(135deg,#fdf6e0,#f6ead0)}
.phase-refine-row .phase-level-track span{width:5px;height:10px;border-radius:2px;background:#eadfc2}
.phase-refine-row .phase-level-track span.on{background:#c9a13b}
.phase-bonus-pill.is-refine{background:#fdf1cd;color:#a07818;border-color:#e0c98a}
.phase-equip-row{margin-top:8px}
.phase-equip-row .phase-equip-btn{width:100%;padding:10px;border-radius:12px;border:1px solid #d6d9d0;background:#fbfaf6;color:#3e684f;font-size:12px;font-weight:700;cursor:pointer}
.phase-equip-row .phase-equip-btn.is-on{background:#eef3ec;color:#7c8a7d;border-color:#dbe3da;cursor:default}
.phase-equip-badge{position:absolute;top:-4px;right:-4px;padding:1px 4px;border-radius:6px;background:#e2ece3;color:#2f5c3c;font-size:8px;font-style:normal;font-weight:700;line-height:1.4;letter-spacing:0}
.phase-tabs button:not(.active) .phase-equip-badge{background:#e2ece3}
.phase-action-row{display:flex;margin-top:8px;gap:8px}
.phase-action-row button{flex:1;padding:11px;border-radius:12px;border:1px solid #d6d9d0;background:#fbfaf6;color:#3e684f;font-size:12px;font-weight:700}
.phase-action-row button.primary{background:linear-gradient(135deg,#476f53,#315b43);color:#fff;border:0}
/* 三级属性（忽视类）只读面板 */
.attr-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:14px 0}
.attr-card{border:1px solid #d9decd;border-radius:12px;padding:12px;background:#fbfaf6}
.attr-card h4{margin:0 0 4px;font-size:14px;color:#2d6a96}
.attr-card small{color:#8b948c;font-size:11px;display:block;margin-bottom:6px;line-height:1.5}
.attr-card p{font-size:11px;color:#5b655b;margin:6px 0 0}
.attr-source{font-size:10px;color:#b58a2c;margin-top:6px;font-weight:600}.gear-slot{width:55px;height:55px;border-radius:10px;position:absolute;border:1px solid #e3e3de;background:#fafaf7;display:grid;place-items:center;align-content:center;gap:0;transition:.2s;z-index:2}.gear-slot:active{transform:scale(.95)}.gear-slot .gear-icon{font-family:var(--font-base);font-size:25px;line-height:25px;color:#9ca19b}
/* SVG 装备图标：继承品质色（path fill=currentColor），尺寸由容器控制 */
.gear-slot .gear-icon svg{display:block;width:38px;height:38px;margin:5px auto 0}
.compare-card .loot-icon svg{display:block;width:42px;height:42px;margin:0 auto 6px}
.compare-grid-compact .compare-card .loot-icon svg{width:26px;height:26px;margin:0 auto 4px}
.bag-item .bag-icon svg{display:block;width:32px;height:32px}
/* 装备图标按品质上色（空槽位 .is-empty 仍保持灰色） */
.gear-slot.quality-white:not(.is-empty) .gear-icon,.compare-card.quality-white .loot-icon,.bag-item.quality-white .bag-icon{color:#9c9c9a}
.gear-slot.quality-green:not(.is-empty) .gear-icon,.compare-card.quality-green .loot-icon,.bag-item.quality-green .bag-icon{color:#3a7c4a}
.gear-slot.quality-blue:not(.is-empty) .gear-icon,.compare-card.quality-blue .loot-icon,.bag-item.quality-blue .bag-icon{color:#4d8ac1}
.gear-slot.quality-purple:not(.is-empty) .gear-icon,.compare-card.quality-purple .loot-icon,.bag-item.quality-purple .bag-icon{color:#9560c4}
.gear-slot.quality-orange:not(.is-empty) .gear-icon,.compare-card.quality-orange .loot-icon,.bag-item.quality-orange .bag-icon{color:#d77f3a}
.gear-slot.quality-red:not(.is-empty) .gear-icon,.compare-card.quality-red .loot-icon,.bag-item.quality-red .bag-icon{color:#d56f65}
.gear-slot.quality-gold:not(.is-empty) .gear-icon,.compare-card.quality-gold .loot-icon,.bag-item.quality-gold .bag-icon{color:#d9b64c}
.gear-slot.quality-dark:not(.is-empty) .gear-icon,.compare-card.quality-dark .loot-icon,.bag-item.quality-dark .bag-icon{color:#a8862c}
.gear-slot.quality-rainbow:not(.is-empty) .gear-icon,.compare-card.quality-rainbow .loot-icon,.bag-item.quality-rainbow .bag-icon{color:#b05aa8}
.gear-slot small{font-size:9px;color:#959b95}.gear-slot.quality-green{background:#e8f0e9;border-color:#c6dac8}.gear-slot.quality-blue{background:#e7eff3;border-color:#bfd3df}.gear-slot.quality-purple{background:#eee9f3;border-color:#d4c4e0}.gear-slot.quality-orange{border-color:#dba064;background:#fbf0df}.gear-slot.quality-red{border-color:#d56f65;background:#f9e9e6}.gear-slot.quality-gold{border-color:#ddb753;background:#fbf4d9}.gear-slot.quality-dark{border-color:#a8862c;background:linear-gradient(135deg,#fdf7e7,#f3e6c4)}.gear-slot.quality-rainbow{border-color:#d167d1;background:linear-gradient(135deg,#ffe9f7 0%,#e9f0ff 34%,#e4fff6 68%,#fff6df 100%)}.gear-slot.is-empty{background:#e6e6e6;border-color:#dcdcd8}.gear-slot.is-empty .gear-icon{color:#b3b6b1}.slot-shoulder{left:0;}.slot-weapon{right:0;}.slot-helmet{left:0;top:70px}.slot-amulet{right:0;top:70px}.slot-clothes{left:0;top:140px}.slot-pants{right:0;top:140px}.slot-belt{left:0;top:210px}.slot-ring{right:0;top:210px}.slot-talisman{left:0;top:280px}.slot-shoes{right:0;top:280px}.character-panel{position:absolute;inset:16px 72px 0;text-align:center;pointer-events:none}.power-summary{font-size:11px;color:#9ba09a;display:flex;flex-direction:column;gap:1px}.power-summary strong{font-size:16px;color:#c27e39}.character-art{height:170px;position:relative;}.aura{position:absolute;left:50%;top:21px;transform:translateX(-50%);width:130px;height:110px;border:1px solid #e4e5df;border-radius:50%;border-top-color:transparent}.doll-phase{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:150px;max-height:176px;height:auto;z-index:0;pointer-events:none;filter:drop-shadow(0 0 12px rgba(150,110,50,.35));opacity:.92}
.doll-phase[hidden]{display:none}
.character{position:absolute;left:50%;top:30px;transform:translateX(-50%);width:130px;height:140px;z-index:1}
/* 人偶分层（武器 → 主体 → 衣服 → 头盔，z-index 依次升高） */
.doll{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;display:block}
/* HTML hidden 属性比 .doll{display:block} 优先级低，需要显式恢复 */
.doll[hidden]{display:none}
/* 法宝法阵：放到外层 .character-art 里（高度 150px），压扁到人物脚下，横向宽度匹配父容器 */
.magic-rings{position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);width:170px;height:170px;pointer-events:none;z-index:3}
.magic-ring{position:absolute;border-radius:50%;border:1.5px dashed rgba(81,168,158,.7);box-sizing:border-box;pointer-events:none;display:block;box-shadow:inset 0 0 8px rgba(81,168,158,.18)}
.magic-ring-outer{inset:0;width:100%;height:100%;animation:magicSpin 22s linear infinite}
.magic-ring-inner{inset:13%;width:74%;height:74%;border-style:dotted;animation:magicSpinReverse 30s linear infinite}
@keyframes magicSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes magicSpinReverse{from{transform:rotate(0deg)}to{transform:rotate(-360deg)}}
.magic-rings[data-quality="white"] .magic-ring{border-color:rgba(170,165,155,.55);box-shadow:inset 0 0 8px rgba(170,165,155,.18)}
.magic-rings[data-quality="green"] .magic-ring{border-color:rgba(58,124,74,.7);box-shadow:inset 0 0 8px rgba(58,124,74,.22)}
.magic-rings[data-quality="blue"] .magic-ring{border-color:rgba(77,138,193,.75);box-shadow:inset 0 0 8px rgba(77,138,193,.25)}
.magic-rings[data-quality="purple"] .magic-ring{border-color:rgba(149,96,196,.75);box-shadow:inset 0 0 8px rgba(149,96,196,.25)}
.magic-rings[data-quality="orange"] .magic-ring{border-color:rgba(223,161,95,.78);box-shadow:inset 0 0 8px rgba(223,161,95,.28)}
.magic-rings[data-quality="red"] .magic-ring{border-color:rgba(213,111,101,.78);box-shadow:inset 0 0 8px rgba(213,111,101,.28)}
.magic-rings[data-quality="gold"] .magic-ring{border-color:rgba(217,182,76,.85);box-shadow:inset 0 0 8px rgba(217,182,76,.32)}
.magic-rings[hidden]{display:none}
.doll-weapon{transform:rotate(80deg);transform-origin:50% 50%;z-index:1}
.doll-base{z-index:2}
.doll-clothes{z-index:3}
.doll-helmet{z-index:4}.realm{font-size:20px;color:#252a26;font-weight:700}.realm b{font-weight:700}.exp-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;pointer-events:auto}.exp-wrap{flex:1;width:100%;max-width:140px;margin:0}.exp-bar{height:23px;background:#253f33;border-radius:14px;position:relative;overflow:hidden}.exp-bar span{display:block;height:100%;background:#8ab166;border-radius:14px}.exp-bar b{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:11px}.stat-row{display:flex;justify-content:center;gap:10px;color:#9b9e98;font-size:10px;white-space:nowrap}.stat-row b{color:#59605a;font-weight:500;margin-left:2px}.secondary-stats{display:flex;justify-content:center;gap:10px;margin:9px auto 0;color:#888e88;font-size:10px;white-space:nowrap}.secondary-stats b{color:#5b655b;font-weight:600}.side-pill{position:absolute;top:350px;padding:5px 14px;border-radius:16px;background:#fff;box-shadow:0 2px 7px rgba(50,55,45,.05);font-size:12px}.side-pill.left{left:24px}.side-pill.right{right:24px}.exp-row .side-pill{position:static;flex:0 0 auto;padding:5px 8px;font-size:11px;pointer-events:auto}.side-pill:disabled{opacity:.45;cursor:not-allowed;color:#a8aea8}.forge-section{text-align:center;padding:2px 22px 20px;position:relative}.furnace-row{display:block;position:relative;width:120px;margin:0 auto}.furnace{width:120px;margin:0;display:flex;flex-direction:column;align-items:center;position:relative;background:transparent;box-shadow:none;pointer-events:auto;border-radius:14px}.furnace-icon{display:block;width:135px;height:87px;filter:drop-shadow(0 1px 1px rgba(48,64,53,.08))}.furnace b{display:block;color:#42513f;font-size:11px;margin-top:1px;font-weight:600;letter-spacing:.5px}.auto-forge-gear{position:absolute;right:2px;bottom:12px;width:30px;height:30px;border-radius:50%;background:#fff;color:#5e8068;display:grid;place-items:center;border:1px solid #dbe4dd;box-shadow:0 2px 6px rgba(60,72,57,.1);transition:.2s}.auto-forge-gear svg{width:16px;height:16px}.auto-forge-gear:active{transform:scale(.92)}.auto-forge-gear.is-running{background:#fff0ee;color:#c25a4c;border-color:#e5c9c0;animation:gear-spin 4s linear infinite}@keyframes gear-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.forge-button{margin-top:10px;min-width:160px;padding:10px 18px;border-radius:22px;background:#355c47;color:#fff;box-shadow:0 6px 13px rgba(48,83,62,.2);display:inline-flex;align-items:center;justify-content:center;gap:8px}.forge-button svg{flex:0 0 auto}.forge-button .forge-icon{width:22px;height:22px;display:block}.forge-button .forge-icon-stop{width:22px;height:22px;display:none}.forge-button.is-running .forge-icon{display:none}.forge-button.is-running .forge-icon-stop{display:block}.forge-button .forge-count-inline{font-size:11px;font-weight:500;opacity:.9;line-height:1;display:inline-flex;align-items:baseline;gap:2px}.forge-button.is-running{background:#c25a4c;box-shadow:0 6px 13px rgba(194,90,76,.2)}.forge-hint{font-size:10px;color:#a4a79f;margin-top:9px}.task-card{margin:0 17px 12px;padding:12px 14px;background:#fff;border:1px solid #eeeae2;border-radius:14px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 5px 15px rgba(60,62,52,.04)}.task-card div{display:grid;gap:3px}.task-label{font-size:10px;color:#9ca49c}.task-card b{font-size:13px}.task-card small{font-size:10px;color:#a0a49f}.task-card button{font-size:11px;color:#66826e;white-space:nowrap}.task-card em{font-style:normal;font-size:19px;vertical-align:-2px}.bottom-nav-wrap{position:fixed;bottom:0;left:50%;transform:translateX(-50%);z-index:10;width:100%;max-width:520px;height:72px;background:rgba(255,255,252,.97);border-top:1px solid #ebe8e1;display:flex;align-items:center}.bottom-nav{height:100%;min-width:0;flex:1;overflow:hidden}.bottom-nav-track{height:100%;display:flex;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;padding:7px 0 max(7px,env(safe-area-inset-bottom))}.bottom-nav-track::-webkit-scrollbar{display:none}.bottom-nav button{flex:0 0 16.66%;min-width:50px;color:#afb2ac}.bottom-nav button.active{color:#5e8d6d}.bottom-nav span{display:block;font-family:var(--font-base);font-size:22px;line-height:28px}.bottom-nav small{font-size:10px}.nav-arrow{display:none;flex:0 0 27px;height:42px;border-radius:15px;background:#edf1eb;color:#5e8068;font-size:25px;line-height:1}.bottom-nav-wrap.is-overflowing .nav-arrow{display:block}.nav-arrow:disabled{opacity:.3}.toast{position:fixed;z-index:30;left:50%;bottom:90px;transform:translate(-50%,15px);padding:10px 17px;border-radius:20px;background:rgba(38,48,42,.94);color:#fff;font-size:12px;opacity:0;pointer-events:none;transition:.25s;white-space:nowrap;max-width:calc(100vw - 36px);overflow:hidden;text-overflow:ellipsis}.toast.show{opacity:1;transform:translate(-50%,0)}.modal-backdrop{position:fixed;inset:0;z-index:20;background:rgba(34,40,35,.3);display:none;align-items:flex-end;justify-content:center}.modal-backdrop.show{display:flex}.modal{width:min(520px,100%);min-height:180px;padding:25px 22px 28px;border-radius:24px 24px 0 0;background:#fffdf9;position:relative;animation:rise .12s ease-out}.modal{max-height:90vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#cfd8d0 transparent}.modal::-webkit-scrollbar{width:5px}.modal::-webkit-scrollbar-track{background:transparent}.modal::-webkit-scrollbar-thumb{background:#cfd8d0;border-radius:3px}.modal::-webkit-scrollbar-thumb:hover{background:#b3c2b5}.modal-close{position:absolute;right:17px;top:11px;color:#9ca19a;font-size:25px}.modal h3{margin:5px 0 15px;font-size:18px}.modal p{margin:5px 0;color:#747b73;font-size:11px;line-height:1.7}.bag-sell-all{background:#a65050;color:#fff;border:0}
.bag-sell-all:disabled{opacity:.4;cursor:not-allowed}
.bag-tabs{display:flex;gap:8px;margin-bottom:12px}.bag-tabs button{flex:1;padding:8px 6px;border-radius:11px;background:#f1f4ef;color:#8b928b;font-size:12px}.bag-tabs button.active{background:#e2ece3;color:#3f6d4d;font-weight:700}.bag-scroll{height:38vh;max-height:320px;overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-width:thin;scrollbar-color:#cfd8d0 transparent}.bag-scroll::-webkit-scrollbar{width:4px}.bag-scroll::-webkit-scrollbar-track{background:transparent}.bag-scroll::-webkit-scrollbar-thumb{background:#cfd8d0;border-radius:3px}.bag-scroll::-webkit-scrollbar-thumb:hover{background:#b3c2b5}.bag-empty{display:flex;align-items:center;justify-content:center;height:100%;min-height:120px;margin:0;text-align:center;color:#a8aea8;font-size:12px}.bag-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #eeeae2}
/* 背包条目不带品质底色：暗金/彩色等全局品质背景在这里重置，只保留图标与文字颜色 */
.bag-item.quality-dark,.bag-item.quality-rainbow{background:transparent;border:0;border-bottom:1px solid #eeeae2;box-shadow:none}
.bag-icon{width:32px;font-size:22px;text-align:center;color:#6b8a71;flex:0 0 auto}.bag-meta{display:grid;gap:3px;flex:1;min-width:0}.bag-meta b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bag-meta small{color:#9a7a52;font-size:10px}.bag-actions{display:flex;flex-direction:column;gap:5px;flex:0 0 auto}.bag-actions button{padding:5px 11px;border-radius:12px;background:#edf2eb;color:#52745d;font-size:11px;white-space:nowrap}.auto-section{margin-top:12px;padding:10px 12px 12px;border:1px solid #e4e8e1;border-radius:12px;background:#fafcf8}
.auto-section:first-child{margin-top:0}
.auto-section-title{font-size:12px;font-weight:700;color:#3c463e;text-align:center;letter-spacing:1px;border-bottom:1px dashed #dde3da;padding-bottom:7px;margin-bottom:2px}
.auto-section-note{margin:8px 0 0;color:#9aa29a;font-size:10px;line-height:1.6}
.auto-check{display:flex;align-items:center;gap:7px;margin-top:10px;color:#747b73;font-size:11.5px;cursor:pointer}
.auto-check input{width:15px;height:15px;accent-color:#3e684f}
.auto-modal-note{margin:12px 0 0;color:#a4a79f;font-size:10px;text-align:center;line-height:1.6}
.auto-option{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;color:#747b73;font-size:13px}.auto-option input,.auto-option select{min-width:90px;padding:7px 9px;border:1px solid #e1e5df;border-radius:9px;background:#fbfcf9;color:#4f5d52}
/* 附加下拉（"属性提升"/"二级要求"）：两张 select 紧挨着，靠右对齐；显隐走 [hidden] 属性，跟 .doll/.magic-rings 一致 */
.auto-option-pair{display:inline-flex;align-items:center;gap:6px}.auto-option-pair select{min-width:78px;padding:6px 8px;font-size:12px}.auto-option-pair select[hidden]{display:none}.modal .modal-actions{display:flex;gap:10px;margin-top: 10px;}.modal .modal-actions button{flex:1;padding:10px;border-radius:20px;background:#edf1ea;color:#50715b;font-size:12px}.modal .modal-actions button.primary{background:#3e684f;color:#fff}.modal .modal-actions button.danger{background:#c0392b;color:#fff;border-color:transparent}.modal .modal-actions button.danger:active{background:#a8321e}.sect-skill-bonus{margin:14px 0 0;padding:12px 14px;border-radius:12px;background:linear-gradient(135deg,#f3ede0,#ece5d2);border:1px solid #d9d0b3;color:#5b4628;font-size:12px;text-align:center}.sect-skill-bonus .sect-skill-bonus-title{font-size:13px;font-weight:700;color:#5b4628}.sect-skill-bonus .sect-skill-bonus-label{margin:10px 0 6px;color:#8a7a55;font-size:10px;letter-spacing:1px}.sect-skill-bonus .sect-skill-bonus-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;justify-items:center}.sect-skill-bonus .sect-skill-bonus-chip{background:#fff7e3;border:1px solid #d9c690;border-radius:9px;padding:3px 9px;font-size:11px;color:#5b4628;width:100%;text-align:center;box-sizing:border-box;display:inline-block}.sect-skill-bonus .sect-skill-bonus-chip b{color:#3e684f;font-weight:700;margin:0 2px}.sect-skill-bonus-empty{background:#f7f8f4;border-color:#e4e9e1;color:#8c948c}.loot-card{border:1px solid #e7e2d9;border-radius:15px;padding:15px;text-align:center;background:#fbfaf6}.loot-card.quality-white{border-color:#d5d7d2;background:#f6f7f4}.loot-card.quality-green{border-color:#b8d2bd;background:#eff6ee}.loot-card.quality-blue{border-color:#b8d3e0;background:#eff5f8}.loot-card.quality-purple{border-color:#cdb9dc;background:#f5f0f7}.loot-card.quality-orange{border-color:#e0ae6d;background:#fff5e8}.loot-card.quality-red{border-color:#d87c71;background:#fff0ee}.loot-card.quality-gold{border-color:#d9b64c;background:#fff9df}.loot-card.quality-dark{border-color:#c8a23f;background:#fbf3dc}.loot-card.quality-rainbow{border-color:#d167d1;background:linear-gradient(135deg,#ffe9f7 0%,#e9f0ff 34%,#e4fff6 68%,#fff6df 100%)}.loot-icon{font-size:36px;color:#6b8a71;line-height:42px}.loot-card strong,.loot-card small{display:block}.loot-card small{margin-top:4px;color:#9a7a52;font-size:11px}.loot-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:13px;color:#6e756d;font-size:11px}.loot-stats b{color:#4d7658}.modal .modal-actions button.primary{background:#3e684f;color:#fff}@keyframes rise{from{transform:translateY(100%)}to{transform:translateY(0)}}@media(max-width:370px){.topbar{gap:8px;padding-left:12px;padding-right:12px}.resource-pill{min-width:140px;padding:0 11px;gap:10px}.stat-row{gap:7px;font-size:9.5px}.hero-card{padding-left:12px;padding-right:12px}.side-pill.left{left:16px}.side-pill.right{right:16px}}.auth-body{min-width:320px;min-height:100vh;background:radial-gradient(circle at 50% 0%,#f8fbf6 0,#ece9e1 56%,#dedbd2 100%);color:var(--ink)}.auth-page{width:min(100% - 32px,430px);min-height:100vh;margin:0 auto;padding:clamp(42px,10vh,92px) 0 40px;display:flex;flex-direction:column;align-items:center}.auth-mark{width:62px;height:62px;border:1px solid #d2ddd3;border-radius:22px;background:linear-gradient(145deg,#eff5ef,#d9e5db);display:grid;place-items:center;box-shadow:0 12px 28px rgba(54,76,59,.12);position:relative}.auth-mark:after{content:"";position:absolute;inset:7px;border:1px solid rgba(94,143,114,.26);border-radius:17px}.auth-mark span{position:relative;z-index:1;color:#476b51;font-size:25px;font-weight:700}.auth-kicker{margin:19px 0 8px;color:#89a08e;font-size:10px;letter-spacing:3px}.auth-page h1{margin:0;color:#2f4638;font-size:31px;letter-spacing:5px;font-weight:700}.auth-desc{margin:13px 0 26px;color:#88918a;font-size:13px}.auth-card{width:100%;padding:7px 22px 21px;border:1px solid rgba(222,226,217,.95);border-radius:22px;background:rgba(255,255,252,.9);box-shadow:0 18px 45px rgba(64,72,57,.12);backdrop-filter:blur(8px)}.auth-tabs{display:flex;gap:28px;border-bottom:1px solid #ecebe5;margin-bottom:21px}.auth-tabs button{position:relative;padding:12px 2px 13px;color:#a3a9a1;font-size:14px}.auth-tabs button.active{color:#3f6d4d;font-weight:700}.auth-tabs button.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;border-radius:2px;background:#5d8f72}.auth-card form{display:grid;gap:14px}.auth-card label{display:grid;gap:7px;color:#687269;font-size:12px}.auth-card label[hidden]{display:none}.auth-card input{width:100%;height:45px;padding:0 14px;border:1px solid #e0e5de;border-radius:12px;background:#fbfcf9;color:#354238;font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}.auth-card input::placeholder{color:#b4bab3}.auth-card input:focus{border-color:#87aa8d;box-shadow:0 0 0 3px rgba(93,143,114,.12)}.auth-card input:invalid:not(:placeholder-shown){border-color:#dca49a}.auth-submit{width:100%;height:46px;margin-top:5px;border-radius:14px;background:linear-gradient(135deg,#476f53,#315b43);color:#fff;font-size:15px;font-weight:700;box-shadow:0 8px 17px rgba(49,91,67,.2);transition:transform .2s,filter .2s}.auth-submit:not(:disabled):active{transform:translateY(1px)}.auth-submit:not(:disabled):hover{filter:brightness(1.05)}.auth-tip{margin:17px 0 0;color:#a1a79f;text-align:center;font-size:11px;line-height:1.6}.auth-body .toast{bottom:28px}.auth-body .toast.show{transform:translate(-50%,0)}@media(max-width:370px){.auth-page{width:calc(100% - 24px);padding-top:38px}.auth-card{padding-left:17px;padding-right:17px}.auth-page h1{font-size:28px;letter-spacing:3px}}.avatar{border:1px solid #c8d7cb;padding:0}.avatar-options{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}.avatar-options button{width:48px;height:48px;border-radius:50%;background:#e5eee6;color:#476b51;font-weight:700;font-size:18px;border:1px solid #c5d8c8}.avatar-options button.active{border-color:#3e684f;box-shadow:0 0 0 2px rgba(62,104,79,.25)}.upload-row{margin-top:8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.upload-button{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:12px;background:#edf2eb;color:#52745d;font-size:12px;cursor:pointer}.upload-row small{color:#a0a79f;font-size:10px}.chat-avatar.has-image{background:#fff;overflow:hidden}.chat-avatar img{width:100%;height:100%;object-fit:cover;display:block}.compare-grid{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);align-items:center;gap:5px}.compare-grid>div>label{display:block;margin-bottom:7px;text-align:center;color:#8c948c;font-size:11px}.compare-card{min-width:0;border:1px solid #e7e2d9;border-radius:12px;padding:10px 5px;text-align:center;background:#fbfaf6}.compare-card.quality-white{border-color:#d5d7d2;background:#f6f7f4}
.compare-card.quality-green{border-color:#b8d2bd;background:#eff6ee}
.compare-card.quality-blue{border-color:#b8d3e0;background:#eff5f8}
.compare-card.quality-purple{border-color:#cdb9dc;background:#f5f0f7}.compare-card.quality-orange{border-color:#e0ae6d;background:#fff5e8}.compare-card.quality-red{border-color:#d87c71;background:#fff0ee}.compare-card.quality-gold{border-color:#d9b64c;background:#fff9df}.compare-card.quality-dark{border-color:#c8a23f;background:#fbf3dc}.compare-card.quality-rainbow{border-color:#d167d1;background:linear-gradient(135deg,#ffe9f7 0%,#e9f0ff 34%,#e4fff6 68%,#fff6df 100%)}
/* 装备名称按品质上色（合成结果对比 / 背包列表共用一套色） */
.compare-card.quality-white strong,.bag-item.quality-white .bag-meta b{color:#7a7972}
.compare-card.quality-green strong,.bag-item.quality-green .bag-meta b{color:#2f7a4a}
.compare-card.quality-blue strong,.bag-item.quality-blue .bag-meta b{color:#2d6a96}
.compare-card.quality-purple strong,.bag-item.quality-purple .bag-meta b{color:#7e4ba8}
.compare-card.quality-orange strong,.bag-item.quality-orange .bag-meta b{color:#c27e39}
.compare-card.quality-red strong,.bag-item.quality-red .bag-meta b{color:#c44a3e}
.compare-card.quality-gold strong,.bag-item.quality-gold .bag-meta b{color:#b58a2c}
.compare-card.quality-dark strong,.bag-item.quality-dark .bag-meta b{color:#8a6a22}
.compare-card.quality-rainbow strong,.bag-item.quality-rainbow .bag-meta b{color:#8a2a7c}
.compare-card .loot-icon{font-size:28px;line-height:32px}.compare-card strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.compare-card small{display:block;color:#9a7a52;font-size:9px}.compare-card .loot-stats{gap:4px;font-size:9px}.loot-stats .stat-up{color:#3f8f5a;font-style:normal;margin-left:3px;font-weight:700}.loot-stats .stat-down{color:#d3564f;font-style:normal;margin-left:3px;font-weight:700}
.compare-card .power-up{color:#3f8f5a;font-style:normal;font-weight:800;font-size:11px;margin-left:6px}
.compare-card .power-down{color:#d3564f;font-style:normal;font-weight:800;font-size:11px;margin-left:6px}
.compare-card .power-same{color:#9aa6a0;font-style:normal;font-weight:600;font-size:11px;margin-left:6px}.compare-arrow{color:#8aa18d;font-size:18px;text-align:center}.compare-empty{min-height:102px;display:grid;place-items:center;border:1px dashed #dfe4dc;border-radius:12px;color:#adb4ad;font-size:10px}.compare-note,.modal-note{font-size:11px!important;color:#9da69d!important}.modal-note .need-now{color:#d3564f;font-size:10px}.modal-lack{margin:6px 0 0;padding:7px 10px;border-radius:9px;background:#fdf0ee;color:#c1544c;font-size:11px;line-height:1.6}.modal-ok{margin:6px 0 0;padding:7px 10px;border-radius:9px;background:#eff6ee;color:#4d7d59;font-size:11px}.furnace-sub{font-size:10px!important;color:#a4aaa2!important;margin:2px 0 6px!important}.rate-compare{display:grid;grid-template-columns:1fr 18px 1fr;align-items:start;gap:5px;margin-top:12px}.rate-compare.single{grid-template-columns:1fr}.rate-box{border:1px solid #e6e9e2;border-radius:12px;background:#fbfcf9;padding:9px 8px;min-width:0}.rate-box h5{margin:0 0 7px;text-align:center;font-size:11px;color:#5c6b5e;font-weight:700}.rate-box ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.rate-box li{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#8b938b;padding:2px 4px}.rate-box li b{color:#42513f;font-weight:700}.rate-box .rate-value{display:inline-flex;align-items:baseline;gap:4px}.rate-box .rate-bonus{font-style:normal;color:#3a7c4a;font-size:11px;font-weight:700;background:#e9f3eb;padding:1px 5px;border-radius:8px;margin-left:3px}.rate-box .furnace-member-hint{margin:0 0 9px;padding:7px 9px;border-radius:9px;font-size:11px;line-height:1.5;color:#7c847c;background:#f4f7f3;text-align:center}.rate-box .furnace-member-hint b{color:#42513f;font-weight:700}.rate-box .furnace-member-hint.is-active{background:#e9f3eb;color:#3a7c4a;border:1px solid #c9dfcd}.rate-box .furnace-member-hint.is-active b{color:#1f5b30;font-weight:800}.rate-name{display:inline-flex;align-items:center;gap:4px}.rate-name:before{content:"";width:7px;height:7px;border-radius:2px;background:#d8dbd4}.rate-name.q-white:before{background:#e3e5e0;border:1px solid #c9ccc5}.rate-name.q-green:before{background:#8fbf94}.rate-name.q-blue:before{background:#7ba7c4}.rate-name.q-purple:before{background:#a98cc4}.rate-name.q-orange:before{background:#dfa15f}.rate-name.q-red:before{background:#d3695e}.rate-name.q-gold:before{background:#d9b64c}.rate-arrow{color:#8aa18d;font-size:15px;text-align:center;padding-top:26px}.settings-user{display:flex;align-items:center;gap:13px;padding:14px 15px;border-radius:16px;background:linear-gradient(135deg,#f2f7f2,#e9f0e9);border:1px solid #dde6dc;margin-bottom:4px}.settings-avatar{width:48px;height:48px;border-radius:50%;background:#dce4dd;border:1px solid #c8d7cb;display:grid;place-items:center;font-size:20px;color:#476b51;flex:0 0 auto;overflow:hidden}.settings-user-meta{display:grid;gap:3px;min-width:0}.settings-user-meta b{font-size:15px;color:#2f4638;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-user-meta small{font-size:10px;color:#94a096;letter-spacing:.5px}.settings-list{display:grid;gap:2px;margin-top:8px}.settings-list>div{display:flex;align-items:center;gap:11px;padding:12px 6px;border-bottom:1px solid #efede6;color:#5c665d;font-size:13px;transition:background .15s;border-radius:10px}.settings-list>div:active{background:#f6f8f4}.settings-list .s-ico{width:30px;height:30px;border-radius:10px;background:#eef3ee;color:#5d7a63;font-size:14px;display:grid;place-items:center;flex:0 0 auto}.settings-list .s-label{flex:1;font-weight:500}.settings-list .s-label.has-mail:after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#db7559;margin-left:5px;vertical-align:2px}.settings-list button{padding:7px 14px;border-radius:14px;background:#e9f1ea;color:#4d7357;font-size:11px;font-weight:600;transition:.15s}.settings-list button:active{transform:scale(.96)}.settings-list button.has-mail{background:#f7ebe6;color:#a4665a}.settings-list small{color:#9ca49c;font-size:10px}.switch-account{width:100%;padding:11px;margin-top:12px;border-radius:14px;background:#faf0ec;color:#a4665a;font-weight:600;letter-spacing:1px;font-size:13px;border:0;cursor:pointer;transition:.15s}.switch-account:active{transform:scale(.98)}.mail-list{display:grid;gap:10px;max-height:52vh;overflow-y:auto}.mail-item{padding:12px;border:1px solid #e4e9e1;border-radius:13px;background:#fbfcf9}.mail-item.is-claimed{opacity:.72}.mail-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.mail-heading strong{font-size:13px}.mail-status{font-size:10px;color:#a26b58;white-space:nowrap}.mail-item.is-claimed .mail-status{color:#7c9981}.mail-item p{margin:8px 0;font-size:12px}.mail-reward{padding:8px 10px;border-radius:9px;background:#f4eee1;color:#9a7041;font-size:11px}.mail-claim-button{width:100%;margin-top:10px;padding:8px;border-radius:16px;font-size:11px}.auto-status p{margin:6px 0;font-size:12px;color:#747b73}.auto-status b{color:#3f6d4d}.auto-latest{margin-top:10px}.auto-latest .compare-card{max-width:150px;margin:0 auto}.compare-grid-compact{margin-top:10px}.compare-grid-compact>div>label{font-size:10px;margin-bottom:5px}.compare-grid-compact .compare-card{padding:8px 4px}.compare-grid-compact .compare-card strong{font-size:11px}.compare-grid-compact .compare-card small{font-size:9px}.compare-grid-compact .compare-card .loot-stats{font-size:8.5px;gap:3px}.compare-grid-compact .loot-icon{font-size:22px;line-height:26px}.auto-forge-button.is-running{background:#f7ebe6;border-color:#e5c9c0;color:#a4665a}.result-block{margin-bottom:14px}.result-title{margin:0 0 9px;text-align:center;font-size:13px;font-weight:700;color:#3f6d4d}.result-card{display:flex;align-items:center;gap:11px;padding:11px 13px;border:1px solid #e6e6e0;border-radius:12px;background:#fafaf7}.result-card.quality-green{border-color:#b8d2bd;background:#f2f8f2}.result-card.quality-blue{border-color:#b8d3e0;background:#f1f7fa}.result-card.quality-purple{border-color:#cdb9dc;background:#f6f1f8}.result-card.quality-orange{border-color:#e0ae6d;background:#fff6ea}.result-card.quality-red{border-color:#d87c71;background:#fff1ef}.result-card.quality-gold{border-color:#d9b64c;background:#fffaE2}.result-icon{width:42px;height:42px;border-radius:10px;background:#fff;border:1px solid #e9e9e3;display:grid;place-items:center;font-family:var(--font-base);font-size:22px;color:#8d9a90;flex:0 0 auto}.result-info{display:grid;gap:2px;min-width:0}.result-info b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-info small{font-size:11px;color:#c27e39}.result-info em{font-style:normal;font-size:10px;color:#9ca49c}.result-info .delta{font-style:normal;font-weight:700}.delta.up,.result-stats .up i{color:#d3564f}.delta.down,.result-stats .down i{color:#4d8ac1}.result-stats{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}.result-stats li{display:flex;align-items:center;gap:8px;font-size:12px;color:#7b837c;padding:7px 11px;border-radius:9px;background:#f7f8f5}.result-stats li span{flex:1}.result-stats li b{color:#3f4a41}.result-stats li i{font-style:normal;font-size:11px;font-weight:700}.result-diff li.up{background:#fdf0ee}.result-diff li.down{background:#eef4fa}.result-sell{background:#f1efe9!important;color:#6d6a62!important}.result-equipped{background:#e8ece6!important;color:#8a9690!important;cursor:default!important}.shop-scroll{height:34vh;max-height:280px;min-height:150px;overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-width:thin;scrollbar-color:#cfd8d0 transparent}.shop-scroll::-webkit-scrollbar{width:4px}.shop-scroll::-webkit-scrollbar-track{background:transparent}.shop-scroll::-webkit-scrollbar-thumb{background:#cfd8d0;border-radius:3px}.shop-scroll::-webkit-scrollbar-thumb:hover{background:#b3c2b5}.shop-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.shop-cell{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.shop-box{width:100%;aspect-ratio:1/1;min-height:52px;padding:4px;border:1px solid #dfe6dd;border-radius:10px;background:#f8faf6;color:#4f6a55;font-size:10px;line-height:1.2;word-break:break-all;display:grid;place-items:center;text-align:center}.shop-box:active{transform:scale(.96)}.shop-buy{width:100%;padding:4px 0;border-radius:9px;background:#3e684f;color:#fff;font-size:10px}.shop-buy:disabled{background:#e6e9e4;color:#a8aea8}.shop-cell small{font-size:8px;color:#a0a79f;text-align:center;line-height:1.2;word-break:break-all}.chat-panel{display:flex;flex-direction:column;gap:10px}.chat-list{height:50vh;padding:15px 10px 0 10px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#cfd8d0 transparent}.chat-list::-webkit-scrollbar{width:4px}.chat-list::-webkit-scrollbar-thumb{background:#cfd8d0;border-radius:3px}.chat-list::-webkit-scrollbar-track{background:transparent}.chat-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:12px}.chat-row.is-self{justify-content:flex-end}.chat-avatar{width:34px;height:34px;border-radius:50%;background:#e1ebe2;color:#4f7358;font-size:13px;display:grid;place-items:center;flex:0 0 auto}.chat-avatar.has-image{background:#fff;overflow:hidden}.chat-avatar.has-image img{width:100%;height:100%;object-fit:cover;display:block}.chat-avatar-photo{font-size:18px;color:#7e9a86;background:linear-gradient(135deg,#f1f5ee,#dde6dd)}.chat-row.is-self .chat-avatar{background:#e6efe0;color:#5c8558}.chat-row.is-self .chat-avatar.has-image{background:#fff}.chat-row.is-self .chat-avatar-photo{background:linear-gradient(135deg,#eef3e8,#d4e3d4);color:#5d8051}.chat-main{display:flex;flex-direction:column;max-width:72%;min-width:0}.chat-row.is-self .chat-main{align-items:flex-end}.chat-meta{display:flex;align-items:baseline;gap:6px;margin-bottom:4px}.chat-meta b{font-size:12px;color:#47564b}.chat-meta small{font-size:10px;color:#9aa79c}.chat-bubble{padding:8px 11px;border-radius:12px;background:#f4f6f2;color:#3d4a41;font-size:12px;line-height:1.6;word-break:break-word}.chat-row.is-self .chat-bubble{background:#e4f0e3;color:#2f4c37}.chat-input{display:flex;align-items:center;gap:6px;margin-top:12px}.chat-input input{flex:1;min-width:0;height:40px;padding:0 12px;border:1px solid #e0e5de;border-radius:12px;background:#fbfcf9;color:#354238;font-size:13px;outline:none}.chat-input input:focus{border-color:#87aa8d;box-shadow:0 0 0 3px rgba(93,143,114,.12)}.chat-emoji{flex:0 0 auto;width:40px;height:40px;border-radius:12px;background:#f1f4ef;color:#5d7a63;font-size:18px}.chat-send{flex:0 0 auto;padding:0 16px;height:40px;border-radius:12px;font-size:13px;background:#3e684f!important;color:#fff}.emoji-bar{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border-radius:12px;background:#fffdf8;border:1px solid #e6e2d6;box-shadow:0 -6px 18px rgba(60,62,52,.08)}.emoji-bar[hidden]{display:none}.chat-panel{position:relative}.chat-panel .emoji-bar{position:absolute;left:0;right:0;bottom:0;z-index:5}.chat-empty{margin:24px 0;text-align:center;color:#a8aea8;font-size:12px}.emoji-bar button{width:32px;height:32px;border-radius:9px;background:#fff;border:1px solid #e6ebe4;font-size:17px;line-height:1}.shop-detail-box{width:64px;height:64px;margin:0 auto 10px;border:1px solid #dfe6dd;border-radius:12px;background:#f8faf6;color:#4f6a55;font-size:11px;display:grid;place-items:center;text-align:center;word-break:break-all;padding:4px}.auto-option{flex-wrap:wrap}.auto-option select,.auto-option input{max-width:55%;min-width:120px}.gear-empty{font-size:10px;color:#9ca19b;white-space:nowrap}.gear-slot .gear-icon{font-size:25px}.rename-input{width:100%;height:44px;padding:0 14px;border:1px solid #e0e5de;border-radius:12px;background:#fbfcf9;color:#354238;font-size:14px;outline:none;font-family:inherit;box-shadow:inset 0 1px 2px rgba(60,62,52,.04)}.rename-input:focus{border-color:#87aa8d;box-shadow:0 0 0 3px rgba(93,143,114,.12)}.compare-empty-text{display:grid;place-items:center;min-height:74px;color:#adb4ad;font-size:11px}.loot-stat-empty{color:#b0b6b0;font-size:11px}.character-panel{inset:13px 68px 0}.stat-row{display:flex;flex-wrap:nowrap;justify-content:center;gap:9px;margin-top: 12px;color:#9b9e98;font-size:10px;line-height:1.5;white-space:nowrap}.stat-row-secondary{margin-top:3px}.stat-row b{color:#59605a;font-weight:500}.replace-sell{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:11px;background:#f4f7f3;color:#5b655b;font-size:11px;cursor:pointer}.replace-sell input{width:14px;height:14px;accent-color:#3e684f;cursor:pointer}.signin-summary{margin:0 0 12px;padding:10px 12px;border-radius:11px;background:#f4f7f3;color:#5b655b;font-size:11px;line-height:1.6}.signin-summary b{color:#3e684f;font-weight:700;font-size:13px;margin:0 2px}.signin-tip{font-size:10px;color:#8d918c;margin:4px 0 0}.signin-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:0 0 12px}.signin-weeklabel{text-align:center;font-size:10px;color:#9ba29b;padding:3px 0;font-weight:700}.signin-cell{position:relative;aspect-ratio:1/1;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #e7eae3;background:#f6f7f4;color:#a8aea8;font-size:13px;cursor:default;transition:.15s}.signin-cell.empty{background:transparent;border:0;cursor:default;pointer-events:none}.signin-cell.status-future{background:#f6f7f4;border-color:#e7eae3;color:#c8ccc8}.signin-cell.status-today{background:#fff8e6;border-color:#e5cf85;color:#7a5b18;cursor:pointer;box-shadow:0 2px 6px rgba(229,207,133,.18)}.signin-cell.status-today:active{transform:scale(.96)}.signin-cell.status-signed{background:#eff6ee;border-color:#9bc4a4;color:#3e684f}.signin-cell.status-missed{background:#fdebe7;border-color:#e5b9b0;color:#c25a4c}.signin-day{font-weight:700;line-height:1}.signin-reward{font-size:8px;color:inherit;opacity:.75;line-height:1.15;margin-top:2px;text-align:center}.signin-mark{position:absolute;top:2px;right:4px;font-size:9px;font-weight:700;line-height:1}.signin-empty{text-align:center;color:#a8aea8;padding:30px 0}.mission-summary{margin:0 0 12px;padding:9px 11px;border-radius:11px;background:#f4f7f3;color:#5b655b;font-size:11px}.mission-summary b{color:#3e684f;font-weight:700;font-size:13px;margin:0 2px}.mission-list{display:flex;flex-direction:column;gap:10px;max-height:50vh;overflow-y:auto;padding-right:4px}.mission-item{padding:11px 13px;border:1px solid #e7eae3;border-radius:12px;background:#fbfcf9;display:flex;flex-direction:column;gap:6px}.mission-item.is-completed{border-color:#9bc4a4;background:#f4f9f3}.mission-item.is-claimed{border-color:#cdd9d0;background:#f4f7f3;opacity:.85}.mission-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#3c463e}.mission-head b{font-weight:800;font-size:14px;letter-spacing:.3px}.mission-progress{font-size:11px;color:#7c847c;font-weight:700}.mission-item.is-completed .mission-progress{color:#3e684f}.mission-bar{height:6px;background:#ebeae3;border-radius:3px;overflow:hidden}.mission-bar-fill{height:100%;background:linear-gradient(90deg,#9bc4a4,#5d8f72);transition:width .3s}.mission-item.is-completed .mission-bar-fill{background:linear-gradient(90deg,#5d8f72,#3e684f)}.mission-foot{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#7c847c;gap:8px;flex-wrap:wrap}.mission-reward{display:inline-flex;gap:5px;flex-wrap:wrap;font-size:10.5px}.mission-reward i{font-style:normal;padding:2px 7px;border-radius:9px;line-height:1.4}.mission-reward-crystal{background:#fff4e8;color:#b6651f;font-weight:700}.mission-reward-forge{background:#eff6ee;color:#3e684f;font-weight:700}.mission-pending{color:#a8aea8}
.mission-warning{margin:0 0 12px;padding:10px 14px;border-radius:10px;background:#fdf3e3;border:1px solid #f4d59c;color:#7d5b1c;font-size:12px;line-height:1.55}
/* 主线任务面板 */
.main-quest-empty{padding:34px 18px;text-align:center;color:#8c948c}.main-quest-empty p{margin:6px 0}.main-quest-empty-tip{font-size:12px;line-height:1.7;color:#a3a99f}
.main-quest-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:12px;background:linear-gradient(135deg,#f3ede0,#ece5d2);border:1px solid #d9d0b3;margin-bottom:14px}
.main-quest-tier-badge{font-size:13px;font-weight:700;color:#5b4628}
.main-quest-reward{font-size:12px;font-weight:700;color:#a16d2c;background:#fff7e3;padding:3px 9px;border-radius:10px}
.main-quest-tip{margin:0 0 12px;font-size:12px;color:#7a827a;line-height:1.6}
.main-quest-subtasks{display:flex;flex-direction:column;gap:14px;padding:4px 0}
.main-quest-subtask{display:flex;flex-direction:column;gap:6px}
.main-quest-subtask-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#3c463e}
.main-quest-subtask-head b{font-weight:700;color:#5b655b}
.main-quest-subtask.is-done .main-quest-subtask-head b{color:#3e684f}
.main-quest-foot{margin-top:16px;display:flex;justify-content:center}
.main-quest-foot .primary{min-width:160px;padding:10px 22px;border-radius:22px;background:linear-gradient(135deg,#476f53,#315b43);color:#fff;font-weight:700;box-shadow:0 6px 13px rgba(49,91,67,.18)}
.main-quest-foot .primary:disabled{background:#d6dbd2;box-shadow:none;cursor:not-allowed;color:#fff}
.main-quest-claimed-tip{margin:6px 0 14px;padding:10px 14px;border-radius:10px;background:#eff6ee;color:#3e684f;font-size:13px;font-weight:700;text-align:center}
.main-quest-active{margin:0 0 12px;padding:9px 11px;border-radius:10px;background:#f4f7f3;color:#5b655b;font-size:12px}
.main-quest-active b{color:#3f6d4d;font-weight:700}
.main-quest-tip{margin:12px 0 0;font-size:11px;color:#8c948c;text-align:center;line-height:1.6}
.reward-bar{height:6px;border-radius:3px;background:#eef0eb;overflow:hidden}
.reward-bar span{display:block;height:100%;background:linear-gradient(90deg,#476f53,#6f9071);border-radius:3px;transition:width .3s ease}
.daily-mission{padding:10px 12px;border-radius:12px;background:#fbfcf9;border:1px solid #e6e9e2;gap:8px}
.daily-mission.is-done{background:#eff6ee;border-color:#cfdfd0}
.daily-mission.is-claimed{background:#eff6ee;border-color:#cfdfd0;opacity:.85}
.daily-mission-action{display:flex;justify-content:flex-end;align-items:center;min-height:24px}
.daily-mission-action .mission-claim{padding:5px 14px;font-size:11px;border-radius:14px;background:linear-gradient(135deg,#476f53,#315b43);color:#fff;font-weight:700;border:none;cursor:pointer;box-shadow:0 3px 8px rgba(49,91,67,.18)}
.daily-mission-action .mission-progress{font-size:11px;color:#8c948c}
.daily-mission-total{display:flex;align-items:center;gap:10px;padding:11px 13px;margin:0 0 12px;border-radius:14px;background:linear-gradient(135deg,#f7f3ff,#ece6fb);border:1px solid #d6c8ec;box-shadow:0 3px 10px rgba(110,80,180,.08)}
.daily-mission-total-icon{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#b08cf5,#7e5dd6);color:#fff;font-size:14px;font-weight:800;display:grid;place-items:center;flex:0 0 auto;box-shadow:0 3px 8px rgba(126,93,214,.3)}
.daily-mission-total-body{flex:1;min-width:0}
.daily-mission-total-title{font-size:13px;font-weight:700;color:#3d2c5a;margin-bottom:3px}
.daily-mission-total-reward{font-size:11px;color:#5b4a78;line-height:1.5}
.daily-mission-total-reward i{font-style:normal;margin-right:6px;font-weight:600}
.daily-mission-total-meta-r{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:0 0 auto}
.daily-mission-total-progress{font-size:11px;color:#7e5dd6;font-weight:700}
.daily-mission-refresh{padding:5px 11px;border-radius:14px;background:#fff;border:1px solid #c2a8e6;color:#5b4a78;font-size:11px;font-weight:600;cursor:pointer;transition:.15s}
.daily-mission-refresh:hover{background:#ece6fb;color:#3d2c5a}
.daily-mission-cards{display:flex;flex-direction:column;gap:10px;max-height:52vh;overflow-y:auto;padding-right:4px}
.daily-mission-card{display:block;padding:11px 13px;border-radius:14px;background:#fbfcf9;border:1px solid #e6e9e2;transition:.15s}
.daily-mission-card.is-done{background:#eff6ee;border-color:#c9dfcd}
.daily-mission-card.is-claimed{background:#eff6ee;border-color:#c9dfcd;opacity:.88}
.daily-mission-card-stars{font-style:normal;font-size:11px;line-height:1;color:#d4b8e8;letter-spacing:1px;margin-left:6px;vertical-align:1px;font-weight:400}
.daily-mission-card[data-tier="2"] .daily-mission-card-stars{color:#c39bd9}
.daily-mission-card[data-tier="3"] .daily-mission-card-stars{color:#a370d4}
.daily-mission-card-body{min-width:0;display:flex;flex-direction:column;gap:5px}
.daily-mission-card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.daily-mission-card-title{flex:1;font-size:13px;font-weight:700;color:#3c463e;min-width:0}
.daily-mission-card-score{font-size:11px;color:#7c847c;font-weight:600;background:#fff;padding:2px 8px;border-radius:10px;border:1px solid #e6e9e2;flex:0 0 auto}
.daily-mission-card-score b{color:#3e684f;font-size:13px;font-weight:800}
.daily-mission-card-action{flex:0 0 auto}
.daily-mission-card-action .mission-claim{padding:5px 14px;font-size:11px;border-radius:14px;background:linear-gradient(135deg,#a370d4,#7e5dd6);color:#fff;font-weight:700;border:none;cursor:pointer;box-shadow:0 3px 8px rgba(126,93,214,.25);transition:.15s}
.daily-mission-card-action .mission-claim:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(126,93,214,.35)}
.daily-mission-card-action .mission-progress{font-size:11px;color:#a0a8a0}
.daily-mission-card-action .mission-claimed{font-size:11px;color:#5b6a5c;font-weight:600}
.daily-mission-card .reward-bar{height:6px;background:#ebeae3;border-radius:3px;overflow:hidden}
.daily-mission-card .reward-bar span{display:block;height:100%;background:linear-gradient(90deg,#a370d4,#7e5dd6);border-radius:3px;transition:width .3s}
.daily-mission-card-reward{font-size:11px;color:#7c6e93;line-height:1.5}
.daily-mission-card-reward i{font-style:normal;margin-right:6px;font-weight:600}
.daily-r-c{color:#9b6a3f}
.daily-r-e{color:#5b6a5c}
.daily-r-f{color:#7e5dd6}
.daily-mission-footnote{margin-top:12px;font-size:10px;color:#a0a8a0;text-align:center;padding-top:8px;border-top:1px dashed #e6e9e2}
.mission-tabs{margin-bottom:14px}

/* 炼器炉时间机制：倒计时进度 */
.furnace-timer{margin:14px 0;padding:14px;border:1px solid #d9e0d4;border-radius:14px;background:#fbfcf9}
.furnace-timer-track{height:8px;border-radius:4px;background:#eef0eb;overflow:hidden;margin-bottom:10px}
.furnace-timer-track span{display:block;height:100%;background:linear-gradient(90deg,#476f53,#6f9071);border-radius:4px;transition:width .6s linear}
.furnace-timer-text{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.furnace-timer-text b{font-size:22px;color:#3e684f;font-weight:700;letter-spacing:1px;font-family:var(--font-mono)}
.furnace-timer-text small{font-size:12px;color:#7a827a}

/* 宗门样式 */
.sect-summary{padding:12px 14px;background:#f4f7f3;border-radius:12px;border:1px solid #d9e0d4;margin-bottom:12px}
.sect-summary h4{margin:0 0 4px;font-size:15px;color:#3c463e}
.sect-summary p{margin:4px 0;font-size:12px;color:#5b655b;line-height:1.6}
.sect-summary p b{color:#3f6d4d}
.sect-member-list{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto;padding:4px;background:#fbfcf9;border:1px solid #e6e9e2;border-radius:10px}
.sect-member{display:flex;align-items:center;gap:8px;padding:7px 10px;font-size:12px;background:#fff;border-radius:8px;border:1px solid #eef0eb}
.sect-member-name{flex:1;color:#3c463e;font-weight:700}
.sect-member-role{font-size:11px;color:#a16d2c;background:#fff7e3;padding:2px 6px;border-radius:8px}
.sect-row{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-bottom:8px;background:#fbfcf9;border:1px solid #e6e9e2;border-radius:10px}
.sect-row-info{flex:1;min-width:0}
.sect-row-info b{display:block;font-size:14px;color:#3c463e;margin-bottom:2px}
.sect-row-info small{font-size:11px;color:#7a827a}
.sect-row-meta{font-size:12px;color:#3f6d4d;font-weight:700;padding:0 6px}

/* 宗门主面板快捷按钮组 */
.sect-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.sect-quick-grid button{padding:8px 6px;border-radius:10px;background:#edf2eb;color:#52745d;font-size:12px;font-weight:700;border:1px solid #d4e0d5}
.sect-quick-grid button.primary{background:linear-gradient(135deg,#476f53,#315b43);color:#fff;border-color:transparent}

/* 创建宗门输入框 */
.sect-create-box{display:flex;flex-direction:column;gap:8px;padding:8px 4px}
.sect-create-label{font-size:12px;color:#5b4628}
.sect-create-input{width:100%;box-sizing:border-box;padding:10px 12px;font-size:14px;border-radius:10px;border:1px solid #c8b88c;background:#fffaef;color:#3a2e1a;outline:none}
.sect-create-input:focus{border-color:#a48a4e;box-shadow:0 0 0 3px rgba(164,138,78,.18)}


/* 宗门捐献 */
.sect-donate-row{display:flex;align-items:center;gap:10px;margin:10px 0;font-size:13px}
.sect-donate-row label{flex:0 0 160px;color:#5b655b}
.sect-donate-row input{flex:1;padding:8px 10px;border:1px solid #d9e0d4;border-radius:10px;background:#fbfcf9;font-size:13px}
sect-donate-row select{flex:1;appearance:none;-webkit-appearance:none;-moz-appearance:none;padding:9px 34px 9px 12px;border:1px solid #d9e0d4;border-radius:10px;background:#fbfcf9 url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%235b655b' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center;font-size:13px;color:#333;cursor:pointer;line-height:1.4;height:38px}sect-donate-row select:focus{outline:none;border-color:#3e684f;box-shadow:0 0 0 3px rgba(62,104,79,.12)}
.capsule-input-row{display:flex;justify-content:center;margin:6px 0 4px}
.capsule-input-row input{width:120px;text-align:center;font-size:18px;font-weight:800;color:#3c463e;padding:10px 8px;border:1px solid #c8b88c;background:#fffaef;border-radius:12px;outline:none}
.capsule-input-row input:focus{border-color:#a48a4e;box-shadow:0 0 0 3px rgba(164,138,78,.18)}
.capsule-suggest{padding:7px 10px;border-radius:9px;background:#f4f7f3;color:#3e684f;font-size:11px;text-align:center;margin:0 0 6px}

/* 藏经阁：技能卡片 */
.sect-skill-list{display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow-y:auto;padding:2px}
.sect-skill-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fbfcf9;border:1px solid #e6e9e2;border-radius:10px}
.sect-skill-info{flex:1;min-width:0}
.sect-skill-info b{display:block;font-size:13px;color:#3c463e;margin-bottom:2px}
.sect-skill-info small{font-size:11px;color:#7a827a;display:block;margin-bottom:2px}
.sect-skill-info div{font-size:11px;color:#5b655b}
.sect-skill-state{font-size:11px;color:#3e684f;font-weight:700}
.sect-skill-btn{flex-shrink:0;padding:6px 14px;border-radius:8px;border:1px solid #b7a780;background:#fff;color:#5b4628;font-size:12px;font-weight:700;cursor:pointer;min-width:64px;text-align:center}
.sect-skill-btn:active{background:#f1e9d2;transform:scale(.96)}
.sect-skill-cost{font-size:10px;color:#8a7a55;margin-top:3px}

/* 灵兽园 */
.sect-pet-card{padding:14px;background:linear-gradient(135deg,#f3ede0,#ece5d2);border:1px solid #d9d0b3;border-radius:12px;margin-bottom:14px}
.sect-pet-head{display:flex;justify-content:space-between;font-size:14px;font-weight:700;color:#5b4628;margin-bottom:6px}
.sect-pet-head span{font-size:11px;color:#a16d2c}
.sect-pet-card p{margin:4px 0;font-size:13px}

/* 宗门商店 */
.sect-shop-list{display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow-y:auto;padding:2px}
.sect-shop-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fbfcf9;border:1px solid #e6e9e2;border-radius:10px}
.sect-shop-info{flex:1;min-width:0}
.sect-shop-info b{display:block;font-size:13px;color:#3c463e;margin-bottom:2px}
.sect-shop-info small{font-size:11px;color:#7a827a;display:block;line-height:1.5}
.sect-shop-cost{font-size:15px;font-weight:700;color:#a16d2c;text-align:center;padding:0 6px}
.sect-shop-cost small{font-size:10px;color:#7a827a;font-weight:500}
.sect-shop-buy button{padding:8px 14px;border-radius:18px;background:linear-gradient(135deg,#476f53,#315b43);color:#fff;font-weight:700;border:none;font-size:12px;cursor:pointer}
.sect-shop-buy button:disabled{background:#d6dbd2;color:#fff;cursor:not-allowed;box-shadow:none}

/* BOSS */
/* 宗门 BOSS 卡（参考图：中央 BOSS + 等级 + 战力 + 挑战按钮 + 次数） */
.sect-boss-card{padding:14px 14px 16px;background:linear-gradient(135deg,#3c463e,#273f35);color:#fff7e3;border-radius:14px;margin-bottom:14px;position:relative;overflow:hidden}
.sect-boss-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(255,210,140,.18),transparent 60%);pointer-events:none}
.sect-boss-figure{position:relative;text-align:center;padding:6px 0 8px}
.sect-boss-emoji{font-size:64px;line-height:1;filter:drop-shadow(0 4px 10px rgba(0,0,0,.4));animation:sect-boss-bob 3s ease-in-out infinite}
@keyframes sect-boss-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.sect-boss-stars{position:absolute;top:8px;right:8px;font-size:11px;color:#f3d57a;letter-spacing:2px;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.sect-boss-name-tag{display:inline-block;margin-top:6px;padding:3px 12px;background:rgba(190,135,80,.25);border:1px solid #be8750;border-radius:14px;color:#f3ede0;font-size:12px;font-weight:700}
.sect-boss-meta{display:flex;gap:14px;justify-content:center;margin:8px 0 4px;position:relative;z-index:1}
.sect-boss-meta-row{display:flex;flex-direction:column;align-items:center;gap:2px}
.sect-boss-meta-row span{font-size:10px;color:#9aa6a0;letter-spacing:1px}
.sect-boss-meta-row b{font-size:14px;font-weight:700;color:#f3ede0}
.sect-boss-power{color:#f3d57a !important;font-weight:800}
.sect-boss-hp-block{margin:8px 0 10px;position:relative;z-index:1}
.sect-boss-hp-text{font-size:12px;color:#cfd6cf;margin-bottom:4px}
.sect-boss-hp-text b{color:#fff;font-weight:800}
.sect-boss-card .reward-bar{background:rgba(255,255,255,.12);height:8px;border-radius:4px;overflow:hidden}
.sect-boss-card .reward-bar span{display:block;height:100%;background:linear-gradient(90deg,#f3d57a,#be8750);border-radius:4px;transition:width .3s ease}
.sect-boss-quota{text-align:center;font-size:12px;color:#9aa6a0;margin:0 0 10px;position:relative;z-index:1}
.sect-boss-quota b{color:#f3d57a;font-weight:700}
.sect-boss-attack-btn{width:100%;padding:11px;border-radius:24px;background:linear-gradient(135deg,#f3d57a,#be8750);color:#3c2410;font-size:14px;font-weight:800;border:none;cursor:pointer;box-shadow:0 4px 12px rgba(190,135,80,.4);transition:.15s;position:relative;z-index:1}
.sect-boss-attack-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(190,135,80,.55)}
.sect-boss-attack-btn:active{transform:translateY(0)}
.sect-boss-attack-btn:disabled{background:rgba(190,135,80,.3);color:#9aa6a0;cursor:not-allowed;box-shadow:none;transform:none}
.sect-boss-killed{margin:10px 0 0;padding:8px 12px;background:rgba(255,255,255,.08);border-radius:8px}
.sect-boss-stats-block{margin:0 0 10px;padding:8px 10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);border-radius:8px;position:relative;z-index:1}
.sect-boss-stats-row{display:flex;justify-content:space-between;gap:4px;margin:2px 0}
.sect-boss-stat{display:flex;justify-content:space-between;align-items:center;flex:1;font-size:11px;padding:2px 6px;color:#cfd6cf}
.sect-boss-stat i{color:#9aa6a0;font-style:normal}
.sect-boss-stat b{color:#f3d57a;font-weight:700;font-size:12px}
.sect-boss-stat.is-secondary b{color:#d6a2e8}
.sect-boss-my-stats{text-align:center;font-size:11px;color:#9aa6a0;margin:8px 0 0;position:relative;z-index:1}
.sect-boss-my-stats b{color:#f3d57a;font-weight:700}
/* 伤害奖励区 */
.sect-boss-section{margin:12px 0;padding:12px 14px;background:#fbfcf9;border:1px solid #e6e9e2;border-radius:12px}
/* BOSS 奖励 / 排行榜 两个入口按钮 */
.sect-boss-entry-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 4px}
.sect-boss-entry-btn{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;padding:13px 10px;border:1px solid #e2e6dd;border-radius:12px;background:linear-gradient(180deg,#ffffff,#f5f7f2);color:#3c463e;font-size:13px;font-weight:700;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}
.sect-boss-entry-btn:active{transform:scale(.97)}
.sect-boss-entry-btn:hover{box-shadow:0 4px 12px rgba(93,143,114,.15);border-color:#c9d6c6}
.sect-boss-entry-icon{font-size:16px;line-height:1}
.sect-boss-entry-text{font-size:13px;font-weight:700;color:#3c463e}
.sw-side{width:100%;display:flex;flex-direction:column;align-items:center;gap:6px}
.sect-boss-entry-badge{position:absolute;top:-7px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#be8750;color:#fff;font-size:10px;font-weight:700;line-height:18px;text-align:center;box-shadow:0 1px 4px rgba(190,135,80,.4)}
.sect-boss-section-title{font-size:13px;font-weight:700;color:#3c463e;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.sect-boss-section-title::before{content:"";width:3px;height:12px;background:#be8750;border-radius:2px}
.sect-boss-rewards{display:flex;flex-direction:column;gap:6px}
.sect-boss-reward-row{display:flex;gap:8px;font-size:12px;color:#52745d;line-height:1.55;align-items:flex-start}
.sect-boss-reward-row b{flex:0 0 auto;color:#3c463e;min-width:64px;font-weight:700}
.sect-boss-reward-row.is-win b{color:#3e684f}
/* 排行榜 */
.sect-boss-empty{font-size:12px;color:#9aa6a0;text-align:center;padding:14px 0}
.sect-boss-rank-list{display:flex;flex-direction:column;gap:4px;max-height:36vh;overflow-y:auto;padding-right:4px}
.sect-boss-rank-row{display:grid;grid-template-columns:36px 1fr auto auto;align-items:center;gap:8px;padding:7px 10px;background:#fff;border:1px solid #e6e9e2;border-radius:8px;font-size:12px}
.sect-boss-rank-row.is-mine{background:linear-gradient(135deg,#fff5e0,#fde6c8);border-color:#be8750;box-shadow:0 2px 6px rgba(190,135,80,.2)}
.sect-boss-rank-idx{font-weight:800;color:#be8750;text-align:center}
.sect-boss-rank-row.is-mine .sect-boss-rank-idx{color:#a6550c;font-size:14px}
.sect-boss-rank-name{color:#3c463e;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sect-boss-rank-meta{font-size:10px;color:#9aa6a0;white-space:nowrap}
.sect-boss-rank-dmg{font-weight:800;color:#3c463e;font-size:13px;white-space:nowrap}

/* 宗门战 */
.sect-war-rank-list{display:flex;flex-direction:column;gap:6px;margin-top:14px;padding:2px}
.sect-war-rank{display:grid;grid-template-columns:36px 1fr auto auto;gap:8px;align-items:center;padding:8px 12px;background:#fbfcf9;border:1px solid #e6e9e2;border-radius:10px;font-size:12px}
.sect-war-rank span:first-child{color:#a16d2c;font-weight:700;font-size:13px}
.sect-war-rank b{color:#3c463e;font-weight:700}
.sect-war-rank .reward-tag{font-size:11px;color:#3f6d4d;font-weight:700}
.sect-war-signed{display:flex;flex-direction:column;gap:6px;margin-top:14px}
.sect-war-signed-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:linear-gradient(135deg,#f3ede0,#ece5d2);border:1px solid #d9d0b3;border-radius:10px;font-size:12px;color:#5b4628}
.sect-war-signed-head b{color:#a16d2c;font-weight:700}
.sect-war-signed-scroll{max-height:200px;overflow-y:auto;overscroll-behavior:contain;margin-top:6px;border:1px solid #e6e9e2;border-radius:10px;background:#fbfcf9;padding:8px;display:flex;flex-direction:column;gap:6px}
.sect-war-signed-scroll::-webkit-scrollbar{width:4px}
.sect-war-signed-scroll::-webkit-scrollbar-thumb{background:#cfd8d0;border-radius:3px}
.sect-war-signed-scroll::-webkit-scrollbar-track{background:transparent}
.sect-war-signed-item{display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:center;padding:6px 10px;background:#fff;border:1px solid #eeeae2;border-radius:8px;font-size:12px}
.sect-war-signed-item.is-mine{background:#eff6ee;border-color:#9bc4a4}
.sect-war-signed-item .idx{color:#a16d2c;font-weight:700;font-size:13px}
.sect-war-signed-item b{color:#3c463e;font-weight:700}
.sect-war-signed-item .small{color:#8c948c;font-size:11px}
.sect-war-signed-empty{padding:14px 10px;text-align:center;color:#a8aea8;font-size:12px}
.sect-war-sign-btn{margin-top:6px;width:100%;padding:10px 12px;border-radius:10px;border:0;background:linear-gradient(135deg,#476f53,#315b43);color:#fff;font-size:14px;font-weight:700;cursor:pointer}.sect-boss-warning{margin:10px 0 0;padding:9px 11px;border-radius:10px;background:#fdf3e3;color:#7d5b1c;font-size:12px;border:1px solid #f4d59c}.sect-skill-bonus .sect-skill-bonus-title{font-size:13px;font-weight:700;color:#5b4628}.sect-skill-bonus .sect-skill-bonus-label{margin:10px 0 6px;color:#8a7a55;font-size:10px;letter-spacing:1px}.sect-skill-bonus .sect-skill-bonus-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;justify-items:center}.sect-skill-bonus .sect-skill-bonus-chip{background:#fff7e3;border:1px solid #d9c690;border-radius:9px;padding:3px 9px;font-size:11px;color:#5b4628;width:100%;text-align:center;box-sizing:border-box;display:inline-block}.sect-skill-bonus .sect-skill-bonus-chip b{color:#3e684f;font-weight:700;margin:0 2px}.sect-skill-bonus-empty{background:#f7f8f4;border-color:#e4e9e1;color:#8c948c}
.sect-war-sign-btn:active{background:#315b43}
.sect-war-attack-btn{margin-top:6px;width:100%;padding:10px 12px;border-radius:10px;border:1px solid #c8b88c;background:#fff;color:#5b4628;font-size:14px;font-weight:700;cursor:pointer}

/* 宗门管理成员行（每行带 3 个 action） */
.sect-member-manage{align-items:center}
.sect-member-level{font-size:11px;color:#7a827a;margin-left:4px;font-weight:500}
.sect-member-manage-btn{flex-shrink:0;padding:5px 12px;border-radius:14px;background:#3e684f;color:#fff;border:none;font-size:11px;font-weight:700;cursor:pointer}
.sect-member-manage-btn:active{background:#2f523e}
.sect-manage-menu{display:flex;flex-direction:column;gap:8px;padding:4px}
.sect-manage-menu button{padding:10px 12px;border-radius:10px;border:1px solid #d4e0d5;background:#edf2eb;color:#3e684f;font-size:13px;font-weight:700;cursor:pointer;text-align:left}
.sect-manage-menu button.danger{background:#fdf0ee;color:#c1544c;border-color:#e9c8c3}
.sect-member-actions{display:flex;gap:6px;flex-wrap:wrap}
.sect-member-actions button{padding:5px 10px;border-radius:14px;font-size:11px;background:#edf2eb;color:#52745d;border:1px solid #d4e0d5}
.sect-member-actions button:disabled{background:#e8ece6;color:#adb4ad;cursor:not-allowed}
.sect-member-actions button[disabled][data-disabled]{background:#e8ece6}

/* 竞技场：玩家信息卡 + 列表（标题 + 自卡 sticky，列表单独滚动） */
.arena-modal-wrap{display:flex;flex-direction:column;max-height:62vh;min-height:320px}
.arena-modal-wrap .arena-sticky-head{flex:0 0 auto;padding:0 2px 10px;border-bottom:1px dashed #e6e9e2;margin-bottom:10px}
.arena-modal-wrap .arena-sticky-head .arena-self-card{margin-bottom:0}
.arena-modal-wrap .arena-opp-list-scrollable{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:0 2px;display:flex;flex-direction:column;gap:8px;min-height:60px}
.arena-modal-wrap .arena-opp-list-scrollable::-webkit-scrollbar{width:4px}
.arena-modal-wrap .arena-opp-list-scrollable::-webkit-scrollbar-thumb{background:#cfd8d0;border-radius:3px}
.arena-modal-wrap .arena-opp-list-scrollable::-webkit-scrollbar-track{background:transparent}
.arena-self-card{padding:14px;background:linear-gradient(135deg,#f3ede0,#ece5d2);border:1px solid #d9d0b3;border-radius:12px;margin-bottom:14px}
.arena-self-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:#3c463e;margin:4px 0}
.arena-self-row b{font-weight:700;color:#5b4628}
.arena-self-head{display:flex;justify-content:space-between;font-size:14px;color:#3a2e1a;margin-bottom:4px}
.arena-self-head .arena-self-name{font-weight:700;font-size:15px}
.arena-self-head .arena-self-lv{font-size:12px;color:#8a7a55}
.arena-buy-btn{padding:6px 12px;border-radius:14px;background:#fff;color:#a16d2c;border:1px solid #d9d0b3;font-size:11px;font-weight:700;cursor:pointer}
.arena-buy-btn:active{background:#f1e9d2}
.arena-opp-list{display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow-y:auto;padding:2px}
.arena-opp-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fbfcf9;border:1px solid #e6e9e2;border-radius:10px}
.arena-opp-info{flex:1;min-width:0;display:flex;align-items:center;gap:10px;cursor:pointer;padding:4px 0}
.arena-opp-info:active{opacity:.7}
.arena-opp-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#c8b273,#a48a4e);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0;border:1px solid #d9d0b3}
.arena-opp-text{display:flex;flex-direction:column;min-width:0}
.arena-opp-text b{display:block;font-size:13px;color:#3c463e;margin-bottom:2px}
.arena-opp-text small{font-size:11px;color:#7a827a}
.arena-opp-actions{display:flex;gap:6px}
.arena-opp-actions button{padding:6px 14px;border-radius:14px;background:#edf2eb;color:#52745d;font-size:12px;border:1px solid #d4e0d5;font-weight:700;cursor:pointer}
.arena-opp-actions button.primary{background:linear-gradient(135deg,#476f53,#315b43);color:#fff;border-color:transparent}
.arena-opp-detail-head{display:flex;align-items:center;gap:10px;padding:4px 0 10px;border-bottom:1px dashed #ece6d4;margin-bottom:8px}
.arena-opp-detail-head .arena-opp-text b{font-size:15px}
.arena-opp-detail-head .arena-opp-text small{font-size:12px}

/* 战斗面板 */
.arena-fight-card{display:grid;grid-template-columns:1fr 60px 1fr;gap:12px;align-items:stretch;margin-bottom:14px;padding:10px;background:#fbfcf9;border:1px solid #d9e0d4;border-radius:12px}
.arena-fight-side{padding:10px;border-radius:10px;background:#fff;border:1px solid #e6e9e2;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:4px}
.arena-fight-me{background:#eff6ee;border-color:#cfdfd0}
.arena-fight-opp{background:#fbf0eb;border-color:#e5cfca}
.arena-fight-power{font-size:11px;color:#a16d2c;font-weight:700;background:#fff8e1;padding:3px 8px;border-radius:6px;display:inline-block;align-self:flex-start;border:1px solid #e7d8a5}
.arena-fight-power b{font-size:13px;color:#5b4628}
.arena-fight-name{font-size:15px;font-weight:700;color:#3c463e;display:flex;align-items:baseline;gap:6px}
.arena-fight-lv{font-size:11px;color:#7a827a;font-weight:500}
.arena-fight-hp-row{font-size:12px;color:#5b655b;margin:2px 0}
.arena-fight-pet{margin-top:8px;padding:6px 8px;background:#fffaef;border:1px dashed #e0c97a;border-radius:8px}
.arena-fight-pet-head{font-size:11px;color:#5b4628;display:flex;justify-content:space-between;align-items:baseline;margin-bottom:2px}
.arena-fight-pet-head span{font-size:10px;color:#a9a190}
.arena-fight-pet-hp{font-size:11px;color:#5b4628;margin:0 0 4px}
.arena-fight-vs{display:grid;place-items:center;font-size:20px;font-weight:700;color:#a16d2c;background:linear-gradient(135deg,#f3ede0,#ece5d2);border-radius:50%;width:60px;height:60px;align-self:center;border:2px solid #d9d0b3}
.arena-fight-side .reward-bar{height:6px;border-radius:3px;background:#eef0eb;overflow:hidden;margin:4px 0}
.arena-fight-me .reward-bar{height:6px;background:#d7e6d8;border-radius:3px;overflow:hidden;margin:4px 0}
.arena-fight-opp .reward-bar{height:6px;background:#efded8;border-radius:3px;overflow:hidden;margin:4px 0}
.arena-fight-side .reward-bar span{display:block;height:100%;background:linear-gradient(90deg,#476f53,#6f9071);border-radius:3px;transition:width .35s ease}
.arena-fight-opp .reward-bar span{background:linear-gradient(90deg,#c25a4c,#e0825c)}

/* 日志区 */
.arena-log{background:#fbfcf9;border:1px solid #e6e9e2;border-radius:10px;padding:8px 12px;font-size:12px;color:#3c463e;max-height:160px;overflow-y:auto;line-height:1.7}
.arena-log-empty{color:#7a827a;font-style:italic;margin:0}
.arena-log-line{margin:2px 0}
.arena-log-round-head{margin:6px 0 2px;padding:4px 10px;background:linear-gradient(135deg,#476f53,#315b43);border-radius:6px;color:#fff;font-weight:700;font-size:12px;text-align:center;letter-spacing:.5px}
.arena-log-round-head .arena-log-round{display:inline-block}
.arena-log-attacker{color:#c25a4c;font-weight:700}
.arena-log-target{color:#3c463e;font-weight:700}
.arena-log-sub{color:#7a827a;font-size:11px;display:block;margin-left:14px}
.arena-tag-dmg{color:#c0392b;font-weight:700}
.arena-tag-crit{color:#c25a4c;font-weight:700;background:#fff0ee;padding:1px 4px;border-radius:6px;font-size:10px}
.arena-tag-dodge{color:#5d8f72;font-weight:700;background:#eff6ee;padding:1px 4px;border-radius:6px;font-size:10px}
.arena-tag-ls{color:#a16d2c;font-weight:700;font-size:11px}
.arena-tag-counter{color:#a65050;font-weight:700}
.arena-tag-combo{color:#476f53;font-weight:700;background:#d7e6d8;padding:1px 4px;border-radius:6px;font-size:10px}
.arena-log-end{margin:8px 0 4px;padding:8px 10px;border-radius:8px;background:#f3ede0;color:#5b4628;font-weight:700;text-align:center}
/* 竞技场战斗：被攻击者头像闪动 */
.arena-fight-side.is-shake{animation:arena-shake .35s ease-in-out}
@keyframes arena-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px) rotate(-1deg)}40%{transform:translateX(6px) rotate(1deg)}60%{transform:translateX(-4px) rotate(-.5deg)}80%{transform:translateX(4px) rotate(.5deg)}}
.arena-fight-side.is-shake .arena-fight-name b{animation:arena-flash .35s ease-in-out}
@keyframes arena-flash{0%,100%{color:inherit}50%{color:#c25a4c}}

/* 浮动伤害数字 */
.arena-float-dmg{position:absolute;font-size:14px;font-weight:700;color:#c0392b;text-shadow:0 1px 0 #fff,0 0 4px rgba(192,57,43,.18);pointer-events:none;animation:arena-float-up 2s ease-out forwards;z-index:3;letter-spacing:.5px}
.arena-float-dmg.is-crit{font-size:20px;color:#c0392b;text-shadow:0 1px 0 #fff,0 0 8px rgba(192,57,43,.5)}
.arena-float-dmg.is-combo{color:#7f5b41;text-shadow:0 1px 0 #fff}
.arena-float-dmg.is-lifesteal{color:#a16d2c;text-shadow:0 1px 0 #fff}
.arena-float-dmg.is-dodge{font-size:13px;color:#5d8f72;background:#eff6ee;border:1px solid #9bc4a4;border-radius:8px;padding:2px 8px;text-shadow:none}
@keyframes arena-float-up{0%{transform:translateY(0);opacity:1}70%{opacity:1}100%{transform:translateY(-46px);opacity:0}}

/* ================== 试炼副本（爬塔）================== */
.trial-head{padding:8px 10px;background:#f7f1e3;border:1px solid #e8dfc7;border-radius:10px;margin-bottom:10px}
.trial-head-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#5b4628;padding:2px 0}
.trial-head-row b{color:#3a2e1a;font-weight:700}
.trial-token-row span{color:#5b4628}
.trial-token-btn{margin-left:8px;padding:4px 10px;border-radius:8px;border:1px solid #b7a780;background:#fff;color:#5b4628;font-size:12px;font-weight:700;cursor:pointer}
.trial-token-btn:active{background:#f1e9d2}
.trial-head-rule{font-size:11px;color:#8a7a55;margin-top:6px;line-height:1.5}

.trial-reconnect{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;background:#fff8e1;border:1px solid #e0c97a;border-radius:10px;margin-bottom:10px;font-size:13px;color:#5b4628}
.trial-reconnect button{padding:4px 10px;border-radius:8px;border:1px solid #b7a780;background:#fff;color:#5b4628;font-size:12px;font-weight:700;cursor:pointer}
.trial-reconnect button.primary{background:#c8b273;border-color:#a48a4e;color:#fff}

.trial-floor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.trial-current-wrap{margin-bottom:8px}
.trial-next-wrap{margin-bottom:6px}
.trial-floor-card{padding:10px;border-radius:12px;border:1px solid #e6dfcf;background:#fdf9ee;display:flex;flex-direction:column;gap:4px;position:relative;transition:transform .15s ease}
.trial-floor-card.trial-floor-locked{background:#f1eee5;color:#a9a190;opacity:.85}
.trial-floor-card.trial-floor-cleared{background:#eaf3ea;border-color:#9bc2a0}
.trial-floor-card.trial-floor-unlocked{background:#fff7e3;border-color:#d6b65b;box-shadow:0 2px 6px rgba(214,182,91,.15)}
.trial-floor-card.trial-floor-finished{background:linear-gradient(135deg,#fff7e3,#fdf9ee);border-color:#d6b65b;text-align:center;align-items:center;justify-content:center;min-height:60px}
.trial-floor-card:active{transform:scale(.98)}
/* 大卡：当前层占满一行 */
.trial-floor-card.trial-floor-big{padding:14px;gap:6px;background:linear-gradient(135deg,#fff7e3,#fdf9ee);border:1px solid #d6b65b;box-shadow:0 3px 10px rgba(214,182,91,.15)}
.trial-floor-card.trial-floor-big .trial-floor-name{font-size:18px}
.trial-floor-card.trial-floor-big .trial-floor-stat{font-size:12px}
.trial-floor-card.trial-floor-big .trial-floor-reward{font-size:12px;padding:8px 10px}
/* 小卡：下一层预览 */
.trial-floor-card.trial-floor-small{padding:8px 12px;gap:2px;opacity:.95}
.trial-floor-card.trial-floor-small .trial-floor-name{font-size:13px}
.trial-floor-card.trial-floor-small .trial-floor-stat{font-size:10px}
.trial-floor-card.trial-floor-small .trial-floor-reward{font-size:10px;padding:4px 6px}
.trial-floor-card.trial-floor-small .trial-floor-head{font-size:11px}
.trial-floor-card.trial-floor-small .trial-floor-action{display:none}
.trial-floor-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#5b4628}
.trial-floor-no{font-weight:700}
.trial-floor-badge{font-size:10px;padding:2px 6px;border-radius:6px;font-weight:700}
.trial-floor-badge.is-cleared{background:#9bc2a0;color:#fff}
.trial-floor-badge.is-locked{background:#d8d2bf;color:#7e7660}
.trial-floor-badge.is-open{background:#d6b65b;color:#fff}
.trial-floor-name{font-size:15px;font-weight:700;color:#3a2e1a}
.trial-floor-card.trial-floor-locked .trial-floor-name{color:#a9a190}
.trial-floor-stat{font-size:11px;color:#5b4628;line-height:1.5}
.trial-floor-reward{font-size:11px;color:#5b4628;line-height:1.5;background:#fff8e1;padding:6px;border-radius:8px;border:1px dashed #d6b65b}
.trial-floor-tag{display:inline-block;margin-left:4px;padding:1px 4px;border-radius:4px;background:#9bc2a0;color:#fff;font-size:10px;font-weight:700}
.trial-floor-action{margin-top:6px;display:flex;justify-content:flex-end}
.trial-floor-btn{padding:6px 12px;border-radius:8px;border:1px solid #b7a780;background:#fff;color:#5b4628;font-size:12px;font-weight:700;cursor:pointer}
.trial-floor-btn:disabled{background:#f1eee5;color:#a9a190;cursor:not-allowed}
.trial-floor-btn.primary{background:#c8b273;border-color:#a48a4e;color:#fff}
.trial-floor-btn.primary:active{background:#a48a4e}
/* 底部"挑战下一层"主按钮（占满） */
.trial-next-btn{flex:1;padding:12px 14px;border-radius:10px;border:0;background:linear-gradient(135deg,#a48a4e,#5b4628);color:#fff;font-size:15px;font-weight:700;cursor:pointer}
.trial-next-btn:active{background:#5b4628}

/* 试炼战斗面板 */
.trial-fight-speed{font-size:12px;color:#5b4628;background:#f7f1e3;padding:6px 10px;border-radius:8px;margin:0 0 8px;text-align:center}
.trial-fight-speed b{color:#3a2e1a}
.trial-fight-card{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:stretch;background:#fdf9ee;border:1px solid #e6dfcf;border-radius:12px;padding:10px;margin-bottom:8px}
.trial-fight-side{padding:10px;border-radius:10px;background:#fff;border:1px solid #e6dfcf;display:flex;flex-direction:column;gap:4px;position:relative;min-height:90px}
.trial-fight-side.trial-fight-me{border-color:#a48a4e;background:#fffaef}
.trial-fight-side.trial-fight-boss{border-color:#c46a4a;background:#fff5ef}
.trial-fight-power{font-size:11px;color:#a16d2c;font-weight:700;background:#fff8e1;padding:3px 8px;border-radius:6px;display:inline-block;align-self:flex-start;border:1px solid #e7d8a5}
.trial-fight-power b{font-size:13px;color:#5b4628}
.trial-fight-name{font-size:15px;font-weight:700;color:#3a2e1a;display:flex;align-items:baseline;gap:6px}
.trial-fight-lv{font-size:11px;color:#8a7a55;font-weight:500}
.trial-fight-hp-row{font-size:12px;color:#5b4628;margin:2px 0}
.trial-fight-pet{margin-top:8px;padding:6px 8px;background:#fffaef;border:1px dashed #e0c97a;border-radius:8px}
.trial-fight-pet-head{font-size:11px;color:#5b4628;display:flex;justify-content:space-between;align-items:baseline;margin-bottom:2px}
.trial-fight-pet-head span{font-size:10px;color:#a9a190}
.trial-fight-pet-hp{font-size:11px;color:#5b4628;margin:0 0 4px}
.trial-fight-vs{align-self:center;font-size:14px;font-weight:700;color:#c46a4a;background:#fdf9ee;padding:4px 8px;border-radius:50%;border:1px solid #e6dfcf}

.trial-log{max-height:200px;overflow-y:auto;padding:8px;background:#fdf9ee;border:1px solid #e6dfcf;border-radius:10px;margin-top:6px}
.trial-log-empty{font-size:12px;color:#a9a190;text-align:center;margin:0}
.trial-log-line{font-size:12px;color:#3a2e1a;padding:4px 0;border-bottom:1px dashed #ece6d4;line-height:1.5}
.trial-log-line:last-child{border-bottom:0}
.trial-log-round-head{margin:6px 0 2px;padding:4px 10px;background:linear-gradient(135deg,#a48a4e,#5b4628);border-radius:6px;color:#fff;font-weight:700;font-size:12px;text-align:center;letter-spacing:.5px}
.trial-log-round-head .trial-log-round{display:inline-block}
.trial-log-attacker{color:#c25a4c;font-weight:700}
.trial-log-target{color:#5b4628;font-weight:700}
.trial-log-sub{color:#7a827a;font-size:11px;display:block;margin-left:14px}
.trial-tag-dodge{color:#5d8f72;font-weight:700;background:#eff6ee;padding:1px 4px;border-radius:6px;font-size:10px}
.trial-tag-ls{color:#a16d2c;font-weight:700;font-size:11px}
.trial-tag-combo{color:#476f53;font-weight:700;background:#d7e6d8;padding:1px 4px;border-radius:6px;font-size:10px}
.trial-tag-crit{color:#c25a4c;font-weight:700;background:#fbe7e0;padding:1px 4px;border-radius:6px;font-size:10px}
.trial-tag-dmg{color:#c0392b;font-weight:700}
.trial-tag-first{color:#9b6a00;font-weight:700;background:#fff3b0;padding:1px 6px;border-radius:6px;font-size:11px;margin-left:6px}
.trial-log-end{margin:8px 0 4px;padding:8px 10px;border-radius:8px;background:#f3ede0;color:#5b4628;font-weight:700;text-align:center;font-size:13px}
/* 试炼战斗：被攻击者头像闪动 */
.trial-fight-side.is-shake{animation:trial-shake .35s ease-in-out}
@keyframes trial-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px) rotate(-1deg)}40%{transform:translateX(6px) rotate(1deg)}60%{transform:translateX(-4px) rotate(-.5deg)}80%{transform:translateX(4px) rotate(.5deg)}}
.trial-fight-side.is-shake .trial-fight-name b{animation:trial-flash .35s ease-in-out}
@keyframes trial-flash{0%,100%{color:inherit}50%{color:#c25a4c}}

/* 试炼浮动伤害数字 */
.trial-float-dmg{position:absolute;font-size:14px;font-weight:600;color:#c0392b;text-shadow:0 1px 0 #fff;pointer-events:none;animation:trial-float-up 2s ease-out forwards}
.trial-float-dmg.is-crit{font-size:18px;color:#c0392b;text-shadow:0 1px 0 #fff,0 0 6px rgba(192,57,43,.4)}
.trial-float-dmg.is-combo{color:#7f5b41}
@keyframes trial-float-up{from{transform:translateY(0);opacity:1}to{transform:translateY(-40px);opacity:0}}


.arena-opp-equip{padding:6px 0;font-size:12px;color:#3c463e;border-bottom:1px dashed #e6e9e2}
.arena-opp-equip:last-child{border-bottom:0}
.arena-opp-equip-list{max-height:160px;overflow-y:auto}

/* 任务 modal：外层不滚动，里面 #mission-panel-body 自带滚动框 */
.modal[data-modal-class="mission-modal"]{max-height:90vh;overflow:hidden;display:flex;flex-direction:column;padding-bottom:18px}
.modal[data-modal-class="mission-modal"] #modal-content{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.modal[data-modal-class="mission-modal"] #modal-content>#modal-title{flex:0 0 auto}
.modal[data-modal-class="mission-modal"] .daily-gift-free{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:14px;border:1px dashed #e0c98a;background:linear-gradient(135deg,#fff8e2,#fdf1cd)}
.daily-gift-free.is-claimed{border-color:#d5d7d2;background:#f4f5f1;justify-content:center;gap:8px}
.daily-gift-free-text{display:grid;gap:3px}
.daily-gift-free-text b{font-size:14px;color:#8a5a1e}
.daily-gift-free-text small,.daily-gift-free small{color:#a5946c;font-size:10px}
.daily-gift-free.is-claimed .daily-gift-free-title{font-size:13px;font-weight:700;color:#8b928b}
.donate-res-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}
.donate-res-card{padding:10px 6px;border-radius:12px;border:1px solid #e4e8e1;background:#fafcf8;text-align:center}
.donate-res-card small{display:block;font-size:10px;color:#8b948c;margin-bottom:3px}
.donate-res-card b{font-size:14px}
.donate-type-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.donate-type-card{padding:11px 8px;border-radius:12px;border:1.5px solid #e4e8e1;background:#fbfcf9;cursor:pointer;text-align:center;transition:.15s}
.donate-type-card b{display:block;font-size:13px;color:#3c463e}
.donate-type-card small{display:block;font-size:10px;color:#9aa29a;margin-top:3px}
.donate-type-card.active{border-color:#3e684f;background:#eef5ee;box-shadow:0 0 0 2px rgba(62,104,79,.12)}
.donate-type-card.active b{color:#3e684f}
.donate-amount-input{width:150px;padding:8px 12px;border:1px solid #dfe5de;border-radius:10px;background:#fbfcf9;color:#354238;font-size:14px;font-weight:700;text-align:right;outline:none;box-sizing:border-box}
.donate-amount-input:focus{border-color:#87aa8d;box-shadow:0 0 0 3px rgba(93,143,114,.10)}
.daily-gift-claim-btn{flex:0 0 auto;padding:9px 24px;border-radius:16px;border:1px solid #cfe0d2;background:#f2f8f1;color:#3e684f;font-size:13px;font-weight:700;cursor:pointer;transition:.15s}
.daily-gift-claim-btn:active{transform:scale(.95)}
.daily-gift-claim-btn:hover{background:#e7f1e6}
.gift-list{display:grid;gap:10px;margin-top:12px}
.gift-banner{position:relative;display:flex;align-items:center;gap:10px;min-height:62px;padding:12px 14px;border-radius:14px;border:1px solid #e3d9bf;background:linear-gradient(135deg,#fdf6e0,#f6ead0);cursor:pointer;overflow:hidden;transition:transform .12s}
.gift-banner:active{transform:scale(.985)}
.gift-banner.tone-b{border-color:#dfe7dd;background:linear-gradient(135deg,#f0f6ef,#e0ebdd)}
.gift-banner.tone-c{border-color:#dde4ec;background:linear-gradient(135deg,#eef3f8,#dfe7f0)}
.gift-banner.tone-d{border-color:#e4daec;background:linear-gradient(135deg,#f4effa,#e9e0f3)}
.gift-banner.tone-e{border-color:#e8dcb8;background:linear-gradient(135deg,#faf3dc,#f0e3ba)}
.gift-banner.tone-f{border-color:#e0e0dc;background:linear-gradient(135deg,#f4f4f0,#e8e8e2)}
.gift-banner-text{min-width:0}
.gift-banner-title{font-size:15px;font-weight:800;color:#8a5a1e;letter-spacing:2px}
.gift-banner.tone-b .gift-banner-title,.gift-banner.tone-c .gift-banner-title,.gift-banner.tone-d .gift-banner-title{color:#3c5a48}
.gift-banner.tone-e .gift-banner-title{color:#8a6a1e}
.gift-banner.tone-f .gift-banner-title{color:#8b928b}
.gift-banner-desc{font-size:10px;color:#a5946c;margin-top:3px}
.gift-banner.tone-b .gift-banner-desc,.gift-banner.tone-c .gift-banner-desc,.gift-banner.tone-d .gift-banner-desc{color:#8b948c}
.gift-banner-icon{margin-left:auto;font-size:30px;flex:0 0 auto;filter:drop-shadow(0 2px 3px rgba(90,70,30,.18))}
.gift-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:#e05348;box-shadow:0 0 0 2px #fff}
.mms-tabs{flex:0 0 auto}
.modal[data-modal-class="mission-modal"] #mission-panel-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;border:1px solid #d9e0d4;border-radius:14px;padding:10px 12px;background:#fbfcf9;scrollbar-width:thin;scrollbar-color:#cfd8d0 transparent;-webkit-overflow-scrolling:touch}
.modal[data-modal-class="mission-modal"] #mission-panel-body::-webkit-scrollbar{width:5px}
.modal[data-modal-class="mission-modal"] #mission-panel-body::-webkit-scrollbar-track{background:transparent}
.modal[data-modal-class="mission-modal"] #mission-panel-body::-webkit-scrollbar-thumb{background:#cfd8d0;border-radius:3px}
.modal[data-modal-class="mission-modal"] #mission-panel-body::-webkit-scrollbar-thumb:hover{background:#b3c2b5}
.main-quest-next-tip{margin:14px 0 0;padding:10px 14px;border-radius:10px;background:#fff8e6;color:#7d5b1c;font-size:12px;text-align:center;border:1px dashed #d9c890}
.main-quest-final-tip{margin:14px 0 0;padding:10px 14px;border-radius:10px;background:linear-gradient(135deg,#f3ede0,#ece5d2);color:#5b4628;font-size:13px;text-align:center;border:1px solid #d9d0b3;font-weight:700}.mission-claimed{color:#3e684f;font-weight:700}.mission-claim{padding:5px 14px;font-size:11px;border-radius:14px}.mms-tabs{display:flex;gap:6px;margin-bottom:14px}.mms-tabs button{flex:1;padding:9px 6px;border-radius:11px;background:#f1f4ef;color:#6c766d;font-size:12px;border:1px solid #e7ece5}.mms-tabs button.active{background:#e2ece3;color:#3f6d4d;font-weight:700;border-color:#cfdfd0}.mms-active{margin:0 0 12px;padding:9px 11px;border-radius:10px;background:#f4f7f3;color:#5b655b;font-size:11px}.mms-active b{color:#3f6d4d;font-weight:700}.mms-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mms-plan{padding:11px 12px;border:1px solid #e6e9e2;border-radius:12px;background:#fbfcf9;display:flex;flex-direction:column;}.mms-plan.is-active{border-color:#b8d2bd;background:#eff6ee;box-shadow:inset 0 0 0 1px #b8d2bd}.mms-plan-head{display:flex;align-items:baseline;justify-content:space-between}.mms-plan-name{font-size:13px;font-weight:700;color:#3c463e}.mms-plan-price{font-size:11px;color:#c27e39}.mms-plan-meta,.mms-plan-status{margin:0;font-size:11px;color:#7c847c}.mms-plan-status{color:#3f6d4d;font-weight:700}.mms-plan-detail{margin:0;font-size:11px;color:#5b655b;line-height:1.6;min-height:62px}.mms-plan-detail b{color:#42513f;font-weight:700}.mms-plan button{padding:9px;border-radius:18px;font-size:12px;background:#edf1ea;color:#52745d}.mms-plan button.primary{background:#3e684f;color:#fff}.mms-plan button:disabled{background:#e8ece6;color:#adb4ad}.quick-nav span[hidden]{display:none}

/* 爬山（闯关）：参考图样式 */
.climb-body{padding:6px 0 0}
.climb-figure{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:linear-gradient(180deg,#f5f0e3,#ede5d2);border:1px solid #d6c7a0;border-radius:14px;margin-bottom:14px;position:relative;overflow:hidden}
.climb-avatar-side{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:80px}
.climb-avatar-frame{width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,#f3d57a,#be8750);border:2px solid #fff;box-shadow:0 3px 8px rgba(190,135,80,.35);display:grid;place-items:center;color:#3c2410;font-size:18px;font-weight:800}
.climb-avatar-mark{font-size:18px}
.climb-avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.climb-avatar-name{font-size:12px;font-weight:700;color:#3c2410;max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.climb-floor-tag{font-size:11px;font-weight:700;color:#5b4628;background:#fff;border:1px solid #be8750;border-radius:10px;padding:2px 8px;white-space:nowrap}
.climb-max-tag{font-size:10px;color:#7d5b1c;background:rgba(255,255,255,.6);border-radius:8px;padding:1px 6px;white-space:nowrap}
.climb-enemy-block{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;z-index:1;min-width:0}
.climb-enemy-emoji{font-size:54px;line-height:1;filter:drop-shadow(0 3px 6px rgba(0,0,0,.18));animation:climb-enemy-bob 2.5s ease-in-out infinite}
@keyframes climb-enemy-bob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(-2deg)}}
.climb-enemy-name{font-size:13px;font-weight:700;color:#5b4628}
.climb-enemy-power{display:inline-flex;gap:6px;align-items:baseline;background:rgba(255,255,255,.55);padding:2px 10px;border-radius:10px;font-size:11px;color:#7d5b1c}
.climb-enemy-power b{color:#a6550c;font-size:13px;font-weight:800}
.climb-reward-section{margin:0 0 14px;padding:0 4px}
.climb-section-title{font-size:13px;font-weight:700;color:#3c463e;margin-bottom:8px;display:flex;align-items:center;gap:6px;justify-content:center}
.climb-section-title::before,.climb-section-title::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,#d6c7a0,transparent);max-width:60px}
.climb-reward-text{text-align:center;font-size:13px;color:#52745d;font-weight:600;line-height:1.7;background:#f7f9f4;border:1px dashed #d6c7a0;border-radius:10px;padding:9px 12px}
/* 怪物一级 / 二级属性行（只显示怪物，玩家信息去掉后） */
.climb-enemy-stats{display:flex;flex-direction:column;gap:5px;align-items:center;margin-top:4px}
.climb-enemy-stat-row{display:inline-flex;gap:6px;flex-wrap:wrap;justify-content:center;background:rgba(255,255,255,.55);padding:3px 10px;border-radius:10px;font-size:11px;color:#5b655b;line-height:1.4}
.climb-enemy-stat-row b{color:#3f4d3f;font-weight:700;margin:0 2px}
.climb-enemy-stat-row.primary b{color:#5b4628}
.climb-enemy-stat-row.secondary b{color:#a65050}
/* 爬山排行榜 */
.climb-rank-list{display:flex;flex-direction:column;gap:6px;max-height:54vh;overflow-y:auto;padding-right:4px}
.climb-rank-row{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:8px 12px;background:#fbfcf9;border:1px solid #e6e9e2;border-radius:10px}
.climb-rank-row.is-self{border-color:#be8750;background:#fff8e8}
.climb-rank-idx{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#f0f0e8;color:#5b4628;font-size:13px;font-weight:800}
.climb-rank-row[data-top="1"] .climb-rank-idx{background:linear-gradient(135deg,#f3d57a,#be8750);color:#fff}
.climb-rank-row[data-top="2"] .climb-rank-idx{background:linear-gradient(135deg,#d6d6d6,#a8a8a8);color:#fff}
.climb-rank-row[data-top="3"] .climb-rank-idx{background:linear-gradient(135deg,#d99a6a,#a36035);color:#fff}
.climb-rank-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.climb-rank-info b{font-size:13px;color:#3c463e;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.climb-rank-info small{font-size:11px;color:#7c847c}
.climb-rank-floor{font-size:14px;font-weight:800;color:#a6550c;white-space:nowrap}
/* 爬山战斗记录弹窗 */
.climb-log-modal{padding:4px 0}
.climb-log-result{text-align:center;font-size:14px;font-weight:700;color:#3c463e;margin-bottom:14px}
.climb-log-win{color:#3e684f}
.climb-log-lose{color:#a65050}
.climb-log-vs{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 12px;background:linear-gradient(180deg,#f5f0e3,#ede5d2);border-radius:12px;margin-bottom:12px}
.climb-log-side{flex:1;text-align:center;min-width:0}
.climb-log-side-name{font-size:13px;font-weight:800;color:#3c2410;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.climb-log-side-sub{font-size:11px;color:#7d5b1c;margin-top:3px}
.climb-log-vs-mark{font-size:15px;font-weight:900;color:#be8750;flex:0 0 auto}
.climb-log-reward{text-align:center;font-size:12px;color:#52745d;background:#f7f9f4;border-radius:10px;padding:10px 12px}
.climb-go-btn{width:100%;padding:13px;border-radius:28px;background:linear-gradient(135deg,#d97a4a,#b85a30);color:#fff;font-size:15px;font-weight:800;border:none;cursor:pointer;transition:.15s}
.climb-go-btn:hover{transform:translateY(-1px)}
.climb-go-btn:active{transform:translateY(0)}
.climb-go-btn:disabled{background:#d6dbd2;color:#9aa6a0;cursor:not-allowed;transform:none}

/* 镇妖塔（30 层 × 10 关，1-9 小怪 / 10 BOSS） */
.tower-body{padding:0 0 4px}
.tower-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:space-between;padding:8px 12px;background:linear-gradient(135deg,#3c2c20,#1d150f);border-radius:10px;color:#f3d57a;margin-bottom:10px}
.tower-title{font-size:15px;font-weight:800;letter-spacing:2px;color:#f3d57a}
.tower-progress{font-size:11px;color:#e8c89a;background:rgba(0,0,0,.3);padding:3px 8px;border-radius:10px}
.tower-reset{font-size:11px;color:#a0a8a0;background:rgba(255,255,255,.05);padding:3px 8px;border-radius:10px;font-family:Menlo,Consolas,monospace}
.tower-enemy-card{position:relative;text-align:center;padding:16px 10px 14px;background:linear-gradient(180deg,#fff5e0,#fde6c8);border:1px solid #be8750;border-radius:14px;margin-bottom:10px;overflow:hidden}
.tower-enemy-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,#d97a4a,#f3d57a,#d97a4a)}
.tower-enemy-emoji{font-size:72px;line-height:1;filter:drop-shadow(0 4px 8px rgba(0,0,0,.18));animation:tower-bob 2.5s ease-in-out infinite;margin-bottom:6px}
@keyframes tower-bob{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.02)}}
.tower-enemy-name{font-size:14px;font-weight:800;color:#5b4628;margin-bottom:4px}
.tower-enemy-meta{font-size:11px;color:#7d5b1c;margin-bottom:6px}
.tower-enemy-stats{font-size:11px;color:#52745d;background:rgba(255,255,255,.6);padding:5px 8px;border-radius:8px;display:inline-block;margin-bottom:3px}
.tower-enemy-secondary{font-size:11px;color:#7c5a2a;background:rgba(255,235,200,.6);padding:5px 8px;border-radius:8px;display:inline-block}
.tower-special-key{position:absolute;top:10px;right:10px;background:linear-gradient(135deg,#d97a4a,#b85a30);color:#fff;font-size:10px;font-weight:800;padding:3px 8px;border-radius:8px;box-shadow:0 2px 6px rgba(184,90,48,.4)}
.tower-bonus-section{background:#fbfcf9;border:1px solid #e6e9e2;border-radius:12px;padding:10px 12px;margin-bottom:0}
.tower-bonus-title{font-size:12px;font-weight:700;color:#3c463e;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.tower-bonus-title::before{content:"";width:3px;height:10px;background:#be8750;border-radius:2px}
.tower-bonus-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.tower-bonus-card{position:relative;padding:0 4px;background:linear-gradient(180deg,#fff8e8,#fff);border:1px solid #f0d8a0;border-radius:8px;text-align:center;cursor:pointer;transition:.15s;display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:54px}
.tower-bonus-card:hover{transform:translateY(-1px);border-color:#d97a4a;box-shadow:0 3px 8px rgba(217,122,74,.2)}
.tower-bonus-label{font-size:11px;color:#7d5b1c;font-weight:600}
.tower-bonus-value{font-size:12px;color:#a6550c;font-weight:800}
/* 4 槽（顶部）+ 12 类型文字列表（底部，叠加时点击） */
.tower-bonus-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:6px 0 10px}
.tower-bonus-slot{position:relative;padding:8px 4px;background:linear-gradient(180deg,#fff8e8,#fff);border:1px solid #e6d4af;border-radius:9px;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:58px}
.tower-bonus-slot.is-filled{border-color:#d18b3a;background:linear-gradient(180deg,#fff2d3,#fff)}
.tower-bonus-slot.is-empty{background:#f5f1ea;border-style:dashed;border-color:#cfc8b8;color:#9b9484}
.tower-bonus-slot.is-filled .tower-bonus-value{color:#a6550c}
.tower-bonus-slot.is-empty .tower-bonus-value{color:#b6aea1}
.tower-bonus-types{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:4px}
.tower-bonus-type-row{display:flex;align-items:center;justify-content:space-between;padding:5px 8px;border:1px solid #eeeae2;border-radius:8px;background:#fbfaf6;font-size:12px;color:#3c463e}
.tower-bonus-type-name{font-weight:600}
.tower-bonus-type-val{color:#be8750;font-weight:800}
.tower-go-btn{width:100%;padding:13px;border-radius:28px;background:linear-gradient(135deg,#d97a4a,#b85a30);color:#fff;font-size:15px;font-weight:800;border:none;cursor:pointer;transition:.15s;margin-top:4px}
.tower-go-btn:hover{transform:translateY(-1px)}
.tower-go-btn:active{transform:translateY(0)}
/* 加成选择弹窗 */
.tower-bonus-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:6px}
.tower-bonus-pick{padding:11px 8px;border-radius:10px;background:linear-gradient(180deg,#fff8e8,#fdf0d8);border:1px solid #be8750;color:#5b4628;font-size:12px;font-weight:700;cursor:pointer;transition:.15s}
.tower-bonus-pick:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(190,135,80,.3);background:linear-gradient(180deg,#fff5e0,#fad6a0)}
.tower-bonus-pick>span{display:block}
.tower-bonus-gain{display:block;margin-top:3px;font-size:10px;font-style:normal;font-weight:800;color:#a6550c;opacity:.9}

/* 宗门战新规则：VS 对决 + 多人挑战 + 积分 */
.sw-status-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center;padding:8px 12px;background:linear-gradient(135deg,#f7f3ff,#ece6fb);border:1px solid #d6c8ec;border-radius:10px;font-size:12px;color:#5b4a78;margin-bottom:14px}
.sw-status-bar b{color:#3d2c5a;font-weight:800;margin:0 2px}
.sw-rule{margin:-8px 0 12px;text-align:center;font-size:11px;color:#8a7fa6;line-height:1.6}
.sw-bot-tag{display:inline-block;margin-left:5px;padding:1px 6px;border-radius:8px;background:#e8ddff;color:#6a4fa3;font-size:10px;font-style:normal;font-weight:700;vertical-align:middle}
.sw-vs{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:stretch;background:linear-gradient(180deg,#faf3e2,#f0e1bf);border:1px solid #d6c7a0;border-radius:14px;padding:14px 10px;margin-bottom:14px;position:relative;overflow:hidden}
.sw-vs::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,#be875066,transparent);pointer-events:none}
.sw-vs-side{display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;z-index:1}
.sw-side-art{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.55),transparent 70%)}
.sw-art-icon{font-size:48px;line-height:1;filter:drop-shadow(0 3px 6px rgba(0,0,0,.2))}
.sw-title{font-size:15px;font-weight:800;color:#5b4628;letter-spacing:1px;margin-top:2px}
.sw-stats{width:100%;display:flex;flex-direction:column;gap:5px;background:rgba(255,255,255,.6);border-radius:10px;padding:8px 10px}
.sw-stat-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#7d5b1c;line-height:1.4}
.sw-stat-row b{color:#a6550c;font-weight:800}
.sw-vs-divider{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;align-self:center;position:relative;z-index:1}
.sw-vs-flame{font-size:24px;color:#d97a4a;font-weight:900;line-height:1;filter:drop-shadow(0 0 4px rgba(217,122,74,.4))}
.sw-empty{margin:0;font-size:11px;color:#9aa6a0;text-align:center;padding:8px 0}
.sw-go-btn{width:100%;padding:12px;border-radius:24px;background:linear-gradient(135deg,#d97a4a,#b85a30);color:#fff;font-size:14px;font-weight:800;border:none;cursor:pointer;box-shadow:0 3px 10px rgba(184,90,48,.3);transition:.15s}
.sw-go-btn:hover{transform:translateY(-1px)}
.sw-go-btn:active{transform:translateY(0)}
/* 对方成员列表 */
.sw-member-list{display:flex;flex-direction:column;gap:8px;max-height:54vh;overflow-y:auto;padding-right:4px}
.sw-member-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px 12px;background:#fbfcf9;border:1px solid #e6e9e2;border-radius:10px;transition:.15s}
.sw-member-row:hover{border-color:#be8750;background:#fff}
.sw-member-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.sw-member-info b{font-size:13px;color:#3c463e;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sw-member-meta{font-size:11px;color:#7c847c}
.sw-member-side{display:flex;flex-direction:column;gap:3px;align-items:flex-end}
.sw-q{display:inline-block;min-width:24px;padding:1px 6px;border-radius:8px;background:#f0f0e8;color:#5b4628;font-size:11px;font-weight:700;text-align:center}
.sw-q[data-q="gold"]{background:linear-gradient(135deg,#f3d57a,#be8750);color:#fff}
.sw-q[data-q="red"]{background:#d9534f;color:#fff}
.sw-q[data-q="orange"]{background:#e88e4d;color:#fff}
.sw-q[data-q="purple"]{background:#8e6cc4;color:#fff}
.sw-q[data-q="blue"]{background:#5b8cc4;color:#fff}
.sw-q[data-q="green"]{background:#7ab87a;color:#fff}
.sw-score{font-size:10px;color:#7c847c}
.sw-challenge-btn{padding:7px 14px;border-radius:16px;background:linear-gradient(135deg,#a370d4,#7e5dd6);color:#fff;font-size:12px;font-weight:700;border:none;cursor:pointer;box-shadow:0 2px 6px rgba(126,93,214,.3);transition:.15s}
.sw-challenge-btn:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(126,93,214,.45)}
.sw-challenge-btn:disabled{background:#d6dbd2;color:#9aa6a0;cursor:not-allowed;box-shadow:none;transform:none}

/* ============ 宝石系统 ============ */
/* 装备槽左上角宝石小圆点：纯色圆（无外圈），背景色按状态变（锁/空/已嵌） */
.gear-gem-dot{position:absolute;left:2px;top:2px;width:8px;height:8px;border-radius:50%;display:grid;place-items:center;z-index:3;overflow:hidden}
.gear-gem-dot svg{display:block}
.gear-slot{position:absolute} /* 强化 position 让 dot 的 absolute 生效 */
/* 装备详情 modal 内的 6 个宝石孔（圆角矩形 + 内嵌宝石形状） */
.gem-sockets{margin:10px 0 4px;padding:10px 12px;border:1px solid #e8e4dc;border-radius:12px;background:#fbfaf6}
.gem-socket-tip{margin:0 0 9px;color:#8d918c;font-size:11px;line-height:1.6}
.gem-socket-tip b{color:#3e684f;font-weight:700}
.gem-sockets-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.gem-socket{aspect-ratio:1/1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px;border:1.5px solid var(--socket-border,#d8dbd4);border-radius:9px;background:#fff;cursor:pointer;transition:.15s;position:relative}
.gem-socket.is-locked{background:#eeeae2;border:1px dashed #bdbdb6;cursor:not-allowed;color:#b3b6b1;opacity:.7}
.gem-socket.is-empty{color:#a8aea8;background:var(--socket-color,#fff)}
.gem-socket.is-filled{background:var(--socket-color,#bbdefb);border-color:var(--socket-border,#2196f3);box-shadow:inset 0 0 0 1px rgba(255,255,255,.5), 0 1px 4px rgba(0,0,0,.06);cursor:pointer}
.gem-socket:active{transform:scale(.96)}
.gem-socket .lock-mark{font-size:14px;line-height:1}
.gem-socket .gem-empty{font-size:18px;line-height:1;color:#c8ccc8;font-weight:600}
.gem-socket .gem-shape{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px}
.gem-socket .gem-shape svg{display:block;width:32px;height:32px;pointer-events:none}
.gem-socket .socket-bonus{font-size:9px;color:#3a4640;font-weight:700}
/* 宝石嵌入 modal */
.gem-picker-summary{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:11px;background:#f4f7f3;margin-bottom:10px}
.gem-picker-summary b{font-size:13px;color:#3a4640;display:block}
.gem-picker-summary small{font-size:11px;color:#5b655b}
.gem-picker-summary .gem-picker-shape{padding:4px 6px;border-radius:8px;background:#fff;border:1px solid #dbe2dc;display:inline-flex}
.gem-target-list{border:1px solid #eeeae2;border-radius:11px;padding:6px 10px;margin-bottom:10px;max-height:30vh;overflow-y:auto}
.gem-target-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px dashed #eeeae2;font-size:12px;color:#3c463e;cursor:pointer}
.gem-target-row:last-child{border-bottom:0}
.gem-target-row input{accent-color:#3e684f}
.gem-target-name{flex:1;font-weight:600;color:#3c463e}
.gem-target-meta{font-size:11px;color:#7c847c}
.gem-slot-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px;color:#5b655b;font-size:12px}
.gem-slot-row select{padding:7px 9px;border:1px solid #e1e5df;border-radius:9px;background:#fbfcf9;color:#4f5d52}
/* 合成宝石 modal */
.gem-compose-types,.gem-compose-qualities{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0}
.gem-compose-type,.gem-compose-quality{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 4px;border:1.5px solid var(--gem-color,#d8dbd4);border-radius:10px;background:#fff;color:#3c463e;font-size:11px;cursor:pointer;transition:.15s}
.gem-compose-type input,.gem-compose-quality input{accent-color:#3e684f;margin:0}
.gem-compose-type span,.gem-compose-quality span{display:inline-flex;align-items:center;gap:3px}
.gem-compose-bonus{color:#3a7c4a;font-weight:700}
.gem-compose-cost{color:#a26b58;font-size:10px}
/* 背包宝石 tab 列表 */
.gem-bag-tip{margin:0 0 10px;color:#7c847c;font-size:11px;line-height:1.6}
.gem-bag-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.gem-bag-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--gem-color,#e7e2d9);border-radius:10px;background:#fff}
.gem-bag-shape{flex:0 0 auto;padding:3px;border-radius:7px;background:var(--gem-color,#f4f7f3);display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center}
.gem-bag-meta{flex:1;min-width:0}
.gem-bag-meta b{display:block;font-size:13px;color:#3c463e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gem-bag-meta small{display:block;color:#7c847c;font-size:10px;margin-top:1px}
.gem-bag-actions{display:flex;flex-direction:column;gap:4px;flex:0 0 auto}
.gem-bag-actions button{padding:4px 9px;border-radius:11px;background:#edf2eb;color:#52745d;font-size:11px;border:0;cursor:pointer}
.gem-bag-actions button+button{background:#f7ebe6;color:#a4665a}
/* 邮件附件：宝石行（蓝色品质的小标签，按类型形状展示） */
.mail-reward-gems{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.mail-gems-row{display:inline-flex;flex-wrap:wrap;gap:4px}
.mail-gem-chip{display:inline-flex;align-items:center;justify-content:center;padding:3px 4px;min-width:24px;height:24px;border-radius:7px;background:var(--gem-color,#e0e4df);border:1px solid rgba(0,0,0,.08);position:relative}.mail-gem-count{position:absolute;right:-5px;bottom:-5px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#3e684f;color:#fff;font-size:10px;font-weight:700;font-style:normal;line-height:16px;text-align:center;box-shadow:0 0 0 2px #fff}
.mail-gem-chip svg{display:block}

/* 合成宝石 modal 预览（3 颗 → 1 颗） */
.gem-combine-panel{margin:10px 0 4px;padding:10px 12px;border:1px solid #e4e8e1;border-radius:12px;background:#f7faf6}
.gem-combine-panel.is-ready{border-color:#b7d3ba;background:#f0f7ef}
.gem-combine-panel .gem-combine-preview{margin:0 0 6px;padding:2px 0}
.gem-combine-panel .gem-combine-preview .gem-bag-shape{width:34px;height:34px}
.gem-combine-hint{margin:0!important;font-size:10.5px!important;line-height:1.6!important;color:#7c847c}
.gem-combine-hint b{color:#3e684f}
.gem-combine-panel.is-ready .gem-combine-hint b{color:#2f7a3f}
.modal .modal-actions button.gem-combine-btn{background:#e6eae2;color:#9aa6a0;cursor:not-allowed}
.modal .modal-actions button.gem-combine-btn.is-ready{background:#3e684f;color:#fff;cursor:pointer;box-shadow:0 4px 10px rgba(62,104,79,.22)}
.gem-combine-preview{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 4px;margin:0 0 10px}
.gem-combine-preview .gem-bag-shape{width:42px;height:42px}
.gem-combine-x{color:#5b655b;font-weight:700}
.gem-combine-arrow{color:#8aa18d;font-size:18px;font-weight:700}
/* 嵌入宝石 modal：列背包宝石分组，每行一颗宝石 + "嵌入" 按钮 */
.gem-pick-list{max-height:46vh;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding-right:4px}
.gem-pick-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--gem-color,#e7e2d9);border-radius:10px;background:#fff}
.gem-pick-row .gem-bag-shape{width:30px;height:30px}
.gem-pick-meta{flex:1;min-width:0}
.gem-pick-meta b{display:block;font-size:13px;color:#3c463e}
.gem-pick-meta small{display:block;color:#7c847c;font-size:10px;margin-top:1px}
.gem-pick-row button{padding:5px 11px;border-radius:11px;background:#3e684f;color:#fff;font-size:11px;border:0;cursor:pointer;flex:0 0 auto}
.gem-pick-row button:disabled{background:#d6dbd2;color:#9aa6a0;cursor:not-allowed}
/* 背包宝石 tab 的合成按钮（满 3 颗可点，否则 disabled 提示还需几颗） */
.gem-bag-actions button:disabled{background:#e6e9e4;color:#9aa6a0;cursor:not-allowed}
.gem-bag-actions button:disabled:hover{background:#e6e9e4}

/* ============ 竞技场排行榜 ============ */
.arena-rank-btn{width:100%;margin-top:2px}
.arena-leaderboard-wrap{display:flex;flex-direction:column;gap:10px}
.arena-rank-my{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;border-radius:12px;background:#f4f7f3;color:#5b655b;font-size:13px;flex-wrap:wrap}
.arena-rank-my b{color:#3e684f;font-weight:800;font-size:14px}
.arena-reward-title,.arena-rank-title{margin:6px 0 0;font-size:12px;font-weight:800;color:#3f6d4d}
.arena-reward-list{display:flex;flex-direction:column;gap:6px}
.arena-reward-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;border:1px solid #e7eae3;border-radius:10px;background:#fbfcf9;font-size:12px;color:#4a564d}
.arena-reward-row b{font-weight:700}
.gem-mini{display:inline-block;padding:2px 7px;border-radius:8px;font-size:10px;font-weight:700;margin-left:3px}
.gem-mini.quality-blue{background:#e6f0f7;color:#3b7aa6}
.gem-mini.quality-purple{background:#f1e8f6;color:#7d54a6}
.gem-mini.quality-orange{background:#fdf0df;color:#b9781f}
.gem-mini.quality-red{background:#fbe7e4;color:#c04a40}
.gem-mini.quality-gold{background:#fbf2d3;color:#a17a1a}
.arena-rank-list{display:flex;flex-direction:column;gap:6px;max-height:40vh;overflow-y:auto;padding-right:2px}
.arena-rank-row{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid #e7eae3;border-radius:10px;background:#fbfcf9;font-size:12px;color:#4a564d}
.arena-rank-row.is-self{border-color:#9bc4a4;background:#f4f9f3}
.arena-rank-no{width:22px;text-align:center;font-weight:800;color:#a16d2c;flex:0 0 auto}
.arena-rank-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.arena-rank-lv{color:#8b938b;font-size:11px;flex:0 0 auto}
.arena-rank-wins{color:#3e684f;font-weight:700;flex:0 0 auto}

/* ============ 出售价格含会员加成的小字说明 ============ */
.sell-bonus-note{font-size:11px;color:#a16d2c;text-align:center;margin:6px 0 0}
.sell-bonus-mini{font-size:10px;font-weight:700;color:#a16d2c;margin-left:2px}

/* ============ 自动炼器装备列表（运行中）与停止后清单 ============ */
.auto-item-list{display:flex;flex-direction:column;gap:6px;max-height:44vh;overflow-y:auto;margin-top:8px;padding-right:2px}
.auto-item-row{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:8px 10px;border:1px solid #e7eae3;border-left-width:3px;border-radius:10px;background:#fbfcf9;font-size:12px;color:#4a564d}
.auto-item-row:active{background:#f4f7f3}
.auto-item-name{font-weight:700;flex:0 0 auto}
.auto-item-qual{color:#8b938b;font-size:11px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
.auto-item-power{color:#8b938b;font-size:11px;flex:0 0 auto}
.auto-stop-list{display:flex;flex-direction:column;gap:2px;margin-top:4px}
.auto-item-row.quality-white{border-left-color:#9c9c9a}.auto-item-row.quality-white .bag-icon{color:#9c9c9a}
.auto-item-row.quality-green{border-left-color:#3a7c4a}.auto-item-row.quality-green .bag-icon{color:#3a7c4a}
.auto-item-row.quality-blue{border-left-color:#4d8ac1}.auto-item-row.quality-blue .bag-icon{color:#4d8ac1}
.auto-item-row.quality-purple{border-left-color:#9560c4}.auto-item-row.quality-purple .bag-icon{color:#9560c4}
.auto-item-row.quality-orange{border-left-color:#d77f3a}.auto-item-row.quality-orange .bag-icon{color:#d77f3a}
.auto-item-row.quality-red{border-left-color:#d56f65}.auto-item-row.quality-red .bag-icon{color:#d56f65}
.auto-item-row.quality-gold{border-left-color:#d9b64c}.auto-item-row.quality-gold .bag-icon{color:#d9b64c}

/* ============ 停止自动炼器清单：装备去向小标签 ============ */
.auto-stop-tag{font-size:11px;font-weight:700;color:#8b938b;padding:4px 8px;border-radius:8px;background:#f4f7f3;white-space:nowrap}

/* ============ 自动炼器：炼器炉运转动画 + 装备出炉动效 ============ */
.forge-anim-row{display:flex;align-items:center;gap:10px;margin:2px 0 8px}
.forge-anim-text{display:flex;flex-direction:column;gap:2px}
.forge-anim-text b{font-size:14px;color:#3e684f}
.forge-anim-text small{font-size:12px;color:#8b938b}
.forge-anim-svg{width:54px;height:54px;flex:0 0 auto}
.forge-flame{transform-box:fill-box;transform-origin:50% 100%;animation:forgeFlame 1.1s ease-in-out infinite}
.forge-glow{transform-box:fill-box;transform-origin:50% 50%;animation:forgeGlow 1.4s ease-in-out infinite}
@keyframes forgeFlame{0%,100%{transform:scaleY(1) scaleX(1)}45%{transform:scaleY(1.3) scaleX(.92)}70%{transform:scaleY(.9) scaleX(1.06)}}
@keyframes forgeGlow{0%,100%{opacity:.3}50%{opacity:.72}}
.auto-item-new{animation:autoItemIn .45s ease-out}
@keyframes autoItemIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}

/* ============ 自动炼器列表：宝石款一行框 ============ */
.auto-gem-row{width:100%;text-align:left;cursor:pointer;font:inherit}
.auto-gem-row .gem-bag-shape{background:var(--gem-bg,#f4f7f3)}
.auto-gem-row .bag-icon{color:var(--gem-color,#4a564d);display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center}
.auto-gem-row .bag-icon svg{width:100%;height:100%;display:block}
.auto-gem-row .auto-item-power{flex:0 0 auto;font-size:12px;font-weight:700}

/* ============ 自动炼器列表：单行排开不换行 ============ */
.auto-gem-row{display:flex;align-items:center;gap:8px;white-space:nowrap}
.auto-gem-row .auto-line-name{font-size:13px;font-weight:700;color:#3c463e;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.auto-gem-row .auto-line-sub{font-size:11px;color:#8b938b;flex:0 0 auto;white-space:nowrap}
.auto-gem-row .auto-item-power{margin-left:auto;flex:0 0 auto;white-space:nowrap}

/* ============ 自动炼器列表：宝石孔式方块网格 ============ */
.auto-gem-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:8px}
.auto-gem-cell{width:100%;min-width:0}
.auto-gem-cell .auto-cell-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;color:var(--socket-border,#4a564d)}
.auto-gem-cell .auto-cell-icon svg{width:100%;height:100%;display:block}
.auto-gem-cell .auto-cell-name{font-size:10px;font-weight:700;color:#3c463e;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}
.auto-gem-cell .auto-item-power{font-size:10px;font-weight:700;line-height:1.25;white-space:nowrap}

/* ============ 自动炼器方块：战力涨跌颜色 + 背景透明度修正 ============ */
.auto-item-power.power-up{color:#3f8f5a}
.auto-item-power.power-down{color:#d3564f}
.auto-item-power.power-same{color:#9aa6a0}

/* ============ 停止炼器清单：方块格状态标注 ============ */
.auto-gem-cell .auto-cell-price{font-size:10px;font-weight:700;color:#3f8f5a;line-height:1.25;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.auto-gem-cell .auto-cell-state{font-size:10px;font-weight:700;color:#8b938b;line-height:1.25;white-space:nowrap}
.auto-gem-cell.is-handled{opacity:.55}

/* 爬山：今日剩余通关次数提示（第31批 每日上限 10 次） */
.climb-daily-tip{margin:10px 0 0;font-size:12px;color:#6f786f;text-align:center;line-height:1.6}
.climb-daily-tip b{color:#3f8f5a;font-weight:700}

/* ============================================================
 * 头像 / 头像框 / 称号（第33批重做）
 * 结构：.avatar[data-avatar-frame] > .avatar-frame(框层) + .avatar-face(内容层)
 *       头像框与称号均走「后端下发 + 前端降级」：字段为空时无框、无称号，
 *       因此后续做系统时只需后端加字段 + renderAvatar 赋值 + 选择器加 tab，
 *       不需要再改 DOM / CSS。
 * ============================================================ */
.avatar{--avatar-color:#3e7d5b;--avatar-tint:#e8f2ec;--avatar-ring:#a9c9b6;width:56px;height:56px;padding:0;border:0;background:none;position:relative;flex:0 0 auto}
.avatar .avatar-frame{position:absolute;inset:0;border-radius:50%;pointer-events:none;
  /* 默认「无框」：仅一圈淡金细环 + 内阴影，保证玉璧有边界 */
  border:1px solid var(--avatar-ring);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.avatar .avatar-face{position:absolute;inset:4px;border-radius:50%;overflow:hidden;display:grid;place-items:center;
  background:radial-gradient(circle at 50% 32%,var(--avatar-tint) 0,#f2f5f1 78%);
  border:1px solid color-mix(in srgb,var(--avatar-ring) 60%,#fff)}
.avatar .avatar-face span{position:relative;z-index:1;color:var(--avatar-color);font-size:20px;font-weight:700;line-height:1;text-shadow:0 1px 0 rgba(255,255,255,.6)}
.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;border-radius:50%}
.avatar.has-image .avatar-face span{display:none}

/* --- 头像框（预留）：data-avatar-frame 驱动，后续新增框只需加一条 --- */
.avatar[data-avatar-frame="jade"] .avatar-frame{border:2px solid #6fa88a;box-shadow:0 0 0 1px rgba(111,168,138,.32),0 0 10px rgba(111,168,138,.35)}
.avatar[data-avatar-frame="gold"] .avatar-frame{border:2px solid #cd9b4e;box-shadow:0 0 0 1px rgba(205,155,78,.35),0 0 12px rgba(205,155,78,.45)}
.avatar[data-avatar-frame="dragon"] .avatar-frame{border:2px solid #b5533c;box-shadow:0 0 0 1px rgba(181,83,60,.35),0 0 14px rgba(181,83,60,.5)}
.avatar[data-avatar-frame="none"] .avatar-frame{border:1px solid var(--avatar-ring);box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}

/* --- 名字 + 称号 --- */
.player-brief{display:flex;flex-direction:column;gap:3px;min-width:0}
.player-name-row{display:flex;align-items:center;gap:6px;min-width:0}
.player-brief b{font-size:13px;color:#3c463e;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.player-title{flex:0 0 auto;max-width:104px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:700;line-height:1;padding:3px 7px;border-radius:8px;color:#8a6224;background:linear-gradient(135deg,#fdf3dd,#f6e6c2);border:1px solid #e2cfa0}
.player-title[hidden]{display:none}
.player-brief small{display:flex;align-items:center;gap:9px;font-size:11px;color:#7c847c}

/* --- 头像选择网格：每个预设带专属色 + 名称 --- */
.avatar-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.avatar-options button{width:100%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 50% 32%,var(--tint,#e5eee6) 0,#f2f5f1 78%);color:var(--c,#476b51);font-weight:700;font-size:19px;border:1px solid var(--ring,#c5d8c8);display:grid;place-items:center;align-content:center;gap:2px;padding:0}
.avatar-options button small{display:block;font-size:9px;font-weight:500;color:#8d948c;line-height:1}
.avatar-options button.active{border-color:var(--c);box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 28%,transparent)}

/* ============================================================
 * 头像 v2：法器徽记 + 玉璧底盘 + 双环头像框（第34批）
 * 结构：.avatar#avatar-btn[data-avatar-frame]
 *          > .avatar-frame   （外环：框层，随头像框变色）
 *          > .avatar-face  > .avatar-emblem（徽记 SVG）+ img（上传图）
 * ============================================================ */
.topbar{height:auto;min-height:88px;padding:19px 15px 11px;gap:11px;align-items:center}
.avatar{--avatar-color:#3e7d5b;--avatar-tint:#eaf3ed;--avatar-ring:#a9c9b6;width:60px;height:60px;padding:0;border:0;background:none;position:relative;flex:0 0 auto;display:block}
/* 外环：默认（无框）是一圈淡金细环 + 内侧一道白高光 */
.avatar .avatar-frame{position:absolute;inset:0;border-radius:50%;pointer-events:none;box-sizing:border-box;
  border:1px solid #d9c48d;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),0 1px 3px rgba(60,72,58,.08)}
/* 玉璧底盘 */
.avatar .avatar-face{position:absolute;inset:4px;border-radius:50%;overflow:hidden;display:grid;place-items:center;box-sizing:border-box;
  background:radial-gradient(circle at 50% 28%,var(--avatar-tint) 0,#f4f6f2 82%);
  border:1px solid color-mix(in srgb,var(--avatar-ring) 55%,#ffffff)}
.avatar .avatar-emblem{position:relative;z-index:1;width:30px;height:30px;display:grid;place-items:center;color:var(--avatar-color)}
.avatar .avatar-emblem svg{width:30px;height:30px;display:block}
.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;border-radius:50%}
.avatar.has-image .avatar-emblem{display:none}
/* 头像框（预留） */
.avatar[data-avatar-frame="jade"] .avatar-frame{border:2px solid #6fa88a;box-shadow:0 0 0 1px rgba(111,168,138,.3),0 0 10px rgba(111,168,138,.4)}
.avatar[data-avatar-frame="gold"] .avatar-frame{border:2px solid #cf9f52;box-shadow:0 0 0 1px rgba(207,159,82,.35),0 0 12px rgba(207,159,82,.5)}
.avatar[data-avatar-frame="dragon"] .avatar-frame{border:2px solid #b5533c;box-shadow:0 0 0 1px rgba(181,83,60,.35),0 0 14px rgba(181,83,60,.55)}
.avatar[data-avatar-frame="none"] .avatar-frame{border:1px solid #d9c48d;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),0 1px 3px rgba(60,72,58,.08)}
/* 名字 / 称号 / 资源 */
.player-brief{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 auto}
.player-name-row{display:flex;align-items:center;gap:6px;min-width:0}
.player-brief b{font-size:14px;color:#333c35;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.2px}
.player-title{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:700;line-height:1;padding:3px 7px;border-radius:7px;color:#8a6224;background:linear-gradient(135deg,#fdf3dd,#f6e6c2);border:1px solid #e2cfa0}
.player-title[hidden]{display:none}
.player-brief small{display:flex;align-items:center;gap:10px;font-size:11px;color:#7c847c;flex-wrap:wrap}
.player-brief small .res-text b{color:#42513f;font-weight:700}
/* 选择头像网格：徽记卡片 */
.avatar-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:12px 0 14px}
.avatar-cell{width:100%;padding:8px 4px 7px;border-radius:14px;background:linear-gradient(180deg,#fff,#f7f8f4);border:1px solid #e6e8e0;display:grid;justify-items:center;gap:6px}
.avatar-cell-icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--c);
  background:radial-gradient(circle at 50% 30%,var(--tint) 0,#f1f4f0 84%);
  border:1px solid color-mix(in srgb,var(--ring) 65%,#fff);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.6)}
.avatar-cell-icon svg{width:26px;height:26px;display:block}
.avatar-cell small{display:block;font-size:10px;font-weight:500;color:#8d948c;line-height:1}
.avatar-cell.active{border-color:var(--c);background:linear-gradient(180deg,#fff,#f4f7f2);box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 22%,transparent)}
.avatar-cell.active small{color:var(--c);font-weight:700}

/* ============================================================
 * 清理旧版头像规则泄漏 + 放大徽记（第35批）
 * app.css 首行（历史遗留）还有：.avatar{overflow:hidden}、.avatar:before 深色斑块(20×22 椭圆)、
 * .avatar span{margin-top:11px}，这些旧规则把新徽记挤偏、并在头像里画出一个椭圆斑块。
 * 这里显式复位，顺序在文件末尾因此覆盖首行规则。
 * ============================================================ */
.avatar{overflow:visible}
.avatar:before{content:none;display:none}
.avatar span{margin-top:0;font-size:inherit;color:inherit;text-shadow:none}
/* 上传图片时只隐藏徽记，别再连带隐藏头像框（旧规则 .avatar.has-image span{display:none} 会一起吃掉 .avatar-frame） */
.avatar.has-image span{display:revert}
.avatar.has-image .avatar-frame{display:block}
.avatar.has-image .avatar-emblem{display:none}
/* 去掉旧规则遗留的 aspect-ratio:1（会把卡片压成正方形导致标签溢出） */
.avatar-cell{aspect-ratio:auto}
/* 放大徽记：法器图形要有存在感 */
.avatar .avatar-emblem{width:32px;height:32px}
.avatar .avatar-emblem svg{width:32px;height:32px}
.avatar-cell-icon{width:46px;height:46px}
.avatar-cell-icon svg{width:30px;height:30px}
.avatar-options button small{font-size:10px}

/* ============================================================
 * 第36批：修选择器特异性 + 拟人头像尺寸
 * 原因：<button class="avatar-cell"> 同时命中 .avatar-options button(0,1,1) 与
 *       .avatar-cell(0,1,0)，前者特异性更高恒赢 → border-radius:50% 一直生效，
 *       卡片不是正方形就被画成椭圆。这里用 .avatar-options button.avatar-cell(0,2,1) 覆盖。
 * ============================================================ */
.avatar-options button.avatar-cell{border-radius:16px;background:linear-gradient(180deg,#fff,#fafbf8);border:1px solid #e6e8e0;padding:10px 4px 9px;font-size:12px;aspect-ratio:auto;display:grid;justify-items:center;align-content:start;gap:8px;color:inherit}
.avatar-options button.avatar-cell small{display:block;font-size:10px;color:#8d948c;line-height:1;font-weight:500}
.avatar-options button.avatar-cell.active{border-color:var(--c);background:linear-gradient(180deg,#fff,#f2f7f3);box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 24%,transparent)}
.avatar-options button.avatar-cell.active small{color:var(--c);font-weight:700}
/* 拟人徽记：头肩剪影，比例略放大 */
.avatar-cell-icon{width:48px;height:48px}
.avatar-cell-icon svg{width:34px;height:34px}
.avatar .avatar-emblem{width:34px;height:34px}
.avatar .avatar-emblem svg{width:34px;height:34px}

/* ============================================================
 * 第37批：修「选择头像」弹窗布局
 * 问题：modal 有 max-height:90vh + overflow-y:auto，8 张卡片 + 上传行 + 说明 + 按钮
 *       超出可视高度被滚动裁切，界面看起来错乱（上传按钮夹在两行图标中间）。
 * 修复：收紧卡片尺寸与间距、说明文字压成一行、上传行与说明合并，控制在视口内。
 * ============================================================ */
.avatar-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0 8px}
.avatar-options button.avatar-cell{border-radius:14px;padding:7px 3px 6px;gap:5px;font-size:11px;min-width:0}
.avatar-options button.avatar-cell small{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.avatar-cell-icon{width:42px;height:42px}
.avatar-cell-icon svg{width:30px;height:30px}
/* 上传行：图标+说明一行，不单独占一大块 */
.upload-row{margin:2px 0 0;gap:8px}
.upload-button{padding:7px 12px;font-size:11.5px;border-radius:11px}
.upload-row small{font-size:10px;line-height:1.4}
/* 弹窗内提示行收紧 */
.modal .avatar-pick-note{font-size:10.5px;margin:8px 0 0}

/* ============================================================
 * 个性化弹窗：头像 / 头像框 / 称号 三页切换（第38批）
 * ============================================================ */
.avatar-tabs{display:flex;gap:6px;margin:2px 0 10px;padding:3px;background:#f2f4ef;border-radius:12px;border:1px solid #e6e8e0}
.avatar-tab{flex:1;min-width:0;padding:7px 4px;border:0;border-radius:9px;background:transparent;color:#7c847c;font-size:12px;font-weight:600;line-height:1;transition:background .15s,color .15s}
.avatar-tab small{display:block;margin-top:3px;font-size:9px;font-weight:500;opacity:.75}
.avatar-tab.active{background:#fff;color:#3e7d5b;box-shadow:0 1px 3px rgba(60,72,58,.12)}
.avatar-panel[hidden]{display:none}
/* 预览条：显示当前头像 + 所选框 + 所选称号 */
.avatar-preview{display:flex;align-items:center;gap:10px;padding:9px 11px;margin:0 0 10px;background:linear-gradient(180deg,#fff,#f8faf6);border:1px solid #e6e8e0;border-radius:13px}
.avatar-preview .avatar{width:44px;height:44px;pointer-events:none}
.avatar-preview-meta{min-width:0;flex:1}
.avatar-preview-meta b{display:block;font-size:12.5px;color:#333c35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.avatar-preview-meta small{display:block;margin-top:3px;font-size:10.5px;color:#8d948c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 头像框卡片：圆形色片预览 */
.avatar-frame-chip{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;box-sizing:border-box;border:1px solid #d9c48d;background:radial-gradient(circle at 50% 30%,#eef3ee 0,#f6f7f4 86%)}
.avatar-frame-chip i{display:block;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 50% 30%,#fff 0,#eef1ec 88%)}
.avatar-cell[data-frame="jade"] .avatar-frame-chip{border:2px solid #6fa88a;box-shadow:0 0 8px rgba(111,168,138,.45)}
.avatar-cell[data-frame="gold"] .avatar-frame-chip{border:2px solid #cf9f52;box-shadow:0 0 8px rgba(207,159,82,.5)}
.avatar-cell[data-frame="dragon"] .avatar-frame-chip{border:2px solid #b5533c;box-shadow:0 0 9px rgba(181,83,60,.55)}
.avatar-cell .avatar-cell-desc{font-size:9px;color:#a6ada5;line-height:1}
.avatar-cell.active .avatar-cell-desc{color:var(--c)}
/* 称号列表 */
.avatar-title-list{display:grid;gap:7px;margin:0 0 8px}
.avatar-title-row{display:flex;align-items:center;gap:9px;width:100%;padding:9px 11px;text-align:left;border-radius:12px;background:linear-gradient(180deg,#fff,#fafbf8);border:1px solid #e6e8e0}
.avatar-title-row .avatar-title-badge{flex:0 0 auto;font-size:10px;font-weight:700;line-height:1;padding:4px 8px;border-radius:7px;color:#8a6224;background:linear-gradient(135deg,#fdf3dd,#f6e6c2);border:1px solid #e2cfa0}
.avatar-title-row .avatar-title-name{flex:1 1 auto;min-width:0;font-size:12.5px;font-weight:600;color:#3c463e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.avatar-title-row .avatar-title-cond{flex:0 0 auto;font-size:10px;color:#a6ada5}
.avatar-title-row.active{border-color:#cf9f52;background:linear-gradient(180deg,#fff,#fdf7ea);box-shadow:0 0 0 2px rgba(207,159,82,.2)}
.avatar-title-row.active .avatar-title-name{color:#8a6224}
.avatar-title-row.locked{opacity:.55;background:#f6f7f4}
.avatar-title-row.locked .avatar-title-badge{color:#9aa099;background:#eef0ec;border-color:#e2e5df}
.avatar-pick-note{font-size:10.5px;color:#98a096;margin:8px 0 0;line-height:1.5}

/* 预览条内的小头像：等比缩小徽记，避免 44px 里塞 34px 显挤 */
.avatar-preview .avatar .avatar-emblem{width:28px;height:28px}
.avatar-preview .avatar .avatar-emblem svg{width:28px;height:28px}
.avatar-preview .avatar .avatar-face{inset:3px}

/* ============================================================
 * 第39批：称号改方形格子（一行 6 个）+ 头像框去掉方卡片
 * ============================================================ */
.avatar-title-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:0 0 6px}
.avatar-title-cell{width:100%;padding:0;border:0;background:none;display:grid;justify-items:center;gap:5px;min-width:0}
.avatar-title-chip{width:100%;aspect-ratio:1;border-radius:13px;display:grid;place-items:center;padding:3px;box-sizing:border-box;text-align:center;
  font-size:9.5px;font-weight:700;line-height:1.15;color:#8a6224;
  background:linear-gradient(135deg,#fdf3dd,#f6e6c2);border:1px solid #e2cfa0;
  overflow:hidden;word-break:break-all}
.avatar-title-cell small{display:block;font-size:9.5px;color:#8d948c;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.avatar-title-cell.is-empty .avatar-title-chip{background:#f6f7f4;border:1px dashed #d5dad3;color:#9aa099;font-weight:600}
.avatar-title-cell.active .avatar-title-chip{border-color:#cf9f52;box-shadow:0 0 0 2px rgba(207,159,82,.28),0 1px 4px rgba(160,124,60,.18)}
.avatar-title-cell.active small{color:#8a6224;font-weight:700}
.avatar-title-cell.locked .avatar-title-chip{color:#a3a89f;background:#eef0ec;border-color:#e2e5df;box-shadow:none}
.avatar-title-cell.locked small{color:#b4b9b1}
/* 头像框页：去掉方卡片，只留圆环 + 名称（选中态用名称着色 + 圆环外发光表示） */
.avatar-options button.avatar-cell.avatar-frame-cell{background:none;border:0;box-shadow:none;padding:4px 2px 2px;border-radius:10px;gap:6px}
.avatar-options button.avatar-cell.avatar-frame-cell.active{background:transparent;box-shadow:none}
.avatar-options button.avatar-cell.avatar-frame-cell .avatar-frame-chip{transition:box-shadow .15s}
.avatar-options button.avatar-cell.avatar-frame-cell.active .avatar-frame-chip{box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 26%,transparent),0 0 10px color-mix(in srgb,var(--c) 50%,transparent)}
.avatar-options button.avatar-cell.avatar-frame-cell small{font-weight:500}
.avatar-options button.avatar-cell.avatar-frame-cell.active small{color:var(--c);font-weight:700}

/* ============================================================
 * 第40批：头像预设也去掉方卡片（与头像框页统一：只留圆形徽记 + 名称）
 * ============================================================ */
.avatar-options button.avatar-cell.avatar-preset-cell{background:none;border:0;box-shadow:none;padding:2px 0 0;border-radius:10px;gap:7px}
.avatar-options button.avatar-cell.avatar-preset-cell.active{background:transparent;box-shadow:none}
.avatar-options button.avatar-cell .avatar-cell-icon{transition:box-shadow .15s}
.avatar-options button.avatar-cell.avatar-preset-cell.active .avatar-cell-icon{box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 26%,transparent),0 0 10px color-mix(in srgb,var(--c) 45%,transparent)}
.avatar-options button.avatar-cell.avatar-preset-cell.active small{color:var(--c);font-weight:700}
/* 图标略放大：去掉卡片后留白多了，徽记更有存在感 */
.avatar-options button.avatar-cell .avatar-cell-icon{width:46px;height:46px}
.avatar-options button.avatar-cell .avatar-cell-icon svg{width:32px;height:32px}
.avatar-frame-chip{width:46px;height:46px}

/* ============================================================
 * 第41批：称号 / 头像框改成「图片徽章卡片」
 * 结构：.asset-grid(2列) > button.asset-cell > .asset-art(横幅 artwork)
 *       art 内：asset-fallback(占位徽章，取自目录 c1/c2) + <img>(上传的美术图，
 *       存在时覆盖占位、onerror 自动移除 → 没上传就显示占位)
 *       另有 .asset-lock(未解锁) / .asset-check(使用中) / <small>名称
 *       网格下方 .asset-detail 详情条（名称 + 说明）
 * ============================================================ */
.asset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 10px}
.asset-cell{position:relative;display:block;width:100%;min-width:0;padding:0;border:0;background:none;text-align:center}
.asset-cell small{display:block;margin-top:5px;font-size:10px;font-weight:500;color:#8d948c;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.asset-art{position:relative;display:grid;place-items:center;width:100%;height:56px;border-radius:12px;overflow:hidden;box-sizing:border-box;
  background:linear-gradient(135deg,var(--a1,#e7edf3),var(--a2,#cdd9e4));
  border:1px solid rgba(255,255,255,.6);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.4),0 1px 3px rgba(60,72,58,.1)}
.asset-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}
.asset-fallback{position:relative;z-index:1;padding:0 6px;font-size:15px;font-weight:800;letter-spacing:1px;line-height:1.2;color:#fff;text-shadow:0 1px 2px rgba(45,65,95,.35);word-break:break-all}
.asset-cell--empty .asset-art{background:#f5f6f2;border:1px dashed #d5dad3;box-shadow:none}
.asset-cell--empty .asset-fallback{font-size:11px;font-weight:600;color:#9aa099;text-shadow:none;letter-spacing:0}
/* 头像框卡片：art 里放圆形预览，图片用 contain 不裁切 */
.asset-cell--frame .asset-art{height:56px;background:linear-gradient(135deg,var(--a1,#eef1ea),var(--a2,#dde4d9))}
.asset-cell--frame .asset-art img{object-fit:contain}
.asset-cell--frame .asset-art .avatar-frame-chip{position:relative;z-index:1;box-shadow:0 0 0 2px rgba(255,255,255,.5)}
.asset-cell--frame.active .asset-art .avatar-frame-chip{box-shadow:0 0 0 3px rgba(255,255,255,.75)}
/* 状态：未解锁 / 使用中 */
.asset-lock{position:absolute;top:5px;right:5px;z-index:3;font-size:9px;font-weight:700;line-height:1;color:#8b8f88;background:rgba(255,255,255,.88);border:1px solid rgba(0,0,0,.05);border-radius:6px;padding:3px 5px}
.asset-check{position:absolute;left:5px;bottom:5px;z-index:3;font-size:9px;font-weight:700;line-height:1;color:#fff;background:rgba(43,120,86,.92);border-radius:6px;padding:3px 6px}
.asset-cell.active .asset-art{box-shadow:0 0 0 2px #4aa3df,0 0 10px rgba(74,163,223,.4)}
.asset-cell.active small{color:#2f7fb8;font-weight:700}
.asset-cell.locked .asset-art{filter:grayscale(.9);opacity:.8}
/* 详情条 */
.asset-detail{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:9px 12px;border-radius:12px;background:linear-gradient(180deg,#fff,#f8faf6);border:1px solid #e6e8e0;margin:0 0 8px}
.asset-detail b{font-size:12.5px;color:#333c35}
.asset-detail small{font-size:10.5px;color:#8d948c}
.avatar-pick-note b{color:#6f786f;font-weight:700}

/* ============================================================
 * 第42批：头像框卡片 = 灰色长方底 + 中间放框图，一行 4 个
 * ============================================================ */
.asset-grid--4{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.asset-cell--frame .asset-art{height:64px;background:#ebeee8;border:1px solid #e2e5de;box-shadow:none;border-radius:12px}
/* 框图：居中、contain 不裁切（占位圆环同样居中） */
.asset-cell--frame .asset-art img{position:relative;inset:auto;width:48px;height:48px;object-fit:contain;margin:0 auto}
.asset-cell--frame .asset-art .avatar-frame-chip{position:relative;z-index:1;background:#f7f8f5;border-width:2px;box-shadow:none}
.asset-cell--frame.active .asset-art{box-shadow:0 0 0 2px #4aa3df,0 0 10px rgba(74,163,223,.4)}
.asset-cell--frame.locked .asset-art{filter:grayscale(.9);opacity:.8}

/* ============================================================
 * 第43批：头像网格间距调松（截图反馈偏挤）
 * ============================================================ */
.avatar-options{gap:14px;margin:12px 0 12px}
.avatar-options button.avatar-cell.avatar-preset-cell{gap:10px;padding:4px 0 0}
.avatar-options button.avatar-cell small{font-size:10.5px;margin-top:1px}
/* 预览条与网格、上传行之间留出呼吸空间 */
.avatar-preview{margin:0 0 14px;padding:10px 12px}
.upload-row{margin:12px 0 0}
/* 称号页网格同步放宽 */
.asset-grid{gap:12px;margin:0 0 12px}
.asset-cell small{margin-top:6px}

/* ============================================================
 * 第48批：称号横幅完整显示（contain 代替 cover，不再裁边）
 * 404 治理另见 manifest.php（前端只请求清单里存在的图）
 * ============================================================ */
.asset-cell--title .asset-art{height:64px}
.asset-cell--title .asset-art img{inset:4px;width:calc(100% - 8px);height:calc(100% - 8px);object-fit:contain}

/* ============================================================
 * 第49批：首页称号徽章用 SVG 图（无图回落文字）+ 删两句上传文案
 * ============================================================ */
.player-title.has-img{padding:0;border:0;background:none;box-shadow:none;line-height:0}
.player-title.has-img img{display:block;height:20px;width:auto}

/* ============================================================
 * 第50批：宗门快捷格里的危险按钮显式红色（.danger 原先被网格按钮底色盖住）
 * ============================================================ */
.sect-quick-grid button.danger{background:#c0392b;color:#fff;border-color:transparent}
.sect-quick-grid button.danger:active{background:#a8321e}

/* ============================================================
 * 第51批：称号图统一尺寸（SVG 宽高比不一致导致 contain 后一大一小）
 * 选择器网格：img 拉伸填满同一 64px 高横幅框；首页顶栏：固定 76×22 框
 * ============================================================ */
.asset-cell--title .asset-art img{inset:0;width:100%;height:100%;object-fit:fill;padding:0}
.player-title.has-img{width:76px;height:22px}
.player-title.has-img img{width:100%;height:100%;object-fit:fill}

/* ============================================================
 * 第55批：主线任务「节点奖励」领取按钮 UI 优化
 * 金色渐变 + 流光扫过 + 可领取时整卡金框高亮；进行中为灰色小字
 * ============================================================ */
.daily-mission-total.is-claimable{border-color:#e2cfa0;box-shadow:0 0 0 1px rgba(226,207,160,.55),0 2px 12px rgba(217,183,110,.22)}
.daily-mission-total-meta-r .main-quest-claim{position:relative;overflow:hidden;padding:9px 20px;border-radius:20px;background:linear-gradient(135deg,#eec25f,#c98a2e);color:#fff;font-size:12px;font-weight:800;letter-spacing:2px;border:none;box-shadow:0 3px 10px rgba(201,138,46,.42),inset 0 1px 0 rgba(255,255,255,.5);transition:transform .15s,box-shadow .15s;cursor:pointer}
.daily-mission-total-meta-r .main-quest-claim::after{content:"";position:absolute;top:0;left:-70%;width:42%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);animation:mainClaimShine 2.6s ease-in-out infinite}
@keyframes mainClaimShine{0%,55%{left:-70%}100%{left:135%}}
.daily-mission-total-meta-r .main-quest-claim:active{transform:translateY(1px);box-shadow:0 2px 6px rgba(201,138,46,.35)}
.daily-mission-total-meta-r .main-quest-doing{font-size:11px;font-weight:600;color:#a8b0a8;background:#f2f4ef;border:1px solid #e4e9e1;border-radius:12px;padding:4px 11px}

/* ============================================================
 * 第56批：装备槽宝石圆点可见性（白色宝石原色 #d4d4d4 与空孔同色 → 隐形）
 * 白色品质色改为月光石淡钢蓝 #a8bfd8（app-core.js GEM_QUALITY_COLORS），
 * 已嵌圆点加白圈+微投影，与空孔/锁定状态一眼区分
 * ============================================================ */
.gear-gem-dot.is-filled{box-shadow:0 0 0 1.5px rgba(255,255,255,.95),0 1px 3px rgba(0,0,0,.22)}

/* ============================================================
 * 第60批：竞技场排行榜奖励 UI（金色领取按钮 + 悬停文案 + 折叠栏）
 * ============================================================ */
.arena-reward-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:0;border:0;background:none;font-size:12px;font-weight:800;color:#3f6d4d;cursor:pointer;text-align:left}
.arena-reward-toggle:hover{color:#5b8f6f}
.arena-reward-arrow{display:inline-block;font-size:9px;color:#8aa18d;transition:transform .15s;line-height:1}
.arena-reward-section.open .arena-reward-arrow{transform:rotate(90deg)}
.arena-reward-list[hidden]{display:none}
.arena-reward-section .arena-reward-list{margin-top:8px}
.arena-claim-btn{padding:8px 18px;border-radius:18px;background:linear-gradient(135deg,#eec25f,#c98a2e);color:#fff;font-size:12px;font-weight:800;letter-spacing:1px;border:none;box-shadow:0 3px 9px rgba(201,138,46,.4),inset 0 1px 0 rgba(255,255,255,.5);cursor:pointer;transition:transform .15s,box-shadow .15s}
.arena-claim-btn:active{transform:translateY(1px);box-shadow:0 2px 5px rgba(201,138,46,.3)}
.arena-claim-done{font-size:11px;font-weight:700;color:#8b938b;background:#f0f2ee;border:1px solid #e2e6df;border-radius:12px;padding:4px 10px}

/* ============================================================
 * 第61批：排行榜奖励展开改悬浮下拉 + TOP20 固定高度 + 领取按钮重做
 * ============================================================ */
.arena-reward-section{position:relative}
/* 展开的奖励列表：悬浮下拉层，不占文档高度 */
.arena-reward-section .arena-reward-list{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:6;margin:0;padding:8px 12px;background:#fff;border:1px solid #dfe4dc;border-radius:12px;box-shadow:0 10px 26px rgba(50,60,50,.18)}
.arena-reward-section.open .arena-reward-toggle{color:#3f6d4d}
/* TOP20 固定高度：人数不足留白，超出滚动 */
.arena-rank-list{height:40vh;max-height:420px}
/* 领取按钮重做：主题绿渐变 + 礼花前缀，去掉金色流光 */
.arena-claim-btn{display:inline-flex;align-items:center;gap:5px;padding:9px 20px;border-radius:19px;background:linear-gradient(135deg,#4a7a5c,#315b43);color:#fff;font-size:12px;font-weight:800;border:none;box-shadow:0 3px 9px rgba(49,91,67,.35),inset 0 1px 0 rgba(255,255,255,.25);cursor:pointer;transition:transform .15s,box-shadow .15s}
.arena-claim-btn::before{content:"✦";font-size:11px}
.arena-claim-btn:active{transform:translateY(1px);box-shadow:0 2px 5px rgba(49,91,67,.3)}


/* ====== 商场（广告商城 / 充值商场 双标签） ====== */
.mall-tabs { display: flex; gap: 8px; margin-bottom: 12px; }
.mall-tabs button { flex: 1; padding: 10px 0; border-radius: 10px; border: 1px solid #d8dbd4; background: #f4f7f3; color: #333; font-weight: 600; cursor: pointer; }
.mall-tabs button.active { background: #2f6b4f; border-color: #2f6b4f; color: #fff; }
.mall-recharge-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 8px; }
.mall-recharge-card { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 8px; border: 1px solid #e0e4de; border-radius: 12px; background: #fff; }
.mall-recharge-price { font-size: 18px; font-weight: 700; color: #c0392b; }
.mall-recharge-gain { font-weight: 600; color: #2f6b4f; }
.mall-recharge-bonus { font-size: 12px; color: #999; text-align: center; min-height: 16px; }
.mall-recharge-bonus.is-bonus { color: #c47b00; font-weight: 600; }
.mall-recharge-card button { width: 100%; padding: 8px 0; border-radius: 8px; border: none; cursor: pointer; }


/* ====== 商场充值：一行4个 + 绿色充值按钮 ====== */
.mall-recharge-grid { grid-template-columns: repeat(4, 1fr); }
.mall-recharge-card button {
  background: linear-gradient(180deg, #3a8f63, #2f6b4f);
  color: #fff;
  font-weight: 700;
  letter-spacing: 2px;
  box-shadow: 0 2px 6px rgba(47, 107, 79, 0.35);
}
.mall-recharge-card button:active { transform: translateY(1px); box-shadow: none; }
.mall-activity-name { font-weight: 700; text-align: center; }


/* ====== 邮箱领取附件按钮：绿色渐变、右对齐、紧凑 ====== */
.mail-claim-button {
  width: auto;
  margin-top: 10px;
  padding: 8px 26px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
  background: linear-gradient(180deg, #3a8f63, #2f6b4f);
  color: #fff;
  border: none;
  cursor: pointer;
  float: right;
  box-shadow: 0 2px 6px rgba(47, 107, 79, 0.35);
}
.mail-claim-button:active { transform: translateY(1px); box-shadow: none; }
.mail-item { overflow: hidden; }


/* ====== 充值/邮箱按钮：纯色无渐变无阴影 ====== */
.mall-recharge-card button, .mail-claim-button {
  background: #3e684f;
  box-shadow: none;
}
.mall-recharge-card button:active, .mail-claim-button:active { transform: none; }


/* ====== 充值按钮缩小 ====== */
.mall-recharge-card button { padding: 5px 0; font-size: 11px; letter-spacing: 1px; }


/* ====== 充值/活动卡片文案缩小 ====== */
.mall-recharge-price { font-size: 14px; }
.mall-recharge-gain { font-size: 11px; }
.mall-recharge-bonus { font-size: 10px; min-height: 14px; line-height: 1.35; }
.mall-recharge-card button { padding: 4px 0; font-size: 10px; }
.mall-recharge-card { gap: 4px; padding: 8px 6px; }
.mall-activity-name { font-size: 12px; }


/* ====== 活动卡片图标 + 底对齐 ====== */
.mall-activity-icon { display: grid; place-items: center; height: 24px; font-size: 17px; color: #3e684f; }
.mall-recharge-gain { margin-top: auto; }


/* ====== 宗门头像 ====== */
.sect-summary:has(.sect-avatar) { display: flex; align-items: center; gap: 12px; }
.sect-avatar { flex: 0 0 auto; width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(160deg, #57a06f, #2f6b4f); color: #fff; display: grid; place-items: center; font-size: 24px; font-weight: 700; box-shadow: inset 0 0 0 3px rgba(255, 255, 255, 0.28), 0 2px 6px rgba(47, 107, 79, 0.25); }
.sect-summary-main { flex: 1; min-width: 0; }


/* ====== 宗门战 side 图标：与宗门头像同款圆形 ====== */
.sw-art-icon.sw-art-avatar {
  width: 56px; height: 56px; margin: 0 auto; border-radius: 50%;
  background: linear-gradient(160deg, #57a06f, #2f6b4f);
  color: #fff; display: grid; place-items: center;
  font-size: 26px; font-weight: 700; line-height: 1;
  box-shadow: inset 0 0 0 3px rgba(255, 255, 255, 0.28), 0 2px 6px rgba(47, 107, 79, 0.25);
  filter: none;
}


/* ====== 高阶品质：暗金 / 彩色（炉火淬炼 10 / 20 次解锁） ====== */
.quality-dark{border-color:#a8862c;background:#fbf3dc;color:#6b5312}
.quality-rainbow{border-color:#d167d1;background:linear-gradient(135deg,#ffe9f7 0%,#e9f0ff 34%,#e4fff6 68%,#fff6df 100%);color:#8a2a7c;box-shadow:inset 0 0 0 1px rgba(209,103,209,.18)}
.rate-name.q-dark:before{background:linear-gradient(180deg,#d4a92f,#8a6a22)}
.rate-name.q-rainbow:before{background:linear-gradient(135deg,#e069c8,#5aa8e0,#4fc79a,#f0b429)}


/* ====== 自动炼器格子：品质文字标签 ====== */
.auto-cell-q{display:inline-block;margin-left:3px;padding:0 4px;border-radius:5px;background:rgba(0,0,0,.05);color:var(--qc,#9aa6a0);font-size:9px;font-weight:700;line-height:14px;vertical-align:1px;white-space:nowrap}

/* ====== 宗门功能按钮：古典牌匾风（米纸底 + 青绿双层描边 + 四角花纹 + 单字印记） ====== */
.sect-quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.sect-plaque{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:9px 2px 8px;border-radius:9px;background:linear-gradient(155deg,#fbf7ea 0%,#f6efdc 55%,#f2ead2 100%);border:1.5px solid #7fb0a2;color:#33423a;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 2px 8px rgba(90,120,105,.14)}
.sect-plaque:before{content:"";position:absolute;inset:2px;border:1px solid rgba(127,176,162,.55);border-radius:7px;pointer-events:none}
.sect-plaque:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(#7fb0a2,#7fb0a2) 2px 2px/6px 6px no-repeat,linear-gradient(#7fb0a2,#7fb0a2) calc(100% - 2px) 2px/6px 6px no-repeat,linear-gradient(#7fb0a2,#7fb0a2) 2px calc(100% - 2px)/6px 6px no-repeat,linear-gradient(#7fb0a2,#7fb0a2) calc(100% - 2px) calc(100% - 2px)/6px 6px no-repeat}
.sect-plaque i{font-style:normal;font-size:18px;line-height:1;color:#4e9184;font-weight:700;font-family:"STKaiti","KaiTi","Noto Serif SC",serif;text-shadow:0 1px 0 rgba(255,255,255,.6)}
.sect-plaque small{font-size:10px;font-weight:700;color:#3c4a40;letter-spacing:1px;line-height:1.2;white-space:nowrap}
.sect-plaque:active{transform:scale(.95)}
.sect-plaque:hover{box-shadow:0 4px 14px rgba(90,120,105,.22)}
/* 捐献：淡金底（参考图第一格的高亮） */
.sect-plaque.is-gold{background:linear-gradient(155deg,#fdf6dd 0%,#f7ecc8 55%,#f3e5b8 100%);border-color:#c9a84c}
.sect-plaque.is-gold:before{border-color:rgba(201,168,76,.55)}
.sect-plaque.is-gold i{color:#a8842f}
.sect-plaque.is-gold:after{background:linear-gradient(#c9a84c,#c9a84c) 2px 2px/6px 6px no-repeat,linear-gradient(#c9a84c,#c9a84c) calc(100% - 2px) 2px/6px 6px no-repeat,linear-gradient(#c9a84c,#c9a84c) 2px calc(100% - 2px)/6px 6px no-repeat,linear-gradient(#c9a84c,#c9a84c) calc(100% - 2px) calc(100% - 2px)/6px 6px no-repeat}
/* 退出/解散：红系牌匾 */
.sect-plaque.danger{background:linear-gradient(155deg,#fdf1ee 0%,#f9e4de 60%,#f6dcd4 100%);border-color:#cf8a7c}
.sect-plaque.danger:before{border-color:rgba(207,138,124,.5)}
.sect-plaque.danger i{color:#bb5c4a}
.sect-plaque.danger small{color:#a04a3a}
.sect-plaque.danger:after{background:linear-gradient(#cf8a7c,#cf8a7c) 2px 2px/6px 6px no-repeat,linear-gradient(#cf8a7c,#cf8a7c) calc(100% - 2px) 2px/6px 6px no-repeat,linear-gradient(#cf8a7c,#cf8a7c) 2px calc(100% - 2px)/6px 6px no-repeat,linear-gradient(#cf8a7c,#cf8a7c) calc(100% - 2px) calc(100% - 2px)/6px 6px no-repeat}
.sect-plaque.danger{display:flex}
.sect-plaque-ico{width:24px;height:24px;margin:0 auto;display:block;object-fit:contain}
/* 用户反馈：去掉牌匾内框线；红色牌匾改浅底+图标红化，解决看不清 */
.sect-plaque:before{display:none}
.sect-plaque.danger{background:linear-gradient(155deg,#fef7f5 0%,#fceae6 100%);border-color:#d98a7a}
.sect-plaque.danger .sect-plaque-ico{filter:brightness(0) saturate(100%) invert(36%) sepia(45%) saturate(2200%) hue-rotate(340deg) brightness(0.9)}
.sect-plaque.danger:after{background:linear-gradient(#d98a7a,#d98a7a) 2px 2px/6px 6px no-repeat,linear-gradient(#d98a7a,#d98a7a) calc(100% - 2px) 2px/6px 6px no-repeat,linear-gradient(#d98a7a,#d98a7a) 2px calc(100% - 2px)/6px 6px no-repeat,linear-gradient(#d98a7a,#d98a7a) calc(100% - 2px) calc(100% - 2px)/6px 6px no-repeat}
/* 用户反馈：删四角方块；红按钮改半透明红底 */
.sect-plaque:after{display:none}
.sect-plaque.danger{background:rgba(217,110,95,.30);border-color:rgba(200,100,85,.75)}
.sect-plaque.danger:hover{background:rgba(217,110,95,.40)}
/* 红按钮背景删掉：只留边框+文字图标 */
.sect-plaque.danger{background:transparent!important}
.sect-plaque.danger:hover{background:rgba(217,110,95,.12)!important}
/* 物资商店：数量独立换行小字 */
.shop-count{display:block;font-size:11px;font-weight:700;color:#3e684f;margin-top:3px;line-height:1.2}
/* ====== 宗门守护兽卡片美化 ====== */
.sect-pet-card{padding:14px;border-radius:16px;background:linear-gradient(150deg,#f6faf4 0%,#eef4ec 60%,#e9f1e8 100%);border:1px solid #dbe5da}
.sect-pet-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sect-pet-ico{width:54px;height:54px;flex:0 0 auto;object-fit:contain;filter:brightness(0) saturate(100%) invert(33%) sepia(21%) saturate(1020%) hue-rotate(85deg) brightness(0.95);background:radial-gradient(circle at 50% 45%,#ffffff 0%,#eef4ec 70%);border-radius:14px;padding:5px;box-sizing:border-box;border:1px solid #d8e2d6}
.sect-pet-title{flex:1;min-width:0;display:grid;gap:3px}
.sect-pet-title b{font-size:15px;color:#2f4638}
.sect-pet-title small{font-size:10px;color:#93a094;line-height:1.5}
.pet-lv-badge{flex:0 0 auto;padding:3px 10px;border-radius:12px;background:#3e684f;color:#fff;font-size:12px;font-weight:800}
.pet-team-tag{flex:0 0 auto;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700;background:#eef1ea;color:#98a098}
.pet-team-tag.is-on{background:#e7efe8;color:#3f6d4d}
.sect-pet-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 4px}
.pet-stat{padding:9px 6px;border-radius:12px;background:rgba(255,255,255,.85);border:1px solid #e2e9e0;display:grid;gap:2px;justify-items:center}
.pet-stat i{font-style:normal;font-size:10px;color:#93a094}
.pet-stat b{font-size:15px;color:#2f4638;font-weight:800}
.pet-stat small{font-size:9px;color:#aab3aa}
.pet-exp-row{margin-top:10px}
.pet-exp-label{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}
.pet-exp-label span{font-size:11px;color:#7c847c}
.pet-exp-label b{font-size:12px;color:#3e684f}
/* 修复：SVG 已自带绿色 fill，去掉 img filter（否则白底片被一起染色成绿块） */
.sect-pet-ico{filter:none!important;background:#fff!important}
/* 灵兽园按钮：缩小 + 培养两行 */
.pet-action{font-size:11px!important;padding:8px 10px!important;border-radius:12px!important;min-width:0!important;flex:0 1 auto!important;line-height:1.3}
.pet-action small{display:block;font-size:9px;font-weight:400;opacity:.75;margin-top:2px}
.pet-action.primary{background:#3e684f!important;color:#fff!important;border-color:transparent!important}
/* 守护兽：培养按钮入卡满行 / 右侧竖排列 / 返回宗门满行 */
.pet-side{display:flex;flex-direction:column;align-items:center;gap:5px;flex:0 0 auto}
.pet-team-btn{padding:4px 12px;border-radius:12px;border:1px solid #d6d9d0;background:#fff;color:#5b655b;font-size:11px;font-weight:700;cursor:pointer}
.pet-team-btn.is-on{background:#3e684f;color:#fff;border-color:transparent}
.pet-cultivate-btn{width:100%;margin-top:12px;padding:9px;border-radius:12px;border:0;background:#3e684f;color:#fff;font-size:13px;font-weight:700;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1.2}
.pet-cultivate-btn small{font-size:10px;font-weight:400;opacity:.8}
.pet-cultivate-btn:active{transform:scale(.98)}

.modal-pet .modal-actions button[data-action="sect-home"]{flex:1 1 100%;width:100%}
/* Lv 徽章移到名称旁 + 看不清的文字加深 */
.pet-name-row{display:flex;align-items:center;gap:8px}
.pet-name-row .pet-lv-badge{padding:2px 9px;font-size:11px}
.sect-pet-title small{color:#5f6e60!important}
.pet-team-tag{color:#5f6e60!important;font-weight:600}
.pet-team-tag.is-on{color:#2f5c3a!important}
/* Lv 徽章白字 + 培养按钮单行 */
.pet-lv-badge{color:#fff!important}
.pet-cultivate-btn{flex-direction:row!important;gap:8px!important}
.pet-cultivate-btn small{display:inline!important;font-size:12px!important;margin-top:0!important;opacity:.85}
/* BOSS 图标 */
.sect-boss-ico{display:block;width:92px;height:92px;margin:0 auto;object-fit:contain}
/* 培养按钮文案居中 */
.pet-cultivate-btn{justify-content:center!important;text-align:center!important}
/* 背包条目布局防塌：图标格恒定32px不被内容撑爆，meta最小宽度保障 */
.bag-item .bag-icon{flex:0 0 32px;width:32px;overflow:hidden}
.bag-item .bag-meta{min-width:0;flex:1 1 auto}
.bag-item .bag-meta b,.bag-item .bag-meta small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bag-item .bag-actions{flex:0 0 auto}
.compare-card{width:100%}
.loot-icon,.compare-card .loot-icon{max-width:100%;overflow:hidden}

/* 自动炼器格子：彩色装备用装备彩虹渐变（覆盖宝石配色） */
.auto-gem-cell.quality-rainbow{background:linear-gradient(135deg,#ffe9f7 0%,#e9f0ff 34%,#e4fff6 68%,#fff6df 100%)!important;border-color:#d167d1!important}
.auto-gem-cell.quality-rainbow .auto-cell-icon{color:#b05aa8!important}
.auto-gem-cell.quality-rainbow .auto-cell-q{color:#8a2a7c!important}
.auto-gem-cell.quality-dark{background:#fbf3dc!important;border-color:#c8a23f!important}
.auto-gem-cell.quality-dark .auto-cell-icon{color:#a8862c!important}
/* 爬塔怪物线条图标 */
.climb-enemy-ico{display:block;width:72px;height:72px;margin:0 auto;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(90,120,105,.25))}
/* 镇妖塔层卡线条怪物图标 */
.trial-floor-ico{display:block;width:40px;height:40px;margin:0 auto 4px;object-fit:contain;opacity:.85}
/* 镇妖塔怪物线条图标 */
.tower-enemy-ico{display:block;width:64px;height:64px;margin:0 auto 6px;object-fit:contain;opacity:.9}
/* 镇妖塔跳关提示小字 */
.tower-skip-tip{margin-top:8px;text-align:center;font-size:10px;color:#a89a7e;letter-spacing:.5px}
/* BOSS 三级属性展示 */
.tower-boss-anti{margin-top:4px;text-align:center;font-size:11px;color:#b0602f;font-weight:600}
/* 邮件到期时间红色小字 */
.mail-expire{margin-top:4px;font-size:10px;color:#d5524a}
/* 妖气显示与购买按钮 */
.tower-yaoqi{margin:6px 0 4px;font-size:11px;color:#8a6a3a}
.tower-yaoqi b{color:#b0802f;font-weight:700}
.tower-yaoqi-buy{width:100%;margin-top:6px;padding:8px;border:1px solid #d8c9a8;border-radius:10px;background:#fbf5e8;color:#8a6a3a;font-size:12px;font-weight:600;cursor:pointer}
.tower-yaoqi-buy:active{transform:scale(.98)}
/* 宗门战挑战记录 */
.sw-history-btn{display:block;width:100%;margin-top:8px;padding:8px;border:1px solid #d8c9a8;border-radius:10px;background:transparent;color:#8a6a3a;font-size:12px;cursor:pointer}
.sw-history-btn:active{transform:scale(.98)}
.sw-history-list{display:flex;flex-direction:column;gap:6px;max-height:60vh;overflow-y:auto}
.sw-history-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:10px;background:rgba(0,0,0,.06)}
.sw-history-left{display:flex;align-items:center;gap:8px}
.sw-history-result{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;font-size:12px;font-weight:700}
.sw-history-result.win{background:#e8f5e9;color:#2e7d32}
.sw-history-result.lose{background:#fdecea;color:#c62828}
.sw-history-vs{font-size:12px}
.sw-history-right{display:flex;align-items:center;gap:8px;font-size:11px;color:#666}
.sw-history-win{color:#2e7d32;font-weight:700}
.sw-history-lose{color:#c62828;font-weight:700}
.sw-history-time{color:#999}

/* 信息条内记录小按钮 */
.sw-history-mini{margin-left:8px;padding:1px 8px;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;font-size:11px;line-height:1.5;cursor:pointer;opacity:.85}
.sw-history-mini:active{transform:scale(.95)}

/* 宗门战积分排行 */
.sw-rank-mini{margin-left:10px;padding:1px 8px;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;font-size:11px;line-height:1.5;cursor:pointer;opacity:.85}
.sw-rank-mini:active{transform:scale(.95)}
.sw-rank-list{display:flex;flex-direction:column;gap:6px;max-height:60vh;overflow-y:auto}
.sw-rank-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:rgba(0,0,0,.06);font-size:13px}
.sw-rank-row.is-top{background:rgba(255,200,80,.12)}
.sw-rank-no{width:28px;text-align:center;font-weight:700}
.sw-rank-name{flex:1;font-weight:600}
.sw-rank-score{color:#8a6a3a;font-weight:600}
.sw-rank-reward{font-size:11px;color:#c47b00}

/* 战斗入口选择（竞技场/巅峰竞技场） */
.battle-entry-list{display:flex;flex-direction:column;gap:10px;padding:4px 0}
.battle-entry-item{display:flex;align-items:center;gap:12px;padding:14px;border-radius:12px;background:transparent;border:1px solid #be8750;cursor:pointer;text-align:left;transition:.15s}
.battle-entry-item:hover{transform:translateY(-1px);box-shadow:0 3px 10px rgba(190,135,80,.3)}
.battle-entry-icon{font-size:24px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:10px}
.battle-entry-text{display:flex;flex-direction:column;gap:3px}
.battle-entry-text b{font-size:15px;color:#5b4628}
.battle-entry-text small{font-size:12px;color:#9a7a50}

/* 巅峰竞技场排行榜优化 */
.arena-reward-row .reward-dq{color:#c47b00;font-weight:800;font-size:13px}
.arena-rank-row:nth-child(-n+3){border-color:#f0d9a0;background:linear-gradient(180deg,#fffaf0,#fdf3dd)}
.arena-rank-row:nth-child(-n+3) .arena-rank-no{font-size:15px}

/* 巅峰竞技场网格与匹配 */
.peak-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:8px 0;max-height:48vh;overflow-y:auto}
.peak-grid-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border:1px solid #e7eae3;border-radius:10px;background:#fbfcf9;cursor:pointer}
.peak-grid-item:hover{background:#f4f9f3;border-color:#9bc4a4}
.peak-grid-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;background:linear-gradient(135deg,#7a9e7e,#4a7a5c)}
.peak-grid-name{font-size:12px;font-weight:600;color:#4a564d;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.peak-grid-power{font-size:11px;color:#8b938b}
.peak-match-vs{display:flex;align-items:center;justify-content:center;gap:20px;padding:30px 10px}
.peak-match-side{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:80px}
.peak-match-avatar{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;color:#fff;background:linear-gradient(135deg,#7a9e7e,#4a7a5c)}
.peak-match-name{font-size:14px;font-weight:700;color:#4a564d}
.peak-match-vs-text{font-size:26px;font-weight:900;color:#c47b00;letter-spacing:2px}

/* 巅峰排行榜右侧奖励栏 */
.peak-rank-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:6px 0 0}
.peak-reward-inline{display:flex;gap:6px;flex-wrap:wrap}
.peak-reward-pill{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700;color:#4a564d}
.peak-reward-pill.rank-1{background:linear-gradient(180deg,#fdf3dd,#f7e3b8);border:1px solid #e8c56a}
.peak-reward-pill.rank-2{background:linear-gradient(180deg,#e8eef5,#d8e2ec);border:1px solid #9fb6c8}
.peak-reward-pill.rank-3{background:linear-gradient(180deg,#fbe6df,#f3d2c4);border:1px solid #d9a08c}

/* 玩家属性弹窗 */
.peak-opp-name-row{display:flex;align-items:center;gap:6px}
.peak-opp-server{font-size:10px;font-weight:700;color:#3e684f;background:#eef5ee;border:1px solid #cfe3d2;border-radius:999px;padding:1px 7px}
.peak-equip-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:10px 0}
.peak-equip-cell{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:10px;border:1px solid #e7eae3;background:#fbfcf9;cursor:pointer}
.peak-equip-icon{width:26px;height:26px;display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1}
.peak-equip-icon svg{width:100%;height:100%}
.peak-equip-icon.big{width:46px;height:46px;font-size:40px}
.peak-equip-slot{font-size:10px;color:#8b938b}
/* 装备品质色：边框 + 背景 + 图标颜色（SVG 用 currentColor） */
.peak-equip-cell.quality-white{border-color:#c5c8c0;background:#f6f7f4;color:#9c9c9a}
.peak-equip-cell.quality-green{border-color:#b8d2bd;background:#eff6ee;color:#3a7c4a}
.peak-equip-cell.quality-blue{border-color:#b8d3e0;background:#eff5f8;color:#4d8ac1}
.peak-equip-cell.quality-purple{border-color:#cdb9dc;background:#f5f0f7;color:#9560c4}
.peak-equip-cell.quality-orange{border-color:#e0ae6d;background:#fff5e8;color:#d77f3a}
.peak-equip-cell.quality-red{border-color:#d87c71;background:#fff0ee;color:#d56f65}
.peak-equip-cell.quality-gold{border-color:#d9b64c;background:#fff9df;color:#b88f2a}
.peak-equip-cell.quality-dark{border-color:#a8862c;background:#fbf3dc;color:#6b5312}
.peak-equip-cell.quality-rainbow{border-color:#d167d1;background:linear-gradient(135deg,#ffe9f7 0%,#e9f0ff 34%,#e4fff6 68%,#fff6df 100%);color:#8a2a7c}
.peak-stats{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.peak-stat-block{background:#fbfcf9;border:1px solid #eef0eb;border-radius:12px;padding:10px 14px}
.peak-stat-title{font-size:11px;font-weight:800;color:#3f6d4d;margin-bottom:6px;letter-spacing:.5px}
.peak-stat-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 18px}
.peak-stat-cell{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #f0f2ed}
.peak-stat-cell:nth-last-child(-n+2):nth-child(2n){border-bottom:none}
.peak-stat-cell:nth-last-child(1){border-bottom:none}
.peak-stat-name{font-size:12px;color:#8b938b}
.peak-stat-val{font-size:14px;font-weight:700;color:#3e684f;font-variant-numeric:tabular-nums}
.peak-stat-empty{font-size:12px;color:#b5bdb5}
.peak-equip-detail-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.peak-equip-detail-head b{display:block;font-size:15px;color:#4a564d}
.peak-equip-detail-head small{display:block;font-size:12px;color:#8b938b;margin-top:2px}
.peak-equip-icon.big.quality-white{color:#9c9c9a}.peak-equip-icon.big.quality-green{color:#3a7c4a}.peak-equip-icon.big.quality-blue{color:#4d8ac1}.peak-equip-icon.big.quality-purple{color:#9560c4}.peak-equip-icon.big.quality-orange{color:#d77f3a}.peak-equip-icon.big.quality-red{color:#d56f65}.peak-equip-icon.big.quality-gold{color:#b88f2a}.peak-equip-icon.big.quality-dark{color:#6b5312}.peak-equip-icon.big.quality-rainbow{color:#8a2a7c}
