/* /css/style.css */
:root{color-scheme:dark;--gold:#c8aa70;--bright:#ead8ac;--line:#746143;--muted:#9b9587;--panel:#1b1c19;--green:#90ad79}*{box-sizing:border-box}body{margin:0;background:#080b0c;color:#e5e0d3;font-family:"PingFang TC","Microsoft JhengHei",sans-serif;font-size:14px}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,input:focus-visible{outline:2px solid #e3bf72;outline-offset:3px}button{border:0}button,canvas{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}button[hidden],[hidden]{display:none!important}#app{max-width:620px;min-height:100dvh;margin:auto;background:#121411;box-shadow:0 0 90px #000;border-left:1px solid #37362e;border-right:1px solid #37362e}.screen{min-height:100dvh;position:relative;overflow:hidden}.entrance{background:linear-gradient(#101211e8,#131510f7),url('/image/maps/assets/island.png') center/cover}.entrance:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.24;background:repeating-linear-gradient(45deg,transparent,transparent 27px,#8d795744 28px,transparent 29px),repeating-linear-gradient(-45deg,transparent,transparent 27px,#8d795744 28px,transparent 29px)}#login{display:flex;align-items:center;flex-direction:column;text-align:center;padding:6vh 34px 25px}.rune{font-size:50px;color:#a98c53;line-height:1.4;text-shadow:0 0 30px #caa34e55}.eyebrow{font:9px/1.5 Georgia,serif;letter-spacing:2.5px;color:var(--gold)}.logo{font-family:Georgia,"Noto Serif TC","PMingLiU",serif;font-size:clamp(52px,11vw,84px);font-weight:900;letter-spacing:8px;margin:22px 0 0;background:linear-gradient(#ffffed 10%,#b8b5a9 42%,#eee7d9 46%,#898477 63%,#d2b77e 90%);background-clip:text;color:transparent;filter:drop-shadow(0 3px 0 #5c472a) drop-shadow(0 7px 6px #000)}.subtitle{font-family:serif;letter-spacing:5px;color:var(--gold);font-size:14px;margin:14px 0 28px}.ornament{color:#8b784c;font-size:10px;white-space:nowrap}.login-form{width:100%;max-width:420px;position:relative;margin-top:22px}.intro{color:#b6af9c;font-size:12px;margin:10px 0 28px}.field{width:100%;display:flex;align-items:center;gap:16px;background:#0a0c0bba;border:1px solid #63583d;padding:17px 14px;margin:12px 0;text-align:left;box-shadow:inset 0 0 0 3px #2b281e44}.field span{color:#878577;font-size:11px;padding-right:13px;border-right:1px solid #4f4939}.field strong{font-weight:normal;flex:1;color:#d0c3a6}.field b{font-size:20px;color:#897e61}.online-dot{display:inline-block;width:8px;height:8px;background:#7b9d5e;border-radius:50%;box-shadow:0 0 8px #88aa4c88;margin-right:10px}.primary{width:100%;padding:15px 20px;background:linear-gradient(120deg,#6c5736,#3c3528);border:1px solid #ae8d50;box-shadow:inset 0 0 0 3px #28271f,inset 0 0 25px #c9a66722;color:#f4e2b8;font-family:serif;font-size:18px;letter-spacing:2px}.primary:hover{filter:brightness(1.15)}.primary.large{margin-top:25px;padding:20px}.primary span{float:right}.quiet{background:none;color:#d1ba89;padding:12px}.login-links{display:flex;justify-content:center;margin:25px 0;gap:0}.login-links button{background:none;color:#b7ad92;font-size:12px;padding:4px 18px;border-right:1px solid #4e4532}.login-links button:last-child{border:0}#login footer{position:relative;margin-top:auto;padding-top:26px;color:#a49b85;font-size:11px;line-height:2}footer small{color:#6c716b}.page-head{display:flex;align-items:center;gap:14px;border-bottom:1px solid #605138;padding:20px;background:#151814bd;position:relative;z-index:1}.page-head h2{margin:3px 0 0;font:23px serif;letter-spacing:2px}.back{font-size:34px;background:none;color:var(--gold);padding:0 12px 0 0}.badge{margin-left:auto;border:1px solid #6b593b;border-radius:3px;padding:5px 9px;font-size:11px;color:var(--gold)}.small-brand{padding:25px;color:var(--bright);font:23px serif;letter-spacing:3px}.small-brand span{font:11px sans-serif;color:var(--muted);letter-spacing:0}#character-list{padding:0 22px;position:relative;display:grid;gap:10px}.character-slot{background:#080b0ccc;border:1px solid #5e523b;min-height:95px;text-align:left;display:flex;align-items:center;padding:10px 16px;gap:16px}.character-slot .plus{font-size:38px;color:var(--gold);font-family:serif;width:55px;text-align:center}.character-slot span small{display:block;color:var(--muted);margin-top:7px}.character-slot>span:last-child{margin-left:auto}.bottom-note{padding:25px;text-align:center;color:var(--muted);font-size:11px}#create{background:radial-gradient(ellipse at 50% 25%,#30382b,#131710 65%)}#race-preview{height:330px;position:relative;display:flex;justify-content:center;overflow:hidden}.halo{position:absolute;left:50%;top:30px;transform:translateX(-50%);width:260px;height:260px;border:1px solid #a88a4944;border-radius:50%;box-shadow:0 0 80px #bda95c16,inset 0 0 70px #bda95c11}.halo:after{content:"";position:absolute;inset:10px;border:1px dashed #c4a45e33;border-radius:50%}.hero-art,.avatar-art{background-image:url('/image/characters/assets/heroes.png');background-size:300% 200%;background-repeat:no-repeat}.hero-art{width:300px;height:300px;position:absolute;top:0;filter:drop-shadow(0 14px 12px #0009)}.race-0{background-position:0% 0%}.race-1{background-position:50% 0%}.race-2{background-position:100% 0%}.race-3{background-position:0% 100%}.race-4{background-position:50% 100%}.race-5{background-position:100% 100%}.race-caption{position:absolute;bottom:0;left:24px;right:24px;background:linear-gradient(transparent,#151a13e8 45%);padding-top:25px}.race-caption>span{color:var(--gold);font-size:10px;letter-spacing:3px}.race-caption h3{font:27px serif;letter-spacing:6px;margin:6px 0}.race-caption p{font-size:12px;color:#b0b7a3;margin:0;line-height:1.7}.race-choices{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;padding:15px 20px}.race-choice{padding:9px 0;background:#1e251b;border:1px solid #444d38;color:#a2ae94;font-size:11px}.race-choice.active{background:#55472c;border-color:#d5b26a;color:#f2dcb4}.trait-box{margin:0 20px;padding:12px;border:1px solid #5b593e;background:#22291e;display:flex;gap:12px;align-items:center;min-height:66px}.trait-box>span{font-size:27px;color:var(--gold)}.trait-box strong{display:block;font-size:12px;color:#dbc394;margin-bottom:4px}.trait-box p{font-size:11px;color:#a6b09c;margin:0;line-height:1.7}.create-fields{padding:18px 20px}.create-fields label{display:block;font-size:12px;color:var(--gold)}label small{float:right;color:var(--muted)}input{background:#090c09;border:1px solid #5f593c;width:100%;padding:13px;color:#f2e9cd;border-radius:0;margin:8px 0 15px;font-size:16px}.form-error{color:#e69980;min-height:15px;font-size:12px}#game{height:100dvh;min-height:480px;display:flex;flex-direction:column;background:#131611}.game-header{display:flex;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid #756343;background:linear-gradient(#303229,#171c16);z-index:2;height:86px;flex-shrink:0}#avatar-button{width:55px;height:58px;padding:0;position:relative;background:#262b1f;border:1px solid #b39a62;border-radius:50%}.avatar-art{display:block;width:58px;height:58px;filter:drop-shadow(0 2px 2px #000)}#avatar-button b{position:absolute;bottom:-5px;left:20px;background:#1f2118;border:1px solid #ae9152;border-radius:50%;font-size:11px;padding:2px 5px}.hero-status{flex:1;min-width:0}.hero-status>div:first-child{display:flex;gap:8px;align-items:center;margin:0 0 5px}.hero-status strong{font-size:13px}.hero-status>div span{font-size:9px;color:#b2b49f}.bar{position:relative;height:11px;border:1px solid #555848;background:#151912;margin-top:3px;overflow:hidden}.bar i{display:block;height:100%;transition:width .2s}.bar span{position:absolute!important;inset:0;text-align:center;font:8px/9px sans-serif!important;color:white!important}.health i{background:linear-gradient(#be6c45,#7d302b)}.rage i{background:linear-gradient(#ae7755,#693f27)}.experience{height:4px}.experience i{background:#b7aa65}.currencies{width:80px;text-align:right;color:#e4cc82;font-size:12px}.currencies small{display:block;font-size:9px;color:#8d9680;margin-top:9px}#battlefield{position:relative;flex:1;min-height:200px;overflow:hidden;touch-action:none;background:#263e30}#world{position:absolute;width:100%;height:100%;inset:0;touch-action:none}.zone-label{position:absolute;top:15px;left:15px;pointer-events:none;text-shadow:0 2px 6px #000}.zone-label small{font-size:9px;color:#d3dfcb}.zone-label h2{font:20px serif;letter-spacing:4px;margin:5px 0;color:#fff0c7}.mini-map{position:absolute;right:12px;top:12px;width:77px;height:91px;padding:3px;background:#1a211bc9;border:1px solid #a58c55}.mini-map canvas{width:68px;height:68px;display:block}.mini-map span{font-size:9px;color:#c7b787}.quest{position:absolute;top:90px;left:12px;display:flex;flex-direction:column;gap:5px;background:#142017bc;border-left:2px solid #b29a5c;padding:9px 11px;text-align:left}.quest small{font-size:9px;color:#c4b17b}.quest strong{font-size:11px;font-weight:normal}.quest span{font-size:10px;color:#b3c6a5}.battle-note{position:absolute;bottom:80px;left:50%;transform:translateX(-50%);font-size:10px;background:#16211a99;padding:5px 8px;border-radius:2px;white-space:nowrap;color:#d2d9c5;pointer-events:none}.battle-controls{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:6px}.battle-controls button{background:#191d19dd;border:1px solid #7e7958;padding:7px 8px;font-size:9px;color:#b0b4a3}.battle-controls b{display:block;font-size:12px;margin-top:3px}.battle-controls .active{border-color:#baa55f;color:#e2cd83;background:#3c4327db}.attack{position:absolute;bottom:18px;right:15px;width:62px;height:62px;border-radius:50%;background:radial-gradient(#897344cc,#282e22f5);border:2px solid #bc9f63;color:#f9e1a5;font-size:26px;box-shadow:0 0 0 4px #1d281999}.attack small{display:block;font:9px sans-serif}.stop{position:absolute;bottom:89px;right:22px;background:#18251bd9;border:1px solid #727a57;border-radius:3px;padding:5px 10px;font-size:10px}#joystick{display:none;position:absolute;bottom:18px;left:15px;width:83px;height:83px;border:1px solid #c2c99788;background:#17291e66;border-radius:50%;touch-action:none}#joystick i{position:absolute;width:35px;height:35px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(#d1c58d,#777650);border:1px solid #e9d9a0;pointer-events:none}@media(any-pointer:coarse){#joystick{display:block}}.skill-strip{display:flex;justify-content:center;padding:8px;gap:8px;border-top:1px solid #938050;background:linear-gradient(#272a20,#171b16);flex-shrink:0}.skill-button{width:53px;position:relative;min-height:54px;border:1px solid #605c44;background:#111b17;font-size:22px;padding:5px}.skill-button small{display:block;font-size:9px;color:#c7c3a0;margin-top:2px}.skill-button .cooldown{position:absolute;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;color:#efd89b;font-size:17px}.skill-button.locked{opacity:.45;filter:grayscale(1)}.combat-feed{height:34px;padding:9px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;color:#a6ba94;background:#0a100d;border-top:1px solid #454b35;flex-shrink:0}.bottom-nav{display:grid;grid-template-columns:repeat(6,1fr);background:linear-gradient(#282a22,#10150f);border-top:1px solid #9d8754;padding-bottom:env(safe-area-inset-bottom);flex-shrink:0}.bottom-nav button{background:transparent;border-right:1px solid #454333;padding:7px 1px 9px;font-size:10px;color:#bcb39a}.bottom-nav button span{display:block;font:25px serif;margin-bottom:3px;color:#c9b07a}.bottom-nav button:hover{background:#a5904422}#modal{position:fixed;inset:0;z-index:100;display:flex;justify-content:center;align-items:center;padding:18px}.modal-shade{position:absolute;inset:0;background:#020604bc;backdrop-filter:blur(5px)}.modal-box{position:relative;background:linear-gradient(140deg,#272a20,#131b16);border:1px solid #a98d55;box-shadow:0 0 0 4px #252c20,0 20px 80px #000;width:100%;max-width:500px;max-height:86dvh;overflow:auto}.modal-box>header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid #635a3e;position:sticky;top:0;background:#20271ef5;z-index:2}.modal-box h2{font:23px serif;color:#ead7aa;margin:3px 0 0;letter-spacing:3px}#close-modal{background:none;color:#b7a276;font-size:30px;padding:0 2px}#modal-content{padding:18px 20px;color:#bdc3ac;font-size:12px;line-height:1.8}#modal-content h3{font:18px serif;color:#dbc699;margin:12px 0}#modal-content p{margin:6px 0 15px}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:15px 0}.stat{padding:10px;background:#0b140dcc;border:1px solid #455039;display:flex;justify-content:space-between}.stat b{color:#d5c28f}.modal-actions{display:flex;gap:8px;margin-top:16px}.secondary{border:1px solid #746441;background:#353a28;color:#dec798;padding:9px 12px}.item-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.item{aspect-ratio:1;background:radial-gradient(#354532,#111d14);border:1px solid #6b7550;position:relative;font-size:30px;display:flex;align-items:center;justify-content:center}.item small{position:absolute;left:3px;right:3px;bottom:3px;font-size:8px;line-height:1.3;color:#c2cdb4}.item.equipped{border-color:#d4ac51;box-shadow:inset 0 0 0 1px #d4ac5177}.item.rare{border-color:#4c93ae}.item.epic{border-color:#aa74cc}.item .indicator{position:absolute;top:1px;right:4px;font-size:11px;color:#f5da83}.skill-row{padding:12px 0;border-bottom:1px solid #4b533c;display:flex;gap:12px;align-items:center}.skill-row .glyph{font-size:29px;min-width:36px;text-align:center}.skill-row .description{flex:1}.skill-row strong{color:#e0d1aa;font-size:13px}.skill-row p{font-size:10px;margin:3px 0!important;line-height:1.5}.skill-row button{flex-shrink:0;font-size:10px}.dungeon-art{height:135px;background:linear-gradient(transparent,#13201ae0),url('/image/maps/assets/island.png') center 60%/cover;filter:sepia(.3) hue-rotate(25deg);border:1px solid #676c48;display:flex;align-items:end;padding:12px;font:23px serif;color:#e8d8aa;letter-spacing:3px}.preview-chip{color:#d1ab68;font-size:10px;border:1px solid #6c5b36;padding:3px 7px;display:inline-block}.map-sheet{height:260px;background:#d2b77e;border:7px solid #ad8a4d;position:relative;overflow:hidden;color:#453d29}.map-sheet canvas{width:100%;height:100%}.map-sheet>span{position:absolute;bottom:8px;left:8px;font:18px serif}#toast{position:fixed;bottom:110px;left:50%;transform:translateX(-50%) translateY(12px);background:#263320f5;color:#f1dfad;border:1px solid #ab9152;padding:10px 18px;z-index:150;opacity:0;transition:.2s;pointer-events:none;max-width:85vw;text-align:center;font-size:12px}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}#boss-info{position:absolute;top:60px;left:50%;transform:translateX(-50%);width:60%;text-align:center;font-size:10px;background:#21161ce0;padding:7px;border:1px solid #b88964;color:#f0c7aa}.gold{color:#e6c46b}.muted{color:#929d86}.row{display:flex;justify-content:space-between;align-items:center;gap:10px}.lock-toggle{background:none;color:#ccb578;border:1px solid #6c6849;padding:4px 7px;font-size:10px}.portrait-mini{width:65px;height:65px}.mode-hint{font-size:10px;color:#a6ae96}.modal-box .primary{font-size:14px}#create .eyebrow{letter-spacing:1.5px}@media(min-width:800px){body{background:radial-gradient(ellipse at center,#19251e,#080b0c 75%)}#app{margin:20px auto;min-height:calc(100dvh - 40px)}.screen{min-height:calc(100dvh - 40px)}#game{height:calc(100dvh - 40px)}#login{padding-top:5vh}.race-choices{gap:10px}#race-preview{height:360px}.hero-art{width:330px;height:330px}}@media(max-height:700px){#login{padding-top:15px}.logo{margin-top:8px}.subtitle{margin-bottom:10px}.intro{margin:3px 0 12px}.rune{font-size:30px}.login-form{margin-top:12px}.login-links{margin:15px 0}.primary.large{margin-top:15px}#race-preview{height:245px}.hero-art{width:245px;height:245px}.race-caption p{font-size:10px}.create-fields{padding-top:10px}.race-choices{padding:10px 20px}.game-header{height:75px}.skill-strip{padding:5px}.skill-button{min-height:45px;width:47px;font-size:18px}.bottom-nav button{padding:4px 1px 6px}.bottom-nav button span{font-size:20px}.combat-feed{height:28px;padding:6px 12px}.zone-label h2{font-size:17px}.quest{top:75px}.battle-note{bottom:82px;font-size:9px}}

/* /css/online.css */
.auth-label{display:block;text-align:left;color:#bda776;font-size:11px;margin:10px 0 0}.login-form input{margin-bottom:5px}#auth-status{font-size:11px;color:#e8b38a;min-height:16px;line-height:1.5;margin:8px 0}#login .primary.large{margin-top:8px}.online-chat{display:flex;gap:5px;margin-top:10px}.online-chat input{min-width:0;margin:0;padding:8px;font-size:16px}.online-chat select{max-width:90px;background:#1f2c21;color:#dfd4b4;border:1px solid #716143}#connection-label{font-size:9px}.party-member{border-bottom:1px solid #526044;padding:8px 0}.party-member button{font-size:10px;margin:3px;padding:5px 7px}.party-settings{display:flex;justify-content:space-between;gap:8px;margin:8px 0}.party-settings select{background:#1b2c1e;color:#e9d8ae;max-width:200px;padding:5px;border:1px solid #716143}.party-invite{padding:10px;border:1px solid #b79b5c;background:#45482d}.party-invite button{margin-right:8px}.online-note{font-size:10px;color:#c5ad78;line-height:1.7}#lobby .page-head .back{font-size:13px}#game .currencies small{font-size:9px}

.online-announcement{position:absolute;z-index:75;top:calc(env(safe-area-inset-top,0px) + 76px);left:50%;transform:translateX(-50%);width:min(560px,90%);box-sizing:border-box;display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid #b79b5c;border-radius:8px;background:rgba(24,31,25,.96);color:#f6e5b7;font-size:13px;line-height:1.5;box-shadow:0 4px 16px #0008}.online-announcement[hidden]{display:none}.online-announcement span{white-space:pre-wrap;overflow-wrap:anywhere;max-height:7em;overflow:auto;flex:1;min-width:0}.online-announcement button{flex:none;font-size:11px;padding:4px 6px}

/* /css/hero-sprites.css */
/* 檔案載入前不顯示舊等分圖集，避免短暫露出別的角色。 */
.hero-art,.avatar-art{background-image:none;background-size:contain;background-position:center;background-repeat:no-repeat}
/* 縮圖尺寸優先於大螢幕 .hero-art 規則，避免角色列表突然變成大圖。 */
.character-slot .hero-art.portrait-mini{position:static!important;top:auto;width:64px!important;height:76px!important;flex:0 0 64px;min-width:64px;max-width:64px;filter:drop-shadow(0 3px 4px #0008)}
.character-slot{min-height:98px;overflow:hidden}
#race-preview .hero-art{background-size:contain;background-position:center;}
#hud-avatar.avatar-art{width:100%;height:100%;background-size:contain;background-position:center;}

/* /css/pwa.css */
.pwa-actions{display:flex;justify-content:center;gap:14px;margin:12px 0;font-size:12px;flex-wrap:wrap}.pwa-actions button{border:1px solid #776440;border-radius:6px;background:#1d211c;color:#d9bd7c;padding:8px 12px}
#pwa-install-dialog{background:#171d19;color:#ece4d4;border:1px solid #9d8754;border-radius:14px;padding:24px;max-width:420px;width:calc(100% - 36px);max-height:80dvh;overflow:auto;box-shadow:0 16px 70px #0008}#pwa-install-dialog::backdrop{background:#000b}#pwa-install-dialog h2{margin-top:0;color:#ddba70}#pwa-install-dialog p,#pwa-install-dialog li{line-height:1.8}#pwa-install-dialog ol{padding-left:24px}#pwa-install-dialog li{margin:9px 0}#pwa-install-dialog button{border:1px solid #ad8f50;background:#d8b66c;color:#171b16;padding:10px 20px;border-radius:7px;width:100%}#pwa-install-dialog small{display:block;color:#bcb5a4;line-height:1.7;margin:16px 0}
@media(display-mode:standalone){#app{margin:0 auto;min-height:100dvh;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.screen{min-height:calc(100dvh - env(safe-area-inset-top))}#game{height:calc(100dvh - env(safe-area-inset-top))}#modal{padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom))}}

/* /css/viewport-lock.css */
html,body{touch-action:pan-x pan-y;-webkit-text-size-adjust:100%;text-size-adjust:100%}@media(pointer:coarse){input,select,textarea{font-size:16px!important}}@media(max-height:900px){#login{padding-top:max(14px,env(safe-area-inset-top))}#login .rune{font-size:32px;line-height:1.15}#login .logo{font-size:clamp(42px,10vw,64px);margin-top:12px}#login .subtitle{margin:8px 0 12px}#login .login-form{margin-top:10px}#login .intro{margin:6px 0 12px}#login .field{padding:10px 12px}#login .login-links{margin:12px 0}#login footer{padding-top:10px}#login .pwa-actions{margin:6px 0}}

/* /css/responsive-display.css */
/* 遊戲填滿可用畫面，保留手機安全區。 */
html,body{width:100%;min-height:100%;margin:0}#app{width:100%;max-width:none!important;min-height:100dvh;margin:0!important;border:0;box-shadow:none;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.screen:not(#game){min-height:calc(100dvh - env(safe-area-inset-top));overflow-y:auto}
#game{height:calc(100dvh - env(safe-area-inset-top));min-height:0;overflow:hidden}#battlefield{min-height:0}
#modal{padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom))}.modal-box{max-height:calc(100dvh - 36px);overflow:auto}
@media(max-height:640px){.game-header{height:65px;padding:4px 10px}.skill-strip{padding:3px;gap:4px}.skill-button{min-height:40px}.bottom-nav button{padding-top:3px;padding-bottom:4px}.bottom-nav button span{font-size:19px;margin-bottom:0}}
/* Short touch landscapes reserve separate cells for play and skills. */
@media (orientation:landscape) and (max-height:500px) and (any-pointer:coarse){
 #app #game{display:grid;grid-template-columns:minmax(0,1fr) 216px;grid-template-rows:81px minmax(0,1fr) 44px 52px}
 #game>.game-header{grid-area:1 / 1 / 2 / 3;min-height:0;height:81px}
 #game>#battlefield{grid-area:2 / 1 / 3 / 2;min-width:0}
 #game>#skill-strip{grid-area:2 / 2 / 3 / 3;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));align-content:stretch}
 #game>.chat-status-row{grid-area:3 / 1 / 4 / 3}
 #game>.bottom-nav{grid-area:4 / 1 / 5 / 3}
 #game #battlefield .mini-map{width:96px;height:88px;top:8px;right:8px}
 #game #battlefield .mini-map canvas{width:90px;height:82px}
 #game #quest-tracker-panel{left:110px;top:8px;width:min(265px,calc(100% - 222px))}
 #game #quest-tracker-panel .online-city-return{margin-left:0}
}

/* /css/touch-screen-lock.css */
/* 戰鬥畫面固定，背包等視窗保留自身的垂直捲動。 */
@media(any-pointer:coarse){
 html.game-touch-locked,body.game-touch-locked{height:100%;overflow:hidden;overscroll-behavior:none}
 body.game-touch-locked #game{touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
 body.game-touch-locked #game img,body.game-touch-locked #modal img{-webkit-user-drag:none;user-select:none;-webkit-touch-callout:none}
 body.game-touch-locked #modal .modal-box{touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 body.game-touch-locked #modal button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
 body.game-touch-locked input,body.game-touch-locked textarea{user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}
}

/* /css/character-panel.css */
/* Original eleven-slot gilt-obsidean character sheet. */
#modal .modal-box.character-sheet-shell{width:min(940px,100%);max-width:940px;max-height:92dvh;background:linear-gradient(145deg,#1c2029,#0c1017);border:1px solid #b69755;box-shadow:0 0 0 3px #292a26,0 20px 80px #000c,inset 0 0 32px #a8852910}
.character-sheet-shell>header{border-bottom:1px solid #6c5938;background:linear-gradient(100deg,#302a20,#171c27)}.character-sheet-shell #modal-content{padding:0;color:#e8e0cf}.equipment-panel button{touch-action:manipulation}.equipment-identity{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid #4d4535;background:linear-gradient(100deg,#262723,#101824)}.equipment-identity h3{margin:0!important;font:700 23px Georgia,serif;color:#f0d79e}.equipment-identity p{margin:6px 0 0!important;font-size:12px;color:#b1ad9e}.equipment-level{padding:7px 12px;border:1px solid #7d6945;border-radius:18px;background:#111a26;color:#ead5a6;white-space:nowrap}.equipment-body{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(235px,1fr);gap:14px;padding:14px}.equipment-gear,.equipment-details{min-width:0;border:1px solid #544a36;background:#0d141ec9;box-shadow:inset 0 0 30px #0004}.equipment-section-title{margin:0!important;padding:11px 13px;border-bottom:1px solid #524833;background:linear-gradient(90deg,#2c2a23,#151f2a);font-size:14px!important;letter-spacing:3px;color:#e7cb8a}.equipment-stage{display:grid;grid-template-columns:72px minmax(0,1fr) 72px;gap:9px;padding:12px;align-items:stretch}.equipment-left,.equipment-right{display:grid;grid-template-rows:repeat(4,minmax(70px,1fr));gap:8px}.equipment-slot{display:flex;min-width:0!important;min-height:70px!important;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px!important;border:1px solid #66583c!important;border-radius:5px!important;background:linear-gradient(140deg,#272b33,#101821)!important;box-shadow:inset 0 0 12px #0009;color:#d9cbae!important}.equipment-slot[aria-pressed=true]{border-color:#ffe4a6!important;box-shadow:0 0 0 1px #a08b60,inset 0 0 18px #ad843326}.equipment-slot:focus-visible{outline:2px solid #e9c67f;outline-offset:2px}.equipment-slot-icon{width:38px;height:38px;display:grid;place-items:center;background:#0b1119;border:1px solid var(--rarity,#655a44);border-radius:3px;overflow:hidden}.equipment-slot-icon img,.equipment-slot-icon .original-item-viewport{width:100%;height:100%;object-fit:contain}.equipment-slot-empty{font-size:12px;color:#706d64}.equipment-slot-label{font-size:11px;font-weight:bold;line-height:1.25;white-space:nowrap}.equipment-slot-name{display:none}.equipment-dais{position:relative;overflow:hidden;min-height:304px;border:1px solid #5a4d35;border-radius:100px 100px 7px 7px;background:radial-gradient(ellipse at 50% 40%,#83704930,#101926 58%,#080d14 80%);box-shadow:inset 0 0 28px #0009}.equipment-dais:before{content:"";position:absolute;inset:12% 10% 28%;border:1px solid #a68d4433;border-radius:50%;box-shadow:inset 0 0 0 10px #a68d4408;pointer-events:none}.equipment-dais:after{content:"";position:absolute;left:10%;right:10%;bottom:12px;height:30px;border-radius:50%;border:1px solid #77623e;background:linear-gradient(#38404b,#121923);z-index:0;box-shadow:0 8px 14px #0009}.equipment-portrait{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:1}.equipment-portrait-status{position:absolute;top:48%;left:6%;right:6%;text-align:center;font-size:11px;color:#bfb092;z-index:2}.equipment-bottom{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:0 12px}.equipment-bottom .equipment-slot{display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;column-gap:7px;min-height:64px!important;text-align:left}.equipment-bottom .equipment-slot-icon{grid-row:1/3}.equipment-bottom .equipment-slot-name{display:block;font-size:10px;overflow-wrap:anywhere;line-height:1.2}.equipment-tip{margin:10px 12px!important;font-size:11px;color:#9c9585;text-align:center}.equipment-selection{border-top:1px solid #4d4535;padding:11px 12px;background:#101923}.equipment-selection h4{font-size:12px;color:#e2c589;margin:0 0 9px}.equipment-current{display:flex;gap:7px;align-items:center;flex-wrap:wrap;font-size:12px;margin-bottom:9px}.equipment-current>img,.equipment-current>.original-item-viewport{width:32px;height:32px;object-fit:contain}.equipment-current>span:not(.original-item-viewport){flex:1;min-width:70px}.equipment-current button,.equipment-candidate button{padding:7px 9px!important;font-size:11px!important;min-height:44px}.equipment-candidates{display:grid;gap:6px;max-height:210px;overflow:auto;overscroll-behavior:contain}.equipment-candidate{display:flex;gap:9px;align-items:center;padding:7px;background:#202831;border:1px solid #454a44;border-radius:4px}.equipment-candidate>img,.equipment-candidate>.original-item-viewport{width:36px;height:36px;object-fit:contain;border:1px solid var(--rarity,#786c53)}.equipment-candidate-copy{flex:1;min-width:0}.equipment-candidate-copy strong{display:block;font-size:12px;overflow-wrap:anywhere}.equipment-candidate-copy small{display:block;font-size:10px;color:#b1b4ad;margin-top:4px}.equipment-empty-note{font-size:11px!important;color:#a6a599;margin:5px 0!important;line-height:1.6}.character-health{display:grid;grid-template-columns:1fr auto;gap:7px;padding:14px 13px 10px;font-size:12px;color:#cabd9e}.character-health strong{font-size:12px;color:#f3dfb4}.character-hp-track{grid-column:1/3;height:10px;border:1px solid #6c4431;border-radius:5px;overflow:hidden;background:#160d0d}.character-hp-fill{display:block;height:100%;width:0;background:linear-gradient(90deg,#8b2422,#db6140);transition:width .15s}.equipment-stats{padding:0 13px}.equipment-stat{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid #343b3f;font-size:12px;color:#adafa8}.equipment-stat strong{text-align:right;color:#e8dfcd;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.equipment-race-trait,.character-equip-state,.equipment-refine-note{margin:12px 13px!important;font-size:11px!important;line-height:1.6;color:#b1aa96}.equipment-race-trait{border-left:2px solid #9a8047;padding-left:9px}.equipment-refine-note{color:#898e8c}.equipment-actions{display:flex;gap:8px;padding:0 13px 13px}.equipment-actions button{flex:1;min-width:0;font-size:11px!important;padding:9px 6px!important}.equipment-panel .uncommon{--rarity:#72b587}.equipment-panel .rare{--rarity:#76a6cf}.equipment-panel .epic{--rarity:#b484d6}.equipment-panel .legendary{--rarity:#ddb06a}
@media(max-width:700px){.equipment-body{grid-template-columns:1fr;padding:10px;gap:10px}.equipment-stage{grid-template-columns:66px minmax(0,1fr) 66px}.equipment-dais{min-height:308px}.equipment-stats{display:grid;grid-template-columns:1fr 1fr;column-gap:18px}.equipment-identity{padding:13px}.equipment-details{padding-bottom:2px}.equipment-bottom .equipment-slot{min-height:66px!important}}
@media(max-width:390px){.equipment-body{padding:7px}.equipment-stage{grid-template-columns:58px minmax(0,1fr) 58px;padding:8px;gap:6px}.equipment-left,.equipment-right{gap:6px}.equipment-dais{min-height:298px}.equipment-bottom{padding:0 8px;gap:5px}.equipment-bottom .equipment-slot{display:flex;min-height:86px!important;gap:3px}.equipment-bottom .equipment-slot-name{font-size:9px;text-align:center}.equipment-slot-icon{width:34px;height:34px}.equipment-slot-label{font-size:10px}.equipment-identity h3{font-size:20px}.equipment-stat{font-size:11px}.equipment-stats{column-gap:12px}.equipment-candidate{gap:6px}.equipment-current button{padding:6px!important}}
@media(prefers-reduced-motion:reduce){.character-hp-fill{transition:none}}
/* Per-item numbers remain readable beneath the item name at narrow widths. */
.equipment-current-copy{flex:1 1 110px;min-width:0}.equipment-current-copy strong{display:block;overflow-wrap:anywhere}.equipment-item-values{display:block!important;white-space:normal;overflow-wrap:anywhere;font-size:11px!important;line-height:1.5;color:#dfc998!important;margin-top:4px}.equipment-candidate{min-width:0}.equipment-candidate>img,.equipment-candidate>button,.equipment-candidate>.original-item-viewport{flex-shrink:0}.equipment-current-copy .equipment-item-values{max-width:100%}

/* Keep the art viewport square; the information span retains its existing flex layout. */
.equipment-current>.original-item-viewport{flex:0 0 32px;min-width:0;width:32px;height:32px}
.character-view-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px 12px;background:#111923;border-bottom:1px solid #615335}
.character-view-tabs button{min-height:38px;padding:7px;background:#202832;border:1px solid #746141;color:#c9c2ae}
.character-view-tabs button[aria-selected=true]{background:#4b432e;border-color:#d8bd7e;color:#fff0c7}
.equipment-panel .equipment-body{display:block}
.equipment-panel .equipment-body>[hidden]{display:none!important}
.equipment-details .equipment-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.equipment-details .equipment-stat{gap:7px;min-width:0;font-size:12px}
@media(max-width:620px){
 #modal .modal-box.character-sheet-shell{display:flex;flex-direction:column;max-height:calc(100dvh - 28px);overflow:hidden}
 .character-sheet-shell>header{padding:12px 15px;flex:none}
 .character-sheet-shell>header h2{font-size:20px;margin:3px 0}
 .character-sheet-shell #modal-content{min-height:0;overflow:hidden;display:flex;flex-direction:column}
 .equipment-panel{display:flex;flex-direction:column;min-height:0}
 .equipment-identity{padding:9px 12px;flex:none}
 .equipment-identity h3{font-size:18px!important}.equipment-identity p{font-size:10px;margin-top:3px!important}
 .character-view-tabs{flex:none;padding:7px 10px}
 .equipment-panel .equipment-body{min-height:0;overflow:auto;padding:8px;overscroll-behavior:contain}
 .equipment-stage{grid-template-columns:54px minmax(0,1fr) 54px;gap:6px;padding:7px}
 .equipment-left,.equipment-right{grid-template-rows:repeat(4,minmax(49px,1fr));gap:5px}
 .equipment-slot{min-height:49px!important;padding:3px!important;gap:2px}.equipment-slot-icon{width:28px;height:28px}.equipment-slot-label{font-size:10px}
 .equipment-dais{min-height:210px}.equipment-bottom{gap:5px;padding:0 7px}.equipment-bottom .equipment-slot{grid-template-columns:28px minmax(0,1fr);min-height:48px!important;gap:4px}.equipment-bottom .equipment-slot-name{font-size:9px}
 .equipment-tip{font-size:9px;margin:6px 8px!important}.equipment-section-title{padding:7px 9px;font-size:12px!important}
 .equipment-details .equipment-stats{gap:0 12px;padding:0 9px}.equipment-details .equipment-stat{font-size:11px;padding:7px 0}.character-health{padding:9px}
 .equipment-race-trait,.character-equip-state,.equipment-refine-note{margin:8px 9px!important;font-size:10px!important}
}

/* /css/talents.css */
.bottom-nav{grid-template-columns:repeat(7,minmax(0,1fr))}.bottom-nav button{min-width:0}
#modal .modal-box.talent-sheet-shell{width:min(1120px,98vw);max-width:1120px;max-height:min(94dvh,960px);background:#14110d;border:2px solid #5a4628;border-radius:6px;box-shadow:0 0 0 2px #0a0806,0 24px 80px rgba(0,0,0,.92)}
#modal .talent-sheet-shell>header{padding:10px 18px;background:linear-gradient(180deg,#251d14 0%,#15110c 100%);border-bottom:1px solid #483820}
.talent-sheet-shell #modal-content{padding:0;overflow-y:auto}

.talent-panel{color:#e8d9b5;background:#120f0b;font-family:'Microsoft JhengHei',sans-serif}
.talent-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid #3c2f1b;background:#18130e}
.talent-top-copy{display:grid;gap:4px;min-width:0}
.talent-top-copy strong{font-size:16px;color:#f3e1b6}
.talent-top-copy small{font-size:12px;color:#a89b82}
.talent-points{display:flex;align-items:center;gap:10px;white-space:nowrap;color:#c2b293;font-size:13px}
.talent-points b{display:grid;place-items:center;min-width:44px;height:36px;padding:0 8px;border:1px solid #8a6d38;border-radius:3px;background:#0b0907;color:#f6d469;font:bold 22px Georgia,serif;box-shadow:inset 0 0 8px rgba(0,0,0,.9)}

.talent-panel p.talent-notice{margin:0;padding:8px 20px;color:#afa38b;font-size:11px;line-height:1.5;background:#15110c;border-bottom:1px solid #2b2215}

.talent-tabs{display:none;gap:6px;padding:10px 14px 0}
.talent-tab{flex:1;min-width:0;border:1px solid #4f422b;background:#1b1610;color:#a69880;padding:8px 5px;border-radius:4px}
.talent-tab.selected{border-color:#c69e4e;color:#f7d98c;background:#332616}

/* 三大天賦樹並排容器 */
.talent-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px}
.talent-tree{min-width:0;border:1px solid #423522;border-radius:6px;box-shadow:inset 0 0 36px rgba(0,0,0,.85);overflow:hidden;position:relative}
.talent-tree-arms{background:linear-gradient(180deg,rgba(14,10,7,.55) 0%,rgba(14,10,7,.78) 100%),url('/image/ui/talent-assets/warrior-arms.jpg') center center/cover no-repeat}
.talent-tree-fury{background:linear-gradient(180deg,rgba(18,8,6,.55) 0%,rgba(14,8,6,.78) 100%),url('/image/ui/talent-assets/warrior-fury.jpg') center center/cover no-repeat}
.talent-tree-protection{background:linear-gradient(180deg,rgba(6,12,16,.55) 0%,rgba(6,10,14,.78) 100%),url('/image/ui/talent-assets/warrior-protection.jpg') center center/cover no-repeat}

/* 專精標題列與圓形頭像 */
.talent-tree-head{display:flex;align-items:center;gap:12px;padding:14px 16px 10px;background:linear-gradient(180deg,rgba(0,0,0,.68) 0%,rgba(0,0,0,.2) 100%);border-bottom:1px dashed rgba(212,175,55,.22)}
.talent-tree-head:before{content:'';display:block;width:46px;height:46px;flex:none;border-radius:50%;border:2px solid #9c8454;background-position:center;background-size:cover;box-shadow:0 2px 8px #000}
.talent-tree-arms .talent-tree-head:before{background-image:url('/image/ui/talent-assets/ability_warrior_savageblow.jpg')}
.talent-tree-fury .talent-tree-head:before{background-image:url('/image/ui/talent-assets/spell_nature_bloodlust.jpg')}
.talent-tree-protection .talent-tree-head:before{background-image:url('/image/ui/talent-assets/inv_shield_05.jpg')}
.talent-tree-head strong{font-size:17px;letter-spacing:1px;color:#fff;text-shadow:0 1px 3px #000}
.talent-tree-head span{margin-left:auto;color:#bfb299;font-size:11px;background:rgba(15,12,9,.75);border:1px solid #4d3e27;padding:3px 8px;border-radius:3px}

/* 7 階 x 4 欄 網格排版 */
.talent-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(7,68px);gap:10px 6px;padding:16px 14px 20px;justify-items:center;align-items:center;position:relative}

/* 技能格樣式（還原《魔獸世界：永恆》方框） */
.talent-node{position:relative;width:48px;height:48px;padding:0;border:2px solid #484642;border-radius:4px;background:#111;box-shadow:0 3px 8px rgba(0,0,0,.85);cursor:pointer;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;overflow:visible}
.talent-node:hover{transform:scale(1.06);z-index:3}
.talent-node.available{border-color:#3ce63c;box-shadow:0 0 8px rgba(60,230,60,.55)}
.talent-node.invested{border-color:#f5c842;box-shadow:0 0 10px rgba(245,200,66,.65)}
.talent-node.unavailable:not(.invested){filter:grayscale(1) brightness(.65);border-color:#3a3835}

.talent-node-glyph{display:block;width:100%;height:100%;border-radius:2px;background-position:center;background-size:cover;background-repeat:no-repeat}

/* 右下角點數小標籤 */
.talent-node-rank{position:absolute;right:-5px;bottom:-5px;min-width:16px;height:16px;padding:0 3px;display:grid;place-items:center;background:#0a0a0a;border:1px solid #5c5646;border-radius:3px;color:#fff;font:bold 11px/1 Arial,sans-serif;box-shadow:0 1px 4px #000;z-index:2}
.talent-node.available .talent-node-rank{color:#5eff5e;border-color:#2e8b2e}
.talent-node.invested .talent-node-rank{color:#ffd954;border-color:#b58d2b}

/* 隱藏擠在格子下方的長文字（改由懸浮 Title 或點擊彈窗顯示，保持畫面跟截圖一樣乾淨） */
.talent-node-name{display:none}

/* 左上角《永恆》專屬星號/重製角標 */
.talent-node-badge{position:absolute;left:-6px;top:-6px;width:15px;height:15px;border-radius:50%;background:#182038;border:1px solid #7289da;color:#7ce8ff;font-size:9px;display:grid;place-items:center;box-shadow:0 1px 3px #000;z-index:2}

.talent-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 20px;border-top:1px solid #3c2f1b;background:#16120d;color:#b8aa90;font-size:12px}
.talent-reset{padding:7px 16px;border:1px solid #6e5835;border-radius:4px;background:#261e14;color:#e6d3a7;cursor:pointer}
.talent-reset:hover{background:#382b1b;color:#fff}

@media(max-width:820px){
  .talent-tabs{display:flex}
  .talent-columns{grid-template-columns:1fr}
  .talent-tree:not(.selected){display:none}
}/* 懸浮天賦說明與觸控加減點 */
.talent-tooltip{position:fixed;z-index:9999;width:min(300px,calc(100vw - 20px));padding:12px 14px;background:rgba(5,5,5,.96);border:1px solid #9c8454;border-radius:4px;box-shadow:0 5px 18px #000c;color:#eee;font-size:13px;line-height:1.5;pointer-events:none}
.talent-tip-name{display:block;color:#ffd730;font-size:16px}.talent-tip-rank,.talent-tip-kind{color:#ddd}.talent-tooltip p{margin:6px 0}.talent-tip-description{color:#ffda39}.talent-tip-note{color:#ddd}.talent-tip-ready{color:#55ee55}.talent-tip-reason{color:#d4a173}
.talent-tooltip.is-touch{pointer-events:auto;left:50%;top:auto;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(430px,calc(100vw - 24px));max-height:45dvh;overflow:auto}
.talent-tip-actions{display:flex;gap:6px;margin-top:8px}.talent-tip-actions button{flex:1;padding:8px 4px;background:#3b301c;border:1px solid #a08450;border-radius:3px;color:#f7e3ad;font-size:12px}.talent-tip-actions button:disabled{opacity:.45}

/* Complete warrior controls keep the existing parchment/dark-gold palette. */
.warrior-action-bar{display:flex;gap:8px;align-items:center;padding:6px 12px;background:#18130e;color:#d8c69d;border-top:1px solid #514126;font-size:12px}
.warrior-action-bar select{max-width:140px;background:#282013;color:#f0dbad;border:1px solid #806735;border-radius:4px;padding:5px}
.warrior-action-bar small{color:#b9a988;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#skill-strip{display:flex;overflow-x:auto;overscroll-behavior-x:contain;justify-content:flex-start;scrollbar-width:thin;gap:6px;padding:8px 12px;min-height:72px}
#skill-strip .skill-button{flex:0 0 70px;min-width:70px;min-height:56px}
#skill-strip .skill-button small{white-space:normal;font-size:10px;line-height:1.2}
.talent-tip-prerequisite{color:#c7b98e;font-size:12px}.talent-node:focus-visible{outline:2px solid #fff1bb;outline-offset:4px}
@media(max-width:480px){.warrior-action-bar{gap:5px;padding:5px 8px}.warrior-action-bar small{max-width:44vw}.skill-row{gap:6px}.skill-row button{flex-shrink:0}}

/* Gemini original specialization artwork: every class and tree. */
.talent-tree-warrior_tree1{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/warrior_tree1.png') center/cover}.talent-tree-warrior_tree1 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/warrior_tree1.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-warrior_tree2{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/warrior_tree2.png') center/cover}.talent-tree-warrior_tree2 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/warrior_tree2.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-warrior_tree3{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/warrior_tree3.png') center/cover}.talent-tree-warrior_tree3 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/warrior_tree3.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-mage_tree1{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/mage_tree1.png') center/cover}.talent-tree-mage_tree1 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/mage_tree1.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-mage_tree2{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/mage_tree2.png') center/cover}.talent-tree-mage_tree2 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/mage_tree2.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-mage_tree3{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/mage_tree3.png') center/cover}.talent-tree-mage_tree3 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/mage_tree3.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-priest_tree1{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/priest_tree1.png') center/cover}.talent-tree-priest_tree1 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/priest_tree1.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-priest_tree2{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/priest_tree2.png') center/cover}.talent-tree-priest_tree2 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/priest_tree2.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-priest_tree3{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/priest_tree3.png') center/cover}.talent-tree-priest_tree3 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/priest_tree3.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-warlock_tree1{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/warlock_tree1.png') center/cover}.talent-tree-warlock_tree1 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/warlock_tree1.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-warlock_tree2{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/warlock_tree2.png') center/cover}.talent-tree-warlock_tree2 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/warlock_tree2.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-warlock_tree3{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/warlock_tree3.png') center/cover}.talent-tree-warlock_tree3 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/warlock_tree3.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-rogue_tree1{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/rogue_tree1.png') center/cover}.talent-tree-rogue_tree1 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/rogue_tree1.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-rogue_tree2{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/rogue_tree2.png') center/cover}.talent-tree-rogue_tree2 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/rogue_tree2.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-rogue_tree3{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/rogue_tree3.png') center/cover}.talent-tree-rogue_tree3 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/rogue_tree3.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-paladin_tree1{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/paladin_tree1.png') center/cover}.talent-tree-paladin_tree1 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/paladin_tree1.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-paladin_tree2{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/paladin_tree2.png') center/cover}.talent-tree-paladin_tree2 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/paladin_tree2.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-paladin_tree3{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/paladin_tree3.png') center/cover}.talent-tree-paladin_tree3 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/paladin_tree3.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-hunter_tree1{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/hunter_tree1.png') center/cover}.talent-tree-hunter_tree1 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/hunter_tree1.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-hunter_tree2{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/hunter_tree2.png') center/cover}.talent-tree-hunter_tree2 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/hunter_tree2.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-hunter_tree3{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/hunter_tree3.png') center/cover}.talent-tree-hunter_tree3 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/hunter_tree3.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-druid_tree1{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/druid_tree1.png') center/cover}.talent-tree-druid_tree1 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/druid_tree1.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-druid_tree2{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/druid_tree2.png') center/cover}.talent-tree-druid_tree2 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/druid_tree2.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-druid_tree3{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/druid_tree3.png') center/cover}.talent-tree-druid_tree3 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/druid_tree3.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-shaman_tree1{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/shaman_tree1.png') center/cover}.talent-tree-shaman_tree1 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/shaman_tree1.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-shaman_tree2{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/shaman_tree2.png') center/cover}.talent-tree-shaman_tree2 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/shaman_tree2.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}
.talent-tree-shaman_tree3{background:linear-gradient(180deg,#100c18df,#080b10f7),url('/image/ui/talent-art-v4/shaman_tree3.png') center/cover}.talent-tree-shaman_tree3 .talent-tree-head:before{background-image:url('/image/ui/talent-art-v4/shaman_tree3.png');background-size:110%;box-shadow:inset 0 0 6px #0009,0 0 12px #b59e4c38}

/* /css/skill-icons.css */
/* Local ability art: names, keyboard hints and cooldown overlays remain visible. */
.ability-icon{display:inline-flex;position:relative;flex:none;width:40px;height:40px;align-items:center;justify-content:center;overflow:hidden;vertical-align:middle;border:1px solid #ae9258;border-radius:4px;background:radial-gradient(circle at 40% 30%,#5c583d,#171b18 75%);box-shadow:0 1px 3px #000b,inset 0 0 0 1px #e8c77755;font:700 17px serif;color:#efddb3}
.ability-icon img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none}
.ability-icon::after{content:"";position:absolute;inset:0;border:1px solid #f0d58a22;border-radius:3px;box-shadow:inset 0 0 7px #0008;pointer-events:none}
#skill-strip .skill-button{padding:4px 3px;min-height:65px}
#skill-strip .ability-icon{width:38px;height:38px}
#skill-strip .skill-button .cooldown{z-index:2;border-radius:2px}
.skill-hotkey{position:absolute;top:1px;left:3px;z-index:1;background:#10140dde;border:1px solid #9c87576b;border-radius:2px;min-width:13px;font:10px/13px sans-serif;color:#ffe8af;text-shadow:0 1px #000}
.skill-row>.ability-icon{width:44px;height:44px;min-width:44px}
#stance-icon{display:flex;align-items:center;flex:none}
#stance-icon .ability-icon{width:30px;height:30px;border-color:#d5b775}
@media(max-width:480px){.skill-row>.ability-icon{width:38px;height:38px;min-width:38px}#stance-icon .ability-icon{width:27px;height:27px}.warrior-action-bar select{min-width:0;max-width:111px}.warrior-action-bar small{flex:1;min-width:0}.warrior-action-bar label{flex:none}#skill-strip .skill-button{min-height:63px}}
.ability-icon img[hidden]{display:none!important}
#skill-strip .skill-button.queued{border-color:#f5d476;box-shadow:0 0 7px #e9b64788}
#skill-strip .skill-button.queued .cooldown{background:#2c240a9c;font-size:11px;font-weight:bold;line-height:1.4;padding:3px;color:#ffe7a3}
.migration-notice{padding:12px;border:1px solid #b89555;background:#493718;color:#ffe5a6;font-size:13px}
.talent-next-rank{color:#bde3aa}

/* /css/function-ui.css */
/* Engraved gold / charcoal adventure chrome. Local artwork only. */
#game .bottom-nav{grid-template-columns:repeat(7,minmax(0,1fr));gap:0;background:linear-gradient(180deg,#37332c 0,#171717 9%,#090b0d 95%);border-top:2px solid #998568;padding:4px 5px max(4px,env(safe-area-inset-bottom));box-shadow:0 -3px 8px #000b;}
#game .bottom-nav button{min-width:0;min-height:67px;padding:2px 1px 4px;position:relative;border:1px solid #50483b;border-right-color:#26231e;background:linear-gradient(135deg,#80725920,#0007);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;}
#game .bottom-nav button img{width:44px;height:40px;object-fit:cover;border-radius:3px;mix-blend-mode:screen;filter:drop-shadow(0 2px 2px #000);pointer-events:none;}
#game .bottom-nav button .nav-label{font:600 12px/1.2 'Microsoft JhengHei',sans-serif;color:#f1e1be;margin:0;letter-spacing:1px;text-shadow:0 2px 3px #000;}
#game .bottom-nav button:hover,#game .bottom-nav button:focus-visible{border-color:#e5c28a;background:#75614344;outline:2px solid #c0a16a;outline-offset:-3px;}
#game .game-header{height:98px;padding:7px 12px;background:linear-gradient(120deg,#080c0e,#292923 50%,#0b100f);border-bottom:2px solid #867658;gap:8px;}
#game #avatar-button{width:72px;height:75px;flex:0 0 72px;border-radius:48% 48% 40% 40%;border:3px ridge #c3b28c;box-shadow:0 0 0 2px #33302a,inset 0 0 0 2px #201b16,0 3px 7px #000;overflow:visible;background:radial-gradient(#635a44,#121716 70%);}
#game #hud-avatar{width:66px;height:66px;border-radius:44%;overflow:hidden;}
#game #avatar-button b{bottom:-7px;left:18px;min-width:28px;border:2px ridge #b8a576;background:#101416;border-radius:2px;font:bold 15px/19px Georgia;color:#fff3c7;clip-path:polygon(8% 0,92% 0,100% 75%,50% 100%,0 75%);padding:1px 3px 4px;}
#game .hero-status{max-width:390px;}
#game .hero-status>div:first-child{height:23px;background:linear-gradient(90deg,#0b0c0d,#1e2420);border:1px solid #8a7f65;padding:0 7px;margin:0 0 3px;box-shadow:inset 0 0 0 1px #272721;}
#game .hero-status strong{font:bold 15px/20px serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#f7f0da;}
#game .hero-status>div:first-child span{margin-left:auto;white-space:nowrap;font-size:9px;color:#b6ad94;}
#game .bar{height:17px;border:2px ridge #81765e;border-radius:3px;background:#090e0f;box-shadow:inset 0 2px 3px #000;}
#game .bar span{font:10px/13px Arial,sans-serif!important;text-shadow:1px 1px 2px #000;letter-spacing:.2px;}
#game .health i{background:linear-gradient(#bf5a37 0,#ae3325 45%,#751b17 46%,#b14123);}
#game .rage i{background:linear-gradient(#df8b30,#c4581e 45%,#7e2d12 46%,#b9611d);}
#game .bar[data-resource="mana"] i{background:linear-gradient(#568ee5,#285ab3 45%,#152f7a 46%,#3f6cbe);}
#game .experience{height:13px;max-width:100%;}.experience i{background:linear-gradient(#d5c04b,#89701e);}
#game .experience span{font-size:8px!important;line-height:9px!important;}
#game .currencies{margin-left:auto;min-width:62px;width:auto;font-size:13px;}
.function-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;margin:-2px -2px 16px;border-bottom:2px solid #9c8559;}
.function-tabs button{padding:12px 3px;background:#111719;border:1px solid #5b5547;color:#bbb09a;font-size:13px;}
.function-tabs .selected{color:#fff1c2;background:linear-gradient(#65543b,#2b281f);border-color:#c0a36a;}
.function-body h3{font-size:18px;color:#f0d398;}.function-note{color:#b5ad9b!important;font-size:11px!important;line-height:1.6!important;}
.function-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 10px;background:linear-gradient(90deg,#111817,#23271f);border:1px solid #454c40;margin:8px 0;min-height:56px;}
.function-copy{display:flex;flex-direction:column;gap:3px}.function-copy strong{font-size:13px;color:#e5dac2}.function-copy small{font-size:10px;color:#9fa894;line-height:1.5}.function-row input[type=checkbox]{appearance:none;flex:0 0 44px;width:44px;height:25px;border-radius:14px;background:#292e2d;border:1px solid #6e7466;margin:0;padding:0;position:relative;cursor:pointer;}
.function-row input[type=checkbox]:before{content:'';width:17px;height:17px;border-radius:50%;position:absolute;left:3px;top:3px;background:#aaa78e;transition:transform .15s;box-shadow:0 1px 3px #000;}
.function-row input:checked{background:#49623c;border-color:#bdc781}.function-row input:checked:before{transform:translateX(18px);background:#ede4a8;}.function-row input:focus-visible{outline:2px solid #eedbad;outline-offset:3px;}.function-row select{background:#111b1a;color:#ecd4a4;border:1px solid #8c7b57;padding:9px;font-size:14px;}
.function-action{border:1px solid #a18a5e;background:linear-gradient(#49452f,#22261f);color:#f0dfba;padding:11px 13px;margin:6px 6px 6px 0;font-size:12px;}.function-action:disabled{opacity:.4;cursor:not-allowed;}.potion-status{border:1px solid #80674e;padding:12px;background:#261b17;color:#f1bb99;font-size:15px;}
@media(max-width:420px){#game .game-header{padding:5px 8px;height:94px;gap:6px}#game .currencies{font-size:11px;min-width:47px}#game .currencies small{font-size:8px}#game .hero-status>div:first-child span{display:none}#game .bottom-nav button{min-height:61px}#game .bottom-nav button img{width:36px;height:35px}#game .bottom-nav button .nav-label{font-size:10px;letter-spacing:0}.function-tabs button{font-size:12px;padding:10px 1px}.function-row{padding:10px 7px;gap:8px}#modal-content{padding:14px 12px}}
@media(max-height:560px){#game .game-header{height:81px}#game #avatar-button{height:63px;width:62px;flex-basis:62px}#game #hud-avatar{height:56px;width:56px}#game .bottom-nav button{min-height:48px}#game .bottom-nav button img{width:29px;height:27px}#game .bottom-nav button .nav-label{font-size:9px}}

@media(max-width:420px){.function-tabs{grid-template-columns:repeat(3,minmax(0,1fr));}}

/* Equal OUTER bars; percentages remain on each inner fill, including future MP. */
#game .hero-status .bar{width:100%;max-width:100%;min-width:0;box-sizing:border-box;margin-left:0;margin-right:0}

.hunt-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:10px 0 16px}.hunt-tabs button{padding:9px 2px;background:#17221e;border:1px solid #6f664e;color:#ded3b6}.hunt-tabs .selected{background:#665133;color:#fff1c6;border-color:#d0ae68}.potion-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.potion-card{border:1px solid #6d5a42;padding:8px;background:#1e1d18}.potion-card.mp{border-color:#3e6478;background:#17212a}.potion-card .function-row{padding:6px;min-height:38px;margin:5px 0}.potion-count{font-size:12px;color:#c8bea9!important;margin:8px 0}.potion-card .function-action{width:100%;margin:4px 0}@media(max-width:520px){.potion-cards{grid-template-columns:1fr}.potion-card .function-row{min-height:30px}.potion-card{padding:6px 8px}.potion-card .function-action{padding:7px}.function-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.function-tabs button{font-size:11px}}
.supply-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.supply-card{min-width:0;padding:7px;border:1px solid #655844;background:#1c211c}.supply-card .function-row{padding:4px 2px;min-height:36px;margin:0 0 8px;border:0;background:none;gap:5px}.supply-quantity{display:flex;align-items:center;gap:5px;font-size:12px;color:#d6c8a8}.supply-quantity input{min-width:0;width:72px;flex:1;padding:9px 4px;background:#111b1a;color:#f0ddb5;border:1px solid #8c7b57;font-size:16px;text-align:center}.supply-quantity input:focus{outline:2px solid #c9aa69}.supply-status{min-height:2.5em}
.hunt-status{position:absolute;left:50%;top:17%;transform:translateX(-50%);max-width:70%;padding:5px 9px;border-radius:5px;background:#241e10df;border:1px solid #a98b50;color:#ffdf9a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;pointer-events:none;z-index:15}.hunt-status[hidden]{display:none}
.offline-result{border:1px solid #8f7951;padding:12px;background:#131e1b;border-radius:6px}.offline-result p{margin:8px 0}.offline-result>.quality-message{display:flex;margin:5px 0}.offline-result small{color:#b8b9a5}

.supply-held{display:block;margin-top:6px;color:#c9bfab}
.supply-estimate{display:grid;gap:4px;margin:8px 0;padding:7px 9px;background:#19231e;border-left:2px solid #8ca17a;color:#dfd7ba}
.supply-estimate small{color:#b6b4a3}.supply-estimate.supply-shortage{border-color:#cc985d}.supply-estimate.supply-shortage small{color:#edb989}
.party-dps .party-dps-open{display:flex;align-items:center;justify-content:space-between;gap:3px;width:100%;min-width:0;margin:0;padding:0;background:transparent;border:0;color:#e6d29e;pointer-events:auto;cursor:pointer}
.party-dps .party-dps-open:focus-visible{outline:1px solid #ddbd76}
@media(any-pointer:coarse){.party-dps .party-dps-open{min-height:44px}}
@media(any-pointer:coarse) and (orientation:landscape) and (max-height:500px){
 #game #battlefield .party-dps{top:4px;right:146px;width:140px;max-height:calc(100% - 8px);overflow:hidden}
 #game #battlefield .party-dps>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 6px}
 #game #battlefield .party-frames{top:4px;left:min(33%,279px);max-height:calc(100% - 8px);overflow:hidden}
}
.party-dps-details table{width:100%;border-collapse:collapse;color:#e2dccb;font-variant-numeric:tabular-nums}
.party-dps-details th,.party-dps-details td{text-align:right;padding:7px 4px;border-bottom:1px solid #63583e}
.party-dps-details th:first-child,.party-dps-details td:first-child{text-align:left;overflow-wrap:anywhere}
.party-dps-details td small{display:block;color:#aaa48d}

.function-session-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 8px}.function-session-actions .function-action{width:100%;min-height:44px;margin:0;font-size:14px}

/* /css/support-ui.css */
/* 2.4 separate support and four-slot attack layout */
#skill-strip{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;overflow:visible;padding:7px 12px;background:linear-gradient(#28221b,#101014);}
.attack-slot{min-width:0;display:grid;grid-template-columns:1fr;border:1px solid #8c7753;padding:3px;background:#111318;border-radius:5px;}.attack-configure{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;min-height:54px;background:linear-gradient(140deg,#4a4031,#15181b);border:1px solid #ae9160;color:#eedcba;cursor:pointer;}.attack-configure .ability-icon{width:36px;height:36px;flex:0 0 36px;}.attack-configure small{max-width:75px;font-size:12px;}.slot-number{position:absolute;top:1px;left:4px;font:12px Georgia;color:#ffda87}.slot-empty{font-size:26px;}.attack-cast{min-height:25px;margin-top:3px;background:#373127;border:1px solid #6f5e40;color:#ffe7b0;font-size:11px;}.attack-cast:disabled{color:#a69e8e;background:#191b1d;}.attack-slot.queued{box-shadow:0 0 8px #ffd467;}.attack-configure:focus-visible,.attack-cast:focus-visible{outline:2px solid #ffe09a;outline-offset:1px;}
.stance-help{position:fixed;z-index:1000;width:min(315px,calc(100vw - 16px));padding:12px;white-space:pre-line;color:#f5e7c9;background:#12151af5;border:1px solid #c6a265;box-shadow:0 5px 20px #000b;line-height:1.65;font-size:13px;pointer-events:auto;border-radius:5px;}.stance-help[hidden]{display:none;}.stance-help-button,.support-open{padding:6px 8px;border:1px solid #917348;background:#28231e;color:#e9d8af;cursor:pointer;}.warrior-action-bar{flex-wrap:wrap;gap:5px!important;}.warrior-action-bar #combat-status{flex:1 1 170px;font-size:11px;}#support-statuses{position:absolute;right:104px;top:10px;max-width:min(340px,calc(100% - 116px));display:flex;gap:4px;flex-wrap:wrap;align-items:flex-start;justify-content:flex-end;z-index:7;padding:5px;background:#070b0d99;border:1px solid #695436;border-radius:4px;}#support-statuses .status-heading{width:100%;font-size:10px;color:#dfcfae;text-align:right;}.status-empty{font-size:10px;color:#b7b2a6;}.status-effect{position:relative;width:39px;height:42px;padding:1px;border:1px solid #b59f64;background:#172425;cursor:pointer;}.status-effect.hostile{border-color:#bd5555;background:#321c23;}.status-effect .ability-icon{width:32px;height:32px;}.status-time{position:absolute;bottom:0;left:0;width:100%;background:#000b;font:bold 10px sans-serif;color:white;}.support-tabs{display:flex;gap:6px;margin:0 0 10px;}.support-tabs button{flex:1;padding:10px 6px;border:1px solid #806746;background:#171b20;color:#c8c3b9;}.support-tabs button.active{background:#5b442c;color:#fff1d5;border-color:#dbb56f;}.support-skill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;}.support-skill-card{min-width:0;padding:10px;display:grid;grid-template-columns:44px 1fr;gap:8px;background:linear-gradient(120deg,#24211c,#0d1015);border:1px solid #625039;border-radius:4px;}.support-skill-card .ability-icon{width:42px;height:42px;}.support-skill-card .description strong,.support-skill-card .description small{display:block;}.support-skill-card .description small{font-size:11px;color:#c9b991}.support-skill-card .description p{font-size:12px;line-height:1.5;margin:6px 0;}.support-skill-card>button{grid-column:1/-1;padding:7px;border:1px solid #92794d;background:#3b3021;color:#f1ddb5;}.support-skill-card>button:disabled{opacity:.55;}.skill-choice{padding:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;border:1px solid #987641;background:#242222;color:#ead5b0;}.skill-choice .ability-icon{width:36px;height:36px;}.skill-choice small{width:100%;}.skill-choice:disabled{opacity:.42;}
@media(max-width:560px){#skill-strip{padding:4px 5px;gap:4px}.attack-configure{flex-direction:column;gap:2px;min-height:62px}.attack-configure .ability-icon{width:30px;height:30px;flex:0 0 30px}.attack-configure small{font-size:10px}.attack-cast{font-size:9px;min-height:25px}.support-skill-grid{grid-template-columns:1fr}.support-tabs button{font-size:12px}.warrior-action-bar #combat-status{display:none}#support-statuses{right:88px;max-width:calc(100% - 98px);top:5px}.status-effect{width:31px;height:34px}.status-effect .ability-icon{width:26px;height:26px}.status-heading,.status-empty{font-size:9px!important}}
/* 2.8: reference-inspired dark-gold skill book; original icons, four attack slots. */
.modal-box:has(.skill-book){width:min(900px,calc(100vw - 28px));max-width:900px;background:linear-gradient(125deg,#25211b,#111211 60%);border-color:#8c7651;}
.skill-book{color:#ddd4c4;font-family:system-ui,sans-serif;}.skill-book-heading{display:flex;align-items:center;gap:15px;border-block:1px solid #5c4b30;background:#100f0dbb;padding:12px 14px;margin-bottom:12px;}.skill-book-heading strong{font:600 13px Georgia,serif;letter-spacing:2px;color:#d6c19a}.skill-book-mode{font-size:16px;color:#f6e8c9}.skill-book-gold{margin-left:auto;font-size:12px;color:#d9bc7b}.skill-book-body{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:10px;align-items:start}.skill-catalog{min-width:0;border:1px solid #665134;background:#0b0a09}.skill-catalog-caption{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #665134;color:#d7bd88;font-size:13px}.skill-catalog-caption small{font-size:11px;color:#9d9484}.skill-book .support-skill-grid{padding:10px;gap:8px;max-height:340px;overflow-y:auto;scrollbar-color:#7d6843 #15130f;grid-template-columns:repeat(2,minmax(0,1fr));}
.skill-book .support-skill-card{display:grid;grid-template-columns:55px minmax(0,1fr);align-items:center;gap:10px;min-height:110px;padding:10px;background:#080808;border:1px solid #29251e;border-radius:3px;color:#d9d3c6;text-align:left;cursor:pointer;box-shadow:inset 0 1px 1px #fff06;}.skill-book .support-skill-card:hover{border-color:#ab8c51;background:#19160f}.skill-book .support-skill-card.selected{border-color:#d1b47b;background:linear-gradient(120deg,#3a2d1c,#16130e);box-shadow:inset 3px 0 #d9bd82,0 0 8px #d8ac4920}.skill-book .support-skill-card .ability-icon{width:54px;height:54px;object-fit:cover;border:1px solid #746343;box-shadow:0 0 0 3px #111,0 0 0 4px #3b3427}.skill-book .support-skill-card.unlearned .ability-icon{filter:grayscale(.85);opacity:.65}.skill-book .description{min-width:0;display:block}.skill-book .description strong{font-size:13px;font-weight:600;line-height:1.4;color:#ece0cb}.skill-card-summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:11px;line-height:1.6;color:#b8b1a2;margin:5px 0}.skill-book .description small{font-size:10px;color:#9d875e;display:block}.skill-book .support-tabs{display:flex;flex-direction:column;gap:5px;margin:39px 0 0}.skill-book .support-tabs button{min-height:68px;padding:10px 5px;background:linear-gradient(120deg,#29251f,#151412);border:1px solid #716452;color:#b7b0a5;font-size:13px;box-shadow:inset 0 0 0 3px #1119}.skill-book .support-tabs button.active{background:linear-gradient(110deg,#876441,#3b2a1b);color:#fff0d4;border-color:#cbb28a;box-shadow:inset 0 0 0 3px #b4916022}.skill-detail{margin-top:13px;padding:15px;background:linear-gradient(120deg,#29241c,#10100f);border:1px solid #8e754e;border-radius:3px;box-shadow:inset 0 0 0 3px #1119}.skill-detail-heading{display:flex;align-items:center;gap:12px}.skill-detail-heading .ability-icon{width:40px;height:40px;border:1px solid #a98c56}.skill-detail-heading strong{font-size:17px;color:#f0ddb9}.skill-type{margin-left:auto;color:#c7ab73;font-size:11px;border:1px solid #78603e;padding:4px 9px}.skill-description{font-size:13px;line-height:1.7;color:#d9cfbb;margin:12px 0 8px}.skill-facts{font-size:11px;color:#bba476}.skill-detail .mode-hint{font-size:11px;color:#aea18a}.skill-detail-action{display:block;min-width:170px;margin:13px 0 0 auto;padding:10px 18px;border:1px solid #c2a268;background:linear-gradient(#765735,#3b2c1a);color:#fff0cc}.skill-detail-action:disabled{background:#24211c;color:#9a9180;border-color:#544936}.book-loadout{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-width:450px;margin:10px auto 0}.book-slot{position:relative;display:flex;align-items:center;flex-direction:column;gap:5px;min-height:86px;padding:10px 5px 7px;background:linear-gradient(150deg,#453725,#100d09);border:1px solid #8a7350;color:#dcc6a0}.book-slot .ability-icon{width:36px;height:36px}.book-slot-number{position:absolute;top:3px;left:6px;color:#dec28b;font:12px Georgia}.book-slot small{font-size:10px}.book-slot-plus{font-size:29px;line-height:36px;color:#a98b5c}.book-slot:disabled{opacity:.45}.skill-book-footnote{font-size:10px;line-height:1.5;color:#9c9180;margin:8px 0 0}.skill-book button:focus-visible{outline:2px solid #ffdda0;outline-offset:2px;}
@media(max-width:620px){.skill-book-heading{gap:8px;padding:10px 8px;flex-wrap:wrap}.skill-book-heading strong{font-size:10px}.skill-book-gold{font-size:10px}.skill-book-body{grid-template-columns:minmax(0,1fr) 76px;gap:6px}.skill-book .support-tabs button{font-size:11px;min-height:64px}.skill-book .support-skill-grid{grid-template-columns:1fr;padding:6px;max-height:310px}.skill-book .support-skill-card{min-height:90px;grid-template-columns:46px minmax(0,1fr);padding:8px;gap:9px}.skill-book .support-skill-card .ability-icon{width:44px;height:44px}.skill-detail{padding:11px}.skill-detail-heading strong{font-size:15px}.skill-description{font-size:12px}.skill-catalog-caption{font-size:11px;padding:9px 7px}.book-loadout{gap:5px}.skill-book-mode{font-size:14px}}

.attack-picker .book-slot.selected,.skill-choice.selected{border-color:#e6c47d;box-shadow:inset 0 0 0 1px #d7b66f;background:#4a3923}.attack-picker .book-loadout{margin:0 0 12px;max-width:none}

/* Independent support shortcuts sit immediately left of the BUFF book control. */
.support-shortcuts{display:flex;gap:5px;align-items:center;margin-left:auto}.support-shortcut{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;min-width:54px;min-height:58px;padding:3px 5px 13px;background:#192822;border:1px solid #9b8658;border-radius:5px;color:#e8d9af}.support-shortcut .ability-icon{width:30px;height:30px;flex:0 0 30px}.support-shortcut-name{font-size:9px;line-height:12px;max-width:78px;white-space:nowrap}.support-shortcut-cooldown{position:absolute;top:3px;right:3px;background:#101b18ec;color:#fff2d0;font-size:10px;padding:1px 3px;pointer-events:none}.support-shortcut-cooldown[hidden]{display:none}.support-shortcut:disabled{opacity:.5}.support-shortcut:focus-visible{outline:2px solid #ffe09a;outline-offset:2px}@media(max-width:380px){.support-shortcut{min-width:50px;padding-inline:3px}.support-shortcuts{gap:4px}.support-open{font-size:11px}}
/* Compact controls: support bar removed; attack tiles keep a full-height primary tap target. */
#skill-strip{padding:4px 7px;gap:5px}
#skill-strip .attack-slot{padding:2px}
#skill-strip .attack-configure{min-height:44px;gap:5px;padding:4px 24px 4px 15px}
#skill-strip .attack-configure .ability-icon{width:26px;height:26px;flex:0 0 26px}
#skill-strip .attack-configure small{font-size:11px;line-height:1.2}
#skill-strip .attack-cast{min-height:22px;margin-top:2px;padding:2px;font-size:10px;line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.skill-book .skill-book-body{grid-template-columns:minmax(0,1fr)}
.skill-book .support-skill-card{grid-template-columns:34px minmax(0,1fr);min-height:68px;padding:8px;gap:8px}
.skill-book .support-skill-card .ability-icon{width:32px;height:32px}
.skill-book .skill-detail-heading .ability-icon{width:30px;height:30px}
.skill-book .book-slot{min-height:65px;padding:6px 4px;gap:3px}
.skill-book .book-slot .ability-icon{width:26px;height:26px}
@media(max-width:560px){
 #skill-strip{padding:3px 4px;gap:3px}
 #skill-strip .attack-configure{min-height:44px;flex-direction:row;gap:3px;padding:4px 22px 4px 12px}
 #skill-strip .attack-configure .ability-icon{width:22px;height:22px;flex:0 0 22px}
 #skill-strip .attack-configure small{font-size:9px;max-width:28px;line-height:1.2;overflow:hidden;white-space:nowrap}
 #skill-strip .attack-slot-gear{width:24px;height:24px;min-height:24px;right:1px;top:1px;font-size:14px}
 #skill-strip .attack-cast{min-height:20px;font-size:9px;line-height:14px}
 #skill-strip .slot-empty{font-size:20px;line-height:22px}
 .skill-book .support-skill-card{grid-template-columns:30px minmax(0,1fr);min-height:62px;padding:7px}
 .skill-book .support-skill-card .ability-icon{width:28px;height:28px}
 .skill-book .skill-card-summary{font-size:10px;line-height:1.4;margin:3px 0}
}

/* /css/shop-ui.css */
/* Original bronze framed offline merchant, inspired by supplied layout. */
.commerce-shell{width:min(740px,96vw)!important;max-width:740px!important;background:radial-gradient(ellipse at 40% 0,#30332e,#191c1c 65%)!important;border:3px solid #9f8350!important;border-radius:12px!important;box-shadow:inset 0 0 0 2px #211a12,inset 0 0 0 4px #6a5738,0 25px 85px #000c!important;color:#e8dec4;padding:0!important;overflow:hidden}.commerce-shell>header{min-height:66px;margin:0!important;padding:12px 55px 10px 86px!important;background:linear-gradient(#3e2d1e,#211910);border-bottom:2px solid #a4864c}.commerce-shell #modal-title{font:700 22px Georgia,'Noto Serif TC',serif;text-align:center;letter-spacing:2px;color:#eddaa1;text-shadow:0 2px #000}.commerce-shell #modal-kicker{display:block;text-align:center;font-size:9px;color:#a89466;letter-spacing:2px}.commerce-shell #close-modal{position:absolute;right:12px;top:12px;border:2px solid #ad8848;background:linear-gradient(#702321,#331411);border-radius:4px;color:#ffe4ad;width:32px;height:32px;font-size:25px;line-height:20px;padding:0}.commerce-shell #modal-content{padding:18px 18px 0;max-height:calc(92dvh - 70px);overflow:auto}.merchant-portrait{position:absolute;width:74px;height:74px;left:9px;top:5px;border:3px solid #a98b4e;border-radius:50%;background:#1c2420;box-shadow:0 2px 8px #000;object-fit:cover}.shop-note{font-size:12px!important;line-height:1.55;color:#b4b5a3;margin:5px 0 10px!important}.merchant-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 14px}.merchant-product{display:flex!important;align-items:center;gap:10px;min-height:81px!important;text-align:left!important;padding:7px!important;background:linear-gradient(100deg,#291412,#1f1816)!important;border:1px solid #554536!important;border-radius:4px!important;color:#eee7d6;cursor:pointer}.merchant-product:hover,.inventory-cell:hover,.equipped-bag:hover{box-shadow:0 0 0 1px #d8b873,inset 0 0 14px #b393402f!important;filter:brightness(1.12)}.merchant-product img,.merchant-product .original-item-viewport{width:56px;height:56px;border:2px solid var(--rarity,#a49b81);box-shadow:0 0 0 2px #080a0a;border-radius:4px}.product-copy{min-width:0;display:flex;flex-direction:column;gap:4px}.product-copy strong{font-size:14px;font-weight:500;color:var(--rarity,#eee5cf)}.product-copy small{font-size:10px;color:#afa78f}.shop-coins{font-size:13px!important;white-space:nowrap;font-variant-numeric:tabular-nums;color:#e8d18a}.shop-coins:after{content:'';display:inline-block;width:10px;height:10px;margin-left:5px;vertical-align:-1px;border:1px solid #d2a847;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff1a0,#b88522 65%,#785114);box-shadow:inset 0 0 0 1px #e9c45a}.empty-product{opacity:.22;cursor:default}.merchant-pagination{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #796239;padding:12px 0;color:#d7c48f;font-size:12px}.shop-action{padding:7px 11px!important;min-height:32px!important;border:1px solid #7a6745!important;background:linear-gradient(#33352b,#1d211c)!important;color:#e7d6a8!important;border-radius:4px!important;font-size:12px!important;cursor:pointer}.shop-action.primary{background:linear-gradient(#5a4724,#302716)!important;border-color:#c3a563!important}.shop-action:disabled{opacity:.4;cursor:not-allowed}.shop-action:focus-visible,.inventory-cell:focus-visible,.merchant-product:focus-visible,.equipped-bag:focus-visible{outline:2px solid #fff0b1;outline-offset:3px}.merchant-buyback{padding:10px 0}.merchant-buyback h3{font-size:12px;color:#c7b481;margin:0 0 8px}.buyback-slots{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;min-height:52px}.inventory-cell{position:relative;display:block!important;aspect-ratio:1;width:100%;min-width:0;padding:0!important;min-height:0!important;border:2px solid var(--rarity,#7e7d71)!important;border-radius:4px!important;background:radial-gradient(#27302b,#0d1110)!important;box-shadow:0 0 0 1px #060807;overflow:hidden}.inventory-cell img,.inventory-cell .original-item-viewport{width:100%;height:100%;object-fit:cover;display:block}.buyback-slots .inventory-cell,.equipment-summary .inventory-cell{width:48px;height:48px}.stack-count{position:absolute;bottom:1px;right:3px;color:#fff;font:700 15px Georgia,serif;text-shadow:1px 1px 2px #000,-1px -1px 2px #000}.inventory-tools{display:flex;gap:8px;margin:2px 0 12px}.inventory-tools input{width:100%;min-width:0;background:#101615!important;border:1px solid #6b715f!important;padding:7px 12px!important;border-radius:4px;color:#e5e4d0;font-size:13px}.inventory-tools select{background:#1e2723;color:#d5d8c5;border:1px solid #606a59;border-radius:4px;font-size:11px;max-width:100px}.inventory-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;max-height:43vh;overflow:auto;padding:3px;margin:12px -3px}.empty-cell{border-color:#4e5447!important;background:linear-gradient(135deg,#242b25,#171d18)!important;box-shadow:inset 0 1px 6px #0009}.equipped-bags{display:flex;gap:8px;align-items:center;padding:8px 0;border-top:1px solid #57533b;border-bottom:1px solid #57533b}.equipped-bag{position:relative;width:50px;height:50px;min-height:0!important;padding:0!important;background:#15201b!important;border:1px solid var(--rarity,#82724b)!important;border-radius:4px!important}.equipped-bag img,.equipped-bag .original-item-viewport{width:100%;height:100%;object-fit:cover}.equipped-bag>span{font-size:23px;color:#687969}.equipped-bag small{position:absolute;bottom:1px;right:2px;font-size:10px;color:#eee4c8;text-shadow:1px 1px #000}.bag-label,.bag-base{font-size:11px;color:#aeb49b}.bag-base{margin-left:auto}.equipment-summary{display:flex;align-items:center;gap:7px;border-top:1px solid #454d40;padding-top:9px;font-size:11px;color:#a9b29b}.inventory-options{display:flex;gap:8px;margin:10px 0}.inventory-overflow{border:1px solid #9a7849;background:#35281c;padding:10px;border-radius:4px;margin:12px 0}.inventory-overflow summary{cursor:pointer;font-size:12px;color:#e6c18b}.overflow-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;max-height:220px;overflow:auto}.shop-detail{border-top:1px solid #6c6246;padding-top:10px;min-height:44px;margin-top:8px}.detail-heading{display:flex;align-items:center;gap:10px}.detail-heading img,.detail-heading .original-item-viewport{width:42px;height:42px;border:1px solid var(--rarity,#a48d5b);border-radius:4px}.detail-heading h3{font-size:15px;color:#e3cf9f;margin:0}.detail-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:10px 0}.commerce-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#111712;border-top:2px solid #947948;margin:12px -18px 0;padding:10px 18px;font-size:11px;color:#aab29d}.common{--rarity:#d3d2c6}.poor{--rarity:#8d8d8d}.uncommon{--rarity:#4ec36c}.rare{--rarity:#599be8}.epic{--rarity:#b675e5}.legendary{--rarity:#ec9b36}@media(max-width:560px){.commerce-shell #modal-content{padding:13px 10px 0}.commerce-shell #modal-title{font-size:18px;letter-spacing:0}.merchant-products{gap:6px}.merchant-product{gap:6px;padding:5px!important;min-height:74px!important}.merchant-product img,.merchant-product .original-item-viewport{width:42px;height:42px}.product-copy strong{font-size:12px}.product-copy small{font-size:9px}.shop-coins{font-size:11px!important}.inventory-grid,.overflow-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.bag-label{display:none}.equipped-bags{gap:6px}.commerce-footer{margin-left:-10px;margin-right:-10px;padding:10px}.inventory-tools{gap:5px}.shop-action{padding:6px 8px!important}.merchant-portrait{width:61px;height:61px}.commerce-shell>header{padding-left:75px!important}}@media(max-width:360px){.inventory-grid,.overflow-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.product-copy small{display:none}.merchant-product img,.merchant-product .original-item-viewport{width:34px;height:34px}.merchant-product{min-height:62px!important}}
.detail-heading h3{color:var(--rarity,#e3cf9f)}
.commerce-shell>header>div{width:100%}
/* The native hidden state always wins; close control is independent of transactions. */
#modal[hidden]{display:none!important;pointer-events:none!important}
#close-modal{pointer-events:auto;z-index:5}
.npc-service-menu{display:flex;gap:8px;margin:0 0 14px;flex-wrap:wrap}
.bag-crafting-panel{border:1px solid #8d7647;padding:14px;background:#151b18;min-width:0}.bag-crafting-heading{display:flex;gap:12px;align-items:center}.bag-crafting-heading img{width:52px;height:52px;object-fit:contain}.bag-crafting-heading h3{margin:0;color:#8bb8ff}.bag-crafting-heading p{margin:5px 0}.bag-crafting-costs{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 12px;margin:16px 0}.bag-crafting-costs dt{overflow-wrap:anywhere}.bag-crafting-costs dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.craft-ready{color:#d6ddbc}.craft-missing{color:#f0a381}.bag-crafting-panel>.shop-action{width:100%;min-height:44px}.bag-crafting-panel .shop-note{line-height:1.5}

/* Original illustrations: preserve the complete silhouette and existing rarity borders. */
.original-item-image{object-fit:contain!important;background:radial-gradient(circle at 45% 38%,#343f40,#111819 78%);image-rendering:auto}
.character-item-icon .original-item-image{display:block;width:100%;height:100%;border-radius:2px}
.item>.original-item-image{width:48px;height:48px}
/* Authoritative, character-local pending boss rewards inside the backpack. */
.special-reward-pending{padding:12px;border:1px solid #9c78ba;border-radius:8px;margin-block:12px;background:#201b2b}.special-reward-pending h3{margin:0 0 8px;color:#dfbdff}.special-reward-row{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #53415e}.special-reward-row>img,.special-reward-row>.original-item-viewport{width:48px;height:48px;object-fit:contain}.special-reward-row .shop-note{margin:4px 0;overflow-wrap:anywhere}@media(max-width:480px){.special-reward-row{grid-template-columns:42px minmax(0,1fr)}.special-reward-row>img,.special-reward-row>.original-item-viewport{width:40px;height:40px}.special-reward-row>button{grid-column:2;justify-self:start}}

/* Opt-in same-master icon viewport. Quality frames stay outside the transformed source. */
.original-item-viewport{position:relative;display:inline-block;width:48px;height:48px;overflow:hidden;vertical-align:middle;pointer-events:none}
.original-item-viewport>.original-item-view-source{position:absolute!important;display:block!important;left:var(--icon-left)!important;top:var(--icon-top)!important;width:var(--icon-width)!important;height:var(--icon-height)!important;min-width:0!important;max-width:none!important;min-height:0!important;max-height:none!important;object-fit:fill!important;transform-origin:0 0!important;transform:var(--icon-transform)!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;margin:0!important;padding:0!important;pointer-events:none!important}
.original-item-viewport>.original-item-image{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;border:0!important;box-shadow:none!important;pointer-events:none!important}

/* Keep all three village services on a compact, equal-width row. */
.commerce-shell .npc-service-menu{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}
.commerce-shell .npc-service-menu>.shop-action{width:100%!important;min-width:0;margin:0!important;padding:8px 4px!important;white-space:nowrap;font-size:12px}
.inventory-grid .inventory-cell{user-select:none;-webkit-user-select:none;touch-action:pan-y}.inventory-grid .inventory-cell img{pointer-events:none;-webkit-user-drag:none}.inventory-grid .inventory-dragging{opacity:.38}.inventory-grid .inventory-drop-target{outline:2px solid #f4d58a;outline-offset:-2px;box-shadow:inset 0 0 16px #dec17866!important}.inventory-drag-ghost{position:fixed!important;z-index:99999;width:58px!important;height:58px!important;min-height:58px!important;pointer-events:none!important;transform:translate(-50%,-50%);opacity:.85;box-shadow:0 4px 20px #000b!important}.inventory-drag-note{font-size:11px!important;margin-top:-4px!important}

/* /css/chat-ui.css */
/* 3.5: floating messages, no window. Only bottom controls and temporary input accept pointers. */
.chat-dock{position:absolute;left:0;bottom:0;z-index:12;width:min(550px,calc(100% - 8px));max-height:calc(100% - 8px);display:flex;flex-direction:column;align-items:stretch;pointer-events:none;background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;color:#eee5ce;font:12px/1.5 'Microsoft JhengHei',sans-serif;box-sizing:border-box}
.chat-dock *{box-sizing:border-box}.chat-dock [hidden]{display:none!important}
.local-chat{height:var(--chat-height,120px);min-height:0;flex:1 1 auto;overflow:hidden;pointer-events:none;background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;padding:0 5px;display:flex;align-items:flex-end}
.chat-log{width:100%;max-height:100%;overflow:hidden;pointer-events:none;background:transparent!important;border:0!important;box-shadow:none!important;display:flex;flex-direction:column;justify-content:flex-end;padding:0}
.chat-message{margin:3px 0;overflow-wrap:anywhere;color:#eee5ce;text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000,0 2px 4px #000;font-weight:600}.chat-message strong{color:#e2cb98;font-weight:600}.chat-message[data-channel="世界"] strong{color:#e9d184}.chat-message[data-channel="隊伍"] strong{color:#91d4df}.chat-message[data-channel="公會"] strong{color:#9ed78c}.chat-message small{color:#c6bca4;font-size:9px;margin-left:6px}
.chat-controls{display:flex;align-items:stretch;height:30px;min-height:30px;gap:3px;pointer-events:none;flex-shrink:0}.chat-controls>*{pointer-events:auto}.chat-channels{display:flex;flex:1;min-width:0;gap:2px;background:transparent;border:0}.chat-channel{flex:1;min-width:0;white-space:nowrap;padding:3px 5px;background:#161710b8;color:#d2c19e;border:1px solid #78653e;font-size:12px}.chat-channel[aria-pressed=true]{background:#4e3d20cf;border-color:#d5b477;color:#ffe4a3}.chat-channel.channel-muted{color:#8f8d82;border-style:dashed}.chat-settings,.chat-hide-all{padding:2px 7px;background:#151710b8;color:#c9b381;border:1px solid #78653e;font-size:11px}
.chat-compose{display:flex;align-items:stretch;gap:4px;height:36px;min-height:36px;margin:0 0 3px;padding:3px;border:1px solid #8e7546;background:#090d0ee8;pointer-events:auto;flex-shrink:0}.chat-input-channel{font-size:11px;align-self:center;white-space:nowrap;color:#d9bf83;font-weight:500}.chat-compose input{min-width:0;flex:1;width:0;height:100%;border:1px solid #8c754b;background:#080b0be8;color:#eee5d0;padding:0 6px;font-size:12px;user-select:text}.chat-compose button{height:100%;padding:0 7px;border:1px solid #927443;background:linear-gradient(#66502b,#3b301d);color:#e8ce91;font-size:11px}.chat-compose .chat-close{padding:0 6px;font-size:18px}
.chat-resize-row{align-self:flex-start;display:flex;align-items:center;height:20px;min-height:20px;pointer-events:auto;flex-shrink:0;gap:2px;margin:1px 0;background:transparent;border:0;opacity:.8}.chat-resize-grip{display:flex;align-items:center;gap:6px;min-width:70px;padding:2px 5px;cursor:ns-resize;touch-action:none;user-select:none;-webkit-user-select:none;color:#d6c497;text-shadow:0 1px 3px #000;font-size:10px}.chat-grip-lines{width:18px;height:4px;border-block:1px solid #c7b17c}.chat-resize-row button{width:21px;height:19px;padding:0;border:1px solid #75613c;background:#12160c9c;color:#cdbb8d;line-height:16px}.chat-resize-row button:disabled{opacity:.35}.chat-resize-grip.dragging{color:#fff2be}
.chat-filter-menu{position:absolute;left:0;bottom:34px;width:min(320px,calc(100vw - 24px));max-height:calc(100% - 34px);overflow:auto;pointer-events:auto;background:#111510f5;border:1px solid #a48952;padding:10px;box-shadow:0 3px 10px #0008;font-size:12px}.chat-filter-menu small{display:block;color:#b7ac8e;font-size:10px;margin-bottom:8px}.chat-filter-options{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.chat-filter-menu .chat-filter-options label{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;min-width:0;min-height:52px;padding:4px 0;white-space:nowrap;cursor:pointer}.chat-filter-menu .chat-filter-options input{accent-color:#bb9755;width:18px;height:18px;min-height:18px;flex:none;margin:0;padding:0}.chat-filter-name{display:block;white-space:nowrap;word-break:keep-all;line-height:18px}.chat-filter-actions{display:flex;justify-content:space-between;gap:8px;margin-top:8px}.chat-filter-menu button{padding:6px 9px;margin:0;border:1px solid #75613c;background:#30271a;color:#ddc995;font-size:11px}
.chat-launcher{align-self:flex-start;height:36px;min-height:36px;padding:0 12px 0 31px;border:1px solid #91764b;background:#151811db url('/image/ui/menu-assets/chat.svg') no-repeat 7px center/18px;color:#dcc291;font-size:12px;pointer-events:auto}.chat-all-hidden{height:36px}.chat-dock :focus-visible{outline:2px solid #e4c37f;outline-offset:-2px}.chat-tight .local-chat{min-height:0}.chat-tight .chat-resize-row{display:none}
@media(max-width:560px){.chat-dock{width:calc(100% - 8px)}.chat-channel{font-size:11px;padding:2px}.chat-settings,.chat-hide-all{padding:2px 5px}.chat-compose input{font-size:11px}.chat-message{font-size:11px}}
.chat-offline-label{font-size:9px;color:#c1b28e;text-shadow:0 1px 3px #000;margin-left:5px}.chat-tight .chat-controls{height:26px;min-height:26px}.chat-tight .chat-compose{height:30px;min-height:30px;margin-bottom:1px}.chat-tight .chat-filter-menu{position:fixed;left:8px;bottom:148px;max-height:calc(100dvh - 160px)}

/* Five bottom channels stay on one row; recipient is only shown for local whisper preview. */
.chat-message[data-channel="密語"] strong{color:#efb7d1}.chat-compose .chat-whisper-target{flex:0 1 84px;width:84px;max-width:84px;border-color:#a87791;color:#f0c5db}.chat-compose .chat-whisper-target[hidden]{display:none!important}@media(max-width:560px){.chat-compose .chat-whisper-target{flex-basis:62px;width:62px;max-width:62px}.chat-channel{font-size:10px;padding:2px 1px}.chat-compose .chat-input-channel{font-size:10px}.chat-compose button{padding:0 4px}.chat-controls{gap:2px}}

/* On touch screens the battlefield belongs to movement and combat. */
.chat-status-row{display:contents}
.chat-status-row.chat-compact{display:flex;align-items:center;flex:none;min-height:44px;padding:0 6px;gap:5px;background:#0a100d;border-top:1px solid #454b35}
.chat-compact .combat-feed{flex:1;min-width:0;height:auto;border:0;padding:4px 6px}
#mobile-chat-toggle{margin-left:auto;min-height:44px;min-width:68px;padding:0 10px 0 30px;border:0;border-left:1px solid #514631;background:transparent url('/image/ui/menu-assets/chat.svg') no-repeat 8px center/17px;color:#e2cb98;font-size:13px}
/* Mobile chat is an inline composer and a small channel strip, never a dialog. */
#mobile-chat-toggle{margin-left:0;flex:none}
#mobile-chat-send{margin-left:auto;flex:none;min-height:44px;min-width:56px;padding:0 8px;border:1px solid #78653e;background:#24291dbb;color:#e6cc93;font-size:13px;touch-action:manipulation}
.chat-status-row.chat-compact [hidden]{display:none!important}
.chat-status-row>.chat-dock.chat-mobile{position:absolute;left:6px;right:6px;bottom:100%;width:auto;height:auto;max-height:none;z-index:20;padding:4px;background:#111a13db!important;pointer-events:none;gap:4px}
.chat-mobile .local-chat,.chat-mobile .chat-resize-row,.chat-mobile .chat-launcher,.chat-mobile .chat-hide-all{display:none!important}
.chat-mobile .chat-controls{height:44px;min-height:44px;gap:4px}
.chat-mobile .chat-channel,.chat-mobile .chat-settings{min-height:44px;font-size:13px}
.chat-mobile .chat-settings{width:40px;padding:0;font-size:18px}
.chat-mobile .chat-filter-menu{position:static;width:100%;max-height:min(230px,50dvh);padding:6px;box-shadow:none}
.chat-status-row.chat-compact>.chat-compose{flex:1;min-width:0;height:44px;min-height:44px;margin:0;padding:2px;border:0;background:transparent}
.chat-compact>.chat-compose .chat-input-channel,.chat-compact>.chat-compose button[type=submit]{display:none}
.chat-compact>.chat-compose input{font-size:16px;min-height:40px}
.chat-compact>.chat-compose .chat-close{width:32px;flex:none;font-size:20px}
.chat-compact>.chat-compose .chat-whisper-target{flex:0 1 28%;width:28%;max-width:100px}
.chat-status-row.chat-compact.chat-composing.chat-keyboard-open{position:fixed;left:0;right:0;bottom:var(--chat-keyboard-bottom,0px);z-index:50;padding-inline:max(6px,env(safe-area-inset-left)) max(6px,env(safe-area-inset-right));background:#0a100df0}
.chat-status-row.chat-composing #combat-feed,.chat-status-row.chat-composing>.chat-peek{display:none!important}
.chat-status-row.chat-composing #mobile-chat-send{margin-left:0}

/* Desktop chat floats above the scene; its messages keep usable space when typing. */
#battlefield>.chat-dock{left:12px;bottom:12px;width:min(460px,calc(100% - 152px));max-height:calc(100% - 96px);padding:7px;gap:3px;pointer-events:auto;background:rgba(8,14,12,.58)!important;border:1px solid #b49b6066!important;border-radius:4px;box-shadow:0 3px 16px #0003!important}
#battlefield>.chat-dock .local-chat{flex:0 1 var(--chat-height,120px);min-height:64px;align-items:stretch;padding:0 3px;pointer-events:auto}
#battlefield>.chat-dock .chat-log{display:block;overflow-y:auto;overscroll-behavior:contain;pointer-events:auto;user-select:text;scrollbar-width:thin;scrollbar-color:#ad945f80 transparent}
#battlefield>.chat-dock .chat-log:empty::before{content:'選擇頻道開始聊天';color:#c9c6b7;font-size:12px;text-shadow:0 1px 3px #000}
#battlefield>.chat-dock .chat-message{margin:3px 0;font-size:12px;line-height:1.5}
#battlefield>.chat-dock .chat-resize-row{margin:0;opacity:1}
#battlefield>.chat-dock .chat-compose{margin:0;background:#090d0e9c}
#battlefield>.chat-dock .chat-filter-menu{left:7px;bottom:40px;width:calc(100% - 14px);max-height:calc(100% - 47px)}
#battlefield>.chat-dock.chat-all-hidden{width:auto;height:auto;padding:0;background:transparent!important;border:0!important;box-shadow:none!important}
#battlefield>.chat-dock.chat-all-hidden{pointer-events:none}
#battlefield>.chat-dock.chat-all-hidden.chat-has-peek{width:min(460px,calc(100% - 152px))}
.chat-peek,.chat-peek *{pointer-events:none!important}
.chat-peek{display:flex;flex-direction:column;gap:5px}
#battlefield>.chat-dock .chat-peek-message,.chat-peek-mobile .chat-peek-message{margin:0;padding:3px 6px;max-height:42px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--chat-peek-lines,2);background:linear-gradient(90deg,#09110d66,transparent);border-radius:2px;animation:chat-peek-life 8s linear forwards}
.chat-peek-mobile{position:absolute;z-index:3;overflow:hidden;gap:5px;font:12px/18px 'Microsoft JhengHei',sans-serif}
.chat-peek-mobile .chat-peek-message{font-size:12px;line-height:18px}
.chat-status-row.chat-compact{position:relative}
.chat-peek-state{font-size:10px;color:#f0c078}
@keyframes chat-peek-life{0%{opacity:0;transform:translateY(5px)}5%,80%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(0)}}
@keyframes chat-peek-still{0%,80%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){#battlefield>.chat-dock .chat-peek-message,.chat-peek-mobile .chat-peek-message{animation-name:chat-peek-still}}
@media(max-height:600px){#battlefield>.chat-dock{left:8px;bottom:6px;padding:5px;max-height:calc(100% - 12px)}}
@media (max-height:640px) and (any-pointer:coarse){
 #quest-tracker-panel .online-city-return{margin-left:94px}
 #battlefield #joystick,#battlefield #attack-button{z-index:4}
}

/* In very short landscapes, recent chat replaces the status line temporarily. */
.chat-status-row.chat-peek-active #combat-feed{visibility:hidden}

/* Readable, translucent text without a floating chat window. */
.chat-compose,.chat-compose input,.chat-compose button{box-sizing:border-box}
.chat-compose input{margin:0}
.chat-compose :focus-visible{outline:2px solid #e4c37f;outline-offset:-2px}
.chat-peek-mobile .chat-peek-message{padding:2px 0;background:none!important;border:0;border-radius:0;animation-name:chat-mobile-peek-life}
@keyframes chat-mobile-peek-life{0%{opacity:0}6%,65%{opacity:.88}100%{opacity:0}}

/* /css/loot-ui.css */
.loot-history .uncommon{color:#79cf7a}.loot-history .rare{color:#75b6ef}.loot-history .pending{color:#e3b777}.loot-history{margin-top:12px;padding:10px;background:#14251b;border:1px solid #7e79594d;border-radius:6px}.loot-history summary{cursor:pointer;color:#dbca96}.loot-history ol{margin:8px 0 0;padding-left:23px;max-height:190px;overflow:auto;font-size:12px;line-height:1.7}.loot-history .shop-note{font-size:11px}
/* Item quality colours for the system chat and inventory history. */
.quality-message{display:inline-flex;gap:7px;align-items:center;max-width:100%;vertical-align:middle;line-height:1.5}
.quality-item-name{color:var(--loot-quality);font-weight:650;text-shadow:0 1px 3px #000}
.quality-message-icon{width:26px;height:26px;flex:0 0 26px;overflow:hidden;border:1px solid var(--loot-quality);border-radius:4px;background:#10151c;display:inline-flex;align-items:center;justify-content:center}
.quality-message-icon>.original-item-image{width:24px;height:24px;object-fit:contain}
.quality-message>span:last-child{min-width:0;overflow-wrap:anywhere}
.chat-message .quality-message{font-size:inherit;gap:4px}.chat-message .quality-message-icon{width:17px;height:17px;flex-basis:17px}.chat-message .quality-message-icon>.original-item-image{width:15px;height:15px}
#combat-feed .quality-message-icon{display:none}

/* /css/quest-ui.css */
.quest-panel{display:grid;gap:14px;color:#e7dfca}.quest-entry{padding:16px;border:1px solid #68735766;border-radius:10px;background:linear-gradient(135deg,#28352ee8,#19241ee8)}.quest-entry.ready{border-color:#bba467}.quest-entry.locked{opacity:.72}.quest-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.quest-heading h3{margin:0;font-size:17px;color:#eed9a2}.quest-badge{white-space:nowrap;border:1px solid #9b9c7477;border-radius:20px;padding:3px 9px;font-size:12px;color:#cfdbaf}.quest-note{font-size:13px;line-height:1.65;color:#c6cbb9;margin:9px 0}.quest-objective{font-weight:bold;font-size:15px;color:#e3e9cb}.quest-action{min-height:42px;margin:4px 6px 4px 0;padding:9px 15px}.quest-action:disabled{opacity:.45}.quest-services{display:flex;flex-wrap:wrap;gap:8px}.quest-legacy{border-top:1px solid #8885;padding-top:12px}.quest-panel button:focus-visible{outline:2px solid #e8cf83;outline-offset:3px}@media(max-width:480px){.quest-heading{align-items:flex-start}.quest-entry{padding:12px}.quest-heading h3{font-size:15px}.quest-badge{font-size:11px}.quest-panel .quest-action{width:100%;margin:3px 0}}
/* The quest prompt lives beneath the HUD, not on top of player bars or the minimap. */
#quest-tracker-panel{position:absolute;z-index:3;left:12px;top:10px;width:min(265px,calc(100% - 124px));display:flex;flex-direction:column;gap:3px}
#quest-tracker-panel #quest-card{position:static;top:auto;left:auto;width:100%;min-height:64px;padding:8px 10px;gap:4px;background:#142017e8;border:1px solid #8f956066;border-left:3px solid #c0b976;border-radius:5px;text-align:left}
#quest-tracker-panel #quest-card[data-quest-state="ready"]{border-color:#e3c672;background:#394027ee}
#quest-tracker-panel #quest-card[data-quest-state="active"]{border-left-color:#8bbca7}
#quest-tracker-panel #quest-card strong{font-size:12px;font-weight:bold;line-height:1.3}#quest-tracker-panel #quest-card span{font-size:10px;line-height:1.4}
.quest-journal-button{align-self:flex-start;padding:3px 9px;min-height:24px;background:#18241ee8;border:1px solid #6c795a;border-radius:4px;color:#d8d6b6;font-size:11px}
#battlefield .zone-label{top:119px;left:14px}#battlefield #boss-info{top:168px}
@media(max-width:420px){#quest-tracker-panel{left:8px;width:calc(100% - 112px)}#quest-tracker-panel #quest-card{padding:6px 8px}#quest-tracker-panel #quest-card strong{font-size:11px}#battlefield .zone-label{top:121px}}

/* Flow the zone name after the tracker so wrapped text never overlaps it. */
#quest-tracker-panel .zone-label{position:static;margin:6px 2px 0;max-width:100%}#quest-tracker-panel .zone-label h2{font-size:17px;letter-spacing:2px;line-height:1.3}
.quest-catalog{display:grid;gap:8px}.quest-claim-count{color:#f4d991;font-weight:bold;font-size:13px;border:1px solid #847149;padding:7px 10px;border-radius:5px;background:#342e20}.quest-filter-tabs{display:flex;gap:6px;position:sticky;top:0;z-index:1;background:#19251f;padding:4px 0}.quest-filter-tabs button{flex:1;margin:0;min-height:42px;font-size:13px}.quest-filter-tabs button[aria-selected=true]{border-color:#d4bd7d;background:#4a4731;color:#fff1c9}.quest-tab-list{display:grid;gap:10px;max-height:52vh;overflow:auto;overscroll-behavior:contain;padding-right:3px}.quest-tab-list .quest-entry h3{font-size:15px}.quest-tab-list .quest-note{margin:6px 0}#quest-stop-button{border-color:#ad7c5b;color:#f2cda5}
.quest-catalog select{width:100%;min-height:38px;padding:6px 10px;background:#202e25;color:#e9dfc1;border:1px solid #7e805c;border-radius:5px}.world-route-list{display:grid;gap:8px;margin-bottom:18px}.world-route-row{display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding:10px;border:1px solid #68735777;border-radius:6px;background:#1b2c22}.world-route-row small{grid-column:1;color:#bdc7ac}.world-route-row button{grid-column:2;grid-row:1/3;min-height:40px;font-size:12px}.world-route-row strong{font-size:14px;color:#e2d5a8}
/* Transparent tracker gaps must not intercept world movement or NPC clicks. */
#quest-tracker-panel{pointer-events:none}#quest-tracker-panel button{pointer-events:auto}
/* A single contained quest list replaces nested dialog scrolling on phones. */
.modal-box:has(.trainer-panel){display:flex;flex-direction:column;height:min(650px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);overflow:hidden}
.modal-box:has(.trainer-panel)>header{flex:none;padding:14px 18px}
.modal-box:has(.trainer-panel)>header h2{font-size:20px;margin-top:5px}
#modal-content:has(>.trainer-panel){flex:1;min-height:0;overflow:hidden;padding:12px 16px}
.trainer-panel{height:100%;min-height:0;display:flex;flex-direction:column;gap:8px}
.trainer-panel .quest-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));flex:none;gap:8px}
.trainer-panel .quest-services .quest-action{width:auto;margin:0;min-height:40px;padding:7px;font-size:12px}
.trainer-panel .quest-services [aria-current=page]{background:#4b4a30;border-color:#d6bd78;color:#fff0c0}
.trainer-panel .quest-catalog{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px}
.trainer-panel .quest-claim-count,.trainer-panel [data-story-progression]{display:none}
.trainer-panel .quest-filter-tabs{flex:none;position:static;padding:0;background:none}
.trainer-panel .quest-filter-tabs button{width:auto;min-height:36px;margin:0;padding:6px;font-size:12px}
.trainer-panel .quest-tab-list{flex:1;min-height:0;max-height:none;overflow:auto;align-content:start;gap:8px;padding-right:3px}
.trainer-panel .quest-entry{padding:12px;display:flex;flex-direction:column;gap:8px}
.trainer-panel .quest-heading{align-items:center;gap:7px}
.trainer-panel .quest-heading h3{font-size:15px;line-height:1.35;margin:0}
.trainer-panel .quest-badge{font-size:10px;padding:3px 7px}
.trainer-panel .quest-objective{order:0;margin:0;font-size:15px}
.trainer-panel .quest-reward{margin:0;font-size:12px;color:#d4c794}
.trainer-panel .quest-card-actions{display:flex;gap:7px;flex-wrap:wrap}
.trainer-panel .quest-card-actions .quest-action{flex:1 1 120px;width:auto;min-height:40px;margin:0;padding:7px;font-size:12px}
.trainer-panel .quest-card-actions [data-quest-action]{border-color:#d6bd78;background:#4c4a30;color:#fff0c0}
.trainer-panel .quest-extra{border-top:1px solid #7775;padding-top:7px;font-size:12px;color:#c7c9b6}
.trainer-panel .quest-extra summary{cursor:pointer;min-height:26px;line-height:26px}
.trainer-panel .quest-extra .quest-note{font-size:12px;line-height:1.5;margin:7px 0}
.trainer-panel .trainer-hint{flex:none;margin:0;font-size:10px;line-height:1.5;color:#aeb79e}
@media(max-width:480px){.modal-box:has(.trainer-panel)>header{padding:12px 14px}.modal-box:has(.trainer-panel)>header h2{font-size:18px}#modal-content:has(>.trainer-panel){padding:10px}.trainer-panel .quest-entry{padding:10px}.trainer-panel .quest-card-actions .quest-action{flex-basis:110px}}

/* /css/painted-minimap.css */
/* Actual painted terrain; reserve a distinct top-right footprint beside status icons. */
#game .mini-map{width:132px;height:120px;padding:3px;right:12px;top:12px;background:transparent;border:0;box-shadow:0 3px 15px #07110c88;border-radius:9px;}
#game .mini-map canvas{width:124px;height:112px;display:block;border-radius:7px;}
#game .mini-map>span{display:none;}
#game #support-statuses{right:154px;max-width:min(340px,calc(100% - 166px));}
@media(max-width:600px){#game .mini-map{width:104px;height:98px;right:8px;top:8px;}#game .mini-map canvas{width:96px;height:90px;}#game #support-statuses{right:120px;max-width:calc(100% - 132px);}}

/* /css/class-ui.css */
.class-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:12px 18px 0}.class-choice{min-height:44px;border:1px solid #6d7964;border-radius:8px;background:#202e29;color:#e7e2cd;font-size:12px;padding:7px 4px}.class-choice.active{border-color:#e4c77f;background:#405244;box-shadow:inset 0 0 0 1px #e4c77f}.race-choice:disabled{opacity:.35;cursor:not-allowed}#class-title{max-width:160px;text-align:center;font-size:11px}#rage-fill[data-resource=mana]{background:linear-gradient(90deg,#365dba,#72b4ef)}#rage-fill[data-resource=energy]{background:linear-gradient(90deg,#b29127,#f3dd73)}#rage-fill[data-resource=rage]{background:linear-gradient(90deg,#a63b37,#e46f51)}#class-state{color:#b7dacb;font-size:10px;white-space:nowrap}.warrior-action-bar{flex-wrap:wrap}.ability-icon{background-repeat:no-repeat}.talent-node-glyph{background-repeat:no-repeat}@media(max-width:420px){.class-choices{gap:5px;padding:8px 10px 0}.class-choice{font-size:11px;min-height:40px}#class-state{font-size:9px}}

/* /css/character-management.css */
.character-card-row{display:flex;align-items:stretch;gap:8px;width:100%}.character-card-row>.character-slot{flex:1;min-width:0}.delete-character-open{flex:0 0 54px;border:1px solid #9d6660;border-radius:10px;background:#3c2727;color:#ffd6cd;font-size:12px}.character-trash-open{width:100%;min-height:42px;background:#25352f;color:#d8e2cf;border:1px solid #657666;border-radius:9px;margin-top:8px}.delete-name-label{display:block;margin:16px 0 7px;color:#e8dcc5}#delete-character-name{width:100%;box-sizing:border-box;padding:12px;background:#17241e;color:#fff3d9;border:1px solid #907b60;border-radius:7px;min-height:44px}.delete-character-confirm{background:#733b36;color:#ffe8df;border:1px solid #d28b7b;min-height:44px}.delete-character-confirm:disabled{opacity:.4;cursor:not-allowed}.delete-identity{font-weight:700;color:#f0d6ab}.delete-notice{line-height:1.6}.trash-character-row{padding:13px;margin:9px 0;border:1px solid #687c66;border-radius:8px;display:flex;flex-direction:column;gap:9px}.trash-character-row small{color:#b3c4b1}.restore-character{min-height:42px;background:#354e3e;color:#eef4dc;border:1px solid #8baa7b;border-radius:6px}@media(max-width:420px){.character-card-row{gap:5px}.delete-character-open{flex-basis:44px;font-size:11px}}

/* /css/dungeon-ui.css */
#boss-info.dungeon-encounter-panel{width:min(70%,390px);max-width:calc(100% - 24px);padding:8px 10px;box-sizing:border-box;pointer-events:none;line-height:1.4;background:#171b22eb;border:1px solid #d7b576;color:#f6e8ce;z-index:5}#boss-info.dungeon-encounter-panel>*{display:block}.dungeon-phase-title{font-size:12px;color:#ffe3a5}.dungeon-party-target{font-size:9px;color:#c9c7b5}.dungeon-danger-warning{font-size:11px;margin-top:4px;line-height:1.45;color:#fff0c9}.dungeon-cast-countdown{font-size:10px;font-variant-numeric:tabular-nums;color:#e9c992}.dungeon-break-progress{height:6px;border:1px solid #a5a77a;background:#1a2a25;border-radius:3px;overflow:hidden;margin-top:5px}.dungeon-break-progress i{display:block;height:100%;background:#c2e9a7;width:0}.dungeon-break-progress[hidden]{display:none!important}@media(max-width:420px){#boss-info.dungeon-encounter-panel{top:166px;width:76%;padding:6px 7px}.dungeon-phase-title{font-size:11px}.dungeon-danger-warning{font-size:10px}}

.dungeon-ward-status{font-size:10px;color:#d5e4ff;margin-top:3px}.dungeon-ward-status[hidden]{display:none!important}

.dungeon-pressure-status{font-size:10px;color:#ffd1aa;margin-top:2px}.dungeon-pressure-status[hidden]{display:none!important}

/* Elemental encounters may have concurrent casts; keep combat view usable. */
.dungeon-danger-warning{overflow-wrap:anywhere}.dungeon-party-target{line-height:1.45}.dungeon-phase-title{overflow-wrap:anywhere}
@media(max-width:600px){#boss-info .dungeon-danger-warning{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}#boss-info .dungeon-party-target{font-size:9px}}
.elemental-break-list[hidden]{display:none!important}.elemental-break-list{max-height:120px;overflow:auto;scrollbar-width:thin}.elemental-break-row{font-size:10px;color:#d2f0b8;margin-top:4px;font-variant-numeric:tabular-nums}.elemental-break-row .dungeon-break-progress{margin-top:2px;height:5px}.elemental-break-feedback{font-size:11px;color:#d2f0b8}.elemental-break-feedback[hidden]{display:none!important}

/* /css/skill-pull-ui.css */
/* Original compact right-hand controls and per-skill pull affordance. */
#battlefield .battle-controls{left:auto;right:88px;bottom:18px;transform:none;width:clamp(120px,calc(100% - 194px),150px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;z-index:8}
#battlefield .battle-controls button{min-width:0;width:100%;min-height:52px;padding:4px 2px;font-size:9px;line-height:1.4;border:1px solid #b6a16c;background:#182522e8;border-radius:5px}
#battlefield .battle-controls button b{font-size:10px;display:block}
#battlefield #auto-skills{display:none!important}
#battlefield .battle-note{bottom:118px;max-width:calc(100% - 16px);white-space:normal;text-align:center;pointer-events:none}
.attack-slot{position:relative}.attack-slot-gear{position:absolute;right:2px;top:2px;z-index:3;width:25px;height:25px;padding:0;background:#111c20e8;border:1px solid #8f987f;border-radius:4px;color:#e9dbb5;font-size:16px}
.pull-skill{position:relative;touch-action:none!important;user-select:none;-webkit-user-select:none;overflow:hidden}
.pull-skill img{pointer-events:none;-webkit-user-drag:none}.pull-auto-label{position:absolute;left:3px;bottom:2px;z-index:2;padding:0 3px;border-radius:3px;font:bold 9px/13px sans-serif;background:#15201ce8;color:#b3c3ba;pointer-events:none}
.pull-skill.skill-auto-on{border-color:#72d7af!important;box-shadow:inset 0 0 0 1px #72d7af,0 0 5px #497e6855}.skill-auto-on .pull-auto-label{background:#124c39;color:#bafbdd}.pull-ready{outline:2px solid #c4ebcb;outline-offset:-2px}.skill-unlearned{filter:grayscale(.8);opacity:.5}
@media(max-width:380px){.attack-slot-gear{width:21px;height:21px;font-size:14px}}

/* 6.0.4 HUD cleanup: settings and backups remain in the function menu. */
#battlefield #motion-toggle,#battlefield #offline-mode,#battlefield #stop-button{display:none!important}#battlefield .battle-controls{width:58px;grid-template-columns:1fr;right:88px}#battlefield #auto-combat{font-size:12px;font-weight:bold;min-height:48px}

/* /css/world-atlas.css */
.modal-box.world-atlas-shell{width:min(1120px,96vw);max-width:96vw}.atlas-tabs{display:flex;gap:6px;margin:8px 0}.atlas-tabs button{flex:1;min-height:44px}.atlas-tab[aria-pressed=true]{background:#596751;border-color:#dbbf7b;color:#fff0bd}.atlas-current{color:#dfcf9f;font-size:12px}.atlas-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.atlas-heading h3{margin:8px 0}.atlas-heading button{min-height:44px}.atlas-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(210px,1fr);gap:12px;align-items:start}.atlas-map{position:relative;aspect-ratio:3/2;overflow:hidden;border:1px solid #aa8d53;border-radius:8px;background:#b7a77a}.atlas-map>img{display:block;width:100%;height:100%;object-fit:cover}.atlas-pin{position:absolute;transform:translate(-50%,-50%);padding:2px 4px;min-width:44px;min-height:44px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1px;background:transparent;border:0;color:#fff;max-width:26%;cursor:pointer}.atlas-marker{font-size:19px;line-height:20px;color:#ffe49f;text-shadow:0 1px 3px #191609,1px 0 2px #191609}.atlas-place-name{font-size:12px;line-height:1.35;background:#202c27ed;border:1px solid #b9a169;border-radius:3px;padding:2px 4px;white-space:nowrap}.atlas-pin.is-locked .atlas-marker{color:#d1c7b6}.atlas-pin.is-locked .atlas-place-name{background:#3c3b38ed;color:#e0dacf}.atlas-pin.is-current .atlas-marker{color:#a8ffe1}.atlas-pin[aria-pressed=true] .atlas-place-name{outline:2px solid #f2d99b;background:#675331}.atlas-pin:focus-visible{outline:3px solid #fff7ca;border-radius:5px}.atlas-detail{background:#1a2925;border:1px solid #697357;border-radius:8px;padding:12px;min-width:0;overflow-wrap:anywhere}.atlas-detail h3{color:#ffe2a2;margin:0 0 10px}.atlas-detail p{font-size:12px;line-height:1.6;margin:8px 0}.atlas-detail button{width:100%;min-height:44px;white-space:normal}.atlas-detail small{display:block;margin-top:12px;line-height:1.6;color:#b7bba8}.atlas-note{font-size:11px;line-height:1.6;color:#b9bdad}.atlas-price{color:#f5d68d}@media(max-width:700px){.atlas-layout{grid-template-columns:1fr}.atlas-place-name{font-size:10px;padding:1px 3px}.atlas-heading h3{font-size:16px}.atlas-heading button{font-size:11px}.atlas-tabs button{font-size:12px;padding:6px 2px}.atlas-detail{padding:10px}.atlas-map{min-width:0}.atlas-pin{padding:0}.atlas-marker{font-size:16px}}@media(prefers-reduced-motion:reduce){.atlas-pin{transition:none!important;animation:none!important}}

.atlas-pin.is-locked .atlas-marker{color:#ffd0c4;font-size:13px;font-weight:bold;background:#6c2023;border:1px solid #f08e7e;border-radius:3px;padding:0 3px}.atlas-pin.is-locked .atlas-place-name{background:#502c2bed;color:#ffd8d0;border-color:#dd8d80}.atlas-pin.is-locked[aria-pressed=true] .atlas-place-name{background:#632f2b;outline-color:#ffb7a5}.atlas-detail .atlas-fee-rule{margin:6px 0;font-size:10px;color:#e1cba0}

/* /css/online-game.css */
.login-form label{display:grid;gap:6px;text-align:left;margin:12px 0;color:#d7c8a2}.login-form input{background:#151d24;border:1px solid #6c6249;border-radius:8px;padding:12px;color:#fff;font:inherit}.online-status{color:#d9c896}.online-person{display:flex;gap:10px;align-items:center;padding:10px;border-bottom:1px solid #655736}.online-person span{flex:1}#export-save,#import-save{display:none!important}.delete-character-open,.character-trash-open{display:inline-block}

/* Eight online navigation entries: no accidental ninth-row overflow. */
#game .bottom-nav{grid-template-columns:repeat(8,minmax(0,1fr))}
.online-city-return{display:block;pointer-events:auto;margin-top:5px;padding:6px 10px;min-height:32px;border:1px solid #b69a61;background:#172019ed;color:#f1dfb1;font-size:12px;max-width:100%;white-space:normal}
.online-city-return[hidden]{display:none!important}
@media(max-width:620px){#game .bottom-nav{grid-template-columns:repeat(4,minmax(0,1fr))}#game .bottom-nav button{min-height:44px;padding:2px}#game .bottom-nav button img{width:28px;height:24px}#game .bottom-nav button .nav-label{font-size:10px}}
@media(max-height:560px){#game .bottom-nav button{min-height:40px}#game .bottom-nav button img{width:24px;height:22px}.online-city-return{min-height:28px;padding:3px 8px}}
.online-player-menu{position:fixed;z-index:95;display:grid;gap:9px;width:220px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow:auto;padding:13px;border:1px solid #bfa46d;border-radius:8px;background:linear-gradient(145deg,#25302cf7,#10171dfb);box-shadow:0 12px 40px #000a;color:#eee0bc}.online-player-menu strong{overflow-wrap:anywhere}.online-player-menu button{min-height:36px;font-size:13px}.online-player-menu-hint{color:#bac1af;line-height:1.45}.online-player-menu button:disabled{opacity:.45;cursor:not-allowed}
.trade-exchange{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}.trade-side{min-width:0;padding:12px;border:1px solid #78674c;border-radius:8px;background:#0c1519}.trade-side-own{border-color:#b49b65}.trade-side-peer{border-color:#647e89}.trade-side h3{margin-top:0!important;overflow-wrap:anywhere}.trade-side ul{padding-left:18px;overflow-wrap:anywhere}.trade-side .trade-items{max-height:220px;overflow:auto}.trade-side input[type=number]{width:100%;min-height:36px;background:#172126;color:#f6df9b;border:1px solid #8b7954;padding:6px}.trade-side .online-person{padding:6px 0;font-size:11px}.trade-confirm-state{padding:7px;border:1px solid #596b57;color:#b8d0a7}.trade-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.trade-actions button{min-height:38px}.trade-version{color:#d7c18b}.trade-invite{padding:12px;border:1px solid #a89160;background:#152125}.trade-invite strong{color:#f2ddab}@media(max-width:520px){.trade-exchange{grid-template-columns:1fr}.trade-side{padding:9px}.trade-side .trade-items{max-height:160px}}
.modal-box.online-trade-shell{width:min(760px,calc(100vw - 36px));max-width:760px;background:linear-gradient(145deg,#26332f,#10171e 70%);border-color:#bd9f65}.online-trade-shell .online-social-panel>button{margin:6px 6px 0 0}.trade-offered-item{padding:8px 5px;margin:5px 0;border:1px solid #4b615d;background:#1c2927;display:grid;gap:4px;overflow-wrap:anywhere}.trade-offered-item small{font-size:10px;color:#9eafa7}.trade-confirmation{padding:7px;background:#18291f;color:#c2d7b1;border-left:3px solid #9bb27d}.trade-invitation-copy{font-size:15px;color:#e9dcb9;padding:12px;background:#112020;border:1px solid #718976}.trade-empty{color:#84948e;min-height:45px}
.trade-offered-item{grid-template-columns:40px minmax(0,1fr);align-items:center}.trade-offered-item>img,.trade-offered-item>.original-item-viewport{width:36px;height:36px;object-fit:contain;grid-row:span 2}.trade-offered-item>small{grid-column:2}.trade-offered-item:not(:has(>img,>.original-item-viewport)){grid-template-columns:1fr}.trade-offered-item:not(:has(>img,>.original-item-viewport))>small{grid-column:1}
.party-frames[hidden],.party-dps[hidden]{display:none!important}
.party-frames{position:absolute;left:8px;top:202px;z-index:4;width:114px;display:grid;gap:5px;pointer-events:none}
.party-member{padding:5px 7px;border:1px solid #7e806177;border-left:3px solid #9aac83;background:#101c1dd9;border-radius:4px;min-width:0}
.party-member strong,.party-member small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.party-member strong{font-size:11px;color:#eee0bb}.party-member small{font-size:9px;color:#bdc8b8;margin-top:1px}
.party-member-health{display:block;height:4px;background:#36271f;margin-top:4px;border-radius:2px;overflow:hidden}.party-member-health i{display:block;height:100%;background:#8db476}
.party-dps{position:absolute;right:8px;top:112px;width:122px;z-index:4;border:1px solid #8c805c88;border-radius:4px;background:#101a1bd9;padding:6px;pointer-events:none}
.party-dps header{display:flex;justify-content:space-between;gap:4px;border-bottom:1px solid #82734a77;padding-bottom:4px;margin-bottom:4px;color:#e6d29e}.party-dps header strong{font-size:11px}.party-dps header small{font-size:9px;color:#b5bca7}
.party-dps-row{display:flex;justify-content:space-between;gap:5px;font-size:10px;line-height:20px;color:#d0d6c4}.party-dps-row span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.party-dps-row strong{color:#edd39c;font-variant-numeric:tabular-nums}
@media(max-height:620px){.party-frames{top:110px;width:99px;gap:3px}.party-member{padding:3px 5px}.party-member-health{margin-top:2px}.party-dps{top:106px;width:108px;padding:4px}.party-dps-row{line-height:17px}}
.login-form label.remember-account{display:flex;align-items:center;width:fit-content;gap:8px;min-height:40px;margin:0;color:#d7c8a2;cursor:pointer}
.login-form .remember-account input{appearance:auto;width:18px;height:18px;margin:0;padding:0;accent-color:#c9a45e}
.account-help-actions{display:flex;align-items:center;justify-content:center;gap:12px}.account-help-actions button{min-height:44px}
.account-recovery{display:grid;gap:8px}.account-recovery label{display:grid;gap:4px}.account-recovery input{width:100%;min-width:0;padding:8px;background:#141b1c;border:1px solid #806d46;color:#eee6d1;font-size:16px}.account-recovery button{min-height:44px}

/* /css/guild-ui.css */
.guild-shell{width:min(550px,94vw)!important;max-height:94dvh!important;overflow:hidden!important;background:radial-gradient(ellipse at 0 0,#43392344,transparent 65%),#151b1c!important;border-color:#a38b58!important}
.guild-shell>header{padding:18px 22px!important}.guild-shell #modal-content{padding:14px 18px!important;overflow:hidden!important}.guild-layout{display:flex;flex-direction:column;gap:12px;min-height:460px}.guild-identity{display:flex;align-items:center;gap:15px;padding-bottom:12px;border-bottom:1px solid #6f5e3b}.guild-identity>svg{width:72px;height:80px;flex-shrink:0;filter:drop-shadow(0 3px 8px #000)}.guild-identity h3{font-size:24px;letter-spacing:3px;color:#e1c183;margin:4px 0}.guild-identity p,.guild-identity small{font-size:11px;color:#c5bb9f;margin:5px 0}.guild-shield{fill:#252c2a;stroke:#b69a63;stroke-width:2}.guild-symbol{fill:#c4a269;stroke:#e6ce93;stroke-width:1.3;stroke-linejoin:round}.guild-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px}.guild-action{border:1px solid #7b6946;background:#242b28;color:#e3d5b8;padding:9px 12px;min-height:40px;cursor:pointer;border-radius:2px}.guild-tabs [aria-selected=true],.guild-action.primary{background:linear-gradient(#6a5835,#493f2c);border-color:#dbba75;color:#fff1c8}.guild-body{min-height:265px;display:flex;flex-direction:column;gap:9px}.guild-body h3,.guild-body h4{margin:3px 0;color:#dbbd80;letter-spacing:2px;font-size:16px}.guild-note{font-size:11px;color:#b6b19e;margin:0}.guild-notice{padding:18px;border:1px solid #6b6047;background:linear-gradient(135deg,#292b2290,#202723);font-size:14px;line-height:1.75;overflow-wrap:anywhere;margin:0;min-height:110px;white-space:pre-wrap}.guild-empty{padding:24px 16px;font-size:13px;line-height:1.8;color:#bfb9a7;border:1px dashed #706548}.guild-field{display:flex;flex-direction:column;gap:6px;font-size:12px}.guild-field input,.guild-body textarea{width:100%;box-sizing:border-box;min-height:40px;background:#101718;border:1px solid #82704c;color:#f1e1bd;padding:9px;font:inherit;border-radius:3px}.guild-body textarea{height:80px;resize:none;font-size:13px}.guild-emblems{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.guild-emblems button{padding:5px;display:flex;align-items:center;flex-direction:column;gap:2px}.guild-emblems svg{width:33px;height:38px}.guild-emblems [aria-pressed=true]{border-color:#ffe2a4;background:#554a32}.guild-emblems small{font-size:10px}.guild-member{display:grid;grid-template-columns:12px 1fr auto 36px;align-items:center;gap:7px;text-align:left;padding:9px 10px;min-height:48px}.guild-member strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.guild-member span,.guild-member small{font-size:10px;color:#bfbaa8}.guild-member i{color:#7e8279;font-style:normal;font-size:10px}.guild-member .is-online{color:#8ec785}.guild-pager{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-size:12px}.guild-action:disabled{opacity:.4;cursor:default}.guild-footer{display:flex;align-items:center;gap:10px;border-top:1px solid #5c533c;padding-top:9px}.guild-feedback{flex:1;font-size:11px;color:#e8c98b;overflow-wrap:anywhere}.guild-footer button{min-height:34px;padding:5px 9px;font-size:11px}.guild-leave{margin-top:auto;color:#d7a28f}.guild-confirm-copy{font-size:14px;line-height:1.8}.guild-entry{width:100%;margin-bottom:10px;padding:12px;background:linear-gradient(120deg,#50452b,#202b29);border:1px solid #ac9157;color:#e6c991}.chat-message[data-channel-id=guild]{color:#e9bb69}
@media(max-width:600px){.guild-shell>header{padding:13px 16px!important}.guild-shell #modal-content{padding:12px!important}.guild-layout{gap:10px;min-height:420px}.guild-identity{gap:11px}.guild-identity>svg{width:56px;height:66px}.guild-identity h3{font-size:20px}.guild-identity small{font-size:10px}.guild-body{min-height:245px}.guild-emblems{grid-template-columns:repeat(3,1fr)}.guild-emblems button{flex-direction:row;justify-content:center}.guild-member{grid-template-columns:10px 1fr auto 30px;padding:7px;gap:5px}}
@media(max-height:700px){.guild-layout{min-height:0;gap:7px}.guild-body{min-height:210px;gap:6px}.guild-identity>svg{width:44px;height:50px}.guild-identity{padding-bottom:6px}.guild-identity small{display:none}.guild-notice{min-height:70px;padding:10px;font-size:12px}.guild-shell>header{padding:8px 14px!important}.guild-shell #modal-content{padding:8px 12px!important}.guild-body textarea{height:52px}.guild-action{min-height:34px;padding:6px 10px}}

.guild-activity-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.guild-activity-tabs button{font-size:11px;padding:5px;min-height:32px}.guild-activity-tabs [aria-pressed=true]{background:#55482e;border-color:#bfa16a}.guild-activity-copy{font-size:12px;line-height:1.6;margin:2px 0;color:#d0c9b6;overflow-wrap:anywhere}.guild-activity-count{font-size:13px;color:#e7cc95}.guild-activity-gold{font-size:26px;margin:16px 0;color:#e8c477}.guild-body progress{width:100%;height:18px;accent-color:#d7ac5b}.guild-expedition-choice{display:grid;grid-template-columns:1fr auto;gap:5px;border:1px solid #685c43;padding:9px;background:#222922}.guild-expedition-choice strong{font-size:14px;color:#dec38c}.guild-expedition-choice small{grid-column:1;font-size:11px;color:#c4bead}.guild-expedition-choice button{grid-column:2;grid-row:1/3;font-size:11px;padding:5px 8px}.guild-shell:has(.guild-activity-tabs) .guild-body{min-height:245px}@media(max-height:700px){.guild-activity-copy{font-size:11px;line-height:1.45}.guild-shell:has(.guild-activity-tabs) .guild-body{min-height:210px}.guild-expedition-choice{padding:6px}}

/* /css/equipment-compare.css */
.equipment-compare-overlay{position:fixed;inset:0;z-index:12000;display:flex;align-items:center;justify-content:center;padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));box-sizing:border-box;background:rgba(3,7,10,.64);backdrop-filter:blur(3px);overscroll-behavior:contain;touch-action:manipulation}
.equipment-compare-panel{width:min(620px,100%);max-height:calc(100vh - 24px);max-height:min(760px,calc(100dvh - 24px));min-width:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #b59a57;border-radius:12px;background:linear-gradient(145deg,#23271e,#101820 65%);color:#eee8d7;box-shadow:0 18px 70px #000c;font:14px/1.45 system-ui,sans-serif;box-sizing:border-box;text-align:left}
.equipment-compare-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 8px}.equipment-compare-header h3{font-size:19px;color:#ebd294;margin:0;letter-spacing:.08em}.equipment-compare-close{width:38px;height:38px;border:1px solid #776342;border-radius:6px;background:#25271e;color:#ebd294;font-size:25px;cursor:pointer;flex-shrink:0}
.equipment-compare-slot{margin:0;padding:0 16px 10px;color:#c8b782;font-size:12px}.equipment-compare-body{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:0 16px 10px;-webkit-overflow-scrolling:touch}.equipment-compare-cards{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:12px}.equipment-compare-item{min-width:0;padding:10px;border:1px solid #565341;border-radius:7px;background:#0c1117a8}.equipment-compare-kicker{font-size:11px;color:#acaa99}.equipment-compare-item-title{display:flex;align-items:center;gap:8px;margin:5px 0;min-width:0}.equipment-compare-item-title strong{overflow-wrap:anywhere;font-size:14px}.equipment-compare-item img{width:34px!important;height:34px!important;object-fit:contain;flex-shrink:0}.equipment-compare-item small{font-size:11px;color:#b5b5a6}.equipment-compare-item.uncommon strong{color:#83dba1}.equipment-compare-item.rare strong{color:#81bfff}.equipment-compare-item.epic strong{color:#c19aee}.equipment-compare-item.legendary strong{color:#efb35f}
.equipment-compare-table{width:100%;table-layout:fixed;border-collapse:collapse;font-variant-numeric:tabular-nums}.equipment-compare-table th,.equipment-compare-table td{padding:6px 4px;border-bottom:1px solid #4145377a;text-align:right;font-size:13px;overflow-wrap:anywhere}.equipment-compare-table th:first-child{width:30%;text-align:left;font-weight:400;color:#d2ceb7}.equipment-compare-table thead th{font-size:11px;color:#a9ad9f;font-weight:400}.equipment-compare-delta.better{color:#79dfa0;font-weight:650}.equipment-compare-delta.worse{color:#ff9b8e;font-weight:650}.equipment-compare-delta.equal{color:#929a98}.equipment-compare-note{font-size:11px;color:#adb3a7;margin:10px 0 0}.equipment-compare-effect{font-size:12px;color:#d0cdbd;margin:9px 0 0;overflow-wrap:anywhere}.equipment-compare-warning{border-left:2px solid #c6a05c;padding-left:8px;font-size:12px;color:#edd394}
.equipment-compare-footer{flex-shrink:0;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;padding:10px 16px 14px;border-top:1px solid #74633f70;background:#11161bd9}.equipment-compare-status{flex-basis:100%;font-size:12px;color:#e6bb8c;margin:0;min-height:0}.equipment-compare-status:empty{display:none}.equipment-compare-primary,.equipment-compare-secondary,.equipment-compare-rings button{min-height:40px;padding:7px 15px;border:1px solid #9c8451;border-radius:6px;background:#5b4c2b;color:#f4e4bd;font-size:13px;cursor:pointer}.equipment-compare-secondary{background:#172029;border-color:#5b645d;color:#d9dfd5}.equipment-compare-panel button:disabled{opacity:.45;cursor:not-allowed}.equipment-compare-panel button:focus-visible{outline:2px solid #f3d489;outline-offset:2px}.equipment-compare-rings{display:flex;gap:8px;padding:0 16px 10px}.equipment-compare-rings button{flex:1;background:#172029}.equipment-compare-rings button.selected{background:#5b4c2b;border-color:#d3b56f}
@media(max-width:430px){.equipment-compare-header{padding:10px 12px 6px}.equipment-compare-header h3{font-size:17px}.equipment-compare-body{padding:0 10px 8px}.equipment-compare-cards{gap:6px;margin-bottom:8px}.equipment-compare-item{padding:7px}.equipment-compare-item-title{gap:5px}.equipment-compare-item-title strong{font-size:12px}.equipment-compare-item img{width:28px!important;height:28px!important}.equipment-compare-table th,.equipment-compare-table td{font-size:11px;padding:6px 2px}.equipment-compare-table th:first-child{width:27%}.equipment-compare-footer{padding:9px 10px 10px}.equipment-compare-slot{padding-left:12px}.equipment-compare-rings{padding:0 10px 8px}}
@media(max-height:480px){.equipment-compare-overlay{padding:6px}.equipment-compare-panel{max-height:calc(100dvh - 12px)}.equipment-compare-header{padding-top:6px}.equipment-compare-footer{padding-top:6px;padding-bottom:6px}.equipment-compare-close{height:30px;width:34px}}

.equipment-source{font-size:11px;color:#c8baa0;margin-top:5px}.equipment-source.monster{color:#e0ba69}.equipment-loot-bonuses{list-style:none;padding:0;margin:6px 0 0;color:#9de3ad;font-size:11px;line-height:1.6}

/* /css/enhancement-ui.css */
/* One selected item, bounded statistics, fixed actions on a narrow phone. */
.enhancement-level-badge{position:absolute;left:2px;top:2px;padding:1px 3px;border-radius:3px;background:#111d;color:#ffe3a4;font:700 12px sans-serif;text-shadow:0 1px #000;pointer-events:none}
.trade-item-inspect{border:0;background:transparent;color:inherit;text-align:left;padding:4px;font:inherit;min-width:0;overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:#9d8754;text-underline-offset:3px;cursor:pointer}.trade-item-inspect:focus-visible{outline:2px solid #e9cb88}
.commerce-shell .npc-service-menu{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.commerce-shell.enhancement-shell #modal-content{display:flex;flex-direction:column;overflow:hidden;max-height:calc(92dvh - 70px);padding-bottom:12px}
.enhancement-shell .npc-service-menu{flex:none}.enhancement-shell .shop-detail,.enhancement-shell .commerce-footer{display:none}
.enhancement-shell .merchant-portrait{display:none}
.enhancement-panel{display:flex;flex-direction:column;min-height:0;gap:9px;padding:12px;border:1px solid #8d7647;border-radius:6px;background:linear-gradient(145deg,#242a24,#121915);color:#e7dfca;max-height:calc(92dvh - 157px)}
.enhancement-heading,.enhancement-cost{display:flex;align-items:center;justify-content:space-between;gap:9px;flex:none}.enhancement-heading h3{font-size:18px;margin:0;color:#e8d191}.enhancement-cap{font-size:12px;color:#c9b47d}.enhancement-rules{font-size:12px!important;margin:0!important;color:#c6c4a9;flex:none}
.enhancement-chooser{display:flex;flex-direction:column;gap:5px;min-width:0;flex:none;font-size:12px}.enhancement-chooser select{width:100%;min-width:0;min-height:42px;background:#121a17;color:#eee0ba;border:1px solid #8c784f;border-radius:4px;padding:7px;font-size:14px}
.enhancement-status{font-size:12px!important;line-height:1.4!important;margin:0!important;color:#e3bc86;overflow-wrap:anywhere;flex:none}.enhancement-status:empty{display:none}
.enhancement-item{display:flex;align-items:center;gap:10px;min-width:0;flex:none}.enhancement-item>img,.enhancement-item>.original-item-viewport{width:46px;height:46px;flex:none;border:1px solid var(--rarity,#a48d5b);border-radius:4px}.enhancement-item>div{display:flex;flex-direction:column;min-width:0;gap:4px}.enhancement-item strong{color:var(--rarity,#ece0be);font-size:14px;overflow-wrap:anywhere}.enhancement-item small{font-size:12px;color:#b8b99f}
.enhancement-stat-scroll{min-height:52px;max-height:230px;overflow:auto;overscroll-behavior:contain;border:1px solid #474e3b;flex:1 1 auto}.enhancement-stats{width:100%;border-collapse:collapse;font-size:12px}.enhancement-stats th,.enhancement-stats td{padding:7px 9px;text-align:right;border-bottom:1px solid #394134;font-variant-numeric:tabular-nums}.enhancement-stats th:first-child{text-align:left}.enhancement-stats thead{position:sticky;top:0;background:#293026;color:#d5c28e}.enhancement-improved{color:#7be6a1}
.enhancement-footer{display:flex;flex-direction:column;gap:8px;flex:none}.enhancement-cost{padding-top:7px;border-top:1px solid #615839;color:#dfc67f;font-size:12px}.enhancement-reason,.enhancement-confirmation,.enhancement-empty{margin:0!important;font-size:12px!important;line-height:1.5!important}.enhancement-reason{color:#e4a98c}.enhancement-confirmation{padding:8px;background:#393224;border:1px solid #aa8d51;border-radius:4px}.enhancement-actions{display:flex;gap:8px}.enhancement-action{flex:1;min-width:0;min-height:44px;padding:8px;border:1px solid #86734d;background:#242c25;color:#eee0b8;font-size:13px;cursor:pointer;border-radius:4px}.enhancement-action.primary{background:linear-gradient(#66532b,#382e1d);border-color:#b49a60}.enhancement-action:disabled{opacity:.45;cursor:not-allowed}.enhancement-action:focus-visible,.enhancement-chooser select:focus-visible{outline:2px solid #f5d899;outline-offset:2px}
@media(max-width:480px){.commerce-shell.enhancement-shell{width:96vw!important}.commerce-shell .npc-service-menu>.shop-action{font-size:11px!important;padding:8px 2px!important}.enhancement-panel{padding:10px;gap:7px}.enhancement-stat-scroll{max-height:min(230px,28dvh)}.enhancement-heading h3{font-size:17px}.enhancement-stats th,.enhancement-stats td{padding:6px 7px}}
@media(max-height:660px){.enhancement-panel{gap:5px;padding:7px}.enhancement-item>img,.enhancement-item>.original-item-viewport{width:34px;height:34px}.enhancement-chooser select{min-height:36px}.enhancement-action{min-height:38px}.enhancement-rules{font-size:11px!important}}
/* Keep confirmation actions inside short screens; the selected option already
   contains the item name and current rank, so duplicate headings can collapse. */
@media(max-height:660px){
 .enhancement-shell>header{min-height:48px!important;padding:6px 48px 6px 12px!important}
 .enhancement-shell #modal-kicker{display:none}
 .enhancement-shell #modal-title{font-size:18px;margin:4px 0}
 .enhancement-shell #close-modal{top:7px}
 .commerce-shell.enhancement-shell #modal-content{max-height:calc(92dvh - 52px);padding:8px 10px 10px}
 .enhancement-shell .npc-service-menu{margin-bottom:6px}
 .enhancement-panel{max-height:calc(92dvh - 116px)}
 .enhancement-heading,.enhancement-item{display:none}
 .enhancement-rules{line-height:1.35!important}
 .enhancement-action{min-height:44px}
}
@media(max-height:440px) and (min-width:600px){
 .enhancement-panel{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.3fr);grid-template-rows:auto auto minmax(0,1fr) auto;column-gap:12px}
 .enhancement-rules{grid-column:1;grid-row:1}
 .enhancement-chooser{grid-column:1;grid-row:2}
 .enhancement-status{grid-column:1;grid-row:3}
 .enhancement-stat-scroll{grid-column:2;grid-row:1/4;max-height:100%;height:100%}
 .enhancement-footer{grid-column:1/3;grid-row:4;display:grid;grid-template-columns:1fr 1fr;column-gap:12px;row-gap:4px}
 .enhancement-cost,.enhancement-confirmation,.enhancement-reason{grid-column:1}
 .enhancement-confirmation{padding:4px}
 .enhancement-actions{grid-column:2;grid-row:1/4;align-self:end}
}

/* /css/original-world.css */
/* Keep the existing HUD footprint when the original world renderer is active. */
#game[data-world-presentation="original"] .battle-note{top:auto;bottom:9px;left:50%;pointer-events:none;font-size:10px;color:#f2edd8;background:#26301f99;border-radius:12px;padding:3px 10px}
@media(min-width:760px) and (pointer:fine){
 #game[data-world-presentation="original"] .game-header{height:84px;min-height:84px;padding:5px 12px}
 #game[data-world-presentation="original"] #avatar-button{width:64px;height:64px}
 #game[data-world-presentation="original"] #hud-avatar{width:100%;height:100%;border-radius:50%;overflow:hidden}
 #game[data-world-presentation="original"]>.chat-dock[data-height-stage="1"]{height:66px;max-height:66px}
 #game[data-world-presentation="original"]>.chat-dock[data-height-stage="2"]{height:122px;max-height:122px}
 #game[data-world-presentation="original"]>.chat-dock[data-height-stage="3"]{height:min(190px,28dvh);max-height:min(190px,28dvh)}
}

/* /css/mall-ui.css */
.mall-standalone{margin:0;background:#0b1113;color:#e9e2ce;font:15px/1.55 system-ui,sans-serif}.mall-standalone *{box-sizing:border-box}.mall-content{--gold:#d7ba77;--ink:#e9e2ce;color:var(--ink);max-width:1120px;margin:auto;padding:20px}.modal-box:has(.mall-content){width:min(1120px,96vw)!important;max-height:94dvh!important}.modal-box:has(.mall-content) #modal-content{padding:0}.mall-hero{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 28px;border:1px solid #6e6242;background:radial-gradient(ellipse at 85% 50%,#46503b80,transparent 60%),linear-gradient(120deg,#202b28,#10191d);border-radius:12px}.mall-hero small{letter-spacing:.16em;color:#b8a77b;font-size:10px}.mall-hero h1{font-family:Georgia,serif;font-size:34px;letter-spacing:.16em;color:#f2db9c;margin:9px 0}.mall-hero p{color:#c4ccb9;font-size:14px;margin:0}.mall-emblem{width:86px;height:86px;display:grid;place-items:center;color:#be995a;background:radial-gradient(circle,#614d293b,transparent 70%)}.mall-emblem svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.4}.mall-emblem.astral,.mall-emblem.star{color:#9fd1ea;filter:drop-shadow(0 0 7px #3d88aa50)}.mall-emblem.hero{width:120px;height:120px;flex-shrink:0}.mall-emblem.pass{color:#e9ca7c}.mall-notice{border-left:3px solid #bca66b;background:#40351b44;color:#e5cc96;padding:10px 14px;margin:16px 0;font-size:13px}.mall-identity,.mall-membership{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 0;color:#b5c0b7;border-bottom:1px solid #435044}.mall-identity strong{color:#ebd59f}.mall-identity span,.mall-membership span{font-size:12px}.mall-content select{color:#f1e2bc;border:1px solid #6d6953;border-radius:5px;padding:8px 12px;background:#19211f}.mall-membership strong{font-size:14px;color:#cddba7}.mall-tabs{display:flex;gap:8px;margin:20px 0 16px}.mall-content button{cursor:pointer;font:inherit;min-height:40px;padding:9px 15px;border-radius:5px;color:#d4d9cb;background:#1b2424;border:1px solid #566158}.mall-tabs button[aria-pressed=true]{color:#f3d58f;border-color:#b39c63;background:#51492f}.mall-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.mall-card{position:relative;display:flex;flex-direction:column;padding:20px;border:1px solid #4f5749;border-radius:9px;background:linear-gradient(145deg,#242c25,#151e22)}.mall-card.membership{border-color:#9e8654;background:linear-gradient(145deg,#423a24,#182222)}.mall-category{color:#bba66f;font-size:11px;letter-spacing:.12em}.mall-card h2{font-size:19px;font-weight:600;margin:8px 0}.mall-summary{font-size:13px;color:#c6d4bd;min-height:40px}.mall-card ul{padding-left:18px;font-size:12px;color:#aab8af;margin:0 0 20px}.mall-card li{margin-bottom:8px}.mall-card-bottom{margin-top:auto;display:flex;flex-direction:column;gap:9px}.mall-price{font-size:21px;color:#efce87;font-variant-numeric:tabular-nums}.mall-content .mall-primary{background:linear-gradient(#9e8047,#715c33);border-color:#ccb171;color:#fff4d4}.mall-content .mall-secondary{background:#202a29;color:#d8dfcc}.mall-content button:disabled{opacity:.45;cursor:default}.mall-orders{margin-top:28px;padding:18px 0;border-top:1px solid #57604f}.mall-orders h2{font-size:18px;color:#d8c590}.mall-order{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid #344039;font-size:13px}.mall-order small{color:#9aa99f}.mall-footnote{font-size:12px;color:#9daba1}.mall-checkout{position:fixed;z-index:100000;top:50%;left:50%;transform:translate(-50%,-50%);width:min(430px,90vw);padding:26px;color:#eae2c9;background:#1a2523;border:1px solid #c2a86b;border-radius:10px;box-shadow:0 0 0 100vmax #060a0dcd}.mall-checkout p{font-size:13px;color:#bec9b7}.mall-checkout-actions{display:flex;gap:10px;margin-top:24px}.mall-checkout-actions button{flex:1}.mall-error{color:#f6a596!important}#hud-avatar[data-mall-frame=frame_bronze]{outline:3px double #c99755;border-radius:50%;box-shadow:0 0 0 4px #60432777}#hud-avatar[data-mall-frame=frame_astral]{outline:2px solid #83caed;border-radius:50%;box-shadow:0 0 0 4px #274b6788,0 0 12px #66bfe366}@media(max-width:850px){.mall-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.mall-content{padding:12px}.mall-grid{grid-template-columns:1fr}.mall-hero{padding:20px 16px}.mall-hero h1{font-size:26px}.mall-emblem.hero{width:68px;height:68px}.mall-tabs button{flex:1;padding:8px;font-size:13px}.mall-identity{gap:8px}.mall-identity span{width:100%}.mall-checkout-actions{flex-wrap:wrap}.mall-order small{width:100%}}

.mall-boosts{display:flex;gap:12px;width:100%;padding:6px 0}.mall-boosts>span{display:flex;align-items:center;gap:10px;background:#4c422a55;border:1px solid #a58a4e77;border-radius:6px;padding:8px 12px}.mall-boosts small{color:#d3c8a7}.mall-boosts b{color:#f5d990;font-size:20px}.mall-boosts[data-active=true]>span{border-color:#ae9d64;background:#554c2d88}

.mall-set-preview{display:flex;align-items:center;gap:15px;padding:14px;margin:0 0 18px;background:#0a121588;border:1px solid #796442;border-radius:6px;color:#f1d292}.mall-set-frame{width:54px;height:54px;display:grid;place-items:center;border:3px double #c99755;border-radius:50%;font-size:11px;background:#4d3c2655;flex-shrink:0}.mall-set-title{font-size:17px;text-shadow:0 2px 3px #000}.mall-set-preview.astral{color:#aee5ff;border-color:#416c89}.astral .mall-set-frame{border-color:#83caed;box-shadow:0 0 12px #66bfe366;background:#173c5055}

/* Size columns against the actual shop width, including in-game dialogs. */
#modal .modal-box:has(.mall-content){width:min(1120px,calc(100vw - 36px))!important;max-width:1120px!important;max-height:calc(100dvh - 36px)!important;display:flex;flex-direction:column;overflow:hidden}
#modal .modal-box:has(.mall-content)>header{flex-shrink:0}
#modal .modal-box #modal-content.mall-content{width:100%;max-width:none;min-height:0;padding:18px!important;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.mall-content .mall-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));align-items:stretch}
.mall-content .mall-card{min-width:0;padding:20px;line-height:1.65}
.mall-content .mall-card h2{font-size:21px;line-height:1.4;letter-spacing:1px;margin:10px 0}
.mall-content .mall-card ul{font-size:13px;line-height:1.65}
.mall-content .mall-set-preview{flex-wrap:wrap;gap:12px;padding:12px;min-width:0}
.mall-content .mall-set-title{white-space:nowrap;font-size:17px;letter-spacing:0}
.mall-content .mall-price{white-space:nowrap;font-size:21px}
.mall-content .mall-speed-benefit{margin:4px 0 14px!important;padding:8px 12px;border:1px solid #a58a4e77;border-radius:5px;background:#4c422a55;color:#f5d990;font-weight:bold;font-size:16px}
.mall-content .mall-card:has(.astral) .mall-speed-benefit{color:#b8e8ff;border-color:#416c89;background:#173c5055}
@media(max-width:520px){#modal .modal-box:has(.mall-content){width:calc(100vw - 24px)!important;max-height:calc(100dvh - 24px)!important}#modal .modal-box #modal-content.mall-content{padding:12px!important}.mall-content .mall-boosts{flex-wrap:wrap}}
/* The in-game dialog already provides the shop heading. */
#modal .mall-hero{display:none}
#modal .mall-notice{margin:0 0 10px}
#modal .mall-membership{gap:10px;padding:10px 0}
#modal .mall-membership .mall-boosts{width:auto;padding:0;gap:8px}
#modal .mall-membership .mall-boosts>span{padding:5px 9px}
#modal .mall-tabs{margin:14px 0}

/* /css/realm-status.css */
#game .game-header .currencies{margin-left:0}.game-header .realm-status{box-sizing:border-box}.game-header .realm-status{display:flex;align-items:center;gap:12px;margin-left:auto;margin-right:16px;padding:9px 14px;flex-shrink:0;border:1px solid #60564166;border-radius:24px;background:#111719c9;color:#acb5aa;font:11px/1.4 system-ui,sans-serif;white-space:nowrap}.realm-status>span+span{border-left:1px solid #454c42;padding-left:12px}.realm-status b{color:#f2cf80;font-weight:650;font-variant-numeric:tabular-nums}.realm-status .realm-connection{font-size:10px;color:#dbb46e}.realm-connection[data-connected=true]{color:#abd682}.realm-status[data-stale=true] b{color:#9ca69c}@media(min-width:1000px){#game .game-header .hero-status{max-width:380px}.game-header .currencies{flex-shrink:0}}@media(max-width:999px){.game-header{display:grid!important;grid-template-columns:72px minmax(0,1fr) 76px;gap:4px 8px;height:auto!important;min-height:88px;padding:6px 9px!important}.game-header #avatar-button{grid-column:1;grid-row:1}.game-header .hero-status{grid-column:2/4;grid-row:1}.game-header .realm-status{grid-column:1/3;grid-row:2;margin:0;border:0;border-radius:0;background:none;padding:2px 0;gap:7px;font-size:10px;flex-wrap:wrap}.realm-status>span+span{padding-left:7px}.realm-status .realm-connection{font-size:0;padding-left:5px}.realm-status .realm-connection::first-letter{font-size:9px}.game-header .currencies{grid-column:3;grid-row:2;justify-self:end;width:auto;font-size:11px}.game-header .currencies small{display:none}}

/* /css/player-guide.css */
.player-guide{color:#ddd9c9;line-height:1.85;font-size:15px;overflow-wrap:anywhere}
.player-guide .guide-intro{color:#ead8a6;font-size:17px;line-height:1.7;margin:0 0 20px;padding:0 0 18px;border-bottom:1px solid #aa8b4b55}
.player-guide section+section{margin-top:24px}
.player-guide h3{color:#e5ca8d;font-size:17px;margin:0 0 8px;letter-spacing:.04em}
.player-guide p{margin:0 0 12px}
.player-guide .guide-topic{margin:10px 0;border:1px solid #a98c4855;background:#10191666;border-radius:4px}
.player-guide summary{padding:13px 14px;color:#edd8aa;cursor:pointer;font-weight:600;min-height:44px;box-sizing:border-box}
.player-guide summary:focus-visible{outline:2px solid #e4c179;outline-offset:2px}
.player-guide ul{margin:0;padding:0 22px 16px 34px}
.player-guide li+li{margin-top:12px}
.player-guide .guide-next{width:100%;min-height:44px;margin-top:16px}
@media(max-width:600px){.player-guide{font-size:14px;line-height:1.8}.player-guide .guide-intro{font-size:16px}.player-guide h3{font-size:16px}.player-guide ul{padding-right:14px;padding-left:29px}}
