/* Interface original do GC: palco 1366×768 escalado (js/gcui.js) */
html, body { margin: 0; height: 100%; overflow: hidden; background: #000; }
/* Ponteiro original do cliente em todas as áreas do navegador com mouse, inclusive campos. */
html:not(.touch), html:not(.touch) * { cursor: url('/ui/cursor/cursor0.png') 0 0, auto !important; }
.gcscreen { position: absolute; left: 0; top: 0; width: 1366px; height: 768px; transform-origin: 0 0; overflow: hidden;
  font-family: 'Malgun Gothic', 'Segoe UI', Tahoma, sans-serif; color: #fff; user-select: none; }
.gc-fullscreen-backdrop {
  position: absolute; inset: 0; overflow: hidden; pointer-events: none;
  background: linear-gradient(#415675, #141c2c);
}
.gc-fullscreen-backdrop::before {
  content: ''; position: absolute; inset: -20px;
  background: var(--gc-backdrop-art, none) center / cover no-repeat;
  filter: blur(14px) brightness(.72);
}
.gw { position: absolute; box-sizing: border-box; background-repeat: no-repeat; image-rendering: auto; }
.gw.btn { cursor: pointer; }
.gw.locked { cursor: default; }
.gc-language { position: absolute; z-index: 10; width: 28px; pointer-events: auto; }
.gc-language summary, .gc-language button { box-sizing: border-box; color: #f1f6fc; background: linear-gradient(#35516e, #1c3149); border: 1px solid #152b42; border-radius: 4px; }
.gc-language summary { display: grid; place-items: center; height: 21px; list-style: none; }
.gc-language summary::-webkit-details-marker { display: none; }
.gc-language summary:hover, .gc-language[open] summary, .gc-language button:hover { background: #456889; }
.gc-language button { position: absolute; top: 25px; right: 0; padding: 7px 9px; white-space: nowrap; font: 600 12px 'Segoe UI', Tahoma, sans-serif; box-shadow: 0 2px 6px #0006; }
.gc-language button span { margin-left: 6px; color: #8de3b2; }
.gc-flag-br { width: 18px; height: 13px; border-radius: 2px; background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14'%3E%3Cpath fill='%23029b46' d='M0 0h20v14H0z'/%3E%3Cpath fill='%23ffdf37' d='m10 1.5 8 5.5-8 5.5L2 7z'/%3E%3Ccircle fill='%230d4093' cx='10' cy='7' r='3.5'/%3E%3Cpath fill='none' stroke='white' stroke-width='.7' d='M6.7 6.2q3.7-.6 6.4 2.3'/%3E%3C/svg%3E"); }
input.gw { background: transparent; border: 0; outline: 0; color: #fff; font: 14px 'Segoe UI', Tahoma, sans-serif; padding: 0 4px; caret-color: #fff; }
input.gw:autofill,
input.gw:-webkit-autofill,
input.gw:-webkit-autofill:hover,
input.gw:-webkit-autofill:focus,
input.gw:-webkit-autofill:active {
  -webkit-text-fill-color: #fff;
  -webkit-box-shadow: 0 0 0 1000px #292a33 inset;
  box-shadow: 0 0 0 1000px #292a33 inset;
  caret-color: #fff;
  transition: background-color 99999s ease-out 0s;
}
.gt { position: absolute; inset: 0; display: flex; align-items: center; white-space: nowrap; overflow: hidden; pointer-events: none; line-height: 1.15; }
.gcdebug .gw { outline: 1px solid rgba(255, 0, 255, .25); }
.gbg { position: absolute; inset: 0; background-repeat: no-repeat; pointer-events: none; }
.gmodal { position: absolute; inset: 0; background: rgba(0, 0, 0, .45); z-index: 50; }
.gt span { white-space: inherit; }
.gw[data-type=static] { pointer-events: none; }
.g3d { position: absolute; left: 0; top: 0; width: 1366px; height: 768px; pointer-events: none; z-index: 5; }
.gimg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
.glist { overflow-y: auto; overflow-x: hidden; font: 13px 'Segoe UI', Tahoma, sans-serif; color: #e8ecf4; padding: 2px 4px; box-sizing: border-box; pointer-events: auto; user-select: text; }
.glist p { margin: 0 0 1px; line-height: 17px; word-break: break-word; text-shadow: 1px 1px 0 #000; }
.glist p b { color: #9fd7ff; font-weight: 600; }
.glist p.sys { color: #ffd84a; }
.glist::-webkit-scrollbar { width: 8px; } .glist::-webkit-scrollbar-thumb { background: #5a6d8e; border-radius: 4px; }
.chat-bar-toggle { position: absolute; top: 0; width: 45px; height: 45px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 4px; background: transparent; pointer-events: auto; }
.chat-bar-toggle > .gw { position: static; filter: grayscale(1) brightness(1.9) contrast(1.6); }
.chat-bar-toggle[aria-expanded="false"] > .gw { opacity: .8; }
.chat-bar-toggle:hover, .chat-bar-toggle:active, .chat-bar-toggle:focus-visible { background: url('/gcui/tex/411.png') -420px -302px no-repeat; }
.gw.friend-chat-badge {
  left: auto !important; right: 2px; width: max-content !important; min-width: 16px; height: 16px !important;
  z-index: 1; display: grid; place-items: center; padding: 0 3px; border: 1px solid #ffb2b8; border-radius: 8px;
  background: linear-gradient(#d82c3c, #a70d24) !important; box-shadow: 0 1px 3px #000b;
  color: #fff; font: 700 11px/1 'Segoe UI', Tahoma, sans-serif; font-variant-numeric: tabular-nums; pointer-events: none;
}
.gchar { position: relative; width: 96px; height: 96px; background: #1b2638 center / cover no-repeat; border: 2px solid #3a4d6e; border-radius: 6px; cursor: pointer; box-sizing: border-box; }
.gchar.on { border-color: #ffcc33; box-shadow: 0 0 8px #ffcc33; }
.gchar span { position: absolute; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,.6); color: #fff; font-size: 12px; text-align: center; }
/* Seleção de personagem. As coordenadas dos painéis e da vista 3D vêm da cena original. */
.character-select .character-select-panel { box-shadow: inset 0 0 0 1px #9bc9ed20, 0 3px 10px #0005; pointer-events: none; }
.character-select [data-name="resizebox_fg"].character-select-panel { box-shadow: none; }
.character-select .character-select-heading { width: 500px !important; height: 40px !important; background: none !important; font-family: 'Segoe UI', Tahoma, sans-serif; }
.character-select-heading strong { display: block; font-size: 19px; line-height: 23px; font-weight: 600; text-shadow: 0 1px 2px #000; }
.character-select-heading strong::before { content: '▸'; display: inline-grid; place-items: center; width: 18px; height: 18px; margin-right: 8px; border: 1px solid #94d9f4; border-radius: 4px; background: linear-gradient(#52c9ed, #1675ac); font-size: 16px; vertical-align: 1px; }
.character-select-heading small { display: block; padding-left: 26px; color: #cad9e5; font-size: 12px; line-height: 16px; }
.character-select .character-select-label { background: none !important; color: #f5cc61; font: 600 14px/22px 'Segoe UI', Tahoma, sans-serif; pointer-events: none; }
.character-select-info > [data-name="char_name"],
.character-select-info > [data-name="job_name"],
.character-select-info > [data-name="char_lv"],
.character-select-info > [data-name="total_atk"],
.character-select-info > [data-name="record"] { width: 215px !important; color: #f3f7fc; }
.character-select-info .gt { font-family: 'Segoe UI', Tahoma, sans-serif; text-shadow: 0 1px 2px #0008; }
.character-select-info > [data-name="name_back"] { width: 326px !important; background: linear-gradient(90deg, #08152166, #08152122) !important; border-radius: 12px 12px 0 0; }
.character-select-info > [data-name="user_name"],
.character-select-info > [data-name="guild_explain"] { width: 326px !important; }
.character-select-info > [data-name="guild_explain"] .gt { color: #67d5ef; }
.character-select-divider { position: absolute; left: -153px; width: 326px; height: 1px; background: linear-gradient(90deg, transparent, #6388a9aa 12%, #6388a9aa 88%, transparent); pointer-events: none; }
.character-select-info > [data-name="exp_gaugebar"] { background: #091622 !important; border: 1px solid #547897; border-radius: 4px; height: 14px !important; }
.character-select-info > [data-name="exp_gauge"] { background: linear-gradient(#65d8ff, #1e88c5 55%, #125788) !important; border-radius: 3px; height: 12px !important; margin-top: 1px; box-shadow: inset 0 1px #c8f3ff66; }
.character-select-info > [data-name="exp_gauge_rect"] { background: none !important; }
.character-select-info > [data-name="exp_value"] { top: 23px !important; height: 17px !important; }
.character-select-info > [data-name="exp_value"] .gt { justify-content: center !important; font-size: 12px !important; text-shadow: 0 1px 2px #000, 0 0 3px #000; }
.character-select-info .character-select-rank { width: 215px; height: 22px; line-height: 22px; }
.character-select .gchar { flex: 0 0 96px; padding: 0; appearance: none; border: 2px solid #7294b7; border-radius: 6px; box-shadow: 0 2px 4px #0006; }
.character-select .gchar:hover { border-color: #b5d7ef; }
.character-select .gchar.on { border-color: #ffdb69; box-shadow: 0 0 0 1px #b17c21, 0 0 10px #ffd25f88; }
.character-select-portrait { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; border-radius: 4px; filter: url(#char-select-portrait-sharpen); pointer-events: none; }
.character-select .gchar span { padding: 3px 0 2px; line-height: 14px; background: linear-gradient(#07101dde, #07101df5); border-radius: 0 0 4px 4px; }
.character-select .gchar b, .character-select .gchar small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.character-select .gchar b { font: 600 12px/14px 'Segoe UI', Tahoma, sans-serif; }
.character-select .gchar small { font: 11px/12px 'Segoe UI', Tahoma, sans-serif; color: #e0e9f5; }
.character-select .character-select-play { width: 170px !important; height: 34px !important; display: grid; place-items: center; background: linear-gradient(#ffe99b, #efc34f 50%, #d49a20) !important; border: 1px solid #f4d778; border-radius: 5px; box-shadow: inset 0 1px #fff6, 0 2px 5px #0006; color: #352608; font: 700 20px/1 'Segoe UI', Tahoma, sans-serif; text-shadow: 0 1px #fff5; }
.character-select .character-select-play:hover:not(.locked) { background: linear-gradient(#fff1b8, #ffda70 50%, #e8ae35) !important; box-shadow: inset 0 1px #fffa, 0 0 9px #f1c65544; }
.character-select .character-select-play:active:not(.locked) { background: linear-gradient(#c48a18, #e7b63f) !important; box-shadow: inset 0 2px 4px #54330066; }
.character-select .character-select-play.locked { background: linear-gradient(#777e88, #49505a) !important; border-color: #808c9d; color: #b4bfcd; box-shadow: none; text-shadow: none; }
.character-select .gchar:focus-visible, .character-select .character-select-play:focus-visible { outline: 2px solid #d5efff; outline-offset: 3px; }
.gfilled { cursor: pointer; }
.shop-vp-balance { position: absolute; left: 6px; right: 6px; top: 8px; height: 20px; display: flex; align-items: center; justify-content: center; color: #e5edf8; font: 12px/20px 'Segoe UI', Tahoma, sans-serif; white-space: nowrap; pointer-events: none; text-shadow: 0 1px 2px #000; }
.shop-footer-action { border: 1px solid #6e9abf; background: linear-gradient(#4587bb, #265781) !important; box-shadow: inset 0 1px #ffffff38, 0 2px 3px #0006; color: #f5faff; }
.shop-footer-action-buy { background: linear-gradient(#ffdf77, #d99927) !important; border-color: #e7b74f; color: #372505; }
.shop-footer-action-warehouse { top: 13px !important; background: linear-gradient(#465e7c, #2e425b) !important; border-color: #617d9d; }
.shop-footer-action:hover { filter: brightness(1.12); }
.shop-footer-action:active { filter: brightness(.92); box-shadow: inset 0 2px 4px #0005; }
.shop-footer-action > [data-type="static"] { inset: 0 !important; width: auto !important; height: auto !important; }
.shop-footer-action .gt { justify-content: center !important; align-items: center !important; font: 700 18px/1 'Segoe UI', Tahoma, sans-serif !important; color: inherit !important; text-shadow: none !important; }
.shop-footer-action-warehouse .gt { font-size: 13px !important; }
.gglyph { position: absolute; inset: 0; display: grid; place-items: center; font: 800 24px 'Segoe UI', sans-serif; color: #c9d6ee; text-shadow: 0 0 3px #000; pointer-events: none; }
.gtag { position: absolute; left: 2px; top: 2px; padding: 0 4px; font: 700 10px 'Segoe UI', sans-serif; background: #e2a020; color: #241500; border-radius: 3px; pointer-events: none; }
.glv { position: absolute; left: 3px; top: 1px; font: 700 10px 'Segoe UI', sans-serif; color: #ff3030; text-shadow: 0 0 2px #000, 0 0 2px #000; pointer-events: none; }
.gtip { position: absolute; z-index: 90; width: 220px; padding: 8px 10px; background: rgba(12, 20, 36, .95); border: 1px solid #6a85b5; border-radius: 4px;
  font: 12px 'Segoe UI', Tahoma, sans-serif; color: #cfd8e8; pointer-events: none; box-shadow: 0 2px 8px #000; }
.gtip b { display: block; color: #ffd84a; font-size: 13px; margin-bottom: 3px; } .gtip .gp { color: #8fe38f; margin-top: 3px; }
.gscroll { overflow-y: auto !important; overflow-x: hidden; }
.gscroll::-webkit-scrollbar { width: 10px; } .gscroll::-webkit-scrollbar-thumb { background: #6d84ad; border-radius: 5px; } .gscroll::-webkit-scrollbar-track { background: #26324a; }
.gchar.small { width: 56px; height: 56px; }
.gmodal.clear { background: transparent; }
.gprompt { background: #0d1626 !important; border: 1px solid #4b6390 !important; }
.gstrip { display: flex; gap: 3px; align-items: center; padding: 0 6px; box-sizing: border-box; }
.gchar.mini { width: 34px; height: 34px; border-width: 1px; border-radius: 4px; flex: none; }
.gtip .hint { color: #8aa6d6; margin-top: 4px; font-size: 11px; }
.gcart.gw { cursor: pointer; }
.glist2 { position: absolute; inset: 4px; box-sizing: border-box; font: 13px 'Segoe UI', Tahoma, sans-serif; color: #dfe6f3; pointer-events: auto; user-select: text; }
.glist2 p { margin: 0 0 6px; } .glist2 b { color: #ffd84a; }
.gempty { text-align: center; color: #8ea2c4; padding-top: 40px; }
.gattach { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; font: 11px 'Segoe UI', sans-serif; color: #cfe; text-shadow: 1px 1px 0 #000; pointer-events: none; }
.gattach b { display: block; font-size: 15px; color: #ffd84a; }
.gattach.attendance { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 1px; font-size: 9px; line-height: 1.05; }
.gattach.attendance b { display: inline; font-size: 12px; }
.ghead { position: absolute; inset: 0; display: grid; place-items: center; font: 600 13px 'Segoe UI', sans-serif; color: #dfe6f3; }
.grank { display: flex; height: 30px; align-items: center; border-bottom: 1px solid rgba(120, 150, 200, .2); }
.grank span { text-align: center; flex: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.grank.me { background: rgba(255, 216, 74, .12); color: #ffd84a; }
.optleft { padding: 10px; } .gopt-tab { cursor: pointer; padding: 10px 14px; margin-bottom: 6px; border-radius: 4px; background: #2a3a58; color: #9fb3d6; font-weight: 600; }
.gopt-tab.on { background: #4a64a0; color: #fff; }
.optright { padding: 16px 22px; } .optright h3 { color: #ffd84a; margin: 6px 0 12px; font-size: 15px; }
.optright label { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.optright select { max-width: 260px; padding: 5px 8px; border: 1px solid #596b8d; border-radius: 4px; background: #1d2638; color: #fff; font: inherit; }
.optright input[type=range] { width: 260px; } .optright .gopt-cache { margin-bottom: 4px; } .optright .gopt-cache input { width: 18px; height: 18px; }
.optright .gopt-note { margin: 0 0 14px; max-width: 420px; font-size: 12px; color: #9fb3d6; line-height: 1.4; }
.optright .gopt-note[data-mb]::after { content: ' ' attr(data-mb); color: #ffd84a; } .optright table { border-collapse: collapse; } .optright td { padding: 5px 12px; border-bottom: 1px solid rgba(120,150,200,.2); }
.friends-panel {
  position: absolute; top: 92px; left: 42px; width: 544px; padding: 12px;
  box-sizing: border-box; color: #edf3ff; background: #232c40; border: 1px solid #536687;
  border-radius: 6px; box-shadow: inset 0 0 0 1px #171e30, 0 8px 24px #0008;
  font: 14px 'Segoe UI', Tahoma, sans-serif;
}
.friends-panel header, .friends-head, .friends-panel footer { display: flex; align-items: center; justify-content: space-between; }
.friends-panel header { margin: -12px -12px 12px; padding: 6px 10px 6px 14px; background: #354562; border-bottom: 1px solid #536687; border-radius: 5px 5px 0 0; }
.friends-panel h2 { margin: 0; font-size: 17px; font-weight: 700; }
.friends-head { padding: 7px 14px; color: #adc2e5; font-size: 13px; font-weight: 600; }
.friends-list { height: 372px; border: 1px solid #101727; border-radius: 4px; background: #141c2b; }
.gfriend { display: flex; align-items: center; gap: 12px; box-sizing: border-box; height: 74px; padding: 0 12px; border-bottom: 1px solid #101727; background: #2a3851; }
.gfriend:hover, .gfriend:focus-within { background: #314366; }
.friend-status { flex: none; width: 12px; height: 12px; border-radius: 50%; background: #8393ad; box-shadow: 0 0 0 4px #1b263b; }
.gfriend.on .friend-status { background: #8dd6ad; }
.gfriend.pending .friend-status { background: #e8bc77; }
.friend-info { flex: 1; min-width: 0; }
.friend-info b, .friend-info small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.friend-info b { font-weight: 700; }
.friend-info small { margin-top: 4px; color: #bdcbea; font-size: 12px; }
.friend-actions { display: flex; gap: 6px; flex: none; padding-left: 10px; border-left: 1px solid #536687; }
.friends-panel button {
  padding: 5px 10px; border: 1px solid #7183a5; border-radius: 3px; background: #364764;
  color: #edf3ff; font: 600 13px 'Segoe UI', Tahoma, sans-serif;
}
.friends-panel button:hover { background: #4c6187; }
.friends-panel button:focus-visible { outline: 2px solid #bed5ff; outline-offset: 2px; }
.friends-panel .friends-close { width: 26px; height: 26px; padding: 0; font-size: 18px; line-height: 1; }
.friends-count { display: flex; justify-content: space-between; gap: 12px; margin: 5px 0 10px; padding: 5px 8px; background: #141c2b; color: #bdcbea; }
.friends-panel footer { justify-content: flex-end; }
.friends-panel .friends-add { padding: 8px 14px; background: #456088; }
.friends-panel .friends-add:hover { background: #526f9c; }
.friends-panel .friend-unread { border-color: #e8bc77; color: #ffdd9f; }
.friend-chat { left: 598px; width: 400px; }
.friend-chat-log {
  height: 372px; box-sizing: border-box; padding: 10px;
  border: 1px solid #101727; border-radius: 4px; background: #141c2b;
}
.friend-chat-log p { width: fit-content; max-width: 85%; margin: 0 0 8px; padding: 7px 10px; border-radius: 4px; background: #2a3851; overflow-wrap: anywhere; }
.friend-chat-log p.sent { margin-left: auto; background: #364e73; }
.friend-chat-log small { display: block; margin-bottom: 3px; color: #bdcbea; }
.friend-chat-log .friend-chat-more { display: block; margin: 0 auto 10px; }
.friend-chat-error { margin: 8px 0; color: #ffcb92; }
.friend-chat-error:empty { display: none; }
.friend-chat form { display: flex; gap: 6px; margin-top: 8px; }
.friend-chat input {
  flex: 1; min-width: 0; padding: 8px; border: 1px solid #7183a5; border-radius: 3px;
  background: #141c2b; color: #edf3ff; font: inherit;
}
.friend-chat input:focus-visible { outline: 2px solid #bed5ff; outline-offset: 1px; }
.friend-chat input::placeholder { color: #a8bad7; }
.friend-chat button:disabled { opacity: .6; }
.mail-list { overflow: hidden; }
.mail-action .gw { pointer-events: none; }
.mail-caption {
  position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none;
  color: #f4f6ff; font: 700 14px 'Segoe UI', Tahoma, sans-serif; text-shadow: 1px 1px #202738;
}
.mail-action.locked .gw { filter: grayscale(.7) brightness(.64); }
.mail-action.locked .mail-caption { color: #c0c7d6; }
.mailbody { padding: 6px 10px; }
/* cliques: só controles interativos recebem o mouse (contêineres de tela cheia não podem bloquear) */
.gw { pointer-events: none; }
.gw.btn, input.gw, .gw.gint, .gscroll, .gchar, .gmodal, .gstrip, .glist, .glist2 { pointer-events: auto; }
.roomdesc { padding: 10px 12px; line-height: 1.35; overflow-y: auto; } .roomdesc b { font-size: 14px; } .roomdesc p { margin: 0 0 4px; }
.dropico { position: absolute; left: 8px; top: 8px; width: 50px; height: 50px; pointer-events: auto; }
.dropico.fit { left: 0; top: 0; width: 100%; height: 100%; object-fit: contain; }
.gw[data-type=static]:not(:has(.gt)) { display: flex; align-items: center; justify-content: center; font: 13px 'Segoe UI', sans-serif; color: #dfe6f3; white-space: nowrap; }
.hudname { font: 600 12px 'Segoe UI', sans-serif; color: #fff; text-shadow: 1px 1px 0 #000; display: flex; align-items: center; white-space: nowrap; overflow: hidden; }
.hudval { position: absolute; inset: 0; display: flex; align-items: center; justify-content: flex-end; padding-right: 14px; font: 700 16px 'Segoe UI', sans-serif; color: #fff; text-shadow: 1px 1px 0 #000; }
.hudval.ok { color: #8fe38f; } .hudval.bad { color: #ff8a7a; }
/* HUD da masmorra (js/gamehud.js): faixa do chat, cronômetro dourado (tex 339), missões, atalhos e dica */
/* Screen fill: o palco vai até as bordas da janela; o lado direito anda --ex, a barra de EXP desce --ey e estica --sx,
   o que é do centro (dica, resultado, saída, baú) anda metade */
.hudscreen [data-name="short_cut_slot"], .hudscreen [data-name^="player_status_bar"], .hudscreen [data-name="player_rank"],
.hudscreen [data-name="mission_progress"], .hudscreen .gtimer { translate: var(--ex, 0px) 0; }
.hudscreen [data-name="on_game_exp_bar"] { translate: 0 var(--ey, 0px); scale: var(--sx, 1) 1; transform-origin: 0 0; }
.hudscreen [data-name="on_game_exp_bar"] [data-name="exp_percent_static"] { scale: calc(1 / var(--sx, 1)) 1; transform-origin: 0 0; }
/* "Nv. 85 / EXP 100,00%" não cabe nos 100 px do arquivo (x 25) antes da barra (x 114): começa no canto e condensa */
.hudscreen [data-name="exp_percent_static"] { left: 4px !important; width: 108px !important; }
.hudscreen [data-name="exp_percent_static"] .gt { font: 600 11px 'Segoe UI', sans-serif !important; letter-spacing: -0.3px; overflow: visible; }
.hudscreen [data-name="addtion_guide"], .hudscreen .gmodal > .gw { translate: calc(var(--ex, 0px) / 2) calc(var(--ey, 0px) / 2); }
.hudscreen .gmodal.hudright > .gw { translate: var(--ex, 0px) calc(var(--ey, 0px) / 2); }
.hudscreen [data-name="headup_display_mp_gauge"].gmpcharge { animation: gmpcharge .42s ease-in-out infinite; }
@keyframes gmpcharge { 50% { filter: brightness(1.75) saturate(1.4); } }
.hudchat { display: flex !important; align-items: center; justify-content: flex-start !important; font: 700 13px 'Segoe UI', sans-serif; color: #ffdf3a; text-shadow: 1px 1px 0 #000, 0 0 2px #000; white-space: nowrap; }
.gtimer { position: absolute; left: 1206px; top: 112px; display: flex; gap: 5px; pointer-events: none; }
.gtimer i { display: block; height: 25px; background: url(/gcui/tex/339.png) no-repeat; background-size: 440.3px 440.3px; }
.hudmiss .gt { font: 600 13px 'Segoe UI', sans-serif !important; color: #fff !important; text-shadow: 1px 1px 0 #000, 0 0 2px #000; }
.hudmiss [data-name="static_missioncnt"] .gt { justify-content: flex-end; }
.hudmiss.done .gt { color: #ffe08a !important; }
.hudslot { pointer-events: auto; cursor: pointer; }
.hudslot .gimg { inset: 2px; width: 25px; height: 25px; }
.hudslot.empty .gimg { filter: grayscale(.6) brightness(.6); }
.hudslot [data-name="number"] .gt { justify-content: flex-end; font: 700 11px 'Segoe UI', sans-serif !important; color: #fff !important; text-shadow: 1px 1px 0 #000, 0 0 2px #000; }
.hudslot [data-name="number"] { z-index: 2; }
.hudcool { z-index: 1; opacity: .75; }
.hudguide .gt { font: 600 14px/1.35 'Segoe UI', sans-serif !important; color: #fff !important; white-space: normal !important; }
/* celular: poções na barra de toque (#qbar), sem cronômetro/nota (área dos botões MAPA e de especiais) nem a faixa do F10 */
html.touch .hudscreen [data-name="short_cut_slot"], html.touch .gtimer, html.touch .hudscreen [data-name="player_rank"],
html.touch .hudchat { display: none !important; }
.starOn { filter: drop-shadow(0 0 4px #ffd84a) brightness(2.2) sepia(1) saturate(6) hue-rotate(5deg); }
/* barra de vida do chefe (arte original) */
.gboss { position: absolute; left: 50%; top: 92px; transform: translateX(-50%); display: flex; align-items: flex-end; gap: 0; pointer-events: none; }
.gboss .face { height: 44px; background-repeat: no-repeat; flex: none; border-radius: 3px; box-shadow: 0 0 6px #000; position: relative; z-index: 2; margin-right: -6px; }
.gboss .frame { position: relative; width: 470px; height: 44px; background: url(/gcui/boss/frame.png) 0 0 / 100% 100% no-repeat; }
.gboss .fill, .gboss .under { position: absolute; left: 13px; top: 7px; height: 30px; width: 434px; background: url(/gcui/boss/gauge.png) -19.6px -10px / 462px 48px no-repeat; transition: width .15s; }
.gboss .under { width: 434px; }
.gboss .name { position: absolute; left: 0; right: 0; top: -24px; text-align: center; font: 700 16px 'Segoe UI', sans-serif; color: #ffe08a; text-shadow: 0 0 3px #000, 1px 1px 0 #000; }
.gboss.noface .name { left: 0; }
.gboss .lines { position: absolute; right: -44px; bottom: 6px; font: italic 900 22px 'Segoe UI', sans-serif; color: #fff; text-shadow: 0 0 3px #000, 2px 2px 0 #7a1b00; }
.genc { position: absolute; right: 3px; bottom: 1px; font: italic 800 13px 'Segoe UI', sans-serif; color: #ff8fd0; text-shadow: 0 0 2px #000, 1px 1px 0 #000; pointer-events: none; }
/* coleção */
.collstrip { position: absolute; left: 270px; top: 80px; height: 40px; pointer-events: auto; }
.gmissing .gimg { filter: grayscale(1) brightness(.35); }
.collrewards { position: absolute; left: 30px; top: 365px; right: 30px; display: flex; gap: 8px; pointer-events: none; }
.collrewards div { flex: 1; background: rgba(10, 18, 34, .8); border: 1px solid #3c527a; border-radius: 4px; padding: 6px; text-align: center; font: 12px 'Segoe UI', sans-serif; color: #9fb3d6; }
.collrewards b { display: block; color: #fff; font-size: 13px; } .collrewards span { display: block; color: #ffd84a; }
.collrewards .ready { border-color: #ffcc33; box-shadow: 0 0 6px #ffcc33; } .collrewards .got { opacity: .55; } .collrewards i { font-style: normal; }
/* árvore de talentos */
.skillbar { position: absolute; left: 230px; top: 24px; right: 110px; height: 40px; display: flex; align-items: center; gap: 18px; pointer-events: auto; font: 13px 'Segoe UI', sans-serif; color: #cfd8e8; }
.skillbar .sp { font-size: 15px; } .skillbar .sp b { color: #ffd84a; font-size: 18px; } .skillbar .sp small { display: block; font-size: 11px; color: #8ea2c4; }
.skillbar .keys { color: #8ea2c4; font-size: 12px; }
.gbtn { background: linear-gradient(#5d79b8, #34497c); color: #fff; border: 1px solid #8fa7d8; border-radius: 4px; padding: 5px 12px; font: 600 12px 'Segoe UI', sans-serif; cursor: pointer; }
.gbtn:hover { filter: brightness(1.15); }
.skilltree { position: absolute; left: 20px; top: 200px; width: 1332px; height: 520px; pointer-events: auto; }
.skillcol { position: absolute; top: 0; width: 214px; height: 510px; background: rgba(8, 14, 30, .55); border: 1px solid rgba(110, 140, 200, .35); border-radius: 6px; }
.skillcol h4 { margin: 0; padding: 5px 8px; font: 700 13px 'Segoe UI', sans-serif; color: #ffd84a; text-shadow: 1px 1px 0 #000; }
.skilllines { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.skilllines line { stroke: #4a5d86; stroke-width: 3; } .skilllines line.on { stroke: #ffcc33; }
.skillnode { position: absolute; width: 46px; height: 46px; border-radius: 6px; border: 2px solid #4a5d86; background: #0d1626; cursor: pointer; box-sizing: border-box; overflow: hidden; }
.skillnode img { width: 100%; height: 100%; display: block; }
.skillnode span { display: grid; place-items: center; height: 100%; color: #cfd8e8; font: 700 14px 'Segoe UI', sans-serif; }
.skillnode em { position: absolute; right: 1px; bottom: 0; font: italic 800 11px 'Segoe UI', sans-serif; color: #fff; text-shadow: 0 0 2px #000; }
.skillnode.have { border-color: #ffcc33; box-shadow: 0 0 8px rgba(255, 204, 51, .7); }
.skillnode.can { border-color: #6fd36f; animation: skillpulse 1.2s infinite; }
.skillnode.lock img { filter: grayscale(1) brightness(.45); }
@keyframes skillpulse { 50% { box-shadow: 0 0 10px #6fd36f; } }
.skilltip { width: 240px; z-index: 20; }
.team0 [data-name=slotback], .team0 [data-name=myback] { filter: sepia(1) saturate(4) hue-rotate(-30deg) brightness(.85); }
.team1 [data-name=slotback], .team1 [data-name=myback] { filter: sepia(1) saturate(4) hue-rotate(180deg) brightness(.85); }
.guildlist h3, .guildside h3 { margin: 2px 0 8px; color: #ffd84a; font-size: 15px; }
.gtable { width: 100%; border-collapse: collapse; } .gtable th { text-align: left; color: #9fb4dc; font-weight: 600; padding: 3px 4px; }
.gtable td { padding: 4px; border-top: 1px solid #ffffff14; } .gtable tr[data-sel] { cursor: pointer; } .gtable tr.on td { background: #ffd84a22; }
.ginput { width: 100%; box-sizing: border-box; background: #0b1424; color: #fff; border: 1px solid #5d79b8; border-radius: 3px; padding: 4px 6px; font: 13px 'Segoe UI', sans-serif; margin-bottom: 6px; }
.grow { display: flex; align-items: center; gap: 6px; padding: 3px 0; border-top: 1px solid #ffffff10; } .grow .gbtn { margin-left: auto; padding: 2px 8px; }
.grow span { color: #556; } .grow span.on { color: #5f5; } .grow small { color: #9fb4dc; }
.gbar { position: relative; height: 16px; background: #0b1424; border: 1px solid #5d79b8; border-radius: 3px; margin-bottom: 8px; }
.gbar i { position: absolute; inset: 0 auto 0 0; background: linear-gradient(#6fd36f, #2f8f2f); } .gbar span { position: relative; display: block; text-align: center; font-size: 11px; }
.guildtop small { color: #9fb4dc; }
.guildtop { padding: 4px 6px 0 252px !important; font-size: 12px !important; line-height: 1.3; }
.gjobs { position: absolute; left: 6px; right: 6px; bottom: 6px; display: flex; gap: 4px; pointer-events: auto; z-index: 3; }
.gjobs .gbtn { flex: 1; padding: 4px 2px; font-size: 11px; } .gjobs .gbtn.on { background: linear-gradient(#e8b84a, #a8741c); border-color: #ffe08a; }
.gjobs .gbtn:disabled { opacity: .55; cursor: default; filter: grayscale(.6); }
.gstats { position: absolute; left: 6px; right: 6px; top: 6px; display: flex; justify-content: space-between; gap: 6px; padding: 3px 6px;
  background: rgba(10, 16, 30, .62); border-radius: 4px; font: 12px 'Segoe UI', sans-serif; color: #cfd8e8; pointer-events: auto; z-index: 3; }
.gstats b { color: #ffd84a; }
.gstats .gstatus { color: #ffe08a; }
.gtip .stat { color: #9fe07a; } .gtip .bad { color: #ff6a5a; }
.gtip .gset { margin-top: 5px; padding-top: 4px; border-top: 1px solid rgba(255, 255, 255, .15); font-size: 11px; color: #7f8aa0; }
/* raridade (wiki Equipment): Raro azul, Épico amarelo, Relíquia roxo; Ancestral laranja */
.gtip b.g1, .ggrade.g1 { color: #5aa8ff; } .gtip b.g2, .ggrade.g2 { color: #ffd84a; } .gtip b.g3, .ggrade.g3 { color: #c77dff; } .gtip b.g4, .ggrade.g4 { color: #ff9a3c; }
.ggrade { font-weight: 600; } .gtip .prop { color: #8fd3ff; } .gtip .prop.off { opacity: .55; text-decoration: line-through; }
.gtip .gset .name { color: #ffd84a; font-size: 12px; } .gtip .gset .on { color: #9fe07a; } .gtip .gset .off { opacity: .55; text-decoration: line-through; }
/* cartas de monstro (web/js/lobby/cards.js) */
.gtip .gsock { margin-top: 4px; font-size: 11px; color: #7f8aa0; } .gtip .gsock .on { color: #ffd84a; }
.gstats .gcardsbtn { padding: 1px 8px; font-size: 11px; }
/* botões de ação da vaga original (Cartas, Fortalecer): só com o mouse por cima ou na vaga selecionada */
[data-name="buttonRoot"] { z-index: 4; } [data-name="buttonRoot"] .btn { pointer-events: auto; cursor: pointer; }
.gint:not(:hover):not(.gsel) [data-name="buttonRoot"] { visibility: hidden; }
.colltab { margin-right: 4px; padding: 3px 10px; font-size: 12px; } .colltab.on { background: linear-gradient(#e8b84a, #a8741c); border-color: #ffe08a; }
.gcardwin { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 560px; max-height: 600px; overflow: auto;
  padding: 14px 16px; background: rgba(14, 22, 40, .97); border: 1px solid #6a85b5; border-radius: 6px; font: 13px 'Segoe UI', sans-serif;
  color: #dfe6f3; pointer-events: auto; box-shadow: 0 6px 24px rgba(0, 0, 0, .5); }
.gcardwin h3 { margin: 0 0 10px; font-size: 16px; color: #ffd84a; } .gcardwin h3 small { color: #9fb0cf; font-size: 12px; font-weight: 400; }
.gcardwin h4 { margin: 12px 0 6px; font-size: 13px; color: #9fb0cf; } .gcardwin p { color: #9fb0cf; }
.gcardwin .socks { display: flex; gap: 8px; }
.gcardwin .sock { flex: 1; min-height: 64px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  border: 1px dashed #4a5f88; border-radius: 4px; color: #7f8aa0; }
.gcardwin .sock.on { border-style: solid; border-color: #ffd84a; color: #ffd84a; cursor: pointer; } .gcardwin .sock em { font-size: 10px; color: #ff9a8a; }
.gcardwin .foot { margin-top: 12px; text-align: right; }
.gcardwin .clist, .gcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 6px; }
.gcards { padding: 6px; pointer-events: auto; min-height: 100%; box-sizing: border-box; background: rgba(14, 22, 40, .92); border-radius: 4px; }
.gcards.gcards-virtual { display: block; min-height: 0; padding: 0; }
.gmanual { width: 850px; max-height: 680px; overflow: hidden; display: flex; flex-direction: column; padding: 0; border-color: #8a7744; }
.gmanual-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 20px 12px; border-bottom: 1px solid rgba(255, 216, 74, .28); background: rgba(7, 13, 26, .52); }
.gmanual-head h2 { margin: 0; color: #ffd84a; font-size: 20px; font-weight: 700; }
.gmanual-head p { margin: 3px 0 0; color: #91a4c8; font-size: 12px; }
.gmanual-close { flex: none; }
.gmanual-body { display: grid; grid-template-columns: 178px minmax(0, 1fr); min-height: 0; overflow: hidden; }
.gmanual-nav { padding: 14px 10px; border-right: 1px solid rgba(255,255,255,.1); background: rgba(6, 12, 24, .36); }
.gmanual-tab { width: 100%; display: block; padding: 9px 11px; border: 0; border-left: 3px solid transparent; background: transparent; color: #9fb0cf; font: 600 13px 'Segoe UI', sans-serif; text-align: left; cursor: pointer; }
.gmanual-tab:hover { color: #fff; background: rgba(255,255,255,.05); }
.gmanual-tab.on { border-left-color: #ffd84a; color: #ffe58a; background: rgba(255,216,74,.09); }
.gmanual-page { min-width: 0; max-height: 590px; padding: 18px 22px; box-sizing: border-box; line-height: 1.45; }
.gmanual-page h3 { margin: 0 0 5px; color: #f3f6fc; font-size: 18px; }
.gmanual-page .gmanual-intro { margin: 0 0 14px; color: #9fd7ff; font-size: 13px; }
.gmanual-page section { margin: 0 0 12px; padding: 0 0 0 11px; border-left: 2px solid #425a83; }
.gmanual-page section h4 { margin: 0 0 3px; color: #ffd84a; font-size: 13px; }
.gmanual-page section p { margin: 0; color: #c2cde1; font-size: 12px; }
.gmanual-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 16px; }
.gmanual-discord { display: inline-block; margin-top: 4px; color: #fff; text-decoration: none; }
.gmanual :focus-visible { outline: 2px solid #ffe58a; outline-offset: 2px; }
@media (max-width: 600px) {
  .gmanual { max-height: 690px; }
  .gmanual-body { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
  .gmanual-nav { display: flex; gap: 4px; overflow-x: auto; padding: 6px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.1); }
  .gmanual-tab { width: auto; flex: none; padding: 7px 9px; border-left: 0; border-bottom: 2px solid transparent; text-align: center; }
  .gmanual-tab.on { border-bottom-color: #ffd84a; }
  .gmanual-page { max-height: 590px; padding: 14px; }
}
.cc { position: relative; display: flex; flex-direction: column; align-items: center; padding: 4px 2px; border: 1px solid #3a4f78; border-radius: 4px;
  background: rgba(30, 44, 74, .8); cursor: pointer; font: 11px 'Segoe UI', sans-serif; color: #dfe6f3; text-align: center; }
.gcards-virtual .cc { position: absolute; box-sizing: border-box; overflow: hidden; }
.cc img, .cc .noimg, .sock img, .sock .noimg { width: 44px; height: 44px; object-fit: contain; }
.cc .noimg, .sock .noimg { display: flex; align-items: center; justify-content: center; background: #24324f; border-radius: 3px; color: #7f8aa0; font-size: 20px; }
.cc i { font-style: normal; line-height: 1.15; max-height: 2.3em; overflow: hidden; } .cc u { text-decoration: none; color: #ffd84a; font-size: 10px; }
.cc b { position: absolute; right: 3px; top: 2px; color: #9fe07a; font-size: 11px; }
.cc.g1 { border-color: #5aa8ff; } .cc.g2 { border-color: #ffd84a; } .cc.g3 { border-color: #c77dff; } .cc.lock { opacity: .45; } .cc.gmissing { opacity: .4; filter: grayscale(.8); }
.gtip b.g0 { color: #fff; }

/* Forja — Criação (web/js/lobby/forge.js) */
.gforge { position: absolute; left: 0; top: 37px; width: 952px; height: 584px; display: flex; flex-direction: column; gap: 6px; padding: 6px 8px;
  box-sizing: border-box; font: 12px 'Segoe UI', sans-serif; color: #dfe6f3; pointer-events: auto; background: rgba(14, 22, 40, .9); border-radius: 4px; }
.gforge .fmodes { display: flex; gap: 6px; align-items: center; } .gforge .fmodes .gbtn.on { background: linear-gradient(#e8b84a, #a8741c); border-color: #ffe08a; }
.gforge .fhint { margin-left: auto; color: #9fb0cf; }
.gforge .fbody { flex: 1; display: flex; gap: 8px; min-height: 0; }
.gforge .flist { width: 520px; overflow: auto; display: flex; flex-direction: column; gap: 3px; padding-right: 4px; }
.gforge .frow { display: grid; grid-template-columns: 40px 1fr; grid-template-rows: auto auto; column-gap: 8px; align-items: center; padding: 3px 6px;
  border: 1px solid #2c3d60; border-radius: 4px; background: rgba(30, 44, 74, .7); cursor: pointer; }
.gforge .frow img, .gforge .frow .noimg { grid-row: span 2; width: 36px; height: 36px; object-fit: contain; }
.gforge .frow i { font-style: normal; font-weight: 600; } .gforge .frow u { text-decoration: none; color: #9fb0cf; font-size: 11px; }
.gforge .frow.on { border-color: #ffd84a; background: rgba(74, 64, 30, .7); } .gforge .frow.no { opacity: .55; }
.gforge .fside { flex: 1; display: flex; flex-direction: column; gap: 6px; overflow: auto; }
.gforge h4 { margin: 2px 0; font-size: 14px; color: #ffd84a; } .gforge h5 { margin: 6px 0 4px; font-size: 12px; color: #9fb0cf; display: flex; gap: 8px; align-items: center; }
.gforge .mats { display: flex; flex-direction: column; gap: 3px; }
.gforge .need { display: grid; grid-template-columns: 28px 1fr auto; gap: 6px; align-items: center; } .gforge .need.miss b { color: #ff6a5a; }
.gforge .need img, .gforge .need .noimg, .gforge .mat img, .gforge .mat .noimg { width: 26px; height: 26px; object-fit: contain; }
.gforge .noimg { display: inline-flex; align-items: center; justify-content: center; background: #24324f; border-radius: 3px; color: #7f8aa0; }
.gforge .price b { color: #ffd84a; } .gforge .gbtn.big { padding: 7px 18px; font-size: 13px; align-self: flex-start; } .gforge .gbtn.mini { padding: 1px 6px; font-size: 11px; }
.gforge .fstock { margin-top: auto; } .gforge .fstock .mat { display: inline-flex; align-items: center; gap: 2px; margin: 0 6px 4px 0; }
.gforge .fstock .mat b { color: #9fe07a; } .gforge .fstock em { color: #7f8aa0; }

.gneck .nstars { font-size: 18px; letter-spacing: 3px; color: #3a4f78; margin: 4px 0 8px; } .gneck .nstars .on { color: #ffd84a; }
.gneck .bad, .gcardwin .bad { color: #ff6a5a; }
/* títulos de masmorra (aba Títulos da Coleção) */
.gtitles { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.cc.tt { padding: 8px 4px; cursor: pointer; } .cc.tt .tname { color: #ffd84a; font-weight: 600; font-size: 13px; text-align: center; }
.cc.tt.sel { border-color: #ffd84a; box-shadow: 0 0 0 1px #ffd84a inset; } .cc.tt b { position: static; color: #9fe07a; font-size: 11px; }
.gtip .off { opacity: .55; text-decoration: line-through; }
/* Missão Especial (ui_hero_dungeon_dlg_s6) */
.gspecial { pointer-events: auto; padding: 4px 8px; color: #dfe6f5; font-size: 13px; }
.gspecial .hd, .gspecial .row { display: grid; grid-template-columns: 1fr 70px 70px 230px; gap: 8px; align-items: center; padding: 8px 10px; }
.gspecial .hd { color: #ffd84a; font-weight: 600; border-bottom: 1px solid #3a4f78; }
.gspecial .row { cursor: pointer; border-bottom: 1px solid rgba(58, 79, 120, .5); } .gspecial .row:hover { background: rgba(255, 216, 74, .12); }
.gspecial .row b { color: #fff; } .gspecial .row.off { opacity: .55; }

/* botão do painel da equipe (só aparece para GM/Administrador) */
.gm-open { position: fixed; right: 10px; bottom: 10px; z-index: 50; padding: 6px 10px; border-radius: 4px; font: 600 11px/1 system-ui, sans-serif;
  color: #d8e5f2; background: linear-gradient(#30475fe8, #17283de8); border: 1px solid #6484a466; text-decoration: none; box-shadow: 0 2px 4px #0005; }
.gm-open:hover { filter: brightness(1.08); }

/* denúncia de jogador (clique no nome no chat): janela própria por cima do jogo */
.glist b.gnick { cursor: pointer; }
.glist b.gnick:hover { text-decoration: underline; }
.greport { position: fixed; inset: 0; z-index: 9000; display: flex; align-items: center; justify-content: center; background: #0008; }
.greport-win { width: min(420px, 92vw); padding: 16px 18px; border-radius: 10px; background: #1b1e26; color: #e9ecf3; border: 1px solid #30364a;
  font: 14px/1.45 system-ui, sans-serif; box-shadow: 0 10px 30px #000a; }
.greport-win h3 { margin: 0 0 6px; font-size: 17px; }
.greport-win p { margin: 0 0 10px; color: #9aa3b8; font-size: 13px; }
.greport-reasons label { display: block; padding: 3px 0; cursor: pointer; }
.greport-win textarea { width: 100%; box-sizing: border-box; min-height: 70px; margin-top: 8px; padding: 8px; border-radius: 8px;
  background: #11131a; color: inherit; border: 1px solid #30364a; font: inherit; resize: vertical; }
.greport-msg { color: #ff9a9a; min-height: 18px; margin-top: 6px; font-size: 13px; }
.greport-btns { display: flex; gap: 8px; justify-content: flex-end; margin-top: 6px; }
.greport-btns button { padding: 8px 14px; border-radius: 8px; border: 1px solid #30364a; background: #232733; color: inherit; font: 600 13px system-ui, sans-serif; cursor: pointer; }
.greport-btns .send { background: linear-gradient(#e25c5c, #bd3f3f); border-color: #8e2c2c; color: #fff; }
.greport-btns button:disabled { opacity: .5; }

/* "Alterar Missão" da sala abre o mapa-múndi: aviso no topo + voltar à sala sem trocar (js/lobby/main.js) */
.gworldpick { position: absolute; left: 50%; top: 6px; transform: translateX(-50%); z-index: 5; display: flex; align-items: center; gap: 10px;
  padding: 5px 6px 5px 12px; border-radius: 8px; background: #101624e0; border: 1px solid #c9a24a; color: #ffe9a8; font: 600 12px system-ui, sans-serif; white-space: nowrap; }
.gworldpick button { padding: 4px 10px; border-radius: 6px; border: 1px solid #4a6aa8; background: linear-gradient(#3b6fc4, #2a4f93); color: #fff; font: inherit; cursor: pointer; }
.gworldpick button:hover { filter: brightness(1.15); }
/* runas (js/lobby/runes.js): tier no canto da vaga, conjuntos sobre rune_set, atributo sem efeito riscado */
.gtier { position: absolute; right: 4px; top: 3px; font: 700 10px 'Segoe UI', sans-serif; color: #ffe9a0; text-shadow: 0 0 2px #000, 0 0 2px #000; pointer-events: none; }
.grunesets { position: absolute; left: 112px; top: 4px; width: 150px; font: 11px 'Segoe UI', sans-serif; color: #c8d4ea; line-height: 15px; text-shadow: 0 0 2px #000; }
.grunesets .on { color: #9fe07a; } .grunesets .off { opacity: .55; text-decoration: line-through; }
[data-type="KGCInventoryRuneStatInfoGridItem"].off .gt { opacity: .55; text-decoration: line-through; }

/* poções (js/lobby/potions.js) */
.gpotions { width: min(640px, 94vw); }
.gpotions .hint { font-size: 12px; opacity: .85; }
.gpotions table.gpt { width: 100%; border-collapse: collapse; font-size: 12px; }
.gpotions table.gpt td { padding: 3px 4px; border-bottom: 1px solid rgba(255,255,255,.08); vertical-align: middle; }
.gpotions table.gpt img { width: 32px; height: 32px; display: block; }
.gpotions table.gpt td.n { text-align: right; font-weight: 800; color: #ffd84a; min-width: 36px; }
.gpotions table.gpt .gbtn { padding: 2px 8px; font-size: 11px; }
.gpotions .gqslots { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.gpotions .gqslots label { display: flex; align-items: center; gap: 4px; font-size: 12px; }
.gpotions .gqslots select { max-width: 150px; font-size: 12px; }

/* Despertar (js/lobby/awaken.js) */
.gawaken { width: min(820px, 96vw); max-height: 90vh; overflow: auto; font-size: 12px; }
.gawaken h4 { margin: 10px 0 4px; color: #ffd84a; } .gawaken h4 small { color: #9fb0cf; font-weight: 400; }
.gawaken section { border: 1px solid #ffd84a; border-radius: 6px; padding: 6px 8px; }
.gawaken ol { margin: 4px 0 4px 18px; padding: 0; } .gawaken li.done { opacity: .6; } .gawaken li.cur { color: #ffd84a; }
.gawaken .row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 4px 0; }
.gawaken .gbtn { font-size: 11px; padding: 2px 8px; } .gawaken .gbtn:disabled { opacity: .45; filter: grayscale(.7); cursor: default; }
.gawaken .ok { color: #8ce88c; font-weight: 700; } .gawaken .bad { color: #ff8a7a; } .gawaken .hint { opacity: .8; margin: 4px 0 0; }
.gawaken ul.sk { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.gawaken ul.sk li { border: 1px solid rgba(255,255,255,.12); border-radius: 6px; padding: 4px 6px; opacity: .55; }
.gawaken ul.sk li.on { opacity: 1; border-color: #c08aff; } .gawaken ul.sk span { white-space: pre-line; opacity: .85; }
.gawaken .cores { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 6px; }
.gawaken .cores.locked { opacity: .5; }
.gawaken .core { border: 1px solid rgba(255,255,255,.12); border-radius: 6px; padding: 5px; display: flex; flex-direction: column; gap: 3px; }
.gawaken .core.main { border-color: #c08aff; } .gawaken .core.open { background: rgba(120,200,120,.1); } .gawaken .core.next { outline: 2px solid #ffd84a; }
.gawaken .core .nm { font-weight: 700; } .gawaken .core .fx { opacity: .9; min-height: 30px; }
.gawaken .core .act { display: flex; flex-wrap: wrap; gap: 3px; }
/* Nível Chase (js/lobby/chase.js) */
.gchaselock { position: absolute; left: 50%; top: 52%; transform: translate(-50%, -50%); width: 560px; z-index: 6; padding: 12px 16px;
  background: rgba(12, 18, 34, .94); border: 1px solid #4a5a80; border-radius: 10px; color: #dfe6f5; font: 13px/1.4 system-ui, sans-serif; }
.gchaselock h3 { margin: 0 0 6px; color: #ffd84a; font-size: 15px; }
.gchaselock ol { margin: 6px 0; padding-left: 20px; } .gchaselock li { margin: 6px 0; }
.gchaselock li.done { opacity: .6; } .gchaselock li.cur { color: #fff; }
.gchaselock .bad { color: #ff8a7a; } .gchaselock .rw { font-size: 11px; opacity: .75; }
.gchaselock .gbtn:disabled { opacity: .45; filter: grayscale(.7); cursor: default; }
.gchaseshop { position: absolute; left: 180px; bottom: 34px; z-index: 6; display: flex; gap: 6px; }
.gchaseshop .gbtn { font-size: 11px; padding: 2px 8px; }
.gexpfill { position: absolute; left: 0; top: 0; bottom: 0; background: linear-gradient(90deg, #4ab0ff, #9ae0ff); border-radius: 3px; pointer-events: none; }
/* mascotes (js/lobby/pets.js) */
.gnopetb { display: inline-block; margin-left: 3px; padding: 0 4px; border-radius: 6px; background: #8a2a2a; color: #ffe0d8;
  font: 700 9px/13px system-ui, sans-serif; white-space: nowrap; vertical-align: middle; }
.gpets { width: min(760px, 95vw); max-height: 88vh; display: flex; flex-direction: column; }
.gpets .hint { font-size: 12px; opacity: .85; margin: 2px 0 6px; }
.gpets .gtabs { display: flex; gap: 6px; margin-bottom: 6px; }
.gpets .gtabs .on { outline: 2px solid #ffd84a; }
.gpets .cols { display: flex; gap: 8px; flex: 1; min-height: 0; }
.gpets .body { overflow: auto; flex: 1; min-height: 120px; }
.gpets .side { width: 220px; flex: none; display: flex; flex-direction: column; gap: 4px; position: relative; font-size: 12px; }
.gpets .side canvas { width: 220px; height: 200px; border-radius: 8px; background: radial-gradient(circle at 50% 60%, rgba(120,150,220,.25), rgba(0,0,0,.25));
  touch-action: none; cursor: grab; }
.gpets .side .st { display: flex; gap: 8px; flex-wrap: wrap; margin: 2px 0; } .gpets .side .st b { color: #ffd84a; }
.gpets .side .say, .gpetsay { background: #fffbe8; color: #3a2a10; border-radius: 10px; padding: 5px 8px; font: 600 11px/1.3 system-ui, sans-serif;
  white-space: pre-line; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.gpetsay { position: absolute; z-index: 7; pointer-events: none; }
.gpets tr.sel td, .gpets .pc.sel { outline: 2px solid #7dc8ff; outline-offset: -2px; }
.gpets tr[data-pick], .gpets .pc[data-look] { cursor: pointer; }
@media (max-width: 700px) { .gpets .cols { flex-direction: column-reverse; } .gpets .side { width: 100%; align-items: center; } }
.gpets table.gpt { width: 100%; border-collapse: collapse; font-size: 12px; }
.gpets table.gpt td { padding: 4px; border-bottom: 1px solid rgba(255,255,255,.08); vertical-align: middle; }
.gpets table.gpt tr.on { background: rgba(255,216,74,.08); }
.gpets table.gpt img { width: 48px; height: 48px; display: block; }
.gpets td.act { display: flex; flex-wrap: wrap; gap: 3px; justify-content: flex-end; max-width: 300px; }
.gpets td.act .gbtn { padding: 2px 6px; font-size: 11px; }
.gpets .gbtn:disabled { opacity: .45; filter: grayscale(.7); cursor: default; }
.gpets .eq { color: #8ce88c; } .gpets .bad { color: #ff8a7a; display: block; }
.gpets .pbar { display: inline-block; width: 80px; height: 7px; background: rgba(0,0,0,.5); border-radius: 4px; overflow: hidden; vertical-align: middle; margin-right: 6px; }
.gpets .pbar i { display: block; height: 100%; background: #ffd84a; }
.gpets .pbar.full i { background: #7dd87d; } .gpets .pbar.hungry i { background: #ff6a5a; }
.gpets .gfind { width: 100%; box-sizing: border-box; margin-bottom: 6px; padding: 4px 6px; font-size: 12px; }
.gpets .gpgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 6px; }
.gpets .pc { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 4px; border: 1px solid rgba(255,255,255,.1);
  border-radius: 6px; font-size: 11px; text-align: center; }
.gpets .pc img { width: 56px; height: 56px; } .gpets .pc.own { opacity: .6; }
.gpets .pc .gbtn { padding: 1px 6px; font-size: 11px; }
.gpets-original { width: min(900px, 96vw); max-height: min(570px, 90vh); overflow: hidden; padding: 7px; border: 2px solid #c8b4f7;
  border-radius: 10px; background: linear-gradient(180deg, #7889aa, #4d6286); box-shadow: 0 8px 28px #080b18c9; font: 13px 'Malgun Gothic', 'Segoe UI', sans-serif; }
.gpet-head { min-height: 88px; display: grid; grid-template-columns: minmax(180px, 1fr) minmax(210px, 1.05fr) auto 30px; align-items: center; gap: 9px;
  padding: 7px 8px; box-sizing: border-box; border: 1px solid #d1def1; border-radius: 8px; background: linear-gradient(180deg, #5c7094, #4b6084); }
.gpet-id { display: flex; align-items: center; gap: 8px; min-width: 0; }
.gpet-paw { width: 28px; height: 28px; flex: none; display: grid; place-items: center; border: 1px solid #d4e0f2; border-radius: 50%; background: #283957; font-size: 18px; }
.gpet-id div { min-width: 0; }
.gpet-name { display: block; overflow: hidden; color: #fff; font-size: 17px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; text-shadow: 0 1px 2px #17243b; }
.gpet-level { display: block; margin-top: 2px; color: #edf3ff; font-size: 13px; white-space: nowrap; }
.gpet-bars { display: grid; gap: 6px; }
.gpet-bar { display: grid; grid-template-columns: 54px minmax(80px, 1fr); align-items: center; gap: 5px; color: #f5f7ff; white-space: nowrap; }
.gpet-bar > i { position: relative; display: block; height: 13px; overflow: hidden; border: 2px solid #dbe4f2; border-radius: 8px; background: #182941; box-shadow: inset 0 1px 3px #07101f; }
.gpet-bar > i > b { display: block; height: 100%; border-radius: 5px; background: linear-gradient(180deg, #69f04b, #22c528); box-shadow: inset 0 1px 1px #d8ffbc; }
.gpet-bar.satiety > i { height: 16px; }
.gpet-bar.satiety > i > b { background: linear-gradient(180deg, #a7e95d, #63bf32); }
.gpet-bar.satiety > i > b.hungry { background: linear-gradient(180deg, #ffbd4b, #e7523b); }
.gpet-full-text { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font-size: 12px; font-style: normal; text-shadow: 0 1px 2px #29334a; }
.gpet-foods { display: flex; align-items: center; justify-content: flex-end; gap: 3px; min-width: 0; }
.gpet-food-token { width: 21px; height: 25px; flex: none; background: url('/gcui/tex/208.png') -428px -103px / 512px 512px no-repeat; filter: drop-shadow(0 1px 1px #18243a); }
.gpet-food { width: 31px; min-width: 31px; height: 38px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 1px;
  border: 0; border-radius: 4px; background: transparent; color: #fff; cursor: pointer; }
.gpet-food:hover:not(:disabled) { background: #ffffff28; }
.gpet-food:disabled { opacity: .45; filter: grayscale(.8); cursor: default; }
.gpet-food img { width: 22px; height: 22px; object-fit: contain; }
.gpet-food small { font-size: 8px; line-height: 1; white-space: nowrap; }
.gpet-no-food { color: #d4dced; font-size: 11px; }
.gpet-close { width: 27px; height: 27px; align-self: start; padding: 0; border: 1px solid #b7d5ee; border-radius: 4px; background: linear-gradient(#62b4e9, #2874b6); color: #fff;
  font: 800 24px/23px Arial, sans-serif; cursor: pointer; text-shadow: 0 1px 2px #193653; }
.gpet-stage { position: relative; min-height: 290px; flex: 1; margin-top: 5px; overflow: hidden; border: 1px solid #d8caff; border-radius: 6px;
  background-color: #a57fe0; background-image: url('/gcui/tex/208.png'); background-repeat: no-repeat; background-size: 145% 232%; background-position: 0 100%; }
.gpet-title { position: absolute; left: 12px; top: 12px; z-index: 4; }
.gpet-item-button { min-height: 26px; padding: 3px 12px; border: 1px solid #405a17; border-radius: 4px; background: linear-gradient(#c2e655, #78a72b); color: #fff; font: 700 12px 'Malgun Gothic', 'Segoe UI', sans-serif;
  text-shadow: 0 1px 2px #35441a; box-shadow: inset 0 1px #eaffae; cursor: pointer; }
.gpet-item-button:hover { filter: brightness(1.1); }
.gpet-info { position: absolute; z-index: 3; left: 20px; top: 50px; display: grid; gap: 2px; color: #fff; font-size: 14px; text-shadow: 0 1px 2px #493a73; }
.gpet-info b { font-weight: 500; }
.gpet-info span { max-width: 165px; margin-top: 4px; line-height: 1.35; }
.gpet-model { position: absolute; z-index: 1; left: 21%; top: 0; width: 59%; height: 100%; }
.gpet-model canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; touch-action: none; cursor: grab; }
.gpet-model canvas:active { cursor: grabbing; }
.gpet-model .gpet-empty { z-index: 2; }
.gpet-say { position: absolute; z-index: 3; left: 57%; top: 14px; width: min(210px, 30%); min-height: 34px; padding: 8px 10px; box-sizing: border-box;
  border: 1px solid #353640; border-radius: 8px; background: #fff; color: #25232d; font: 14px/1.25 'Malgun Gothic', 'Segoe UI', sans-serif; text-shadow: none; overflow: hidden; }
.gpet-say::after { content: ''; position: absolute; left: 16px; bottom: -8px; width: 13px; height: 13px; transform: skew(-28deg) rotate(-25deg); border-right: 1px solid #353640; border-bottom: 1px solid #353640; background: #fff; }
.gpet-say[hidden] { display: none; }
.gpet-slots { position: absolute; z-index: 3; right: 10px; top: 50%; width: 21%; max-width: 170px; transform: translateY(-38%); display: grid; gap: 5px; }
.gpet-slot { position: relative; aspect-ratio: 1.5; display: grid; place-items: center; border: 2px solid #d8e2f3; border-radius: 8px; background: linear-gradient(145deg, #7187ac, #4b6289); color: #9caecb; box-shadow: inset 0 1px 4px #b7c9e533, 0 1px 3px #273650; }
.gpet-slot > span { opacity: .42; font-size: 38px; filter: grayscale(1); }
.gpet-slot > i { position: absolute; font-style: normal; font-size: 21px; filter: grayscale(1); text-shadow: 0 1px 3px #000; }
.gpet-slot.locked { border-color: #d8e2f3; }
.gpet-slot:last-child { aspect-ratio: 1.1; border-color: #f2b522; }
.gpet-bottom { display: flex; flex-direction: column; gap: 5px; padding: 6px 1px 1px; }
.gpet-roster { min-height: 50px; display: flex; align-items: stretch; gap: 5px; overflow-x: auto; padding: 2px 2px 5px; }
.gpet-choice { min-width: 128px; height: 48px; display: grid; grid-template-columns: 40px 1fr; grid-template-rows: 1fr 1fr; align-items: center; gap: 0 6px; padding: 3px 6px;
  border: 1px solid #a4b5d0; border-radius: 5px; background: linear-gradient(#e5edf8, #b8c7dd); color: #243550; text-align: left; cursor: pointer; }
.gpet-choice img { grid-row: 1 / 3; width: 36px; height: 36px; object-fit: contain; }
.gpet-choice span { overflow: hidden; font-size: 11px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.gpet-choice small { color: #435674; font-size: 10px; white-space: nowrap; }
.gpet-choice.selected { border-color: #f5c329; box-shadow: 0 0 0 1px #f5c329; background: linear-gradient(#edf4ff, #c8d9ec); }
.gpet-choice.equipped small { color: #45811d; }
.gpet-no-pets { align-self: center; padding: 0 6px; color: #f5f2ff; text-shadow: 0 1px 2px #34234f; }
.gpet-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 5px; min-height: 32px; }
.gpet-feed-actions, .gpet-command-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.gpet-feed-actions .gbtn { min-height: 26px; padding: 2px 7px; font-size: 10px; }
.gpet-actions .gbtn { min-height: 28px; padding: 3px 9px; font-size: 11px; white-space: nowrap; }
.gpet-actions .danger { border-color: #9f5552; background: linear-gradient(#c97169, #914039); color: #fff; }
@media (max-width: 680px) {
  .gpets-original { max-height: 92vh; padding: 5px; }
  .gpet-head { grid-template-columns: minmax(0, 1fr) minmax(150px, 1.1fr) 28px; gap: 5px; }
  .gpet-foods { grid-column: 1 / 3; justify-content: flex-start; }
  .gpet-close { grid-column: 3; grid-row: 1; }
  .gpet-stage { min-height: 280px; }
  .gpet-model { left: 12%; width: 72%; }
  .gpet-slots { width: 22%; right: 5px; }
  .gpet-say { left: 48%; width: 34%; font-size: 12px; }
  .gpet-choice { min-width: 112px; }
  .gpet-actions { justify-content: flex-start; }
}
.gpet-renderer { position: absolute; inset: 0; z-index: 1; display: block; width: 100%; height: 100%; touch-action: none; cursor: grab; }
.gpet-renderer:active { cursor: grabbing; }
.gpet-empty { position: absolute; z-index: 2; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 4px; padding: 12px; box-sizing: border-box; color: #e5edff; text-align: center; font: 13px/1.35 'Malgun Gothic', 'Segoe UI', sans-serif;
  text-shadow: 0 1px 3px #000; pointer-events: none; }
.gpet-empty b { color: #ffe28a; font-size: 15px; }
.gpet-empty span { max-width: 260px; color: #c5d0e6; }
.gpet-viewer-actions { position: absolute; z-index: 5; left: 94px; top: 407px; width: 205px; display: flex; justify-content: center; align-items: center; gap: 9px; pointer-events: auto; }
.gpet-viewer-actions .gbtn { min-height: 25px; padding: 3px 10px; border: 1px solid #9ebbd8; border-radius: 4px; background: linear-gradient(#5e9cce, #315c8a); color: #f7faff;
  font: 700 12px 'Malgun Gothic', 'Segoe UI', sans-serif; text-shadow: 0 1px 2px #1b3452; white-space: nowrap; cursor: pointer; box-shadow: inset 0 1px #d9efff55, 0 1px 2px #10182788; }
.gpet-viewer-actions .gbtn:hover { filter: brightness(1.12); }
.gpet-viewer-actions .gbtn:disabled { opacity: .55; cursor: default; }
.gpet-viewer-say { position: absolute; z-index: 6; left: 178px; top: 40px; width: 186px; max-height: 84px; overflow: hidden; box-sizing: border-box;
  padding: 7px 9px; border: 1px solid #353640; border-radius: 8px; background: #fff; color: #25232d; font: 12px/1.25 'Malgun Gothic', 'Segoe UI', sans-serif;
  white-space: normal; overflow-wrap: anywhere; box-shadow: 0 2px 5px #14182980; pointer-events: none; }
.gpet-viewer-say::after { content: ''; position: absolute; left: 16px; bottom: -7px; width: 12px; height: 12px; transform: skew(-28deg) rotate(-25deg);
  border-right: 1px solid #353640; border-bottom: 1px solid #353640; background: #fff; }
.gpet-viewer-say[hidden] { display: none; }
.gmodal [data-name="pet_preview"] [data-name="description_static"] { overflow: hidden; }
.gmodal [data-name="pet_preview"] [data-name="description_static"] .gt { display: block !important; box-sizing: border-box; width: 100%; height: 100%; padding: 4px 6px;
  white-space: pre-wrap !important; overflow-wrap: anywhere; word-break: normal; overflow: hidden; text-overflow: clip; font-size: 12px; line-height: 1.25; }
.gmodal [data-name="pet_preview"] [data-name="name_static"] .gt { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.gpet-satiety-track { overflow: hidden; }
.gpet-satiety-fill { position: absolute; left: 2px; top: 3px; bottom: 3px; display: block; max-width: calc(100% - 4px); width: 0;
  border-radius: 3px; background: linear-gradient(180deg, #b4ec64, #5cac32); box-shadow: inset 0 1px 0 #e3ffad88; transition: width .18s ease; }
.gpet-satiety-fill.hungry { background: linear-gradient(180deg, #ffb342, #e34d3c); box-shadow: inset 0 1px 0 #ffe3a088; }

/* testes de classe (js/lobby/jobtests.js) */
.gjobs .gbtn.locked { opacity: .7; filter: grayscale(.5); }
.gjobtests { width: min(680px, 94vw); max-height: 86vh; overflow: auto; }
.gjobtests .hint { font-size: 12px; opacity: .85; }
.gjobtests section { border: 1px solid rgba(255,255,255,.12); border-radius: 6px; padding: 6px 8px; margin: 6px 0; }
.gjobtests section.done { border-color: rgba(120,220,120,.5); }
.gjobtests section.active { border-color: #ffd84a; }
.gjobtests header { display: flex; align-items: center; gap: 8px; }
.gjobtests header small { flex: 1; opacity: .8; }
.gjobtests header .ok { color: #8ce88c; font-weight: 800; font-size: 12px; }
.gjobtests ol { margin: 4px 0 2px 18px; padding: 0; font-size: 12px; }
.gjobtests li.done { opacity: .6; } .gjobtests li.cur { color: #ffd84a; }
.gjobtests .rw { font-size: 11px; opacity: .75; margin: 2px 0 0; }
.gjobtests .gbtn:disabled { opacity: .45; filter: grayscale(.7); cursor: default; }
/* Materiais e abertura da ui_super_gacha (js/lobby/gacha.js), nas posições do cliente original. */
.ggacha-materials { position: absolute; left: 69px; right: 2px; top: 1px; bottom: 1px; z-index: 3;
  display: flex; align-items: center; justify-content: space-between; pointer-events: auto; }
.ggacha-materials .gmaterial { position: relative; display: flex; align-items: center; justify-content: center;
  width: 20px; height: 22px; flex: 0 0 20px; padding: 0; border: 0; background: transparent; color: #fff; cursor: pointer; }
.ggacha-materials .gmaterial img { width: 16px; height: 16px; object-fit: contain; image-rendering: auto; }
.ggacha-materials .gmaterial span { position: absolute; right: -2px; bottom: -1px; color: #fff; font: 700 9px/1 'Segoe UI', sans-serif;
  text-shadow: -1px -1px #000, 1px -1px #000, -1px 1px #000, 1px 1px #000; pointer-events: none; }
.ggacha-materials .gmaterial.on { outline: 1px solid #ffe180; background: rgba(255, 207, 68, .18); }
.ggacha-materials .gmaterial:disabled { opacity: .45; cursor: default; }
.ggacha-materials .shop-toggle { border: 1px solid rgba(190,210,255,.45); border-radius: 3px; font: 700 14px/1 'Segoe UI',sans-serif; }
.ggacha-shop { position: absolute; right: 0; bottom: 28px; z-index: 8; width: 226px; max-height: 190px; overflow: auto;
  padding: 5px; border: 1px solid #66789a; border-radius: 4px; background: rgba(18,26,43,.96); color: #e5ebf7; pointer-events: auto; }
.ggacha-shop-title { padding: 2px 4px 5px; color: #ffd84a; font-size: 11px; }
.ggacha-shop-list { display: flex; flex-direction: column; gap: 3px; }
.ggacha-shop-list button { padding: 3px 5px; border: 1px solid rgba(255,255,255,.12); border-radius: 3px; background: #303c56; color: #e5ebf7; text-align: left; font: 10px 'Segoe UI',sans-serif; cursor: pointer; }
.ggacha-shop-list button:hover { background: #485b7c; }
.ggacha-open-label { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; pointer-events: none;
  color: #fff; font: 700 14px 'Malgun Gothic','Segoe UI',sans-serif; text-shadow: 1px 1px 2px #18254b; }

/* avaliação de desempenho e baú de fim de masmorra (js/gamehud.js result/chest) */
.grank { position: absolute; inset: 0; z-index: 5; display: flex; align-items: center; justify-content: flex-end; gap: 6px; padding-right: 8px; }
.grank i { display: block; width: 73px; height: 30px; background: url(../gcui/tex/316.png) no-repeat; flex: none; }
.grank small { font: 700 12px system-ui, sans-serif; color: #ffe08a; text-shadow: 0 1px 2px #000; }
.hudlootview { width: 502px !important; overflow: hidden auto; scrollbar-width: thin; pointer-events: auto; }
.hudlootview > [data-name="content"] { position: relative; width: 100% !important; height: auto !important; }
.hudlootgrid { display: grid; grid-template-columns: repeat(6, 78px); gap: 4px 2px; padding: 4px 0; }
.hudlootgrid .hudlootslot { position: relative; pointer-events: auto; cursor: default; }
.hudlootslot [data-name="item_img"] { display: grid; place-items: center; text-align: center; color: #ffe08a; font-size: 11px; }
.hudlootcount { position: absolute; right: 6px; bottom: 5px; color: white; font-weight: bold; text-shadow: 0 1px 3px black, 0 1px 3px black; }
.hudlootnote { grid-column: 1 / -1; color: #e6edfa; text-align: center; margin: 4px 0; }
.hudlootcaption { left: 182px !important; top: 505px !important; width: 522px !important; height: 32px !important;
  display: grid; place-items: center; color: #e6edfa; text-align: center; font-size: 13px; }
.hudchests { position: absolute; inset: 90px 10px auto; display: flex; justify-content: center; gap: 4px; }
.hudchests button { width: 90px; border: 0; background: none; color: white; cursor: pointer; padding: 0; font: inherit; }
.hudchests button img { width: 86px; height: 86px; display: block; margin: auto; }
.hudchests button:enabled:hover img { translate: 0 -4px; }
.hudchests button:disabled { cursor: default; }
.hudchests button.chosen { color: #ffe08a; }
.hudchests button.chosen img { filter: drop-shadow(0 0 8px #ffd84a); }

/* votação de portal (game.html openPortals) */
.pvote { position: fixed; transform: translate(-50%, -100%); padding: 2px 8px; border-radius: 8px; background: rgba(12,18,34,.8);
  border: 1px solid #4fa8ff; color: #dfe6f5; font: 700 12px system-ui, sans-serif; white-space: nowrap; pointer-events: none; }
.pvote b { color: #ffd84a; } .pvote.mine { border-color: #7dffb0; color: #7dffb0; }

/* minimapa (js/gamehud.js minimap; Tab) */
.gmm { left: 330px !important; top: 92px !important; background: rgba(10, 16, 30, .78); border: 1px solid #4a5a80; border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.gmm [data-name="minimap_desc"] { color: #ffe08a; font-weight: 700; text-align: center; top: 4px !important; width: 100% !important; }
html.touch .gmm { top: 120px !important; left: 20px !important; }

/* inventário visual (js/lobby/inventory.js, aba Visual) */
.gvisbar { position: absolute; left: 14px; right: 14px; bottom: 44px; z-index: 6; display: flex; flex-wrap: wrap; gap: 4px; }
.gvisbar .gbtn { font-size: 11px; padding: 2px 8px; } .gvisbar .gbtn.on { outline: 2px solid #ffd84a; }
.ginv-club { position: absolute; left: 391px; top: 12px; display: flex; align-items: center; gap: 4px;
  color: #fff0b0; font-size: 13px; white-space: nowrap; pointer-events: auto; }
.ginv-club[hidden] { display: none; }
.ginv-club img { width: 22px; height: 22px; object-fit: contain; }
.ghud-club { position: absolute; left: 372px; top: 83px; width: 24px; height: 24px; pointer-events: auto; }
.gshop-warehouse-notice { position: absolute; left: 25px; right: 25px; top: 478px; padding: 10px 14px;
  border: 1px solid #38465f; border-radius: 5px; background: #161d2c; color: #f0f4fa;
  font: 600 14px/1.35 'Segoe UI', sans-serif; text-align: center; pointer-events: none; }
/* Desafios: Missão de Evolução, semanais, extras (challenges.js) */
.gchal { width: min(760px, 96vw); }
.gchal .tabs .on { filter: brightness(1.35); outline: 1px solid #ffd84a; }
.gchal .epic { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.gchal img { width: 20px; height: 20px; vertical-align: middle; margin-right: 2px; }
.gchal .evo { list-style: none; margin: 4px 0; padding: 0; display: flex; flex-direction: column; gap: 3px; }
.gchal .evo li { display: grid; grid-template-columns: 1fr 140px auto 72px; gap: 6px; align-items: center; padding: 3px 6px; border-radius: 5px; background: rgba(255,255,255,.04); }
.gchal .evo li.cur { background: rgba(255,216,74,.12); outline: 1px solid rgba(255,216,74,.5); }
.gchal .evo li.done { opacity: .55; } .gchal .evo li.lock { opacity: .4; }
.gchal ol.evo { counter-reset: evo; } .gchal ol.evo li .t::before { counter-increment: evo; content: counter(evo) ". "; color: #9fb0cf; }
.gchal .rw { color: #cfe3ff; font-size: 11px; }
.gchal .pbar { position: relative; height: 14px; background: rgba(0,0,0,.45); border-radius: 7px; overflow: hidden; }
.gchal .pbar i { position: absolute; inset: 0 auto 0 0; background: linear-gradient(#ffe27a, #d79a1e); }
.gchal .pbar em { position: relative; display: block; text-align: center; font-size: 10px; font-style: normal; line-height: 14px; text-shadow: 0 0 2px #000; }
.gchallenge-columns { position: absolute; inset: 0 auto 0 0; width: 824px; display: grid; grid-template-columns: 285px 74px 346px 119px; align-items: center; text-align: center; color: #e6edf8; font: 600 13px/1.15 'Segoe UI', Tahoma, sans-serif; }
.gchallenge-row { font-weight: 400; }
.gchallenge-row.locked { color: #a5b0c2; }
.gchallenge-row .task, .gchallenge-row .reward { padding: 0 10px; text-align: left; }
.gchallenge-row .task { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.gchallenge-row .progress { font-variant-numeric: tabular-nums; }
.gchallenge-row img, .gchallenge-footer img { width: 18px; height: 18px; vertical-align: middle; margin-right: 3px; }
.gchallenge-row .receive { position: relative; justify-self: center; width: 79px; height: 25px; padding: 0; border: 0; background: none; color: inherit; pointer-events: auto; }
.gchallenge-row .receive > .gw { pointer-events: none; }
.gchallenge-row .receive:disabled { opacity: .55; filter: grayscale(1); }
.gchallenge-row .receive:disabled .gt { font-size: 13px !important; }
.gchallenge-footer { position: absolute; left: 88px; top: 625px; width: 846px; height: 28px; display: flex; align-items: center; justify-content: space-between; color: #dde8f9; font: 12px 'Segoe UI', Tahoma, sans-serif; }
.gchallenge-footer .epic { display: flex; align-items: center; gap: 6px; }
.gchallenge-footer button { pointer-events: auto; }
.gchallenge-footer .gbtn:disabled { opacity: .6; filter: grayscale(.75); }
@media (max-width: 600px) { .gchal .evo li { grid-template-columns: 1fr 90px; } }
.gchal .evo li { grid-template-columns: minmax(0, 1fr) 130px minmax(220px, 300px) 80px; }
.gchal.ghero .evo li { grid-template-columns: minmax(0, 1fr) minmax(240px, 340px) 0 90px; }
@media (max-width: 600px) { .gchal .evo li, .gchal.ghero .evo li { grid-template-columns: 1fr 90px; } }
/* loja: ícones dos botões do item (carrinho + e comprar "C" da tex 411) */
.gshopbadge { position: absolute; right: 2px; top: 2px; z-index: 5; max-width: 82%; padding: 1px 4px; border: 1px solid #ffd49c; border-radius: 4px;
  background: linear-gradient(#c64435, #8f211e); color: #fff3d3; font: 800 9px/13px 'Segoe UI', sans-serif; letter-spacing: .2px; text-shadow: 0 1px 2px #42100c; box-shadow: 0 1px 3px #000b; pointer-events: none; }
.gshopbadge[data-badge="NOVO"] { background: linear-gradient(#2f9d70, #176346); border-color: #a2f4c7; color: #ecfff5; }
.gshopbadge[data-badge="OFERTA"] { background: linear-gradient(#bf3e88, #76204f); border-color: #ffc3e1; color: #fff0f8; }
.gshopbadge[data-badge="DESTAQUE"] { background: linear-gradient(#aa7b28, #69440f); border-color: #ffe497; color: #fff9db; }
/* Loja de Moedas Épicas (ui_hero_shop_dlg): lista sobre o painel e moedas na faixa de baixo */
.gherolist { inset: auto; left: 14px; top: 96px; width: 636px; height: 492px; padding: 4px 6px; overflow-y: auto; }
.gherofoot { inset: auto; left: 14px; top: 600px; width: 636px; height: 32px; display: flex; align-items: center; gap: 4px; padding: 0 10px; }
.gherolist .evo li { grid-template-columns: 220px 1fr 0 100px; }
.gherolist .gbtn:disabled { opacity: .45; filter: grayscale(.6); cursor: default; }
.gherolist .shopflag { display: inline-block; padding: 1px 5px; border: 1px solid #ffd49c; border-radius: 4px; background: #8f211e; color: #fff3d3; font: 800 9px/13px 'Segoe UI', sans-serif; vertical-align: 2px; }
.gherolist .shopflag:not(.hot) { background: #69440f; border-color: #ffe497; color: #fff9db; }

/* tela de carregamento da partida (js/loadscreen.js, cena ui_loading_scene) */
.gload { position: fixed; inset: 0; z-index: 900; background: #000; transition: opacity .4s; }
.gload.off { opacity: 0; pointer-events: none; }
.gload [data-name=name_static] { color: #fff; font: bold 13px/26px sans-serif; text-align: center; text-shadow: 0 0 2px #000, 0 0 2px #000; white-space: nowrap; overflow: hidden; }
.gload .gload-art { position: absolute; left: 0; top: 0; width: 1366px; height: 768px; object-fit: cover; }
.gload [data-name=static_user_level], .gload [data-name=static_user_nickname] { color: #fff; font: bold 12px/19px sans-serif; white-space: nowrap; overflow: hidden; text-shadow: 0 0 2px #000; }
.gload [data-name=static_user_nickname] { text-align: center; }
.gload .gw[data-type=static][data-name=loading_tip_static] { display: flex; align-items: center; justify-content: center; color: #fff; font: bold 13px/18px sans-serif; text-align: center; white-space: pre-line; }
.gload [data-name=static_loading_percent] { color: #fff; font: bold 12px/21px sans-serif; text-align: center; text-shadow: 0 0 2px #000; }
/* árvore de talentos original (progress.js): abas de classe e Ativas/Passivas, habilidade que já dá para aprender */
.skillbar .skilltabs { display: flex; gap: 4px; align-items: center; }
.skillbar .skilltabs span { width: 10px; }
.skillbar .skilltabs .gbtn { padding: 3px 9px; font-size: 12px; }
.skillbar .skilltabs .gbtn.on { outline: 2px solid #ffd84a; }
.skillbar .skilltabs .gbtn.off { opacity: .5; }
.skillmode-on { filter: brightness(1.3); outline: 2px solid #ffd84a; outline-offset: -2px; }
/* Alternância Type 1/2 da HUD: X no teclado e botão equivalente para toque. */
.gmagic-toggle { position: absolute; left: 154px; top: 156px; z-index: 8; min-width: 136px; min-height: 34px; padding: 4px 9px;
  border: 1px solid #7185ae; border-radius: 4px; background: linear-gradient(#394c70, #1c2941); color: #f4e3a1;
  font: 700 12px 'Segoe UI', Tahoma, sans-serif; text-shadow: 0 1px 2px #000; box-shadow: 0 2px 5px #0009; cursor: pointer; pointer-events: auto; }
.gmagic-toggle:hover, .gmagic-toggle:focus-visible { border-color: #ffda62; filter: brightness(1.15); outline: 1px solid #ffda62; }
.gmagic-toggle[hidden] { display: none !important; }
@media (pointer: coarse) { .gmagic-toggle { min-width: 152px; min-height: 42px; font-size: 13px; } }
.skcan { animation: skillpulse 1.2s infinite; border-radius: 12px; }
.skillbar .sp, .skillbar [data-r] { white-space: nowrap; flex: none; }
/* recarga do especial no HUD (gamehud.update): segundos sobre o ícone */
.skcool { position: absolute; inset: 0; display: grid; place-items: center; z-index: 3; font: 800 16px 'Segoe UI', sans-serif; color: #fff; text-shadow: 0 0 3px #000, 0 0 3px #000; pointer-events: none; }
/* traços (X) no jogo: tecla e recarga */
#traitbar { position: fixed; left: 10px; bottom: 48px; display: flex; gap: 6px; z-index: 5; pointer-events: auto; }
#traitbar span { background: #0009; color: #fff; font: 700 12px 'Segoe UI', sans-serif; padding: 2px 6px; border-radius: 4px; }
#traitbar span.cd { color: #9aa6bd; }
#traitbar kbd { background: #2a3550; border-radius: 3px; padding: 0 4px; margin-right: 4px; }
/* derrota na masmorra: "GAME OVER!" do cliente (gamehud.gameOver) */
.ggameover { position: fixed; left: 50%; top: 38%; width: min(52vw, 520px); translate: -50% -50%; z-index: 40; pointer-events: none;
  animation: ggameover .45s cubic-bezier(.2, 1.6, .4, 1) both; }
@keyframes ggameover { from { scale: 2.2; opacity: 0; } to { scale: 1; opacity: 1; } }

/* dica de item no estilo do cliente original (itemTip em lobby/state.js) */
.gtip:has(.gitip) { width: 310px; padding: 0; background: #1a2236; border: 1px solid #3a4968; border-radius: 3px; box-shadow: 0 4px 14px #000c; overflow: hidden; font: 13px 'Segoe UI', Tahoma, sans-serif; }
.gtip.touch { pointer-events: auto; font-size: 14px; }
.gitip .head { text-align: center; padding: 8px 10px 7px; background: #232d45; border-bottom: 1px solid #0d1322; color: #ffd84a; font-weight: 600; font-size: 14px; }
.gitip .head.g1 { color: #5aa8ff; } .gitip .head.g3 { color: #c77dff; } .gitip .head.g4 { color: #ff9a3c; }
.gitip .top { display: flex; gap: 12px; padding: 12px 14px 10px; }
.gitip .ifr { flex: none; width: 80px; height: 80px; box-sizing: border-box; padding: 4px; display: grid; place-items: center; border: 2px solid #e2cfa4; border-radius: 2px;
  background: linear-gradient(160deg, #c8ab76, #a98a58); box-shadow: inset 0 0 8px #0006; }
.gitip .ifr.g1 { background: linear-gradient(160deg, #5f8fcf, #3d6199); border-color: #a9c8f2; }
.gitip .ifr.g2 { background: linear-gradient(160deg, #d6b24a, #a78322); border-color: #f4de92; }
.gitip .ifr.g3 { background: linear-gradient(160deg, #9a6bd0, #6a43a0); border-color: #cfb0f2; }
.gitip .ifr.g4 { background: linear-gradient(160deg, #e08a3c, #a85a1c); border-color: #f7c391; }
.gitip .ifr img { max-width: 100%; max-height: 100%; image-rendering: auto; }
.gitip .ifr i { font: 700 28px 'Segoe UI'; color: #fff; font-style: normal; }
.gitip .meta { position: relative; flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 1px; color: #e6ebf5; font-weight: 600; }
.gitip .rar { position: absolute; top: 0; right: 0; color: #ffd84a; font-weight: 600; } .gitip .rar.g1 { color: #5aa8ff; } .gitip .rar.g3 { color: #c77dff; } .gitip .rar.g4 { color: #ff9a3c; }
.gitip .meta .bad, .gitip .bad { color: #ff6a5a; }
.gitip .stats { margin: 0 8px; padding: 8px 6px 6px; border-top: 1px solid #2e3a56; }
.gitip .r { display: flex; justify-content: space-between; padding: 3px 4px; color: #fff; }
.gitip .r span { color: #8fb4ff; } .gitip .r.tot span { color: #fff; }
.gitip .r b { font-weight: 600; } .gitip .r.tot b { font-weight: 700; }
.gitip .up { color: #5ee06a; } .gitip .dn { color: #ff4a4a; } .gitip .eq { color: #cfd6e6; }
.gitip .r b .up, .gitip .r b .dn, .gitip .r b .eq { margin-left: 2px; }
.gitip .extra { margin: 0 14px 6px; padding-top: 6px; border-top: 1px solid #2e3a56; font-size: 12px; color: #aab6cf; }
.gitip .gp { margin: 0 14px 6px; color: #8fe38f; }
.gitip .foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 8px 14px 10px; border-top: 1px solid #2e3a56; margin-top: 4px; }
.gitip .foot em { font-style: normal; color: #5ac8ff; }
.gitip .gshift { display: inline-flex; align-items: center; gap: 8px; padding: 0; border: 0; background: none; color: #b8c4dc; font: inherit; cursor: pointer; }
.gitip kbd { padding: 3px 10px; border-radius: 3px; background: #3a4560; color: #fff; font: 700 12px 'Segoe UI'; box-shadow: inset 0 -2px #263049; }
.gitip .gshift.on kbd { background: #4f7bd8; }
.gtip.gtip2 .gshift { display: none; }
.gtip:has(.gitip) .hint { margin: 0 14px 8px; }
.gitip .r b { display: inline; margin: 0; color: #fff; font-size: inherit; } .gitip .r b.up { color: #5ee06a; } .gitip .r b.dn { color: #ff4a4a; } .gitip .r b.eq { color: #cfd6e6; }
.gitip .r b .up { color: #5ee06a; } .gitip .r b .dn { color: #ff4a4a; }
/* fundo opaco da dica de item original (a textura 480 do cliente é translúcida) */
.gtipback { position: absolute; background: #1b2338; border-radius: 4px; pointer-events: none; }

/* Cadastro e recuperação de conta (account.js) */
.gsecurity { width: min(460px, 92vw); padding: 22px; box-sizing: border-box; border-color: #8a7744; }
.gsecurity h2 { margin: 0 0 8px; color: #ffd84a; font: 700 20px 'Segoe UI', sans-serif; }
.gsecurity > p { margin: 0 0 16px; color: #c2cde1; font: 13px/1.45 'Segoe UI', sans-serif; }
.gsecurity-field { display: block; margin: 12px 0; color: #ffe58a; font: 600 12px 'Segoe UI', sans-serif; }
.gsecurity-field input { display: block; width: 100%; margin-top: 5px; padding: 10px 11px; box-sizing: border-box; border: 1px solid #52617d;
  border-radius: 5px; background: #111a2d; color: #fff; font: 15px 'Segoe UI', sans-serif; }
.gsecurity-field input:focus { outline: 2px solid #ffd84a; outline-offset: 1px; }
.gsecurity-error { min-height: 16px; margin: 8px 0; color: #ff9b8a; font: 12px 'Segoe UI', sans-serif; }
.gsecurity-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 12px; }
.gsecurity > p { overflow-wrap: anywhere; }
.gsecurity-actions button:disabled { opacity: .55; cursor: wait; }
/* Mantém a ponteira do jogo ao focar e digitar nos campos. */
html:not(.touch) input, html:not(.touch) input:focus, html:not(.touch) input:active,
html:not(.touch) textarea, html:not(.touch) textarea:focus, html:not(.touch) textarea:active,
html:not(.touch) select, html:not(.touch) [contenteditable="true"], html:not(.touch) [contenteditable="true"]:focus {
  cursor: url('/ui/cursor/cursor0.png') 0 0, auto !important;
}
