:root{color-scheme:dark;background:#10151c;font-family:Noto Sans TC,Microsoft JhengHei,sans-serif}*{box-sizing:border-box}body{align-items:center;background:radial-gradient(circle at 50% 10%,#26384a 0%,transparent 45%),#10151c;display:flex;justify-content:center;margin:0;min-height:100vh}.balance-page{align-items:stretch;display:block;min-height:100vh;padding:0}#balance-app{max-width:none;min-height:100vh;width:100%}.balance-page .balance-panel{background:transparent;border:0;border-radius:0;box-shadow:none;height:100vh;max-width:none;padding:12px 18px;width:100%}.balance-page .balance-panel h1{font-size:16px;line-height:1.4}.balance-page .balance-panel__help{font-size:12px;margin:2px 0 6px}.balance-page .balance-panel__summary,.balance-page .balance-panel__status{font-size:12px;margin:4px 0}.balance-page .balance-panel__status{min-height:18px}.balance-page .balance-panel__controls{gap:6px;grid-template-columns:145px minmax(180px,1fr) max-content;margin-top:4px}.balance-page .balance-panel__select,.balance-page .balance-panel__search{border-radius:5px;padding:6px 8px}.balance-page .balance-panel__rows{border:0;border-radius:0;padding:4px 0}.balance-page .balance-panel__actions{gap:6px;margin-top:4px}.balance-page .balance-panel__actions .overlay-button{border-radius:5px;font-size:12px;margin:0;padding:6px 10px}#app{border:1px solid #735f42;box-shadow:0 24px 80px #000a;max-height:100vh;max-width:100vw;overflow:hidden;position:relative;touch-action:none;-webkit-user-select:none;user-select:none}canvas{display:block;touch-action:none}.mobile-controls,.mobile-orientation-notice{display:none}.mobile-controls{top:0;right:0;bottom:0;left:0;pointer-events:none;position:absolute;z-index:5}.mobile-controls__joystick{background:radial-gradient(circle,#1f3541d9 0,#1f3541d9 43%,#101c25b8 44%,#101c25b8);border:2px solid #a8c8c7a8;border-radius:50%;bottom:18px;height:104px;left:18px;pointer-events:auto;position:absolute;touch-action:none;width:104px}.mobile-controls__thumb{background:radial-gradient(circle at 35% 30%,#e5d69b,#8d7041);border:2px solid #f3e5b3;border-radius:50%;height:48px;left:26px;position:absolute;top:26px;transition:transform 45ms linear;width:48px}.hud{color:#f8f0d8;display:grid;font-size:13px;gap:8px;left:18px;pointer-events:none;position:absolute;right:18px;text-shadow:0 1px 2px #000;top:16px;z-index:2}.hud__status{align-items:center;display:grid;gap:8px;grid-template-columns:34px 68px minmax(110px,280px)}.hud__track{background:#121922cc;border:1px solid #8c7959;border-radius:999px;height:10px;overflow:hidden}.hud__fill{background:linear-gradient(90deg,#7f3135,#e75f58);height:100%;transition:width .12s linear;width:100%}.hud__status:nth-child(2) .hud__fill{background:linear-gradient(90deg,#326b91,#75d4f5);width:0}.hud__meta{display:flex;font-size:18px;font-weight:700;gap:14px;justify-content:flex-end;position:absolute;right:0;top:0}.hud__skills{background:transparent;display:grid;gap:6px;position:absolute;right:0;top:34px;width:132px}.hud__skill{--skill-color: #8c7959;background:transparent;border:1px solid var(--skill-color);border-left:4px solid var(--skill-color);border-radius:7px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr;height:58px;overflow:hidden;padding:6px 7px;position:relative}.hud__skill-cover{background:#081018a8;inset:0 0 auto;pointer-events:none;position:absolute;transition:height .1s linear;z-index:0}.hud__skill-name,.hud__skill-level,.hud__skill-status{position:relative;z-index:1}.hud__skill-name{font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud__skill-level{color:var(--skill-color);font-size:12px;font-weight:800}.hud__skill-status{align-self:end;color:#dce6ee;font-size:11px;grid-column:1 / -1}.hud__skill--empty{--skill-color: #5b6570;background:transparent;border-style:dashed;color:#89929a}.hud__boss{align-items:center;display:none;gap:10px;grid-template-columns:max-content minmax(140px,420px);justify-content:center}.hud__boss--visible{display:grid}.hud__track--boss{border-color:#dbaccc}.hud__fill--boss{background:linear-gradient(90deg,#7f396e,#de89c7)}.overlay{align-items:center;background:#071018b8;display:none;top:0;right:0;bottom:0;left:0;justify-content:center;padding:20px;position:absolute;z-index:3}.overlay--visible{display:flex}.boss-arrival-alert{--boss-alert-border-color: #f04444;--boss-alert-duration: 2.4s;--boss-alert-pulse-count: 3;--boss-alert-pulse-duration: .8s;--boss-alert-text-color: #ff7878;border:4px solid transparent;display:grid;top:0;right:0;bottom:0;left:0;opacity:0;place-items:center;pointer-events:none;position:absolute;z-index:4}.boss-arrival-alert--active{animation:boss-alert-frame-pulse var(--boss-alert-pulse-duration) ease-in-out var(--boss-alert-pulse-count)}.boss-arrival-alert__text{color:var(--boss-alert-text-color);font-family:Noto Sans TC,Microsoft JhengHei,sans-serif;font-size:clamp(34px,6vw,72px);font-weight:900;letter-spacing:.08em;opacity:0;text-align:center;text-shadow:0 2px 2px #190406,0 0 18px #e43131cc}.boss-arrival-alert--active .boss-arrival-alert__text{animation:boss-alert-text var(--boss-alert-duration) ease-in-out}@keyframes boss-alert-frame-pulse{0%,to{border-color:transparent;box-shadow:inset 0 0 0 transparent;opacity:.15}38%{border-color:var(--boss-alert-border-color);box-shadow:inset 0 0 38px #f0444473;opacity:1}}@keyframes boss-alert-text{0%,to{opacity:0;transform:scale(.92)}10%,86%{opacity:1;transform:scale(1)}}.overlay__panel{background:linear-gradient(145deg,#253647,#15212d);border:1px solid #ad936a;border-radius:16px;box-shadow:0 16px 50px #000b;color:#f8f0d8;max-width:760px;padding:32px;text-align:center;width:min(100%,620px)}.overlay__panel h1{font-size:clamp(26px,4vw,42px);margin:0 0 14px}.overlay__panel p{line-height:1.8;margin:0 0 22px;white-space:pre-line}.overlay-button,.upgrade-card{background:linear-gradient(135deg,#8f6d3e,#cda66c);border:0;border-radius:10px;color:#17130d;cursor:pointer;font:inherit;font-weight:800;margin:5px;padding:12px 22px}.overlay-button--secondary{background:#34495b;color:#edf6ff}.upgrade-cards{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.upgrade-card{align-items:flex-start;background:linear-gradient(145deg,#e0d1ae,#b08b58);display:flex;flex-direction:column;margin:0;min-height:165px;padding:18px;text-align:left}.upgrade-card:hover,.overlay-button:hover{filter:brightness(1.12);transform:translateY(-2px)}.upgrade-card span{font-size:13px;font-weight:500;line-height:1.55;margin-top:10px}.balance-panel{background:linear-gradient(145deg,#253647,#15212d);border:1px solid #ad936a;border-radius:16px;box-shadow:0 16px 50px #000b;color:#f8f0d8;display:flex;flex-direction:column;height:min(92vh,680px);max-width:1160px;padding:24px;text-align:left;width:min(100%,1080px)}.balance-panel h1{font-size:clamp(25px,3.5vw,38px);margin:0}.balance-panel__help,.balance-panel__summary,.balance-panel__status{font-size:13px;line-height:1.55;margin:8px 0}.balance-panel__help{color:#d6e0e8}.balance-panel__summary{color:#e0c18a}.balance-panel__status{color:#f3d39d;min-height:20px}.balance-panel__controls{display:grid;gap:10px;grid-template-columns:160px minmax(200px,1fr) max-content;margin-top:8px}.balance-panel__select,.balance-panel__search,.balance-row__input{background:#0d1720;border:1px solid #6d7d8b;border-radius:7px;color:#f8f0d8;font:inherit;min-width:0;padding:8px 10px}.balance-panel__changed-filter{align-items:center;display:flex;font-size:13px;gap:6px;white-space:nowrap}.balance-panel__rows{border:1px solid #536576;border-radius:10px;flex:1;min-height:0;overflow:auto;padding:10px}.balance-group+.balance-group{margin-top:18px}.balance-group h2{color:#e4c184;font-size:15px;margin:4px 0 8px}.balance-row{align-items:center;background:#0f1b25a8;border:1px solid #31495c;display:grid;gap:8px;grid-template-columns:minmax(130px,1.25fr) minmax(175px,1.45fr) 78px minmax(80px,.7fr) max-content;margin-top:-1px;min-height:47px;padding:6px 8px}.balance-row:first-of-type{border-radius:8px 8px 0 0}.balance-row:last-of-type{border-radius:0 0 8px 8px}.balance-row--changed{background:#4a391eaa;border-color:#d4a857}.balance-row strong{font-size:13px}.balance-row__details{display:grid;gap:3px}.balance-row__description{color:#c8d6df;font-size:11px;line-height:1.4}.balance-row code{color:#aabdc9;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.balance-row__default{color:#b8c7d2;font-size:12px;text-align:right}.balance-row__input{width:100%}.balance-row__input[type=checkbox]{accent-color:#d3ab62;justify-self:center;width:auto}.balance-row__reset{background:transparent;border:1px solid #6d7d8b;border-radius:6px;color:#d7e4ee;cursor:pointer;font:inherit;font-size:12px;padding:6px 8px}.balance-row__reset:hover{background:#31495c}.balance-panel__empty{color:#aabdc9;text-align:center}.balance-panel__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}.balance-panel__actions .overlay-button:disabled{cursor:not-allowed;opacity:.45;transform:none}@media(max-width:720px){.upgrade-cards{grid-template-columns:1fr}.upgrade-card{min-height:0}.balance-panel{height:min(96vh,760px);padding:16px}.balance-page{padding:0}.balance-page .balance-panel{height:100vh;padding:10px 12px}.balance-panel__controls{grid-template-columns:1fr}.balance-row{grid-template-columns:1fr 1fr max-content}.balance-row code{grid-column:1 / -1}.balance-row__default{text-align:left}}@media(hover:none)and (pointer:coarse)and (orientation:portrait){.mobile-orientation-notice{align-items:center;background:radial-gradient(circle at 50% 34%,#26394bd9,#0c1219f5 66%);color:#f8f0d8;display:flex;font-size:clamp(20px,6vw,30px);font-weight:800;top:0;right:0;bottom:0;left:0;justify-content:center;letter-spacing:.08em;padding:32px;position:fixed;text-align:center;text-shadow:0 2px 12px #000;z-index:10}}@media(hover:none)and (pointer:coarse)and (orientation:landscape){.mobile-controls--enabled{display:block}.hud{font-size:10px;gap:4px;left:8px;right:8px;top:7px}.hud__status{gap:4px;grid-template-columns:24px 46px minmax(76px,160px)}.hud__track{height:6px}.hud__meta{font-size:12px;gap:6px}.hud__skills{gap:3px;top:24px;width:94px}.hud__skill{border-left-width:3px;border-radius:4px;height:38px;padding:3px 4px}.hud__skill-name,.hud__skill-level{font-size:9px}.hud__skill-status{font-size:8px}.hud__boss{gap:5px;grid-template-columns:max-content minmax(90px,230px)}}
