:root{color-scheme:dark;font-family:Noto Sans SC,Microsoft YaHei,sans-serif;background:#1d1f1c;color:#e7e2d8;font-synthesis:none;--bg: #1d1f1c;--panel: #2a2c27;--line: #55574f;--muted: #aaa69d;--gold: #c69a4b;--gold-hi: #f0c86b;--red: #9f3c31;--green: #59b875;--blue: #5790c4}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-width:1100px;min-height:100vh;background:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px),#1d1f1c;background-size:24px 24px}button,input,select{font:inherit}button{letter-spacing:0}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}summary:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}.app-shell{height:100vh;min-height:720px;display:grid;grid-template-rows:58px 36px 1fr 25px;overflow:hidden}.topbar{display:flex;align-items:center;gap:18px;padding:0 16px;border-bottom:1px solid #5c5346;background:#292b27}.brand{min-width:270px;display:flex;align-items:center;gap:11px}.brand-mark{width:31px;height:31px;display:grid;place-items:center;border:1px solid #7a5931;background:#2b2015;color:var(--gold-hi);font-family:ZCOOL XiaoWei,serif;font-size:20px;box-shadow:inset 0 0 0 2px #17130f}.brand h1{margin:0;font-family:ZCOOL XiaoWei,serif;font-size:19px;font-weight:500;color:#ead7b4;letter-spacing:0}.brand small{display:block;margin-top:1px;color:#aaa398;font-size:10px}.character-switcher{display:flex;align-self:stretch}.character-tab{width:104px;border:0;border-left:1px solid #454740;background:transparent;color:#bbb5ab;cursor:pointer}.character-tab:last-child{border-right:1px solid #454740}.character-tab strong{display:block;font-size:13px;color:inherit}.character-tab span{font-size:10px;color:#9a958c}.character-tab.active{background:#3a352d;color:var(--gold-hi);box-shadow:inset 0 -2px var(--gold)}.top-spacer{flex:1}.currency{display:flex;align-items:center;gap:7px;color:var(--gold-hi);font-variant-numeric:tabular-nums;font-size:13px}.icon-button,.square-button{border:1px solid #5b5d55;background:#343630;color:#d0c9bd;cursor:pointer;display:inline-grid;place-items:center}.icon-button{width:31px;height:31px}.icon-button:hover,.square-button:hover{border-color:#80623b;color:#e9d3aa}.ratebar{padding:0 16px;display:flex;align-items:center;gap:16px;border-bottom:1px solid #494b44;background:#242622;font-size:11px;color:#b5afa5}.rate-control{display:flex;align-items:center;gap:7px}.rate-control input{width:86px;accent-color:var(--gold)}.rate-value{min-width:26px;color:#ded5c7;font-variant-numeric:tabular-nums}.battle-toggle{margin-left:auto;display:flex;align-items:center;gap:7px;color:#aaa296}.battle-toggle input{accent-color:var(--red)}.workspace{min-height:0;display:grid;grid-template-columns:252px minmax(440px,1fr) 456px}.column{min-width:0;min-height:0;background:#2a2c27fa;overflow:hidden}.column+.column{border-left:1px solid #595b53}.column-header{height:39px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #55574f;background:#343630}.column-header h2{margin:0;font-size:12px;font-weight:600;color:#bdb5a7}.column-header small{font-size:10px;color:#aaa59c}.map-open-button{height:25px;padding:0 7px;display:inline-flex;align-items:center;gap:4px;border:1px solid #75633f;background:#3f382a;color:#e2c68e;cursor:pointer;font-size:10px;white-space:nowrap}.map-open-button:hover{border-color:#a17a44;background:#4b402e;color:#f0d49d}.map-pane{display:grid;grid-template-rows:39px 1fr auto}.map-scroll{overflow:auto;padding:8px 0 18px}.region-title{width:100%;min-height:34px;padding:7px 12px;display:flex;align-items:center;justify-content:space-between;border:0;border-bottom:1px solid #42443e;background:#282a26;color:#aaa398;font-size:10px;text-transform:uppercase;cursor:pointer}.region-title:before{content:"+";width:14px;color:#5f584e;text-align:left}.region-title span:first-child{margin-right:auto}.region-title.expanded{color:#d2c9bb;background:#32342f}.region-title.expanded:before{content:"−"}.map-node{width:100%;min-height:47px;padding:7px 11px;border:0;border-left:2px solid transparent;background:transparent;color:#aaa398;display:grid;grid-template-columns:8px 1fr auto;align-items:center;gap:8px;text-align:left;cursor:pointer}.map-node:hover:not(:disabled){background:#373932;color:#eee7dc}.map-node.active{background:#443c2e;border-left-color:var(--gold);color:#f3dfbc}.map-node:disabled{opacity:.38;cursor:not-allowed}.node-dot{width:7px;height:7px;border:1px solid currentColor;transform:rotate(45deg)}.map-node.active .node-dot{background:var(--gold)}.map-name{font-size:12px}.map-meta{display:block;margin-top:2px;color:#a39d93;font-size:9px}.boss-tag{padding:2px 5px;border:1px solid #663c2f;color:#ba6557;font-size:9px}.node-progress{color:#a39d93;font-size:9px;font-variant-numeric:tabular-nums;white-space:nowrap}.node-progress.complete{color:#60a273}.map-footer{padding:10px 11px;border-top:1px solid #4b4d46;background:#282a26}.map-footer p{margin:0 0 8px;font-size:10px;line-height:1.6;color:#b2aca2}.primary-button,.secondary-button,.danger-button{height:31px;padding:0 11px;border:1px solid;cursor:pointer;font-size:11px}.primary-button{border-color:#8a6838;background:#4a361e;color:#efd39e}.primary-button:hover{background:#5c4223}.primary-button:disabled{opacity:.5;cursor:wait;background:#2c2822;border-color:#494136;color:#81786a}.secondary-button{border-color:#62645c;background:#3a3c36;color:#ded7cb}.danger-button{border-color:#69372f;background:#3a211d;color:#dd8172}.wide{width:100%}.combat-pane{display:grid;grid-template-rows:39px 238px minmax(0,1fr)}.encounter{position:relative;display:grid;grid-template-columns:1fr 116px 1fr;align-items:center;padding:20px 30px;border-bottom:1px solid #55574f;overflow:hidden;background:radial-gradient(circle at 50% 38%,#414139 0,#30312c 54%,#282a26)}.encounter:after{content:"";position:absolute;inset:auto 9% 31px;height:1px;background:linear-gradient(90deg,transparent,#4b4032,transparent)}.combatant{min-width:0;text-align:center;position:relative;z-index:1}.portrait-frame{width:88px;height:88px;margin:0 auto 10px;display:grid;place-items:center;border:1px solid #584a37;background:#171612;box-shadow:inset 0 0 0 3px #221f19,0 4px 16px #0008}.combatant-name{color:#e1d1b8;font-size:13px;font-weight:600}.combatant-sub{margin-top:2px;color:#777066;font-size:10px}.versus{text-align:center;color:#5f584e;font-family:Georgia,serif;font-size:11px}.versus strong{display:block;margin-bottom:5px;color:#a25042;font-size:23px;font-weight:400}.combat-dashboard{grid-template-columns:minmax(170px,.85fr) minmax(125px,.7fr) minmax(210px,1.15fr);gap:14px;align-items:stretch;padding:13px 15px;background:#2d2f2a}.combat-dashboard:after{display:none}.player-combat-card,.combat-tactics,.enemy-queue{min-width:0;border:1px solid #55574f;background:#363831}.player-combat-card{padding:11px;display:grid;grid-template-columns:58px minmax(0,1fr);grid-template-rows:1fr auto;gap:9px 10px;align-items:center}.compact-portrait{width:58px;height:58px;display:grid;place-items:center;border:1px solid #514432;background:#121210}.combat-card-copy{min-width:0}.combat-resource{margin-top:8px;display:grid;grid-template-columns:11px minmax(38px,1fr) auto;align-items:center;gap:5px;color:#80786d;font-size:9px;font-variant-numeric:tabular-nums}.combat-resource .bar{height:8px;margin:0}.combat-materials{grid-column:1 / -1;min-height:25px;padding:6px 7px;border-top:1px solid #4a4c45;color:#b4ada1;font-size:9px;text-align:center}.combat-tactics{padding:14px 10px;display:flex;flex-direction:column;justify-content:center;text-align:center}.combat-tactics .versus strong{margin-bottom:3px;color:var(--gold-hi);font-family:inherit;font-size:18px}.combat-tactics .versus span{color:#afa28f;font-family:inherit;font-size:10px}.effect-strip{margin-top:11px;display:flex;flex-wrap:wrap;justify-content:center;gap:4px}.effect-strip span{padding:3px 5px;border:1px solid #385341;background:#19241c;color:#71aa80;font-size:8px}.muted-effect{color:#625d55!important}.summon-status{margin-top:10px;color:#a99570;font-size:9px}.enemy-queue{padding:7px;overflow:auto}.enemy-queue-title{height:24px;padding:0 3px;display:flex;align-items:center;justify-content:space-between;color:#777065;font-size:9px}.enemy-queue-title strong{color:#c8b690;font-size:11px}.enemy-row{min-height:32px;padding:3px 4px;display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:6px;border-top:1px solid #494b44;opacity:.9}.enemy-row.primary{background:#463d2f;opacity:1}.enemy-name{overflow:hidden;color:#aea596;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.enemy-row.primary .enemy-name{color:#e0c890}.enemy-mini-bar{height:3px;margin-top:3px;background:#0f0f0e}.enemy-mini-bar span{display:block;height:100%;background:#984138}.enemy-state{min-width:57px;color:#81786c;font-size:8px;text-align:right;font-variant-numeric:tabular-nums}.enemy-state small{display:block;margin-top:2px;color:#9b725e;font-size:7px}.enemy-empty{height:calc(100% - 24px);display:grid;place-items:center;color:#625d55;font-size:10px}.bar{position:relative;height:10px;margin-top:8px;border:1px solid #342e27;background:#0f0f0e;overflow:hidden}.bar-fill{height:100%;transition:width .16s linear}.bar.hp .bar-fill{background:#9e4035}.bar.mp .bar-fill{background:#356895}.bar.xp .bar-fill{background:#a77e3d}.bar-label{margin-top:3px;color:#827a70;font-size:9px;font-variant-numeric:tabular-nums}.log-section{min-height:0;display:grid;grid-template-rows:34px 1fr}.subtabs{display:flex;align-items:stretch;border-bottom:1px solid #4f5149;background:#292b27}.subtab{min-width:72px;padding:0 12px;border:0;border-right:1px solid #2e2a24;background:transparent;color:#716b61;font-size:10px;cursor:pointer}.subtab.active{color:#eee6da;background:#3b3d36;box-shadow:inset 0 -1px var(--gold)}.log-list{overflow:auto;padding:7px 12px 18px;font-family:SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.75}.log-row{display:grid;grid-template-columns:50px 1fr;border-bottom:1px solid #211f1b}.log-time{color:#9d988f}.log-normal{color:#d0c9bd}.log-damage{color:#ed9182}.log-heal{color:#83c997}.log-loot{color:#dfbd74}.log-rare{color:#ffd875}.log-system{color:#85b9dc}.empty-state{height:100%;display:grid;place-items:center;color:#625d55;font-size:11px}.detail-pane{display:grid;grid-template-rows:39px 1fr}.detail-tabs{height:39px;display:flex;border-bottom:1px solid #55574f;background:#343630}.detail-tab{min-width:0;flex:1 1 0;padding:0 4px;border:0;border-right:1px solid #302c26;background:transparent;color:#7e776d;font-size:11px;white-space:nowrap;cursor:pointer}.detail-tab.active{background:#463e31;color:var(--gold-hi);box-shadow:inset 0 -2px var(--gold)}.detail-content{min-height:0;overflow:auto;padding:12px}.detail-content.item-detail-content{overflow:hidden;padding:0}.character-summary{display:grid;grid-template-columns:76px 1fr;gap:12px;padding-bottom:12px;border-bottom:1px solid #353027}.avatar{width:76px;height:76px;display:grid;place-items:center;border:1px solid #574937;background:#121210}.summary-name{margin:2px 0 4px;color:#e8d4b2;font-family:ZCOOL XiaoWei,serif;font-size:17px}.summary-meta{color:#827b70;font-size:10px}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin:12px 0;background:#332e27;border:1px solid #332e27}.stat-cell{padding:7px 8px;display:flex;justify-content:space-between;background:#1b1916;font-size:10px}.stat-cell span{color:#797269}.stat-cell strong{color:#c7bba8;font-weight:500}.section-title{margin:14px 0 7px;display:flex;justify-content:space-between;color:#8f877b;font-size:10px;font-weight:500}.section-title>span{display:inline-flex;align-items:center;gap:5px}.equipment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.equip-slot{min-height:62px;padding:6px;display:grid;grid-template-columns:40px minmax(0,1fr);gap:7px;align-items:center;border:1px solid #55574f;background:#32342f;cursor:pointer;text-align:left;color:#cbc4b8;overflow:hidden}.equip-slot:hover,.equip-slot.selected{border-color:#9d7744;background:#463e31}.equip-slot.empty{opacity:.62}.equip-slot-copy{min-width:0}.equip-position{display:block;margin-bottom:2px;color:#756e64;font-size:8px}.item-icon{width:36px;height:36px;display:grid;place-items:center;border:1px solid #40382e;background:#11110f}.item-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#bdb3a3}.item-name.named{color:#e5ba59}.item-excellent{display:block;margin-top:2px;color:var(--green);font-size:9px}.item-excellent.muted{color:#655f56}.equipment-note{padding:8px 1px 0;color:#6f695f;font-size:9px;line-height:1.5}.toolbar{display:flex;gap:6px;align-items:center;margin-bottom:9px}.toolbar .spacer{flex:1}.bag-count{color:#756e64;font-size:10px}.filter-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:9px}.select{height:29px;border:1px solid #403a32;background:#171612;color:#a9a196;padding:0 6px;font-size:10px}.item-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.bag-item{height:58px;min-width:0;padding:4px 2px 2px;position:relative;display:grid;grid-template-rows:38px 12px;place-items:center;border:1px solid #55574f;background:#31332e;cursor:pointer;overflow:hidden}.bag-item-label{width:100%;overflow:hidden;color:#766f65;font-size:8px;line-height:12px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.bag-item.selected .bag-item-label{color:#d5c4a7}.bag-item:hover,.bag-item.selected{border-color:#9d7744;background:#474034}.bag-item.named{box-shadow:inset 0 0 0 1px #8b672d}.bag-item.excellent:after{content:attr(data-plus);position:absolute;right:2px;bottom:1px;color:#66c583;font-size:9px;font-weight:700}.bag-item.upgrade{border-color:#64bd7d;background:#304037;box-shadow:inset 3px 0 #64bd7d}.bag-item.upgrade:hover,.bag-item.upgrade.selected{border-color:#8cdda2;background:#3c5144}.bag-item.upgrade.named{box-shadow:inset 3px 0 #64bd7d,inset 0 0 0 1px #a57c34}.upgrade-marker{position:absolute;right:2px;top:2px;z-index:2;height:13px;padding:0 3px;display:inline-flex;align-items:center;gap:1px;border:1px solid #64bd7d;background:#244c32;color:#d8f2df;font-size:7px;font-weight:700;font-variant-numeric:tabular-nums}.upgrade-marker:before{content:"最佳";margin-right:1px}.bag-item .lock{position:absolute;left:2px;top:2px;color:#b7aa91}.quantity{position:absolute;right:2px;top:1px;color:#d5ccbe;font-size:8px;text-shadow:0 1px 2px #000}.item-inspector{margin-top:10px;padding:9px;border-top:1px solid #39342c;background:#171612;font-size:10px}.inspector-title{color:#e2c17c;font-size:12px}.inspector-line{margin-top:4px;color:#8e877d}.excellent-text{color:var(--green)}.item-workspace{height:100%;min-height:0;display:grid;grid-template-rows:66px 37px minmax(0,1fr) var(--comparison-height, 292px);background:#292b27;transition:grid-template-rows .14s ease}.item-workspace.comparison-full{--comparison-height: 292px}.item-workspace.comparison-compact{--comparison-height: 160px}.item-workspace.comparison-empty{--comparison-height: 68px}.item-core-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid #55574f;background:#32342f}.core-stat{min-width:0;padding:7px 8px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid #302c26;border-bottom:1px solid #302c26;font-size:9px}.core-stat:nth-child(4n){border-right:0}.core-stat:nth-child(n+5){border-bottom:0}.core-stat span{color:#706a60}.core-stat strong{margin-top:2px;overflow:hidden;color:#c7bba8;font-size:11px;font-weight:500;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.core-stat.primary strong{color:var(--gold-hi)}.item-mode-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #55574f;background:#272925}.item-mode-tab{min-width:0;padding:0 10px;display:flex;align-items:center;justify-content:center;gap:6px;border:0;border-right:1px solid #302c26;background:transparent;color:#817a6f;font-size:10px;cursor:pointer}.item-mode-tab:last-child{border-right:0}.item-mode-tab span{min-width:16px;color:#625d55;font-size:9px;text-align:right}.item-mode-tab.active{color:#f0d79b;background:#453d30;box-shadow:inset 0 -2px var(--gold)}.item-scroll-region{min-height:0;overflow:auto;padding:10px;background:#30322d}.item-region-toolbar{min-height:30px;display:flex;align-items:center;gap:7px;margin-bottom:8px}.item-region-toolbar .spacer{flex:1}.upgrade-summary{height:24px;padding:0 6px;display:inline-flex;align-items:center;gap:3px;border:1px solid #548e64;background:#283a2e;color:#9cdaa9;font-size:9px;font-weight:600;white-space:nowrap}.item-search{width:118px;height:28px;padding:0 7px;display:flex;align-items:center;gap:5px;border:1px solid #55574f;background:#252723;color:#9d988f}.item-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#b8afa1;font-size:9px}.item-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:9px}.cleanup-settings{min-height:42px;margin-bottom:6px;padding:5px 6px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid #55574f;background:#292b27}.cleanup-copy{min-width:0;display:flex;flex-direction:column;gap:2px;font-size:9px;line-height:1.35}.cleanup-copy strong{color:#c9b98e;font-size:10px;font-weight:600}.cleanup-copy span{color:#8f897f}.cleanup-purge-button{height:29px;font-size:9px}.compact-check{min-width:0;min-height:27px;padding:0 6px;display:flex;align-items:center;gap:6px;border:1px solid #353129;color:#8f887c;font-size:9px}.compact-check input{margin:0;accent-color:var(--gold)}.item-scroll-region .item-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.item-grid-empty{min-height:116px;display:grid;grid-column:1 / -1;place-items:center;color:#625d55;font-size:10px}.action-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}.transfer-button{height:38px;padding:0 8px}.transfer-button>span{line-height:1.15}.transfer-button small{display:block;margin-top:2px;color:#756f65;font-size:7px}.icon-action{width:31px;padding:0;display:inline-grid;place-items:center}.danger-button:disabled,.secondary-button:disabled{opacity:.42;cursor:not-allowed}.item-comparison{min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;border-top:1px solid #656057;background:#252723;font-size:9px}.comparison-scroll{min-height:0;overflow:auto;padding:8px 10px 0}.empty-comparison{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 10px;color:#625d55}.comparison-heading{min-height:42px;display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:8px}.comparison-icon{width:40px;height:40px;display:grid;place-items:center;border:1px solid #40382e;background:#11110f}.comparison-title-wrap{min-width:0}.comparison-title-wrap .inspector-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comparison-meta{margin-top:3px;overflow:hidden;color:#756f65;text-overflow:ellipsis;white-space:nowrap}.comparison-target{min-width:54px;text-align:right}.comparison-target span{display:block;color:#655f56;font-size:8px}.comparison-target strong{display:block;margin-top:2px;color:#cdb787;font-size:10px;font-weight:500}.comparison-context{min-height:24px;display:grid;grid-template-columns:minmax(0,1.4fr) 1fr auto;align-items:center;gap:7px;border-bottom:1px solid #302c26;color:#7c756a}.comparison-context span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comparison-context strong{color:#bdb3a3;font-weight:500}.comparison-warning{min-height:22px;padding:5px 6px;border-bottom:1px solid #482d28;background:#281916;color:#d27b6d}.comparison-table{font-variant-numeric:tabular-nums}.comparison-row{min-height:19px;display:grid;grid-template-columns:.8fr 1fr 1fr 1fr;align-items:center;border-bottom:1px solid #25221d;color:#91897d}.comparison-row>span:not(:first-child),.comparison-row strong{text-align:right}.comparison-table-head{min-height:20px;color:#625d55;font-size:8px}.comparison-row strong{font-weight:600}.positive{color:#62b77a!important}.negative{color:#cf7165!important}.neutral{color:#69645c!important}.mixed{color:#d1a75d!important}.non-equipment-detail,.equipped-detail{min-height:64px;padding:7px 0;display:flex;align-content:flex-start;flex-wrap:wrap;gap:5px 12px;color:#8e877d;line-height:1.5}.non-equipment-detail span:first-child,.equipped-detail span:first-child{width:100%;color:#aaa194}.comparison-actions{min-height:45px;padding:6px 10px 7px;display:flex;align-items:center;gap:6px;border-top:1px solid #45473f;background:#292b27;overflow:hidden}.skill-list{display:grid;gap:6px}.skill-row{min-height:56px;padding:7px;display:grid;grid-template-columns:40px 1fr auto;gap:9px;align-items:center;border:1px solid #55574f;background:#32342f}.skill-detail-row{min-height:94px;align-items:start}.skill-copy{min-width:0}.skill-glyph{width:40px;height:40px;display:grid;place-items:center;border:1px solid #4a4032;background:#242019;color:#d4ab64;font-family:ZCOOL XiaoWei,serif;font-size:18px}.skill-name{color:#c9bdab;font-size:11px}.skill-desc{margin-top:3px;color:#817a70;font-size:10px;line-height:1.45}.skill-rank{color:#9d8c71;font-size:9px}.strategy-summary{margin-bottom:8px;padding:8px 9px;border-left:2px solid #80623b;background:#1b1915;color:#8f877b;font-size:10px;line-height:1.5}.skill-meta{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px}.skill-meta span{padding:2px 4px;border:1px solid #393229;color:#918674;font-size:8px}.skill-meta .material-tag{border-color:#614c2d;color:#c8a65f}.skill-auto-rule{margin-top:4px;color:#6f8f76;font-size:9px;line-height:1.4}.shop-list{display:grid;gap:5px}.shop-row{min-height:54px;padding:6px 7px;display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:8px;align-items:center;border-bottom:1px solid #4a4c45;background:#31332e}.shop-copy{min-width:0}.shop-buy{min-width:68px;padding:0 7px;font-variant-numeric:tabular-nums}.shop-actions{display:flex;align-items:center;gap:3px}.shop-quick{min-width:38px;padding:0 5px}.held-count{margin-left:4px;color:#6f8f76;font-size:8px;font-weight:400}.shop-buy:disabled{opacity:.45;cursor:not-allowed}.test-panel{margin-top:12px;border:1px solid #4b3e2d;background:#1c1914}.test-panel summary{padding:9px;cursor:pointer;color:#baa67e;font-size:10px}.test-tools{padding:0 8px 9px;display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.test-tools button{min-height:28px}.test-mark{color:#c07968;font-size:9px}.statusbar{padding:0 10px;display:flex;align-items:center;gap:16px;border-top:1px solid #55574f;background:#1d1f1c;color:#9d988f;font-size:9px}.statusbar .online{color:#64a879}.statusbar span:last-child{margin-left:auto}.capacity-warning-text{color:#df796b!important}.action-notice{position:fixed;right:18px;bottom:39px;z-index:90;max-width:430px;min-height:38px;padding:9px 12px;display:flex;align-items:center;gap:8px;border:1px solid;background:#181714;box-shadow:0 8px 24px #000a;color:#c9c0b2;font-size:10px}.action-notice.success{border-color:#386145}.action-notice.success svg{color:#67b37c}.action-notice.warning{border-color:#754239}.action-notice.warning svg{color:#db7668}.undo-bar{position:fixed;left:50%;bottom:37px;z-index:89;min-height:42px;padding:5px 6px 5px 12px;display:flex;align-items:center;gap:9px;border:1px solid #554833;background:#1c1914;box-shadow:0 8px 24px #000a;color:#b9ae9d;font-size:10px;transform:translate(-50%)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;background:#000a}.confirm-dialog{width:min(430px,calc(100vw - 40px));padding:18px;display:grid;grid-template-columns:32px 1fr;gap:10px 12px;border:1px solid #645039;background:#1a1814;box-shadow:0 18px 50px #000d}.confirm-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid #684039;color:#d16e61}.confirm-dialog h3{margin:0 0 7px;color:#e2c895;font-size:14px;font-weight:500}.confirm-dialog p{margin:0;color:#958c7f;font-size:10px;line-height:1.65}.confirm-dialog p strong{color:#dbb86b}.confirm-list{grid-column:1 / -1;max-height:92px;padding:8px;display:flex;flex-wrap:wrap;align-content:flex-start;gap:5px;overflow:auto;border:1px solid #302b24;background:#141310}.confirm-list span{padding:3px 5px;background:#211e19;color:#948b7d;font-size:9px}.confirm-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:7px}.tooltip{z-index:50;max-width:250px;padding:7px 9px;border:1px solid #594a35;background:#181612;color:#c7bca9;box-shadow:0 8px 22px #000a;font-size:10px;line-height:1.5}.battle-toggle,.map-node,.subtab,.detail-tab,.item-mode-tab,.comparison-context,.comparison-row,.skill-name,.item-name{color:#c9c3b8}.region-title:before,.map-meta,.node-progress,.combat-resource,.enemy-queue-title,.enemy-state,.bar-label,.summary-meta,.stat-cell span,.equip-position,.bag-count,.bag-item-label,.comparison-meta,.skill-desc,.skill-rank,.skill-auto-rule,.equipment-note,.core-stat span{color:#aaa59c}.muted-effect,.enemy-empty,.empty-state,.item-grid-empty,.empty-comparison,.comparison-table-head,.item-mode-tab span,.neutral{color:#969188!important}.map-node:disabled{opacity:.55}.select,.item-search input{border-color:#55574f;background:#252723;color:#ddd6ca}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#232521}::-webkit-scrollbar-thumb{background:#565850;border:2px solid #232521}::-webkit-scrollbar-thumb:hover{background:#707269}@media(max-width:1200px){.brand{min-width:230px}.character-tab{width:96px}.workspace{grid-template-columns:220px minmax(0,1fr) 400px}.combat-dashboard{grid-template-columns:minmax(140px,.85fr) minmax(96px,.7fr) minmax(180px,1.15fr);gap:8px;padding:10px 8px}.player-combat-card{padding:8px;grid-template-columns:48px minmax(0,1fr);gap:7px 8px}.compact-portrait{width:48px;height:48px}.combat-tactics{padding-inline:6px}.item-search{width:104px}.item-scroll-region .item-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-height:780px){.app-shell{min-height:680px}.combat-pane{grid-template-rows:39px 205px minmax(0,1fr)}.portrait-frame{width:72px;height:72px}}
