:root {
  color-scheme: dark;
  --ink: #eaf2f7;
  --muted: #91a9b9;
  --faint: #617785;
  --panel: rgba(15, 28, 43, .95);
  --panel-2: #152a3b;
  --panel-3: #1b3549;
  --line: rgba(163, 201, 224, .14);
  --line-strong: rgba(163, 201, 224, .26);
  --moss: #74d2e3;
  --lime: #b6edf3;
  --mint: #74e3c1;
  --gold: #f2cc75;
  --blue: #8ec9ff;
  --rose: #f28d90;
  --shadow: 0 18px 44px rgba(0, 0, 0, .22);
  --radius: 18px;
  font-family: 'Segoe UI', 'Trebuchet MS', Arial, sans-serif;
}

* { box-sizing: border-box; }
html { min-width: 320px; min-height: 100%; background: #08131e; }
body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(ellipse at 80% 0%, rgba(39, 108, 142, .21), transparent 39%),
    radial-gradient(ellipse at 0% 70%, rgba(22, 74, 101, .18), transparent 40%),
    #08131e;
  font-size: 13px;
}
button, input, select { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible, select:focus-visible { outline: 2px solid var(--lime); outline-offset: 2px; }
button:disabled { cursor: not-allowed; opacity: .48; }
img { display: block; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 244px minmax(0, 1fr); }

.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  min-height: 660px;
  display: flex;
  flex-direction: column;
  padding: 24px 15px 16px;
  border-right: 1px solid rgba(180, 216, 186, .12);
  background: linear-gradient(180deg, rgba(17, 36, 27, .98), rgba(10, 24, 18, .98));
  box-shadow: 12px 0 42px rgba(0,0,0,.12);
  z-index: 5;
}
.brand { display: flex; gap: 11px; align-items: center; padding: 0 11px 24px; color: var(--ink); text-decoration: none; }
.brand-ball { width: 34px; height: 34px; position: relative; border: 2px solid #dce8dc; border-radius: 50%; background: linear-gradient(#e9e8d9 0 45%, #192820 45% 54%, #92c96d 54%); box-shadow: 0 0 22px rgba(163, 215, 111, .19); }
.brand-ball:before { content: ''; position: absolute; height: 2px; background: #dce8dc; top: 14px; left: 1px; right: 1px; }
.brand-ball i { position: absolute; width: 9px; height: 9px; top: 10px; left: 10px; border-radius: 50%; background: #c8dfaa; border: 2px solid #eef4e8; z-index: 1; }
.brand-copy { display: grid; gap: 3px; }
.brand-copy strong { letter-spacing: .14em; font-size: 12px; font-weight: 800; }
.brand-copy small { color: var(--muted); letter-spacing: .16em; font: 9px 'DM Mono', monospace; }

.trainer-card { display: grid; grid-template-columns: 39px 1fr 25px; align-items: center; gap: 9px; margin: 0 4px 25px; padding: 12px 10px 10px; border: 1px solid var(--line); border-radius: 14px; background: linear-gradient(135deg, rgba(45, 72, 52, .52), rgba(23, 44, 33, .68)); }
.trainer-avatar { width: 39px; height: 39px; position: relative; display: grid; place-items: center; border-radius: 12px; background: linear-gradient(145deg, #d5b870, #927744); color: #1f2e20; font-weight: 800; font-size: 17px; box-shadow: inset 0 0 0 2px rgba(255,255,255,.18); }
.online-dot { position: absolute; width: 9px; height: 9px; right: -2px; bottom: -2px; border: 2px solid #1b3325; border-radius: 50%; background: #7ee0a0; }
.trainer-copy { min-width: 0; display: grid; gap: 4px; }
.trainer-copy strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 12px; }
.trainer-copy small { color: var(--muted); font-size: 10px; }
.rank-dot { color: var(--gold); padding: 0 2px; }
.trainer-xp { grid-column: 1 / -1; padding-top: 4px; display: grid; gap: 6px; color: var(--muted); font: 9px 'DM Mono', monospace; }
.xp-track, .quest-progress i { height: 5px; overflow: hidden; border-radius: 99px; background: rgba(4, 14, 9, .7); }
.xp-track i, .quest-progress b { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #8ec762, #d4f095); transition: width .35s; }
.tiny { width: 25px !important; height: 25px !important; font-size: 12px !important; }
.nav-label { padding: 0 12px 9px; color: #687f70; font: 9px 'DM Mono', monospace; letter-spacing: .16em; }
.main-nav { display: grid; gap: 5px; }
.nav-button, .settings-link { width: 100%; height: 42px; display: flex; align-items: center; gap: 11px; padding: 0 11px; border: 1px solid transparent; border-radius: 11px; background: transparent; color: #9cb1a0; text-align: left; cursor: pointer; transition: .18s ease; }
.nav-button.mobile-settings-nav { display: none; }
.nav-button:hover, .settings-link:hover { color: var(--ink); background: rgba(214, 240, 200, .055); }
.nav-button.is-active { color: #e9f6df; border-color: rgba(178, 216, 136, .16); background: linear-gradient(90deg, rgba(155, 201, 104, .15), rgba(110, 159, 93, .05)); box-shadow: inset 3px 0 var(--moss); }
.nav-icon { width: 20px; color: var(--moss); text-align: center; font-size: 18px; line-height: 1; }
.nav-button > span:nth-child(2) { flex: 1; font-weight: 700; font-size: 12px; }
.nav-pill { color: #b2df8c; font: 8px 'DM Mono', monospace; letter-spacing: .08em; }
.nav-pill.is-paused { color: var(--gold); }
.nav-count { color: #788f7e; font: 9px 'DM Mono', monospace; }
.sidebar-spacer { flex: 1; min-height: 22px; }
.sidebar-quest { margin: 0 4px 15px; padding: 13px 12px 12px; border: 1px solid rgba(232, 201, 118, .18); border-radius: 14px; background: linear-gradient(145deg, rgba(102, 79, 36, .24), rgba(39, 49, 32, .36)); }
.quest-eyebrow { color: var(--gold); font: 9px 'DM Mono', monospace; letter-spacing: .1em; }
.quest-eyebrow span { font-size: 13px; margin-right: 4px; }
.sidebar-quest strong { display: block; margin: 10px 0 5px; font-size: 11px; }
.sidebar-quest p { margin: 0 0 11px; color: #a9b4a3; font-size: 10px; line-height: 1.45; }
.quest-progress { display: flex; align-items: center; gap: 8px; color: var(--muted); font: 9px 'DM Mono', monospace; }
.quest-progress i { flex: 1; height: 4px; }
.quest-progress b { background: linear-gradient(90deg, #d4b65e, #f2d587); }
.quest-reward { margin-top: 9px; color: var(--gold); font-size: 10px; }
.quest-reward span { color: #c9cfbd; }
.sidebar-footer { display: grid; gap: 5px; padding: 5px 4px 0; border-top: 1px solid var(--line); }
.save-status { display: flex; gap: 8px; align-items: center; padding: 9px 10px 4px; color: #87998b; font-size: 9px; }
.save-status i { width: 6px; height: 6px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 8px rgba(118, 216, 177, .45); }
.settings-link { height: 34px; font-size: 10px; }
.settings-link span { font-size: 15px; }

.main-content { min-width: 0; padding: 0 30px 28px; }
.topbar { min-height: 92px; display: flex; justify-content: space-between; align-items: center; gap: 18px; border-bottom: 1px solid var(--line); }
.breadcrumbs { display: flex; gap: 8px; align-items: center; color: #708477; font: 9px 'DM Mono', monospace; letter-spacing: .13em; }
.breadcrumbs b { color: #4c6253; font-size: 14px; font-weight: 400; }
.breadcrumbs span:last-child { color: var(--moss); }
.topbar h1 { margin: 7px 0 0; font-size: clamp(19px, 2vw, 25px); letter-spacing: -.045em; font-weight: 800; }
.topbar-resources { display: flex; gap: 8px; align-items: center; }
.resource-chip { min-width: 126px; height: 46px; display: flex; align-items: center; gap: 9px; padding: 0 9px; border: 1px solid var(--line); border-radius: 13px; background: rgba(21, 42, 31, .78); }
.resource-chip > div { display: grid; gap: 1px; }
.resource-chip small { color: #8ba093; font: 8px 'DM Mono', monospace; letter-spacing: .1em; }
.resource-chip strong { color: var(--ink); font-size: 12px; font-weight: 800; }
.coin-icon, .research-icon { width: 26px; height: 26px; display: grid; place-items: center; border: 1px solid rgba(249, 215, 116, .38); border-radius: 9px; color: #f6d780; background: rgba(229, 183, 63, .14); font-size: 15px; font-weight: 800; }
.research-icon { border-color: rgba(120, 217, 174, .32); color: #92e1ba; background: rgba(94, 183, 143, .13); }
.icon-button { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 11px; color: #a8baa9; background: rgba(21, 42, 31, .76); cursor: pointer; transition: .18s ease; }
.icon-button:hover { border-color: rgba(183, 221, 148, .35); color: var(--lime); }
.notice-button { font-size: 18px; }
.content-area { padding-top: 23px; }

.eyebrow { color: var(--moss); font: 9px 'DM Mono', monospace; letter-spacing: .17em; text-transform: uppercase; }
.page-intro { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin: 0 0 17px; }
.page-intro h2 { margin: 5px 0 4px; font-size: clamp(20px, 2.1vw, 26px); letter-spacing: -.055em; }
.page-intro p { margin: 0; color: var(--muted); font-size: 11px; }
.page-actions { display: flex; gap: 8px; align-items: center; }
.button { min-height: 36px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 13px; border: 1px solid var(--line-strong); border-radius: 10px; color: #d8e6d9; background: rgba(33, 57, 42, .78); font-size: 10px; font-weight: 800; cursor: pointer; transition: transform .14s, border-color .14s, background .14s; }
.button:hover { transform: translateY(-1px); border-color: rgba(201, 233, 164, .46); background: rgba(50, 78, 53, .85); }
.button.primary { border-color: rgba(211, 241, 139, .4); color: #1b2a1c; background: linear-gradient(135deg, #c5e985, #8fc96a); box-shadow: 0 6px 18px rgba(144, 198, 103, .13); }
.button.primary:hover { background: linear-gradient(135deg, #d5f69b, #a2d77c); }
.button.ghost { background: transparent; }
.button.danger { color: #f0aaaa; border-color: rgba(240, 141, 144, .25); }
.button.small { min-height: 30px; padding: 0 10px; font-size: 9px; }
.button .button-icon { font-size: 15px; line-height: 1; }
.chip { display: inline-flex; align-items: center; gap: 5px; padding: 4px 8px; border: 1px solid var(--line); border-radius: 999px; color: #b7c8b9; background: rgba(2, 12, 7, .22); font: 9px 'DM Mono', monospace; white-space: nowrap; }
.chip .dot { width: 5px; height: 5px; border-radius: 50%; background: var(--mint); }
.chip.shiny { color: #ffe3a2; border-color: rgba(246, 207, 116, .35); background: rgba(174, 128, 41, .14); }
.type-badges { display: flex; gap: 4px; flex-wrap: wrap; }
.type-badge { display: inline-flex; align-items: center; padding: 3px 6px; border: 1px solid color-mix(in srgb, var(--type-color, #9db5a0) 36%, transparent); border-radius: 6px; color: var(--type-color, #c0d1c2); background: color-mix(in srgb, var(--type-color, #9db5a0) 12%, transparent); font: 8px 'DM Mono', monospace; letter-spacing: .02em; }

.adventure-grid { display: grid; grid-template-columns: minmax(190px, .76fr) minmax(380px, 1.56fr) minmax(230px, .93fr); gap: 14px; align-items: stretch; }
.left-stack, .right-stack { min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.panel { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, rgba(23, 45, 34, .96), rgba(16, 34, 26, .96)); box-shadow: var(--shadow); }
.panel-heading { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 14px 15px 11px; }
.panel-heading strong { font-size: 11px; }
.panel-heading small { color: var(--muted); font-size: 9px; }
.panel-body { padding: 0 15px 15px; }
.team-panel { min-height: 200px; }
.active-pokemon { position: relative; display: grid; grid-template-columns: 77px minmax(0, 1fr); align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid rgba(174, 214, 147, .12); border-radius: 13px; background: radial-gradient(circle at 30% 50%, rgba(141, 187, 106, .12), transparent 56%), rgba(4, 15, 10, .3); }
.active-pokemon-art { width: 74px; height: 74px; display: grid; place-items: center; border-radius: 50%; background: radial-gradient(circle, rgba(154, 205, 112, .18), rgba(17, 38, 25, 0) 68%); }
.active-pokemon-art img { width: 68px; height: 68px; object-fit: contain; image-rendering: pixelated; filter: drop-shadow(0 7px 4px rgba(0,0,0,.2)); }
.active-pokemon-copy { min-width: 0; }
.active-pokemon-copy h3 { margin: 5px 0; font-size: 15px; letter-spacing: -.03em; }
.active-pokemon-copy .species-id { color: #839787; font: 8px 'DM Mono', monospace; }
.level-row { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-top: 9px; color: #bacaba; font: 8px 'DM Mono', monospace; }
.mini-track { height: 5px; overflow: hidden; margin-top: 5px; border-radius: 99px; background: rgba(0,0,0,.32); }
.mini-track b { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #78bd77, #d4ee91); transition: width .3s; }
.active-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 12px; }
.mini-stat { padding: 7px 5px 6px; border: 1px solid rgba(177, 213, 184, .1); border-radius: 9px; background: rgba(4, 15, 10, .18); text-align: center; }
.mini-stat small { display: block; color: #7f9686; font: 8px 'DM Mono', monospace; }
.mini-stat strong { display: block; margin-top: 3px; color: #e0ecdd; font-size: 11px; }
.quick-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 7px; }
.quick-stat { padding: 10px 10px 9px; border: 1px solid var(--line); border-radius: 11px; background: rgba(3, 15, 9, .25); }
.quick-stat small { display: block; color: #83988a; font: 8px 'DM Mono', monospace; letter-spacing: .08em; }
.quick-stat strong { display: block; margin-top: 5px; color: var(--ink); font-size: 16px; letter-spacing: -.04em; }
.quick-stat span { color: #96aa9b; font-size: 8px; }
.partner-panel { flex: 1; min-height: 96px; }
.partner-row { display: flex; align-items: center; gap: 10px; padding: 10px 11px; border: 1px solid var(--line); border-radius: 12px; background: rgba(4, 15, 10, .22); }
.partner-row img { width: 42px; height: 42px; object-fit: contain; image-rendering: pixelated; }
.partner-row div { flex: 1; min-width: 0; }
.partner-row strong { display: block; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.partner-row small { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; }

.world-panel { position: relative; min-height: 450px; display: flex; flex-direction: column; background: #101f2d; }
.world-topline { position: absolute; z-index: 2; top: 12px; left: 12px; right: 12px; display: flex; justify-content: space-between; align-items: flex-start; pointer-events: none; }
.world-online { display: inline-flex; align-items: center; gap: 6px; padding: 8px 10px; border: 1px solid rgba(109, 222, 208, .2); border-radius: 999px; background: rgba(8, 20, 33, .82); color: #bcefe8; font: 8px 'DM Mono', monospace; appearance: none; cursor: pointer; pointer-events: auto; }
.world-online:focus-visible { outline: 2px solid #f3d67b; outline-offset: 2px; }
.world-online:disabled { cursor: not-allowed; opacity: .72; }
.world-online kbd { padding: 1px 3px; border: 1px solid rgba(236, 216, 153, .38); border-radius: 3px; color: #f2d986; font: 700 7px 'DM Mono', monospace; line-height: 1; }
.world-online i { width: 6px; height: 6px; border-radius: 50%; background: #68e6c9; box-shadow: 0 0 8px #68e6c9; }
.map-wrap { position: relative; flex: 1; min-height: 320px; overflow: hidden; border-radius: var(--radius) var(--radius) 0 0; background: #173526; }
#huntCanvas { position: absolute; inset: 0; width: 100%; height: 100%; image-rendering: pixelated; cursor: crosshair; touch-action: none; transform: translate3d(0,0,0); backface-visibility: hidden; }
.movement-hint { position: absolute; z-index: 2; left: 12px; bottom: 10px; padding: 6px 8px; border: 1px solid rgba(143, 219, 230, .2); border-radius: 7px; color: #d3f4f4; background: rgba(7, 18, 31, .78); backdrop-filter: blur(5px); font: 7px 'DM Mono', monospace; letter-spacing: .06em; pointer-events: none; }
.map-vignette { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(4, 13, 23, .12), transparent 35%, rgba(4, 13, 23, .18)), radial-gradient(ellipse at center, transparent 40%, rgba(2, 8, 16, .18)); }
.world-bottom { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 12px; border-top: 1px solid rgba(156, 195, 216, .13); background: rgba(9, 21, 34, .97); }
.scene-controls { display: flex; gap: 5px; }
.scene-controls button { width: 27px; height: 26px; border: 1px solid var(--line); border-radius: 7px; color: #b1cbd7; background: rgba(7, 18, 29, .85); cursor: pointer; }
.scene-controls button:hover { color: var(--lime); }
.battle-strip { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-top: 1px solid rgba(156, 195, 216, .13); background: #14283a; }
.battle-strip .enemy-info { min-width: 0; display: flex; align-items: center; gap: 8px; }
.battle-strip .enemy-info img { width: 34px; height: 34px; object-fit: contain; image-rendering: pixelated; }
.battle-strip .enemy-info div { min-width: 0; }
.battle-strip .enemy-info strong { display: block; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.battle-strip .enemy-info small { display: block; margin-top: 3px; color: #9aad9c; font-size: 8px; }
.enemy-hp-wrap { width: 28%; min-width: 70px; }
.enemy-hp-wrap span { display: flex; justify-content: space-between; color: #9bab9c; font: 8px 'DM Mono', monospace; }
.enemy-hp { height: 5px; overflow: hidden; margin-top: 5px; border-radius: 999px; background: rgba(0, 0, 0, .3); }
.enemy-hp b { display: block; width: 100%; height: 100%; background: linear-gradient(90deg, #c75f5a, #ef9a78); transition: width .25s; }
.aoe-state { display: grid; justify-items: end; gap: 2px; color: #bbd39d; font: 8px 'DM Mono', monospace; }
.aoe-state strong { color: var(--gold); font-size: 9px; }

.hunt-card { position: relative; min-height: 176px; padding: 14px 14px 13px; border: 1px solid rgba(186, 222, 145, .17); border-radius: var(--radius); background: radial-gradient(circle at 82% 12%, rgba(169, 211, 118, .14), transparent 36%), linear-gradient(140deg, rgba(32, 59, 39, .97), rgba(17, 38, 27, .97)); box-shadow: var(--shadow); }
.hunt-card-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.hunt-card-head span { color: #aacb90; font: 8px 'DM Mono', monospace; letter-spacing: .12em; }
.hunt-card-art { position: absolute; top: 42px; right: 8px; width: 105px; height: 105px; display: grid; place-items: center; border-radius: 50%; background: radial-gradient(circle, rgba(161, 214, 117, .21), rgba(161,214,117,0) 68%); }
.hunt-card-art img { width: 95px; height: 95px; object-fit: contain; image-rendering: pixelated; filter: drop-shadow(0 9px 5px rgba(0,0,0,.23)); }
.hunt-card h3 { position: relative; z-index: 1; max-width: 62%; margin: 14px 0 4px; font-size: 18px; letter-spacing: -.055em; }
.hunt-card .hunt-subtitle { position: relative; z-index: 1; max-width: 64%; color: #acbaaa; font-size: 9px; line-height: 1.45; }
.hunt-card .type-badges { position: relative; z-index: 1; margin-top: 10px; }
.hunt-card-foot { display: flex; justify-content: space-between; align-items: center; gap: 6px; margin-top: 12px; padding-top: 9px; border-top: 1px solid rgba(195, 220, 188, .1); color: #a6b7a8; font: 8px 'DM Mono', monospace; }
.hunt-card-foot strong { color: #d8e6d5; }
.hunt-card-foot .foot-divider { color: #506654; }
.hunt-controls { padding: 12px 13px 13px; }
.control-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 9px; color: #cbdacb; font-size: 10px; font-weight: 800; }
.control-title small { color: #88a08e; font: 8px 'DM Mono', monospace; font-weight: 400; }
.control-row { display: flex; gap: 6px; }
.hunt-toggle { min-height: 36px; flex: 1; display: flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid rgba(188, 223, 149, .33); border-radius: 10px; color: #172418; background: linear-gradient(135deg, #c8eb90, #98cd70); font-size: 10px; font-weight: 800; cursor: pointer; }
.hunt-toggle.is-paused { color: #e4d19e; border-color: rgba(237, 207, 117, .28); background: rgba(124, 98, 43, .28); }
.speed-select { width: 68px; border: 1px solid var(--line-strong); border-radius: 9px; color: #d5e5d6; background: #203a2b; text-align: center; font: 10px 'DM Mono', monospace; }
.auto-option { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--line); color: #adbcad; font-size: 9px; }
.toggle-switch { width: 31px; height: 17px; position: relative; border: 0; border-radius: 99px; background: #405347; cursor: pointer; }
.toggle-switch:after { content: ''; position: absolute; top: 3px; left: 3px; width: 11px; height: 11px; border-radius: 50%; background: #bac7b8; transition: .18s ease; }
.toggle-switch.on { background: #76ae6c; }
.toggle-switch.on:after { left: 17px; background: #f0f6e7; }
.battle-log { flex: 1; min-height: 150px; }
.log-list { display: grid; gap: 7px; max-height: 160px; overflow: auto; padding-right: 2px; }
.log-entry { display: grid; grid-template-columns: 35px 1fr; align-items: start; gap: 7px; color: #aabaaa; font-size: 8px; line-height: 1.4; }
.log-entry time { color: #678071; font: 8px 'DM Mono', monospace; }
.log-entry strong { color: #d9e5d8; font-weight: 700; }
.log-entry .log-highlight { color: var(--lime); }
.log-entry .log-shiny { color: var(--gold); }
.log-empty { color: #7c9181; font-size: 9px; }
.below-adventure { display: grid; grid-template-columns: 1fr; gap: 14px; margin-top: 14px; }
.moves-panel, .atlas-preview { min-height: 135px; }
.move-list { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; padding: 0 14px 14px; }
.move-card { min-width: 0; display: grid; grid-template-columns: 27px minmax(0,1fr) auto; align-items: center; gap: 7px; padding: 8px; border: 1px solid rgba(179, 216, 183, .11); border-radius: 10px; background: rgba(4, 15, 10, .23); color: var(--ink); font: inherit; text-align: left; cursor: pointer; transition: transform .14s, border-color .14s, background .14s; }
.move-card:hover { transform: translateY(-1px); border-color: rgba(196, 230, 153, .42); background: rgba(56, 84, 54, .35); }
.move-card:active { transform: translateY(1px) scale(.99); }
.move-symbol { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; color: #c9e9a5; background: rgba(135, 189, 112, .17); font-size: 12px; }
.move-card.area .move-symbol { color: #ffd58d; background: rgba(207, 149, 58, .18); box-shadow: 0 0 15px rgba(238, 185, 88, .1); }
.move-copy { min-width: 0; }
.move-card strong { display: block; overflow: hidden; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.move-card small { display: block; margin-top: 3px; color: #849987; font: 7px 'DM Mono', monospace; }
.move-cast-hint { color: #819886; font: 7px 'DM Mono', monospace; letter-spacing: .05em; }
.atlas-preview { display: grid; grid-template-columns: 1.15fr 1fr; }
.atlas-image { position: relative; min-height: 135px; overflow: hidden; border-radius: var(--radius) 0 0 var(--radius); background: #263a2b; }
.atlas-image img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; opacity: .66; filter: saturate(.78) contrast(1.03) brightness(.68); }
.atlas-image:after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(16, 34, 25, .55)); }
.atlas-pin { width: 11px; height: 11px; position: absolute; z-index: 1; border: 2px solid #f6e4a7; border-radius: 50%; background: #d7a949; box-shadow: 0 0 0 4px rgba(238, 201, 94, .2), 0 0 11px #d7a949; transform: translate(-50%, -50%); }
.atlas-copy { display: flex; flex-direction: column; justify-content: center; padding: 12px; }
.atlas-copy small { color: #8da18e; font: 8px 'DM Mono', monospace; letter-spacing: .11em; }
.atlas-copy strong { margin-top: 6px; font-size: 11px; }
.atlas-copy p { margin: 6px 0 9px; color: #9aab9b; font-size: 8px; line-height: 1.4; }
.atlas-copy button { align-self: flex-start; padding: 0; border: 0; color: #c2df9b; background: transparent; font-size: 8px; font-weight: 800; cursor: pointer; }

.toolbar { display: flex; align-items: center; gap: 8px; }
.search-field { min-width: 190px; height: 36px; display: flex; align-items: center; gap: 8px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: 10px; background: rgba(5, 17, 10, .3); color: #8da18f; }
.search-field input { width: 100%; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 10px; }
.search-field input::placeholder { color: #738879; }
.select-field { height: 36px; min-width: 118px; padding: 0 9px; border: 1px solid var(--line-strong); border-radius: 10px; color: #c6d4c7; background: #172f23; font-size: 9px; }
.hunt-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 13px; }
.filter-count { color: #8ea191; font: 9px 'DM Mono', monospace; white-space: nowrap; }
.hunt-gallery { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; }
.hunt-tile { min-width: 0; position: relative; overflow: hidden; display: flex; flex-direction: column; min-height: 144px; padding: 10px; border: 1px solid var(--line); border-radius: 13px; background: linear-gradient(145deg, rgba(23, 47, 34, .92), rgba(15, 32, 24, .95)); cursor: pointer; transition: transform .14s, border-color .14s, background .14s; }
.hunt-tile:hover { transform: translateY(-2px); border-color: rgba(186, 221, 146, .37); background: #203b2b; }
.hunt-tile.selected { border-color: rgba(207, 236, 143, .5); box-shadow: inset 0 0 0 1px rgba(207, 236, 143, .16), 0 0 20px rgba(135, 190, 106, .08); }
.hunt-tile-top { display: flex; justify-content: space-between; align-items: center; color: #779080; font: 8px 'DM Mono', monospace; }
.hunt-tile-top .caught-indicator { color: var(--mint); }
.hunt-tile-body { display: flex; align-items: center; gap: 8px; margin-top: 5px; }
.hunt-tile-body img { width: 48px; height: 48px; flex: 0 0 auto; object-fit: contain; image-rendering: pixelated; }
.hunt-tile-body strong { display: block; overflow: hidden; color: #dce8dd; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.hunt-tile-body small { display: block; margin-top: 3px; color: #839889; font-size: 8px; }
.hunt-tile .type-badges { margin: 3px 0 8px; }
.hunt-tile-foot { display: flex; justify-content: space-between; gap: 5px; margin-top: auto; padding-top: 7px; border-top: 1px solid rgba(182, 214, 182, .09); color: #96aa9a; font: 7px 'DM Mono', monospace; }
.hunt-tile-foot span:first-child { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hunt-tile-foot strong { color: #c8d6c9; }
.biome-atlas-panel { margin: 0 0 14px; padding: 15px; overflow: hidden; border: 1px solid rgba(144, 192, 172, .17); border-radius: var(--radius); background: radial-gradient(ellipse at 8% 0%, rgba(68, 122, 105, .13), transparent 45%), linear-gradient(145deg, rgba(14, 31, 34, .96), rgba(11, 25, 31, .98)); box-shadow: var(--shadow); }
.biome-atlas-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.biome-atlas-heading h3 { margin: 4px 0 3px; color: #e2eee6; font-size: 14px; letter-spacing: -.025em; }
.biome-atlas-heading p { margin: 0; color: #91a79e; font-size: 9px; }
.biome-reset { display: inline-flex; align-items: center; gap: 7px; padding: 8px 10px; border: 1px solid rgba(141, 199, 181, .2); border-radius: 8px; color: #bfdfce; background: rgba(20, 48, 47, .64); font: 8px 'DM Mono', monospace; letter-spacing: .035em; cursor: pointer; }
.biome-reset:hover { border-color: rgba(171, 225, 191, .48); background: rgba(31, 67, 59, .82); }
.biome-reset b { color: #a3d6b3; font-size: 12px; }
.biome-atlas-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.biome-card { min-width: 0; height: 124px; position: relative; overflow: hidden; padding: 0; border: 1px solid rgba(188, 215, 193, .16); border-radius: 11px; background: #263b36; text-align: left; cursor: pointer; isolation: isolate; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.biome-card:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--biome-accent) 70%, transparent); box-shadow: 0 8px 22px rgba(0, 0, 0, .25), 0 0 16px color-mix(in srgb, var(--biome-accent) 16%, transparent); }
.biome-card.is-active { border-color: var(--biome-accent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--biome-accent) 40%, transparent), 0 0 18px color-mix(in srgb, var(--biome-accent) 18%, transparent); }
.biome-preview { width: 100%; height: 100%; position: absolute; inset: 0; z-index: -2; image-rendering: pixelated; }
.biome-card-shade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgba(4, 13, 20, .48), transparent 34%, rgba(4, 13, 17, .16) 55%, rgba(5, 14, 19, .9)); }
.biome-card-top { position: absolute; top: 8px; right: 8px; left: 8px; display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.biome-card-top small { color: rgba(231, 242, 232, .78); font: 7px 'DM Mono', monospace; letter-spacing: .12em; text-shadow: 0 1px 4px #06100f; }
.biome-card-top i { padding: 4px 6px; border: 1px solid rgba(221, 238, 226, .18); border-radius: 99px; color: #e3f1e5; background: rgba(8, 19, 24, .55); font: 7px 'DM Mono', monospace; }
.biome-card-bottom { position: absolute; right: 9px; bottom: 9px; left: 9px; display: grid; gap: 3px; }
.biome-card-bottom strong { overflow: hidden; color: #f0f5e8; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; text-shadow: 0 2px 6px rgba(0, 0, 0, .75); }
.biome-card-bottom small { overflow: hidden; color: #c3d2c9; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; text-shadow: 0 2px 5px rgba(0, 0, 0, .8); }
.atlas-section { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(260px, .7fr); gap: 14px; margin-bottom: 14px; }
.atlas-large { position: relative; height: 205px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #15281e; box-shadow: var(--shadow); }
.atlas-large img { width: 100%; height: 100%; object-fit: cover; opacity: .78; filter: saturate(.84) contrast(1.07) brightness(.7); }
.atlas-large:after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(10,24,15,.1), rgba(10,24,15,.62)), linear-gradient(0deg, rgba(10,24,15,.36), transparent 50%); }
.atlas-title { position: absolute; z-index: 1; left: 16px; bottom: 14px; }
.atlas-title small { color: #c5dfaa; font: 8px 'DM Mono', monospace; letter-spacing: .14em; }
.atlas-title strong { display: block; margin-top: 5px; font-size: 16px; }
.atlas-pin-grid { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.atlas-pin-grid i { width: 5px; height: 5px; position: absolute; border: 1px solid rgba(13, 29, 18, .7); border-radius: 50%; background: #c7e58f; box-shadow: 0 0 7px rgba(209, 241, 139, .6); transform: translate(-50%, -50%); }
.atlas-summary { padding: 15px; }
.atlas-summary h3 { margin: 8px 0 6px; font-size: 14px; }
.atlas-summary p { color: #9aab9c; font-size: 9px; line-height: 1.6; }
.atlas-legend { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 13px; }
.legend-item { display: flex; align-items: center; gap: 7px; color: #b6c7b8; font-size: 8px; }
.legend-swatch { width: 8px; height: 8px; border-radius: 50%; background: var(--moss); }
.legend-swatch.old { background: #e1b95e; }
.legend-swatch.new { background: #79cbb1; }
.legend-swatch.rare { background: #b59cfa; }

.dex-summary { display: flex; gap: 8px; align-items: center; }
.dex-summary .stat-chip { min-width: 90px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: rgba(4, 15, 10, .24); }
.stat-chip small { display: block; color: #83978a; font: 8px 'DM Mono', monospace; }
.stat-chip strong { display: block; margin-top: 3px; color: #dce9dc; font-size: 12px; }
.pokedex-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.dex-tile { min-width: 0; position: relative; display: flex; flex-direction: column; align-items: center; padding: 8px 6px; border: 1px solid var(--line); border-radius: 12px; background: rgba(19, 41, 29, .75); transition: .14s ease; }
.dex-tile:hover { transform: translateY(-2px); border-color: rgba(184, 219, 148, .32); background: rgba(37, 64, 42, .9); }
.dex-tile.owned { border-color: rgba(111, 205, 161, .25); background: linear-gradient(145deg, rgba(25, 54, 39, .95), rgba(17, 38, 28, .85)); }
.dex-tile.shiny-owned { border-color: rgba(237, 203, 117, .44); box-shadow: inset 0 0 0 1px rgba(237, 203, 117, .11); }
.dex-tile.shiny-preview:not(.shiny-owned) { border-color: rgba(237, 203, 117, .5); background: linear-gradient(145deg, rgba(71, 59, 31, .72), rgba(25, 39, 29, .92)); box-shadow: inset 0 0 0 1px rgba(237, 203, 117, .12); }
.dex-tile-open { appearance: none; width: 100%; min-width: 0; display: flex; flex: 1 1 auto; flex-direction: column; align-items: center; padding: 0; border: 0; color: inherit; background: transparent; font: inherit; cursor: pointer; }
.dex-tile-open:focus-visible, .dex-shiny-toggle:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.dex-tile .dex-no { width: 100%; display: flex; justify-content: space-between; color: #728678; font: 8px 'DM Mono', monospace; }
.dex-tile img { width: 96px; max-width: 100%; height: 96px; margin: 4px 0 3px; object-fit: contain; image-rendering: pixelated; }
.dex-tile:not(.owned) img { opacity: .45; filter: grayscale(.95) brightness(.7); }
.dex-tile[data-preview-shiny="true"] img { filter: drop-shadow(0 0 7px rgba(250, 209, 101, .64)); }
.dex-tile.shiny-preview:not(.shiny-owned) img { opacity: 1; filter: drop-shadow(0 0 7px rgba(250, 209, 101, .72)); }
.dex-tile strong { max-width: 100%; overflow: hidden; color: #d9e6da; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.dex-tile small { margin-top: 4px; color: #829788; font: 7px 'DM Mono', monospace; }
.dex-shiny-toggle { width: 100%; min-height: 23px; margin-top: 6px; padding: 3px 4px; border: 1px solid rgba(237, 203, 117, .25); border-radius: 7px; color: #f0d990; background: rgba(7, 16, 12, .48); font: 700 7px 'DM Mono', monospace; cursor: pointer; transition: .14s ease; }
.dex-shiny-toggle:hover, .dex-tile.shiny-preview .dex-shiny-toggle { border-color: rgba(237, 203, 117, .58); color: #fff0b8; background: rgba(116, 83, 27, .34); }
.dex-star { color: var(--gold); font-size: 10px; }
.dex-empty { color: #6c8071; }
.collection-bar { height: 8px; overflow: hidden; margin: 0 0 13px; border: 1px solid rgba(189, 222, 153, .14); border-radius: 999px; background: rgba(1, 12, 6, .4); }
.collection-bar i { display: block; width: 0; height: 100%; background: linear-gradient(90deg, #69bf91, #d4ec92); transition: width .5s; }

.team-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.team-slot { min-height: 172px; position: relative; display: grid; grid-template-columns: 86px 1fr; align-items: center; gap: 12px; padding: 13px; border: 1px solid var(--line); border-radius: 15px; background: linear-gradient(145deg, rgba(24, 48, 34, .92), rgba(14, 31, 22, .94)); }
.team-slot img { width: 83px; height: 83px; object-fit: contain; image-rendering: pixelated; }
.team-slot .slot-number { position: absolute; top: 10px; left: 11px; color: #7f9785; font: 8px 'DM Mono', monospace; }
.team-slot .slot-copy { min-width: 0; }
.team-slot h3 { margin: 8px 0 4px; font-size: 12px; }
.team-slot p { margin: 0; color: #8fa392; font-size: 8px; line-height: 1.5; }
.team-slot .type-badges { margin-top: 8px; }
.team-slot .slot-actions { display: flex; gap: 5px; margin-top: 11px; }
.team-slot.is-fainted { border-color: rgba(205, 103, 101, .52); background: linear-gradient(145deg, rgba(45, 31, 35, .92), rgba(27, 23, 29, .94)); }
.team-slot.is-fainted > img { filter: grayscale(.8); opacity: .62; }
.team-hp-label { display: flex; justify-content: space-between; margin-top: 6px; color: #aab8aa; font: 8px 'DM Mono', monospace; }
.team-hp { height: 5px; margin-top: 3px; }
.team-hp b, .party-hp b { background: linear-gradient(90deg, #5eae71, #a9e783); }
.party-hp { margin: 3px 0 6px; }
.pokemon-center-heal-modal .modal-pokeball { color: #b7eed3; }
.team-slot.empty-slot { display: flex; flex-direction: column; align-items: center; justify-content: center; border-style: dashed; color: #718677; background: rgba(10, 25, 17, .3); text-align: center; }
.empty-slot .empty-ball { width: 35px; height: 35px; display: grid; place-items: center; margin-bottom: 8px; border: 1px solid rgba(157, 184, 163, .2); border-radius: 50%; color: #94a795; font-size: 19px; }
.empty-slot strong { color: #b4c4b5; font-size: 10px; }
.empty-slot p { max-width: 150px; margin: 5px 0 0; font-size: 8px; }

.upgrade-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.upgrade-card { display: grid; grid-template-columns: 46px 1fr; gap: 12px; padding: 15px; border: 1px solid var(--line); border-radius: 15px; background: linear-gradient(145deg, rgba(24, 48, 34, .96), rgba(15, 32, 24, .94)); }
.upgrade-icon { width: 45px; height: 45px; display: grid; place-items: center; border: 1px solid rgba(185, 223, 148, .17); border-radius: 13px; color: #c9e79b; background: rgba(130, 183, 102, .14); font-size: 21px; }
.upgrade-card h3 { margin: 2px 0 4px; font-size: 12px; }
.upgrade-card p { min-height: 30px; margin: 0 0 10px; color: #97ab99; font-size: 9px; line-height: 1.5; }
.upgrade-card .upgrade-foot { display: flex; justify-content: space-between; align-items: center; gap: 6px; }
.upgrade-level { color: #7e9584; font: 8px 'DM Mono', monospace; }
.upgrade-price { color: var(--gold); font: 9px 'DM Mono', monospace; }

.settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.setting-card { padding: 16px; border: 1px solid var(--line); border-radius: 15px; background: rgba(20, 42, 30, .85); }
.setting-card h3 { margin: 0 0 6px; font-size: 12px; }
.setting-card p { color: #98aa9b; font-size: 9px; line-height: 1.55; }
.setting-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--line); color: #c1d0c2; font-size: 9px; }
.setting-row:first-of-type { margin-top: 11px; }
.setting-input { width: 180px; height: 33px; padding: 0 9px; border: 1px solid var(--line-strong); border-radius: 8px; color: var(--ink); background: rgba(2, 12, 6, .3); font-size: 9px; }

.modal-backdrop { position: fixed; z-index: 20; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(2, 9, 5, .78); backdrop-filter: blur(8px); animation: fade-in .18s ease; }
.modal { width: min(580px, 100%); overflow: hidden; border: 1px solid rgba(194, 229, 158, .22); border-radius: 21px; background: linear-gradient(145deg, #1c3827, #0e2117); box-shadow: 0 26px 90px rgba(0,0,0,.55); animation: rise-in .23s ease; }
.hunt-picker-backdrop { padding: clamp(8px, 2vw, 24px); }
.hunt-picker-modal { display: flex; flex-direction: column; width: min(1180px, 100%); max-width: none; height: min(900px, calc(100vh - 40px)); max-height: calc(100vh - 40px); }
.hunt-picker-head { flex: 0 0 auto; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 17px 20px 13px; border-bottom: 1px solid rgba(194, 229, 158, .12); }
.hunt-picker-head h2 { margin: 5px 0 3px; font-size: 20px; letter-spacing: -.035em; }
.hunt-picker-head p { margin: 0; color: #a4b7a5; font-size: 10px; }
.hunt-picker-head .adventure-panel-close { flex: 0 0 auto; }
.hunt-picker-toolbar { flex: 0 0 auto; margin: 0; padding: 12px 18px; }
.hunt-picker-toolbar .toolbar { flex: 1; min-width: 0; }
.hunt-picker-gallery { flex: 1 1 auto; align-content: start; min-height: 0; overflow-y: auto; grid-template-columns: repeat(5, minmax(0, 1fr)); padding: 0 18px 18px; scrollbar-color: rgba(194, 229, 158, .35) rgba(2, 12, 6, .22); scrollbar-width: thin; }
.hunt-picker-gallery .hunt-tile { min-height: 136px; }
.modal-head { padding: 21px 23px 13px; text-align: center; }
.modal-head .modal-pokeball { width: 50px; height: 50px; margin: 0 auto 11px; display: grid; place-items: center; border: 2px solid rgba(220, 236, 208, .55); border-radius: 50%; color: var(--lime); background: linear-gradient(#d95e5e 0 45%, #13271c 45% 54%, #e8eee0 54%); box-shadow: 0 0 25px rgba(198, 226, 145, .16); font-size: 20px; }
.modal-head h2 { margin: 0 0 5px; font-size: 21px; letter-spacing: -.04em; }
.modal-head p { margin: 0; color: #a4b7a5; font-size: 10px; line-height: 1.5; }
.starter-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; padding: 6px 18px 17px; }
.starter-choice { min-width: 0; display: flex; flex-direction: column; align-items: center; padding: 12px 8px 10px; border: 1px solid var(--line-strong); border-radius: 13px; background: rgba(3, 13, 7, .28); cursor: pointer; transition: .15s ease; }
.starter-choice:hover, .starter-choice.selected { transform: translateY(-2px); border-color: rgba(202, 235, 150, .55); background: rgba(87, 123, 66, .17); }
.starter-choice img { width: 88px; height: 85px; object-fit: contain; image-rendering: pixelated; }
.starter-choice strong { margin-top: 4px; font-size: 11px; }
.starter-choice small { margin-top: 4px; color: #91a595; font: 8px 'DM Mono', monospace; }
.modal-fields { display: grid; grid-template-columns: 1fr auto; gap: 9px; padding: 0 22px 18px; }
.modal-fields input { min-width: 0; height: 38px; padding: 0 11px; border: 1px solid var(--line-strong); border-radius: 10px; color: var(--ink); background: rgba(2, 12, 6, .34); font-size: 10px; }
.modal-fields .button { height: 38px; }
.modal-footer { padding: 0 22px 16px; color: #748a77; font-size: 8px; text-align: center; }
.confirm-content { padding: 5px 23px 18px; color: #a9b9ab; font-size: 10px; line-height: 1.6; text-align: center; }
.confirm-actions { display: flex; justify-content: center; gap: 8px; padding: 0 20px 20px; }
.pokemon-detail { display: grid; grid-template-columns: 136px 1fr; gap: 17px; align-items: center; padding: 0 23px 19px; }
.pokemon-detail-art { height: 136px; display: grid; place-items: center; border: 1px solid rgba(189, 221, 151, .13); border-radius: 16px; background: radial-gradient(circle, rgba(166, 209, 120, .15), rgba(4, 18, 8, .14)); }
.pokemon-detail-art img { width: 118px; height: 118px; object-fit: contain; image-rendering: pixelated; }
.pokemon-detail h3 { margin: 4px 0 7px; font-size: 18px; }
.pokemon-detail p { color: #9bad9d; font-size: 9px; line-height: 1.55; }
.detail-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 11px 0; }
.detail-stats .mini-stat { padding: 7px 4px; }
.toast-region { position: fixed; z-index: 30; right: 18px; bottom: 18px; display: grid; gap: 8px; pointer-events: none; }
.toast { width: min(340px, calc(100vw - 36px)); display: flex; align-items: center; gap: 10px; padding: 11px 13px; border: 1px solid rgba(196, 228, 157, .24); border-radius: 12px; color: #e1ecdf; background: rgba(24, 50, 33, .96); box-shadow: 0 14px 30px rgba(0,0,0,.3); font-size: 10px; animation: toast-in .25s ease; }
.toast .toast-mark { color: var(--lime); font-size: 15px; }
.toast.shiny-toast { border-color: rgba(241, 205, 114, .42); background: linear-gradient(135deg, rgba(98, 73, 31, .96), rgba(37, 46, 27, .98)); }
.toast.shiny-toast .toast-mark { color: var(--gold); }
.toast.offline-toast { border-color: rgba(118, 216, 177, .3); }
.hidden { display: none !important; }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes rise-in { from { transform: translateY(10px) scale(.98); opacity: .4; } to { transform: translateY(0) scale(1); opacity: 1; } }
@keyframes toast-in { from { transform: translateX(12px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }

@media (max-width: 1250px) {
  .main-content { padding: 0 21px 24px; }
  .adventure-grid { grid-template-columns: minmax(175px, .72fr) minmax(340px, 1.45fr) minmax(218px, .88fr); gap: 10px; }
  .hunt-gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pokedex-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .sidebar { width: 220px; padding-left: 12px; padding-right: 12px; }
  .app-shell { grid-template-columns: 220px minmax(0, 1fr); }
}
@media (max-width: 1040px) {
  .adventure-grid { grid-template-columns: minmax(180px, .72fr) minmax(320px, 1.3fr); }
  .right-stack { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
  .hunt-card { min-height: 168px; }
  .battle-log { min-height: 168px; }
  .below-adventure { grid-template-columns: 1fr; }
  .atlas-preview { min-height: 140px; }
  .pokedex-grid { grid-template-columns: repeat(5, minmax(0,1fr)); }
  .team-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 820px) {
  body { font-size: 12px; }
  .app-shell { display: block; padding-bottom: 67px; }
  .sidebar { position: fixed; top: auto; right: 0; bottom: 0; left: 0; width: 100%; height: 64px; min-height: 0; display: block; padding: 0 6px max(0px, env(safe-area-inset-bottom)); border-top: 1px solid rgba(180, 216, 186, .15); border-right: 0; background: rgba(11, 26, 18, .97); backdrop-filter: blur(12px); box-shadow: 0 -8px 28px rgba(0,0,0,.22); }
  .brand, .trainer-card, .nav-label, .sidebar-spacer, .sidebar-quest, .sidebar-footer { display: none; }
  .main-nav { height: 63px; display: grid; grid-template-columns: repeat(6,1fr); gap: 2px; align-items: center; }
  .nav-button.mobile-settings-nav { display: flex; }
  .nav-button { height: 52px; flex-direction: column; justify-content: center; gap: 2px; padding: 3px 2px; border-radius: 9px; box-shadow: none !important; }
  .nav-button.is-active { border-color: rgba(178, 216, 136, .13); box-shadow: inset 0 2px var(--moss) !important; }
  .nav-icon { font-size: 16px; }
  .nav-button > span:nth-child(2) { flex: 0; font-size: 8px; }
  .nav-pill { display: none; }
  .nav-count { font-size: 7px; }
  .main-content { padding: 0 12px 18px; }
  .topbar { min-height: 74px; gap: 9px; }
  .topbar h1 { max-width: 185px; font-size: 17px; line-height: 1.15; }
  .breadcrumbs { font-size: 7px; }
  .topbar-resources { gap: 5px; }
  .resource-chip { min-width: 66px; height: 39px; gap: 5px; padding: 0 6px; border-radius: 10px; }
  .resource-chip small { font-size: 6px; }
  .resource-chip strong { font-size: 9px; }
  .coin-icon, .research-icon { width: 21px; height: 21px; border-radius: 7px; font-size: 12px; }
  .notice-button { display: none; }
  .research-chip { min-width: 56px; }
  .content-area { padding-top: 16px; }
  .page-intro { align-items: flex-start; flex-direction: column; gap: 10px; margin-bottom: 12px; }
  .page-intro h2 { font-size: 20px; }
  .page-intro p { font-size: 9px; }
  .page-actions { width: 100%; }
  .adventure-grid { grid-template-columns: 1fr; gap: 10px; }
  .left-stack { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .team-panel { min-height: 0; grid-column: 1 / -1; }
  .team-panel .panel-body { padding: 0 10px 10px; }
  .active-pokemon { grid-template-columns: 57px 1fr; gap: 7px; padding: 7px; }
  .active-pokemon-art { width: 55px; height: 55px; }
  .active-pokemon-art img { width: 54px; height: 54px; }
  .active-pokemon-copy h3 { font-size: 12px; }
  .active-pokemon-copy .species-id { font-size: 7px; }
  .active-stat-row { gap: 4px; margin-top: 7px; }
  .mini-stat { padding: 5px 2px; }
  .mini-stat small { font-size: 6px; }
  .mini-stat strong { font-size: 9px; }
  .quick-stat { padding: 8px 7px; }
  .quick-stat strong { font-size: 14px; }
  .partner-panel { min-height: 90px; }
  .partner-row { padding: 7px; }
  .partner-row img { width: 34px; height: 34px; }
  .world-panel { min-height: 390px; }
  .map-wrap { min-height: 286px; }
  .movement-hint { left: 8px; bottom: 8px; padding: 5px 6px; font-size: 6px; }
  .world-online { padding: 7px 8px; font-size: 7px; }
  .world-bottom { padding: 8px; }
  .right-stack { display: grid; grid-template-columns: 1fr; gap: 9px; }
  .hunt-card { min-height: 155px; }
  .hunt-card-art { top: 31px; width: 93px; height: 93px; }
  .hunt-card-art img { width: 88px; height: 88px; }
  .battle-log { min-height: 125px; }
  .log-list { max-height: 110px; }
  .below-adventure { grid-template-columns: 1fr; gap: 9px; margin-top: 10px; }
  .move-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; padding: 0 10px 10px; }
  .move-card { padding: 6px; }
  .atlas-preview { min-height: 126px; }
  .hunt-toolbar { align-items: stretch; flex-direction: column; gap: 8px; }
  .toolbar { width: 100%; }
  .biome-atlas-panel { padding: 10px; }
  .biome-atlas-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .biome-card { height: 116px; }
  .biome-atlas-heading { align-items: flex-start; }
  .biome-reset { padding: 7px; font-size: 7px; }
  .search-field { min-width: 0; flex: 1; }
  .select-field { min-width: 105px; }
  .hunt-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
  .hunt-tile { min-height: 135px; padding: 8px; }
  .hunt-tile-body img { width: 40px; height: 40px; }
  .hunt-tile-body strong { font-size: 9px; }
  .hunt-tile-foot { font-size: 6px; }
  .atlas-section { grid-template-columns: 1fr; gap: 9px; }
  .atlas-large { height: 175px; }
  .atlas-summary { padding: 12px; }
  .pokedex-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }
  .dex-tile { padding: 7px 4px; }
  .dex-tile img { width: 96px; max-width: 100%; height: 96px; }
  .dex-tile strong { font-size: 7px; }
  .dex-tile small { font-size: 6px; }
  .dex-summary { width: 100%; }
  .dex-summary .stat-chip { min-width: 0; flex: 1; padding: 6px 7px; }
  .stat-chip strong { font-size: 10px; }
  .team-grid { grid-template-columns: 1fr; gap: 8px; }
  .team-slot { min-height: 135px; grid-template-columns: 72px 1fr; padding: 10px; }
  .team-slot img { width: 68px; height: 68px; }
  .upgrade-grid, .settings-grid { grid-template-columns: 1fr; gap: 8px; }
  .upgrade-card { padding: 12px; }
  .starter-grid { padding: 6px 12px 14px; gap: 6px; }
  .starter-choice { padding: 9px 4px 8px; }
  .starter-choice img { width: 66px; height: 68px; }
  .starter-choice strong { font-size: 9px; }
  .starter-choice small { font-size: 7px; }
  .modal-head { padding: 17px 14px 11px; }
  .modal-head h2 { font-size: 18px; }
  .modal-fields { grid-template-columns: 1fr; padding: 0 14px 14px; }
  .modal-footer { padding-bottom: 14px; }
  .pokemon-detail { grid-template-columns: 94px 1fr; gap: 11px; padding: 0 13px 14px; }
  .pokemon-detail-art { height: 94px; }
  .pokemon-detail-art img { width: 83px; height: 83px; }
  .pokemon-detail h3 { font-size: 15px; }
  .detail-stats { gap: 4px; }
}
@media (max-width: 390px) {
  .main-content { padding-right: 9px; padding-left: 9px; }
  .topbar h1 { max-width: 145px; font-size: 15px; }
  .resource-chip { min-width: 58px; }
  .research-chip { min-width: 49px; }
  .hunt-card h3 { max-width: 58%; }
  .hunt-card .hunt-subtitle { max-width: 60%; }
  .atlas-preview { grid-template-columns: 1fr 1fr; }
}

/* Adventure client: a dense in-game HUD around the live route scene. */
.expedition-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 10px; }
.expedition-heading .eyebrow { color:#a5d38b; }
.expedition-heading h2 { margin:3px 0 0; font-size:clamp(17px,1.6vw,21px); letter-spacing:-.04em; }
.expedition-heading-actions { display:flex; align-items:center; gap:8px; }
.adventure-client { min-width:0; display:grid; gap:9px; }
.game-world-panel { position:relative; min-height:0; overflow:visible; border:0; border-radius:0; background:transparent; box-shadow:none; }
.game-world-panel .map-wrap { height:min(64vh,650px); min-height:440px; position:relative; overflow:hidden; border:2px solid #857d5b; border-radius:7px; background:#304d37; box-shadow:0 12px 32px rgba(0,0,0,.34), inset 0 0 0 1px rgba(245,225,157,.24); }
.game-world-panel #huntCanvas { z-index:0; image-rendering:auto; cursor:crosshair; }
.game-world-panel .map-vignette { z-index:1; background:linear-gradient(180deg,rgba(5,12,14,.18),transparent 27%,transparent 66%,rgba(5,12,14,.32)),linear-gradient(90deg,rgba(5,12,14,.12),transparent 19%,transparent 81%,rgba(5,12,14,.12)); }
.game-world-panel .world-topline { z-index:3; top:12px; left:12px; right:12px; align-items:flex-start; justify-content:flex-end; }
.world-hud-side { display:grid; justify-items:end; gap:6px; }
.world-online { padding:6px 9px; border:1px solid rgba(225,233,187,.42); border-radius:4px; color:#eff7dc; background:rgba(17,28,27,.9); font-size:8px; box-shadow:0 2px 8px rgba(0,0,0,.24); }
.world-online i { background:#8ce078; box-shadow:0 0 8px #8ce078; }
.world-online:has(#worldStatus) { letter-spacing:.08em; }
.world-minimap { width:150px; padding:5px; border:1px solid rgba(235,223,171,.54); border-radius:5px; background:rgba(13,25,27,.94); box-shadow:0 4px 12px rgba(0,0,0,.3); }
.minimap-heading { display:flex; justify-content:space-between; gap:6px; margin-bottom:4px; color:#d8dfc7; font:7px 'DM Mono',monospace; letter-spacing:.06em; }
.minimap-heading b { color:#eef3d7; font-weight:700; }
#miniMapCanvas { display:block; width:100%; height:76px; border:1px solid rgba(255,255,255,.23); image-rendering:auto; }
.world-bottom { position:absolute; z-index:3; right:0; bottom:0; left:0; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; min-height:56px; padding:8px 12px; border-top:1px solid rgba(231,220,166,.38); background:linear-gradient(90deg,rgba(14,27,23,.94),rgba(15,27,30,.9)); pointer-events:none; }
.movement-hint { position:static; justify-self:center; padding:6px 9px; border:1px solid rgba(232,220,160,.32); border-radius:4px; color:#f2efd9; background:rgba(8,20,20,.75); font-size:8px; text-align:center; }
.scene-controls { pointer-events:auto; }
.scene-controls button { width:29px; height:28px; border-color:rgba(232,220,160,.42); border-radius:4px; color:#f4edcd; background:rgba(14,25,26,.92); font-size:16px; }
.adventure-dock { min-width:0; display:grid; grid-template-columns:minmax(205px,1.05fr) minmax(230px,1.22fr) minmax(175px,.87fr) minmax(200px,1.1fr); gap:7px; padding:8px; border:1px solid rgba(183,204,172,.2); border-radius:6px; background:linear-gradient(135deg,rgba(18,33,34,.98),rgba(17,31,28,.98)); box-shadow:0 7px 20px rgba(0,0,0,.18); }
.hud-unit { min-width:0; display:flex; align-items:center; gap:8px; padding:7px; border:1px solid rgba(173,198,178,.12); border-radius:4px; background:rgba(4,14,14,.36); }
.hud-unit-art { width:49px; height:49px; flex:0 0 49px; display:grid; place-items:center; border:1px solid rgba(196,218,169,.2); border-radius:4px; background:radial-gradient(circle,rgba(191,222,139,.15),rgba(16,34,27,.08) 68%); }
.hud-unit-art img { width:46px; height:46px; object-fit:contain; image-rendering:pixelated; filter:drop-shadow(0 3px 4px rgba(0,0,0,.56)); }
.target-art { border-color:rgba(220,139,127,.25); }
.hud-unit-copy { flex:1; min-width:0; }
.hud-unit-caption { display:flex; align-items:center; justify-content:space-between; gap:5px; color:#a6b8a8; font:7px 'DM Mono',monospace; letter-spacing:.035em; }
.hud-unit-caption span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hud-unit-caption b { color:#f0d88d; font-size:8px; }
.hud-unit-caption i { font-style:normal; }
.hud-unit-copy > strong { display:block; overflow:hidden; margin:3px 0 6px; color:#f3f1de; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.hud-bar-label { display:flex; justify-content:space-between; gap:5px; color:#9db09f; font:7px 'DM Mono',monospace; }
.hud-bar-label i { overflow:hidden; color:#dce6d6; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.xp-hud-track, .enemy-hp { height:7px; margin-top:4px; border:1px solid rgba(0,0,0,.4); border-radius:2px; background:rgba(0,0,0,.55); }
.xp-hud-track b { background:linear-gradient(90deg,#6eaa5e,#c7ed7a); box-shadow:0 0 7px rgba(157,220,109,.45); }
.enemy-hp b { background:linear-gradient(90deg,#a84642,#ed8872); box-shadow:0 0 7px rgba(224,96,79,.32); }
.hud-combat-controls { min-width:0; padding:7px; border:1px solid rgba(173,198,178,.12); border-radius:4px; background:rgba(4,14,14,.36); }
.combat-control-heading, .hud-log-heading { display:flex; justify-content:space-between; gap:6px; color:#e7d88e; font:8px 'DM Mono',monospace; letter-spacing:.06em; }
.combat-control-heading small { color:#a8b7a9; font:8px 'DM Mono',monospace; }
.hud-combat-controls .control-row { gap:5px; margin-top:6px; }
.hud-combat-controls .hunt-toggle { min-height:29px; border:1px solid rgba(174,209,132,.38); border-radius:4px; color:#152018; background:linear-gradient(135deg,#c9e88e,#8bbd6b); font-size:9px; }
.hud-combat-controls .hunt-toggle.is-paused { color:#f0d992; border-color:rgba(229,193,104,.4); background:rgba(99,76,34,.42); }
.hud-combat-controls .speed-select { width:62px; border-radius:4px; color:#e7ebda; background:#263e38; font-size:9px; }
.hud-toggle-row { display:flex; align-items:center; justify-content:space-between; gap:5px; margin-top:7px; color:#b4c2b1; font-size:8px; }
.hud-toggle-row .toggle-switch { width:27px; height:15px; flex:0 0 27px; }
.hud-toggle-row .toggle-switch:after { width:9px; height:9px; top:3px; left:3px; }
.hud-toggle-row .toggle-switch.on:after { left:15px; }
.hud-log { min-width:0; padding:7px; border:1px solid rgba(173,198,178,.12); border-radius:4px; background:rgba(4,14,14,.36); }
.hud-log .log-list { max-height:54px; margin-top:6px; gap:4px; overflow:auto; }
.hud-log .log-entry { grid-template-columns:30px 1fr; gap:5px; font-size:7px; line-height:1.3; }
.hud-log .log-entry time { font-size:7px; }
.hud-log .log-empty { font-size:8px; }
.adventure-statbar { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; padding:6px 10px; border:1px solid rgba(183,204,172,.13); border-radius:4px; color:#9aaf9d; background:rgba(14,27,24,.72); font:7px 'DM Mono',monospace; letter-spacing:.06em; }
.adventure-statbar b { margin-left:4px; color:#e1e8d4; font-size:9px; }
.adventure-client .moves-panel { min-height:0; border-color:rgba(186,204,165,.2); border-radius:6px; background:linear-gradient(145deg,rgba(20,37,31,.98),rgba(13,27,24,.98)); }
.adventure-client .moves-panel .panel-heading { padding:9px 11px 7px; }
.adventure-client .moves-panel .panel-heading strong { color:#e6ecd8; font-size:10px; }
.adventure-client .move-list { gap:6px; padding:0 10px 10px; }
.adventure-client .move-card { min-height:48px; grid-template-columns:31px minmax(0,1fr) auto; padding:6px 8px; border-color:color-mix(in srgb,var(--move-accent,#b9d596) 36%,transparent); border-radius:4px; background:linear-gradient(100deg,color-mix(in srgb,var(--move-accent,#b9d596) 12%,rgba(4,15,10,.5)),rgba(4,15,10,.42)); }
.adventure-client .move-symbol { width:29px; height:29px; border:1px solid color-mix(in srgb,var(--move-accent,#b9d596) 50%,transparent); border-radius:4px; color:var(--move-accent,#d3e9a3); background:color-mix(in srgb,var(--move-accent,#b9d596) 18%,transparent); font-size:14px; }
.adventure-client .move-card strong { color:#edf0df; font-size:9px; }
.adventure-client .move-card small { color:#afbcaa; font-size:7px; }
.adventure-client .move-cast-hint { color:#c3d7b7; }
.move-card.type-normal { --move-accent:#d1d3ae; }.move-card.type-fighting { --move-accent:#f28d64; }.move-card.type-flying { --move-accent:#a9c7f4; }.move-card.type-poison { --move-accent:#cf8be4; }.move-card.type-ground { --move-accent:#d2ae75; }.move-card.type-rock { --move-accent:#c8b97c; }.move-card.type-bug { --move-accent:#bce56b; }.move-card.type-ghost { --move-accent:#b8a6ff; }.move-card.type-steel { --move-accent:#b9d1dc; }.move-card.type-fire { --move-accent:#ff824e; }.move-card.type-water { --move-accent:#62bdf3; }.move-card.type-grass { --move-accent:#75db86; }.move-card.type-electric { --move-accent:#ffe05a; }.move-card.type-psychic { --move-accent:#ee8bd0; }.move-card.type-ice { --move-accent:#8be4ec; }.move-card.type-dragon { --move-accent:#9f8aff; }.move-card.type-dark { --move-accent:#a9a9c8; }.move-card.type-fairy { --move-accent:#f28fb8; }
.town-atlas-panel { display:grid; grid-template-columns:190px minmax(0,1fr); gap:16px; align-items:center; margin:0 0 12px; padding:11px; border:1px solid rgba(183,204,172,.18); border-radius:7px; background:linear-gradient(120deg,rgba(16,34,34,.96),rgba(20,39,31,.96)); }
.town-atlas-art { height:112px; display:grid; place-items:center; overflow:hidden; border:1px solid rgba(207,190,127,.28); border-radius:4px; background:repeating-conic-gradient(#202d30 0 25%,#263538 0 50%) 50%/16px 16px; }
.town-atlas-art img { width:100%; height:100%; object-fit:contain; image-rendering:pixelated; }
.town-atlas-copy h3 { margin:4px 0; color:#e7eddc; font-size:15px; }
.town-atlas-copy p { max-width:560px; margin:0 0 6px; color:#aab9aa; font-size:9px; line-height:1.45; }
.town-atlas-copy small { color:#d3c58d; font:8px 'DM Mono',monospace; }
.biome-preview { image-rendering:auto; }
.biome-card-shade { background:linear-gradient(180deg,rgba(3,12,16,.38),transparent 30%,rgba(3,12,16,.08) 52%,rgba(3,12,16,.84)); }
.hunt-tile { background:linear-gradient(145deg,rgba(23,47,34,.86),rgba(15,32,24,.96)); }
@media (max-width:1120px) {
  .adventure-dock { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hud-log { grid-column:1 / -1; }
  .game-world-panel .map-wrap { height:min(61vh,600px); }
}
@media (max-width:820px) {
  .expedition-heading { align-items:flex-start; }
  .expedition-heading h2 { font-size:16px; }
  .expedition-heading-actions .button { min-height:28px; padding:0 8px; font-size:8px; }
  .game-world-panel .map-wrap { height:62vh; min-height:360px; max-height:540px; border-radius:5px; }
  .game-world-panel .world-topline { top:7px; left:7px; right:7px; }
  .world-hud-side { gap:4px; }
  .world-online { padding:5px 6px; font-size:6px; }
  .world-minimap { width:112px; padding:4px; }
  .minimap-heading { font-size:6px; }
  #miniMapCanvas { height:57px; }
  .world-bottom { grid-template-columns:minmax(0,1fr) auto; gap:5px; min-height:47px; padding:6px 7px; }
  .movement-hint { position:absolute; bottom:57px; left:47px; justify-self:start; padding:4px 5px; font-size:6px; }
  .scene-controls { gap:3px; }
  .scene-controls button { width:25px; height:25px; }
  .adventure-dock { gap:5px; padding:6px; }
  .hud-unit { gap:5px; padding:5px; }
  .hud-unit-art { width:39px; height:39px; flex-basis:39px; }
  .hud-unit-art img { width:37px; height:37px; }
  .hud-unit-caption { font-size:6px; }
  .hud-unit-copy > strong { font-size:10px; }
  .hud-bar-label { font-size:6px; }
  .hud-combat-controls { padding:5px; }
  .hud-toggle-row { gap:3px; font-size:7px; }
  .hud-log .log-list { max-height:49px; }
  .adventure-client .move-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .town-atlas-panel { grid-template-columns:120px minmax(0,1fr); gap:9px; padding:8px; }
  .town-atlas-art { height:92px; }
  .town-atlas-copy h3 { font-size:12px; }
  .town-atlas-copy p { font-size:8px; }
}
@media (max-width:480px) {
  .world-minimap { width:98px; }
  #miniMapCanvas { height:48px; }
  .movement-hint { left:38px; font-size:5px; letter-spacing:0; }
  .adventure-dock { grid-template-columns:1fr 1fr; }
  .hud-unit-caption { letter-spacing:0; }
  .hud-unit-caption span { font-size:5px; }
  .hud-unit-copy > strong { font-size:9px; }
  .hud-toggle-row { font-size:6px; }
  .adventure-statbar { justify-content:flex-start; gap:8px 14px; font-size:6px; }
  .adventure-client .moves-panel .panel-heading { align-items:flex-start; }
  .adventure-client .moves-panel .panel-heading .chip { font-size:6px; }
  .town-atlas-panel { grid-template-columns:92px minmax(0,1fr); gap:7px; }
  .town-atlas-art { height:80px; }
  .town-atlas-copy .eyebrow { font-size:7px; }
  .biome-atlas-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.evolution-preview { margin:5px 0 0; color:#e7d89d; font-size:9px; line-height:1.45; }
.evolution-requirements { max-height:calc(100vh - 36px); overflow-y:auto; }
.evolution-options { display:grid; gap:8px; max-height:min(56vh,470px); overflow-y:auto; padding:0 18px 16px; }
.evolution-option { display:grid; grid-template-columns:72px minmax(0,1fr); gap:12px; align-items:center; padding:10px; border:1px solid rgba(194,229,158,.16); border-radius:14px; background:rgba(4,14,8,.32); }
.evolution-option-art { display:grid; place-items:center; width:68px; height:68px; border-radius:12px; background:radial-gradient(circle,rgba(174,218,119,.17),rgba(7,20,12,.18) 72%); }
.evolution-option-art img { width:60px; height:60px; object-fit:contain; image-rendering:pixelated; filter:drop-shadow(0 5px 6px rgba(0,0,0,.35)); }
.evolution-option-copy { display:grid; justify-items:start; gap:4px; min-width:0; }
.evolution-option-copy > strong { color:#eff4dd; font-size:14px; }
.evolution-option-copy > small { color:#c6d4b2; font-size:10px; }
.evolution-status { color:#d29b88; font-size:9px; }
.evolution-status.ready { color:#a9e5a9; }
.evolution-anime-note { margin:2px 0; color:#d9c584; font-size:9px; line-height:1.45; }

/* Aventura uses a compact pixel-client frame; the other screens keep the dashboard shell. */
body.adventure-mode { min-width:320px; color:#e9d8bd; background:#201a22; }
body.adventure-mode .app-shell { display:block; width:100%; min-height:100vh; height:100vh; }
body.adventure-mode .sidebar,
body.adventure-mode .topbar { display:none !important; }
body.adventure-mode .main-content { display:flex; flex-direction:column; width:100%; min-height:0; height:100vh; padding:0; overflow:hidden; }
body.adventure-mode .content-area { flex:1; min-height:0; padding:5px 7px 7px; overflow:auto; background:#211a22; }
body.adventure-mode .expedition-heading { min-height:31px; margin:0 0 4px; align-items:center; gap:8px; }
body.adventure-mode .expedition-heading .eyebrow { color:#f0c57f; font:700 7px 'Courier New',monospace; letter-spacing:.1em; }
body.adventure-mode .expedition-heading h2 { margin:1px 0 0; color:#f3e1bf; font:700 13px 'Courier New',monospace; letter-spacing:0; }
body.adventure-mode .expedition-heading-actions { flex:0 0 auto; gap:3px; }
body.adventure-mode .field-tabs button { min-width:48px; height:25px; padding:2px 5px; border:2px solid #75513d; border-top-color:#b58662; border-left-color:#a77b5b; border-radius:0; color:#f1d6b7; background:linear-gradient(#50364e,#392538); box-shadow:inset 1px 1px #795779, inset -1px -1px #231a2a; font:700 8px 'Courier New',monospace; cursor:pointer; }
body.adventure-mode .field-tabs button:hover { color:#fff0c5; background:linear-gradient(#795283,#563556); }
body.adventure-mode .adventure-client { gap:4px; }
body.adventure-mode .game-world-panel { overflow:hidden; }
body.adventure-mode .game-world-panel .map-wrap { flex:0 0 auto; height:clamp(360px,min(80vh,calc(100vh - 228px)),920px); min-height:360px; border:3px solid #76513b; border-radius:0; background:#315c3b; box-shadow:inset 0 0 0 2px #b18159, 0 3px 0 #160f18, 0 8px 18px rgba(0,0,0,.35); }
body.adventure-mode .game-world-panel #huntCanvas { image-rendering:pixelated; cursor:crosshair; }
body.adventure-mode .game-world-panel .map-vignette { background:linear-gradient(180deg,rgba(22,12,24,.18),transparent 17%,transparent 78%,rgba(21,12,20,.22)); pointer-events:none; }
body.adventure-mode .world-topline { top:7px; left:7px; right:7px; align-items:flex-start; }
body.adventure-mode .world-hud-side { gap:4px; align-items:flex-start; }
body.adventure-mode .world-online { padding:4px 6px; border:2px solid #704a3b; border-radius:0; color:#f3d7b0; background:rgba(48,30,39,.93); font:700 7px 'Courier New',monospace; }
body.adventure-mode .world-online i { width:5px; height:5px; background:#a8e276; box-shadow:0 0 5px #a8e276; }
body.adventure-mode .world-minimap { width:122px; padding:4px; border:2px solid #805740; border-radius:0; background:rgba(44,30,37,.92); }
body.adventure-mode .minimap-heading { margin-bottom:3px; color:#dfbb8b; font:700 6px 'Courier New',monospace; }
body.adventure-mode .minimap-heading b { color:#fff0cf; }
body.adventure-mode #miniMapCanvas { height:54px; border:1px solid #b88a5d; image-rendering:pixelated; }
body.adventure-mode .world-bottom { min-height:32px; grid-template-columns:minmax(0,1fr) auto; gap:5px; padding:4px 7px; border-top:2px solid #9a6848; background:rgba(42,28,39,.94); }
body.adventure-mode .movement-hint { padding:3px 5px; border:1px solid #7f5a42; border-radius:0; color:#ecd8b9; background:#382837; font:700 6px 'Courier New',monospace; }
body.adventure-mode .scene-controls { gap:2px; }
body.adventure-mode .scene-controls button { width:23px; height:22px; border:2px solid #8c6445; border-radius:0; color:#f8dfb6; background:#503548; font:700 13px 'Courier New',monospace; }
body.adventure-mode .adventure-dock { grid-template-columns:minmax(170px,1fr) minmax(180px,1fr) minmax(145px,.8fr) minmax(170px,1fr); gap:4px; padding:4px; border:2px solid #76513d; border-radius:0; background:#362538; box-shadow:inset 1px 1px #8c654b, 0 2px #160f18; }
body.adventure-mode .hud-unit,
body.adventure-mode .hud-combat-controls,
body.adventure-mode .hud-log { gap:5px; padding:5px; border:1px solid #604443; border-radius:0; background:#291f2a; }
body.adventure-mode .hud-unit-art { width:39px; height:39px; flex-basis:39px; border:1px solid #8d674b; border-radius:0; background:#352937; }
body.adventure-mode .hud-unit-art img { width:36px; height:36px; image-rendering:pixelated; }
body.adventure-mode .hud-unit-caption { color:#c7aa8d; font:700 6px 'Courier New',monospace; }
body.adventure-mode .hud-unit-caption b { color:#f0c878; font-size:7px; }
body.adventure-mode .hud-unit-copy > strong { margin:2px 0 4px; color:#fff0d6; font:700 10px 'Courier New',monospace; }
body.adventure-mode .hud-bar-label { color:#c8ad8e; font:700 6px 'Courier New',monospace; }
body.adventure-mode .xp-hud-track,
body.adventure-mode .enemy-hp { height:6px; margin-top:3px; border-radius:0; background:#1a151b; }
body.adventure-mode .xp-hud-track b { background:#9bcf68; box-shadow:none; }
body.adventure-mode .enemy-hp b { background:#d86468; box-shadow:none; }
body.adventure-mode .combat-control-heading,
body.adventure-mode .hud-log-heading { color:#e9c47f; font:700 7px 'Courier New',monospace; }
body.adventure-mode .hud-combat-controls .hunt-toggle { min-height:24px; padding:3px 6px; border:2px solid #987348; border-radius:0; color:#fbe9bf; background:#63502f; font:700 7px 'Courier New',monospace; }
body.adventure-mode .hud-combat-controls .hunt-toggle.is-paused { color:#f1ce8a; background:#392a32; }
body.adventure-mode .hud-combat-controls .speed-select { width:52px; min-height:24px; border:1px solid #8e674a; border-radius:0; color:#f1dfc4; background:#352839; font:700 7px 'Courier New',monospace; }
body.adventure-mode .hud-toggle-row { margin-top:4px; color:#cbb194; font:700 6px 'Courier New',monospace; }
body.adventure-mode .hud-toggle-row .toggle-switch { width:22px; height:13px; flex-basis:22px; border:1px solid #89614a; border-radius:0; background:#251a27; }
body.adventure-mode .hud-toggle-row .toggle-switch:after { width:7px; height:7px; top:2px; left:2px; border-radius:0; background:#b5a084; }
body.adventure-mode .hud-toggle-row .toggle-switch.on:after { left:11px; background:#f0ca77; }
body.adventure-mode .hud-log .log-list { max-height:39px; margin-top:4px; gap:3px; }
body.adventure-mode .hud-log .log-entry { grid-template-columns:25px 1fr; gap:4px; color:#dfceb0; font:6px 'Courier New',monospace; }
body.adventure-mode .hud-log .log-entry time { color:#c99d69; font:6px 'Courier New',monospace; }
body.adventure-mode .adventure-statbar { gap:5px 12px; padding:4px 7px; border:1px solid #674944; border-radius:0; color:#c8aa89; background:#2b222b; font:700 6px 'Courier New',monospace; }
body.adventure-mode .adventure-statbar b { color:#f1d8ad; font:700 8px 'Courier New',monospace; }
body.adventure-mode .adventure-client .moves-panel { border:2px solid #76513d; border-radius:0; background:#352638; box-shadow:inset 1px 1px #8b654b; }
body.adventure-mode .adventure-client .moves-panel .panel-heading { min-height:25px; padding:5px 7px 3px; }
body.adventure-mode .adventure-client .moves-panel .panel-heading strong { color:#f3dfbf; font:700 8px 'Courier New',monospace; }
body.adventure-mode .adventure-client .moves-panel .chip { padding:2px 4px; border:1px solid #795b45; border-radius:0; color:#dfc39d; background:#2a2029; font:700 6px 'Courier New',monospace; }
body.adventure-mode .adventure-client .move-list { grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; padding:0 5px 5px; }
body.adventure-mode .adventure-client .move-card { min-height:36px; grid-template-columns:23px minmax(0,1fr) auto; gap:4px; padding:3px 5px; border:1px solid #71604f; border-radius:0; color:#f1e2ca; background:#2a222d; }
body.adventure-mode .adventure-client .move-symbol { width:20px; height:20px; border:1px solid color-mix(in srgb,var(--move-accent,#d1bd9b) 55%,transparent); border-radius:0; font-size:10px; }
body.adventure-mode .adventure-client .move-card strong { color:#f7ead5; font:700 7px 'Courier New',monospace; }
body.adventure-mode .adventure-client .move-card small { color:#c2ab90; font:6px 'Courier New',monospace; }
body.adventure-mode .adventure-client .move-cast-hint { color:#f0cf8d; font:700 6px 'Courier New',monospace; }
body.adventure-mode .modal-backdrop { background:rgba(12,8,14,.82); backdrop-filter:blur(2px); }
body.adventure-mode .modal { border:3px solid #8c6245; border-radius:0; color:#f2e1c8; background:#35263a; box-shadow:inset 0 0 0 2px #c29468, 0 12px 0 #18101b, 0 24px 50px rgba(0,0,0,.7); }
body.adventure-mode .modal h2,
body.adventure-mode .modal h3 { color:#f8dfb7; font-family:'Courier New',monospace; }
body.adventure-mode .modal .button,
body.adventure-mode .modal-fields input { border-radius:0; font-family:'Courier New',monospace; }
body.adventure-mode .modal-fields input { border:2px solid #7d5a46; color:#f4e1c4; background:#241d29; }
body.adventure-mode .starter-choice { border:2px solid #76533f; border-radius:0; background:#2b2330; box-shadow:inset 1px 1px rgba(225,184,134,.16); }
body.adventure-mode .starter-choice.selected { border-color:#e0b36e; background:#463444; box-shadow:inset 0 0 0 1px #d8a568; }
@media (max-width:1000px) {
  body.adventure-mode .adventure-dock { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.adventure-mode .hud-log { grid-column:1 / -1; }
  body.adventure-mode .game-world-panel .map-wrap { height:clamp(350px,min(72vh,calc(100vh - 270px)),760px); }
}
@media (max-width:620px) {
  body.adventure-mode .content-area { padding:4px; }
  body.adventure-mode .expedition-heading { min-height:29px; margin-bottom:3px; }
  body.adventure-mode .expedition-heading h2 { max-width:130px; overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
  body.adventure-mode .expedition-heading .eyebrow { font-size:6px; }
  body.adventure-mode .field-tabs { gap:2px; }
  body.adventure-mode .field-tabs button { min-width:27px; width:29px; height:24px; padding:2px; font-size:10px; }
  body.adventure-mode .field-tabs button span { display:none; }
  body.adventure-mode .game-world-panel .map-wrap { height:clamp(340px,calc(100vh - 307px),660px); min-height:340px; }
  body.adventure-mode .world-topline { top:4px; left:4px; right:4px; }
  body.adventure-mode .world-online { padding:3px 4px; font-size:5px; }
  body.adventure-mode .world-minimap { width:92px; padding:3px; }
  body.adventure-mode .minimap-heading { font-size:5px; }
  body.adventure-mode #miniMapCanvas { height:39px; }
  body.adventure-mode .world-bottom { min-height:28px; grid-template-columns:minmax(0,1fr) auto; gap:3px; padding:3px 4px; }
  body.adventure-mode .movement-hint { position:absolute; bottom:34px; left:34px; padding:2px 3px; font-size:5px; }
  body.adventure-mode .scene-controls button { width:20px; height:20px; }
  body.adventure-mode .adventure-dock { gap:3px; padding:3px; }
  body.adventure-mode .hud-unit { gap:3px; padding:3px; }
  body.adventure-mode .hud-unit-art { width:31px; height:31px; flex-basis:31px; }
  body.adventure-mode .hud-unit-art img { width:29px; height:29px; }
  body.adventure-mode .hud-unit-caption span { font-size:5px; }
  body.adventure-mode .hud-unit-copy > strong { font-size:8px; }
  body.adventure-mode .hud-combat-controls { padding:4px; }
  body.adventure-mode .hud-log .log-list { max-height:31px; }
  body.adventure-mode .adventure-statbar { justify-content:flex-start; gap:4px 9px; }
  body.adventure-mode .adventure-client .move-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.evolution-option-copy .button { margin-top:3px; }
.evolution-sequence { width:min(460px,100%); padding:20px 22px 16px; overflow:hidden; border:1px solid rgba(219,238,174,.38); border-radius:22px; color:#eff4df; text-align:center; background:radial-gradient(ellipse at 50% 42%,rgba(100,179,118,.22),transparent 48%),linear-gradient(145deg,#1b3827,#0d2017); box-shadow:0 26px 90px rgba(0,0,0,.62),0 0 45px rgba(175,227,139,.16); animation:rise-in .28s ease; }
.evolution-sequence .eyebrow { color:#d6eaa8; font-size:9px; letter-spacing:.17em; }
.evolution-stage { position:relative; display:grid; place-items:center; height:220px; margin:0 auto 3px; overflow:hidden; }
.evolution-art { position:absolute; z-index:2; left:50%; top:51%; width:154px; height:154px; object-fit:contain; image-rendering:pixelated; transform:translate(-50%,-50%); }
.evolution-art.shiny { filter:hue-rotate(32deg) saturate(1.9) brightness(1.08) drop-shadow(0 0 16px rgba(255,215,101,.95)); }
.evolution-before { animation:evolution-old-form 3.25s ease-in-out both; }
.evolution-after { opacity:0; animation:evolution-new-form 3.25s cubic-bezier(.18,.76,.25,1) both; }
.evolution-orbit { position:absolute; z-index:1; left:50%; top:51%; border:2px solid rgba(218,246,162,.62); border-radius:50%; box-shadow:0 0 18px rgba(173,232,144,.62),inset 0 0 16px rgba(189,238,170,.25); transform:translate(-50%,-50%); }
.orbit-a { width:166px; height:166px; border-top-color:transparent; animation:evolution-orbit-spin 2.6s linear infinite; }
.orbit-b { width:130px; height:130px; border-style:dashed; border-color:rgba(233,218,146,.66); animation:evolution-orbit-spin 3.2s linear infinite reverse; }
.evolution-burst { position:absolute; z-index:0; left:50%; top:51%; width:45px; height:45px; border-radius:50%; background:radial-gradient(circle,#fff 0,rgba(255,250,202,.96) 10%,rgba(196,244,162,.7) 30%,rgba(113,202,145,.14) 68%,transparent 74%); opacity:0; transform:translate(-50%,-50%) scale(.2); animation:evolution-burst 3.25s ease-out both; }
.evolution-spark { position:absolute; z-index:3; color:#fff3aa; font-size:22px; text-shadow:0 0 12px #d9ffb2,0 0 26px #91dc99; opacity:0; animation:evolution-sparkle 1.7s ease-in-out infinite; }
.spark-a { left:25%; top:24%; animation-delay:.05s; }
.spark-b { right:25%; top:28%; animation-delay:.42s; }
.spark-c { left:38%; bottom:16%; animation-delay:.82s; }
.evolution-sequence h2 { margin:0 0 6px; font-size:21px; }
.evolution-sequence > p { margin:0 auto 12px; color:#b6c7b1; font-size:11px; }
.evolution-sequence > p strong { color:#e2f2b9; }
.evolution-sequence .confirm-actions { justify-content:center; padding:0; }
@keyframes evolution-old-form {
  0%,18% { opacity:1; filter:drop-shadow(0 0 5px rgba(183,232,154,.28)); transform:translate(-50%,-50%) scale(.86); }
  38% { opacity:1; filter:brightness(1.5) drop-shadow(0 0 20px rgba(226,255,193,.95)); transform:translate(-50%,-50%) scale(1.12); }
  52% { opacity:.95; filter:brightness(2.8) drop-shadow(0 0 36px #fff); transform:translate(-50%,-50%) scale(1.25); }
  64%,100% { opacity:0; filter:brightness(3); transform:translate(-50%,-50%) scale(.35); }
}
@keyframes evolution-new-form {
  0%,52% { opacity:0; filter:brightness(3) drop-shadow(0 0 30px #fff); transform:translate(-50%,-50%) scale(.25); }
  66% { opacity:.2; filter:brightness(2.1) drop-shadow(0 0 27px #efffcb); transform:translate(-50%,-50%) scale(.72); }
  82% { opacity:1; filter:brightness(1.28) drop-shadow(0 0 23px rgba(214,255,177,.92)); transform:translate(-50%,-50%) scale(1.08); }
  100% { opacity:1; filter:drop-shadow(0 0 12px rgba(197,244,159,.62)); transform:translate(-50%,-50%) scale(1); }
}
@keyframes evolution-orbit-spin { to { transform:translate(-50%,-50%) rotate(360deg); } }
@keyframes evolution-burst {
  0%,36% { opacity:0; transform:translate(-50%,-50%) scale(.2); }
  50% { opacity:1; transform:translate(-50%,-50%) scale(4.8); }
  70% { opacity:.5; transform:translate(-50%,-50%) scale(6.2); }
  100% { opacity:0; transform:translate(-50%,-50%) scale(7); }
}
@keyframes evolution-sparkle {
  0%,100% { opacity:.25; transform:scale(.7) rotate(-10deg); }
  50% { opacity:1; transform:scale(1.18) rotate(12deg); }
}
@media (max-width:600px) {
  .evolution-options { padding:0 12px 14px; }
  .evolution-option { grid-template-columns:58px minmax(0,1fr); gap:8px; padding:8px; }
  .evolution-option-art { width:56px; height:56px; }
  .evolution-option-art img { width:50px; height:50px; }
  .evolution-sequence { padding:17px 14px 14px; }
  .evolution-stage { height:180px; }
  .evolution-art { width:136px; height:136px; }
  .orbit-a { width:148px; height:148px; }
  .orbit-b { width:116px; height:116px; }
}

.dex-tile[data-preview-shiny="true"] img { animation: shiny-icon-flash 1.1s steps(1,end) infinite; }
.evolution-art.shiny { animation: shiny-evolution-flash 1.1s steps(1,end) infinite; }
.active-hud .hud-unit-art img.shiny-pokemon { animation: shiny-hud-flash 1.65s ease-in-out infinite; }
.target-art img.is-shiny { animation: shiny-target-flash 1.65s ease-in-out infinite; }
@keyframes shiny-hud-flash {
  0%, 43%, 100% { filter:drop-shadow(0 3px 4px rgba(0,0,0,.56)) drop-shadow(0 0 0 rgba(255,220,112,0)); }
  48%, 54% { filter:drop-shadow(0 2px 4px rgba(0,0,0,.4)) drop-shadow(0 0 11px rgba(255,220,112,.98)); }
  61% { filter:drop-shadow(0 3px 4px rgba(0,0,0,.56)) drop-shadow(0 0 0 rgba(255,220,112,0)); }
}
@keyframes shiny-target-flash {
  0%, 43%, 100% { filter:hue-rotate(32deg) saturate(2.2) brightness(1.12) drop-shadow(0 0 0 rgba(246,209,119,0)); }
  48%, 54% { filter:hue-rotate(32deg) saturate(2.2) brightness(1.2) drop-shadow(0 0 10px rgba(255,224,126,1)); }
  61% { filter:hue-rotate(32deg) saturate(2.2) brightness(1.12) drop-shadow(0 0 0 rgba(246,209,119,0)); }
}
@keyframes shiny-icon-flash {
  0%, 54%, 100% { filter:drop-shadow(0 0 1px rgba(250,209,101,.12)); }
  55%, 72% { filter:drop-shadow(0 0 12px rgba(250,209,101,.96)); }
}
@keyframes shiny-evolution-flash {
  0%, 54%, 100% { filter:hue-rotate(32deg) saturate(1.9) brightness(1.08) drop-shadow(0 0 2px rgba(255,215,101,.2)); }
  55%, 72% { filter:hue-rotate(32deg) saturate(2.1) brightness(1.16) drop-shadow(0 0 19px rgba(255,215,101,1)); }
}

/* Aventura: HUD maior sobre o mapa, com uma coluna central livre para o Pokémon. */
body.adventure-mode .adventure-client { position:relative; isolation:isolate; }
body.adventure-mode .game-world-panel { z-index:0; }
body.adventure-mode .adventure-dock {
  position:absolute; z-index:7; top:104px; right:10px; bottom:104px; left:10px;
  grid-template-columns:minmax(190px,250px) minmax(80px,1fr) minmax(190px,250px);
  grid-template-rows:auto 1fr auto;
  grid-template-areas:"active . target" ". . ." "combat . log";
  align-content:space-between; gap:8px; padding:0; border:0; border-radius:0;
  background:transparent; box-shadow:none; pointer-events:none;
}
body.adventure-mode .active-hud { grid-area:active; }
body.adventure-mode .target-hud { grid-area:target; }
body.adventure-mode .hud-combat-controls { grid-area:combat; align-self:end; }
body.adventure-mode .hud-log { grid-area:log; align-self:end; }
body.adventure-mode .hud-unit,
body.adventure-mode .hud-combat-controls,
body.adventure-mode .hud-log {
  min-width:0; padding:9px; border:2px solid #8c654b; color:#f4e4c6;
  background:rgba(43,31,43,.94); box-shadow:inset 1px 1px rgba(239,196,137,.18),0 4px 10px rgba(0,0,0,.38);
  pointer-events:auto;
}
body.adventure-mode .hud-unit { min-height:76px; gap:9px; }
body.adventure-mode .hud-unit-art { width:56px; height:56px; flex-basis:56px; }
body.adventure-mode .hud-unit-art img { width:52px; height:52px; }
body.adventure-mode .hud-unit-caption { gap:5px; font-size:9px; }
body.adventure-mode .hud-unit-caption b { font-size:10px; }
body.adventure-mode .hud-unit-copy > strong { margin:3px 0 6px; font-size:14px; }
body.adventure-mode .hud-bar-label { font-size:8px; }
body.adventure-mode .xp-hud-track,
body.adventure-mode .enemy-hp { height:9px; margin-top:4px; }
body.adventure-mode .hud-combat-controls,
body.adventure-mode .hud-log { padding:9px; }
body.adventure-mode .combat-control-heading,
body.adventure-mode .hud-log-heading { font-size:10px; }
body.adventure-mode .combat-control-heading small { font-size:10px; }
body.adventure-mode .hud-combat-controls .control-row { gap:7px; margin-top:8px; }
body.adventure-mode .hud-combat-controls .hunt-toggle { min-height:34px; padding:5px 9px; font-size:10px; }
body.adventure-mode .hud-combat-controls .speed-select { width:64px; min-height:34px; font-size:10px; }
body.adventure-mode .hud-toggle-row { gap:7px; margin-top:8px; font-size:9px; }
body.adventure-mode .hud-toggle-row .toggle-switch { width:30px; height:17px; flex-basis:30px; }
body.adventure-mode .hud-toggle-row .toggle-switch:after { width:11px; height:11px; top:2px; left:2px; }
body.adventure-mode .hud-toggle-row .toggle-switch.on:after { left:16px; }
body.adventure-mode .hud-log .log-list { max-height:68px; margin-top:7px; gap:4px; }
body.adventure-mode .hud-log .log-entry { grid-template-columns:34px 1fr; gap:5px; font-size:8px; }
body.adventure-mode .hud-log .log-entry time { font-size:8px; }
body.adventure-mode .hud-log .log-empty { font-size:9px; }
body.adventure-mode .adventure-statbar {
  position:absolute; z-index:8; right:19%; bottom:91px; left:19%; justify-content:center;
  gap:8px 16px; padding:7px 10px; border:2px solid #76513d; color:#e5cfaa;
  background:rgba(43,34,43,.96); box-shadow:0 3px 9px rgba(0,0,0,.38); font-size:8px;
  pointer-events:none;
}
body.adventure-mode .adventure-statbar b { font-size:10px; }
body.adventure-mode .adventure-client .moves-panel {
  position:absolute; z-index:8; right:18%; bottom:5px; left:18%; min-height:0;
  border-width:2px; background:rgba(53,38,56,.97); box-shadow:inset 1px 1px #8b654b,0 4px 12px rgba(0,0,0,.42);
}
body.adventure-mode .adventure-client .moves-panel .panel-heading { min-height:32px; padding:6px 9px 4px; }
body.adventure-mode .adventure-client .moves-panel .panel-heading strong { font-size:11px; }
body.adventure-mode .adventure-client .moves-panel .chip { padding:3px 6px; font-size:8px; }
body.adventure-mode .adventure-client .move-list { gap:6px; padding:0 7px 7px; }
body.adventure-mode .adventure-client .move-card { min-height:52px; grid-template-columns:30px minmax(0,1fr) auto; gap:6px; padding:6px 8px; }
body.adventure-mode .adventure-client .move-symbol { width:28px; height:28px; font-size:14px; }
body.adventure-mode .adventure-client .move-card strong { font-size:10px; }
body.adventure-mode .adventure-client .move-card small { font-size:8px; }
body.adventure-mode .adventure-client .move-cast-hint { font-size:8px; }
body.adventure-mode .world-online { font-size:9px; }
body.adventure-mode .world-minimap { width:150px; }
body.adventure-mode .minimap-heading { font-size:8px; }
body.adventure-mode #miniMapCanvas { height:62px; }
body.adventure-mode .movement-hint { font-size:8px; }
body.adventure-mode .scene-controls button { width:30px; height:30px; font-size:17px; }
body.adventure-mode .expedition-heading-actions { gap:6px; }
body.adventure-mode .field-tabs button { min-width:70px; height:35px; padding:4px 8px; font-size:10px; }

@media (min-width:621px) {
}
@media (max-width:820px) and (min-width:621px) {
  body.adventure-mode .field-tabs { gap:3px; }
  body.adventure-mode .field-tabs button { width:40px; min-width:40px; height:33px; padding:2px; font-size:11px; }
  body.adventure-mode .field-tabs button span { display:none; }
  body.adventure-mode .adventure-dock { grid-template-columns:minmax(165px,210px) minmax(56px,1fr) minmax(165px,210px); }
  body.adventure-mode .adventure-statbar { right:17%; left:17%; }
  body.adventure-mode .adventure-client .moves-panel { right:14%; left:14%; }
}
@media (max-width:620px) {
  body.adventure-mode .expedition-heading { gap:5px; }
  body.adventure-mode .expedition-heading h2 { max-width:92px; font-size:9px; }
  body.adventure-mode .field-tabs { gap:3px; }
  body.adventure-mode .field-tabs button { width:32px; min-width:32px; height:31px; font-size:11px; }
  body.adventure-mode .game-world-panel .map-wrap { height:clamp(340px,calc(100vh - 307px),660px); }
  body.adventure-mode .world-topline { top:4px; left:4px; right:4px; }
  body.adventure-mode .world-online { padding:4px 5px; font-size:7px; }
  body.adventure-mode .world-minimap { width:104px; padding:3px; }
  body.adventure-mode .minimap-heading { font-size:6px; }
  body.adventure-mode #miniMapCanvas { height:42px; }
  body.adventure-mode .world-bottom { min-height:31px; }
  body.adventure-mode .movement-hint { display:none; }
  body.adventure-mode .scene-controls button { width:27px; height:27px; }
  body.adventure-mode .adventure-dock {
    top:96px; right:4px; bottom:80px; left:4px;
    grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr);
    grid-template-rows:auto auto 1fr;
    grid-template-areas:"active . target" "combat . log" ". . .";
    align-content:start; gap:5px 3px; padding:0;
  }
  body.adventure-mode .hud-unit,
  body.adventure-mode .hud-combat-controls,
  body.adventure-mode .hud-log { padding:5px; border-width:1px; }
  body.adventure-mode .hud-unit { min-height:60px; gap:4px; }
  body.adventure-mode .hud-unit-art { width:34px; height:34px; flex-basis:34px; }
  body.adventure-mode .hud-unit-art img { width:31px; height:31px; }
  body.adventure-mode .hud-unit-caption { gap:2px; font-size:6px; letter-spacing:0; }
  body.adventure-mode .hud-unit-caption b { font-size:7px; }
  body.adventure-mode .hud-unit-copy > strong { margin:2px 0 4px; font-size:9px; }
  body.adventure-mode .hud-bar-label { gap:2px; font-size:6px; }
  body.adventure-mode .xp-hud-track,
  body.adventure-mode .enemy-hp { height:7px; margin-top:3px; }
  body.adventure-mode .hud-combat-controls,
  body.adventure-mode .hud-log { align-self:start; }
  body.adventure-mode .combat-control-heading,
  body.adventure-mode .hud-log-heading { gap:3px; font-size:7px; letter-spacing:0; }
  body.adventure-mode .combat-control-heading small { font-size:7px; }
  body.adventure-mode .hud-combat-controls .control-row { gap:3px; margin-top:5px; }
  body.adventure-mode .hud-combat-controls .hunt-toggle { min-height:29px; padding:3px 4px; font-size:7px; }
  body.adventure-mode .hud-combat-controls .speed-select { width:43px; min-height:29px; font-size:7px; }
  body.adventure-mode .hud-toggle-row { gap:3px; margin-top:5px; font-size:7px; }
  body.adventure-mode .hud-toggle-row .toggle-switch { width:24px; height:14px; flex-basis:24px; }
  body.adventure-mode .hud-toggle-row .toggle-switch:after { width:8px; height:8px; top:2px; left:2px; }
  body.adventure-mode .hud-toggle-row .toggle-switch.on:after { left:12px; }
  body.adventure-mode .hud-log .log-list { max-height:35px; margin-top:4px; gap:3px; }
  body.adventure-mode .hud-log .log-entry { grid-template-columns:24px 1fr; gap:3px; font-size:7px; }
  body.adventure-mode .hud-log .log-entry time { font-size:7px; }
  body.adventure-mode .hud-log .log-empty { font-size:7px; }
  body.adventure-mode .adventure-statbar { display:none; }
  body.adventure-mode .adventure-client .moves-panel { right:22%; bottom:5px; left:22%; }
  body.adventure-mode .adventure-client .moves-panel .panel-heading { min-height:25px; padding:4px 5px 3px; }
  body.adventure-mode .adventure-client .moves-panel .panel-heading strong { font-size:8px; }
  body.adventure-mode .adventure-client .moves-panel .chip { max-width:54%; overflow:hidden; font-size:6px; text-overflow:ellipsis; white-space:nowrap; }
  body.adventure-mode .adventure-client .move-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; padding:0 4px 4px; }
  body.adventure-mode .adventure-client .move-card { min-height:44px; grid-template-columns:23px minmax(0,1fr); gap:3px; padding:4px; }
  body.adventure-mode .adventure-client .move-symbol { width:21px; height:21px; font-size:11px; }
  body.adventure-mode .adventure-client .move-card strong { font-size:8px; }
  body.adventure-mode .adventure-client .move-card small { margin-top:2px; font-size:6px; }
  body.adventure-mode .adventure-client .move-cast-hint { display:none; }
}

body.adventure-mode .hud-log .log-list { max-height:78px; overflow:hidden; }
body.adventure-mode .hud-log .log-entry > span {
  display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2;
}
@media (max-width:620px) {
  body.adventure-mode .hud-log .log-list { max-height:72px; }
}

/* Keep the complete route map visible; place the enlarged dashboard beneath it. */
body.adventure-mode .adventure-client { position:static; isolation:auto; gap:7px; }
body.adventure-mode .adventure-dock {
  position:relative; z-index:auto; top:auto; right:auto; bottom:auto; left:auto;
  grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:auto; grid-template-areas:none;
  align-content:normal; gap:6px; padding:8px; border:2px solid #76513d; border-radius:0;
  background:#362538; box-shadow:inset 1px 1px #8c654b,0 2px #160f18; pointer-events:auto;
}
body.adventure-mode .active-hud,
body.adventure-mode .target-hud,
body.adventure-mode .hud-combat-controls,
body.adventure-mode .hud-log { grid-area:auto; align-self:stretch; }
body.adventure-mode .adventure-statbar {
  position:relative; top:auto; right:auto; bottom:auto; left:auto; z-index:auto; justify-content:space-between;
  margin:0; pointer-events:auto;
}
body.adventure-mode .adventure-client .moves-panel {
  position:relative; top:auto; right:auto; bottom:auto; left:auto; z-index:auto; width:auto; margin:0;
}
@media (max-width:1000px) {
  body.adventure-mode .adventure-dock { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.adventure-mode .hud-log { grid-column:1 / -1; }
}
@media (max-width:620px) {
  body.adventure-mode .adventure-dock { grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; padding:5px; }
  body.adventure-mode .hud-log { grid-column:1 / -1; }
  body.adventure-mode .adventure-statbar { display:flex; }
  body.adventure-mode .adventure-client .moves-panel .move-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.storage-panel { margin-top:24px; padding:18px; border:1px solid var(--line); border-radius:var(--radius); background:linear-gradient(145deg,rgba(23,45,34,.96),rgba(16,34,26,.96)); box-shadow:var(--shadow); }
.storage-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:15px; }
.storage-heading h3 { margin:3px 0 4px; color:var(--ink); font-size:18px; }
.storage-heading p { margin:0; color:var(--muted); font-size:11px; line-height:1.5; }
.storage-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:10px; }
.storage-card { min-width:0; display:flex; align-items:center; gap:10px; padding:10px; border:1px solid rgba(183,204,172,.16); border-radius:12px; background:rgba(4,15,10,.28); }
.storage-card-art { width:58px; height:58px; flex:0 0 58px; display:grid; place-items:center; border:1px solid rgba(196,218,169,.18); background:rgba(16,34,27,.42); }
.storage-card-art img { width:54px; height:54px; object-fit:contain; image-rendering:pixelated; }
.storage-card-copy { min-width:0; display:grid; justify-items:start; gap:4px; }
.storage-card-copy .species-id { color:var(--muted); font:8px 'DM Mono',monospace; }
.storage-card-copy strong { color:var(--ink); font-size:13px; }
.storage-card-copy small { color:var(--muted); font-size:9px; }
.storage-card-copy .button { margin-top:3px; }
.storage-empty { grid-column:1/-1; padding:22px; border:1px dashed rgba(183,204,172,.2); color:var(--muted); text-align:center; font-size:11px; }

/* Keep the map clear and leave manual moves directly beneath the active Pokémon bar. */
body.adventure-mode .expedition-heading { min-height:40px; margin-bottom:8px; }
body.adventure-mode .expedition-heading-actions { gap:5px; }
body.adventure-mode .expedition-heading-actions button { width:34px; min-width:34px; height:34px; display:grid; place-items:center; padding:0; border:1px solid rgba(222,205,158,.22); border-radius:5px; color:#ead7ad; background:rgba(37,32,39,.9); font-size:14px; }
body.adventure-mode .expedition-heading-actions button span { display:none; }
body.adventure-mode .expedition-heading-actions button:hover { border-color:#cfa46a; color:#fff0ce; background:#4a3540; }
body.adventure-mode .expedition-heading-actions .center-shortcut { border-color:rgba(105,214,193,.48); color:#b9f5df; background:rgba(25,57,57,.92); }
body.adventure-mode .expedition-heading-actions .center-shortcut.is-current { border-color:#e7c27f; color:#fff0c6; background:rgba(84,59,50,.96); }
body.adventure-mode .adventure-client { gap:8px; }
body.adventure-mode .adventure-client > .adventure-dock,
body.adventure-mode .adventure-client > .adventure-statbar { display:none !important; }
body.adventure-mode .adventure-client > .moves-panel { display:block; width:100%; margin-top:-3px; }
body.adventure-mode .adventure-quickbar { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; align-items:stretch; gap:8px; padding:8px; border:1px solid rgba(211,188,143,.2); border-radius:6px; background:linear-gradient(110deg,rgba(31,35,34,.98),rgba(41,32,43,.98)); box-shadow:0 5px 18px rgba(0,0,0,.2); }
body.adventure-mode .quickbar-unit { min-width:0; display:flex; align-items:center; gap:9px; padding:5px 8px; border:1px solid rgba(208,193,157,.13); background:rgba(8,17,17,.3); }
body.adventure-mode .quickbar-art { position:relative; width:48px; height:48px; flex:0 0 48px; display:grid; place-items:center; border:1px solid rgba(216,205,164,.18); background:radial-gradient(circle,rgba(203,212,160,.13),rgba(6,13,14,.08) 72%); }
body.adventure-mode .quickbar-art img { width:44px; height:44px; object-fit:contain; image-rendering:pixelated; filter:drop-shadow(0 2px 3px rgba(0,0,0,.5)); }
body.adventure-mode .quickbar-target .quickbar-art { border-color:rgba(223,139,124,.22); }
body.adventure-mode .quickbar-copy { min-width:0; display:grid; gap:3px; color:#c3bca9; font:8px 'Courier New',monospace; }
body.adventure-mode .quickbar-copy small { overflow:hidden; color:#cfb779; font-size:7px; letter-spacing:.04em; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .quickbar-copy small b,
body.adventure-mode .quickbar-copy > span b { color:#f2e6c7; }
body.adventure-mode .quickbar-copy strong { overflow:hidden; color:#f4ebd9; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .quickbar-copy > span { overflow:hidden; color:#b4b3a5; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .quickbar-actions { display:flex; align-items:center; gap:6px; }
body.adventure-mode .quickbar-actions .button { min-height:34px; padding:0 10px; border:1px solid rgba(211,184,133,.38); border-radius:4px; color:#eedfbd; background:#332b37; font:700 9px 'Courier New',monospace; white-space:nowrap; }
body.adventure-mode .quickbar-actions .button.primary { color:#221a20; border-color:#e5c47e; background:linear-gradient(135deg,#f1d796,#c89e5d); }
body.adventure-mode .quickbar-actions .ball-throw-button { display:inline-flex; align-items:center; gap:5px; padding:0 9px; color:#241b19; border-color:#dfbd79; background:linear-gradient(135deg,#f4dc9e,#caa15d); }
body.adventure-mode .quickbar-actions .ball-throw-button:disabled { opacity:.54; filter:saturate(.55); cursor:not-allowed; }
body.adventure-mode .quickbar-actions .ball-throw-icon { display:grid; width:19px; height:19px; place-items:center; }
body.adventure-mode .quickbar-actions .pokeball-icon { display:block; width:100%; height:100%; filter:drop-shadow(0 1px 2px rgba(0,0,0,.5)); }
body.adventure-mode .quickbar-actions .ball-throw-button b { min-width:17px; padding:2px 4px; border-radius:9px; color:#f7ecd2; background:rgba(40,35,31,.75); font:700 8px 'Courier New',monospace; text-align:center; }
body.adventure-mode .quickbar-actions .ball-store-button { display:inline-flex; align-items:center; gap:4px; }
body.adventure-mode .adventure-panel-backdrop { z-index:40; padding:16px; background:rgba(8,7,11,.76); }
body.adventure-mode .adventure-panel-modal { width:min(900px,100%); max-height:min(88vh,820px); display:flex; flex-direction:column; border:2px solid #8c6245; border-radius:6px; color:#f2e1c8; background:#302631; box-shadow:inset 0 0 0 1px #c29468,0 18px 60px rgba(0,0,0,.62); }
body.adventure-mode .adventure-panel-head { flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 16px; border-bottom:1px solid rgba(222,188,135,.22); background:linear-gradient(110deg,#392d3a,#263332); }
body.adventure-mode .adventure-panel-head .eyebrow { color:#d7b771; font:700 8px 'Courier New',monospace; letter-spacing:.1em; }
body.adventure-mode .adventure-panel-head h2 { margin:3px 0 0; color:#f5e7cd; font:700 16px 'Courier New',monospace; }
body.adventure-mode .adventure-panel-close { width:32px; height:32px; border:1px solid rgba(232,203,153,.35); border-radius:4px; color:#f2dfbd; background:rgba(8,11,12,.28); font-size:23px; line-height:1; cursor:pointer; }
body.adventure-mode .adventure-panel-body { min-height:0; overflow:auto; padding:13px; }
body.adventure-mode .ball-shop-backdrop { z-index:45; display:grid; place-items:center; padding:16px; background:rgba(6,10,12,.78); }
body.adventure-mode .ball-shop-modal { width:min(760px,100%); max-height:min(88vh,700px); display:flex; flex-direction:column; overflow:hidden; border:1px solid rgba(230,202,146,.54); border-radius:12px; color:#efe5d1; background:linear-gradient(145deg,#202a2b,#211c26 72%); box-shadow:0 24px 70px rgba(0,0,0,.65),inset 0 1px rgba(255,255,255,.06); }
body.adventure-mode .ball-shop-head { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:18px 20px 14px; border-bottom:1px solid rgba(227,196,133,.17); }
body.adventure-mode .ball-shop-head .eyebrow { color:#83d2ce; font:700 9px 'Courier New',monospace; letter-spacing:.13em; }
body.adventure-mode .ball-shop-head h2 { margin:4px 0 3px; color:#fff0d0; font:700 22px 'Courier New',monospace; }
body.adventure-mode .ball-shop-head p { margin:0; color:#aebdb4; font-size:12px; }
body.adventure-mode .ball-shop-head-side { display:flex; align-items:center; gap:10px; }
body.adventure-mode .ball-shop-wallet { padding:7px 10px; border:1px solid rgba(228,193,124,.34); border-radius:7px; color:#f2d38d; background:rgba(66,51,36,.42); font:700 11px 'Courier New',monospace; white-space:nowrap; }
body.adventure-mode .ball-shop-grid { min-height:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; overflow:auto; padding:14px; }
body.adventure-mode .ball-shop-card { min-width:0; padding:12px; border:1px solid rgba(185,198,174,.16); border-radius:9px; background:rgba(6,13,16,.32); }
body.adventure-mode .ball-shop-card.is-selected { border-color:rgba(231,198,126,.72); background:linear-gradient(135deg,rgba(92,69,46,.32),rgba(21,35,35,.5)); box-shadow:inset 0 0 0 1px rgba(231,198,126,.12); }
body.adventure-mode .ball-shop-card-top { display:flex; align-items:center; gap:10px; }
body.adventure-mode .ball-shop-art { width:44px; height:44px; flex:0 0 44px; display:grid; place-items:center; border:1px solid rgba(206,210,185,.15); border-radius:8px; background:radial-gradient(circle,rgba(224,217,179,.13),rgba(4,9,12,.24)); }
body.adventure-mode .ball-shop-art .pokeball-icon { width:32px; height:32px; filter:drop-shadow(0 3px 4px rgba(0,0,0,.55)); }
.pokeball-icon { display:inline-block; flex:0 0 auto; background-image:var(--ball-sheet); background-repeat:no-repeat; background-position:left center; background-size:800% 200%; image-rendering:pixelated; }
body.adventure-mode .ball-shop-card-title { min-width:0; display:grid; gap:4px; }
body.adventure-mode .ball-shop-card-title h3 { margin:0; color:#f7ecd3; font:700 14px 'Courier New',monospace; }
body.adventure-mode .ball-shop-card-title span { color:#8fc9c1; font:700 9px 'Courier New',monospace; }
body.adventure-mode .ball-shop-stock { margin-left:auto; color:#f1d38b; font:700 15px 'Courier New',monospace; text-align:right; }
body.adventure-mode .ball-shop-stock small { display:block; margin-top:2px; color:#93a29b; font:8px 'Courier New',monospace; }
body.adventure-mode .ball-shop-card p { min-height:30px; margin:10px 0; color:#aeb9b1; font-size:11px; line-height:1.45; }
body.adventure-mode .ball-shop-card-actions { display:flex; gap:7px; }
body.adventure-mode .ball-shop-card-actions .button { min-height:32px; flex:1; padding:0 8px; border:1px solid rgba(211,184,133,.31); border-radius:5px; color:#e8dbc0; background:#342d35; font:700 9px 'Courier New',monospace; }
body.adventure-mode .ball-shop-card-actions > .button { min-width:88px; flex:.8; }
body.adventure-mode .ball-buy-controls { min-width:0; display:flex; align-items:stretch; flex:1.6; gap:5px; }
body.adventure-mode .ball-shop-card-actions .ball-buy-quantity { min-width:70px; display:flex; flex:0 0 70px; flex-direction:column; justify-content:center; gap:3px; padding:3px 5px; border:1px solid rgba(211,184,133,.28); border-radius:5px; background:rgba(6,12,14,.55); box-sizing:border-box; }
body.adventure-mode .ball-buy-quantity span { color:#aeb9b1; font:700 8px 'Courier New',monospace; white-space:nowrap; }
body.adventure-mode .ball-buy-quantity input { width:100%; min-width:0; height:20px; padding:1px 3px; border:1px solid rgba(211,184,133,.34); border-radius:3px; outline:none; color:#fff0d0; background:#182021; font:700 11px 'Courier New',monospace; text-align:center; box-sizing:border-box; }
body.adventure-mode .ball-buy-quantity input:focus { border-color:#e6c57d; box-shadow:0 0 0 2px rgba(230,197,125,.15); }
body.adventure-mode .ball-buy-controls .ball-buy-button { min-width:0; flex:1; }
body.adventure-mode .ball-shop-card-actions .button.primary { color:#241c1d; border-color:#e6c57d; background:linear-gradient(135deg,#f1d796,#c89e5d); }
body.adventure-mode .ball-shop-card-actions .ball-buy-button { color:#f3d997; }
body.adventure-mode .ball-shop-card-actions .button:disabled { opacity:.45; cursor:not-allowed; }
body.adventure-mode .ball-shop-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 15px; border-top:1px solid rgba(227,196,133,.17); color:#9eaaa3; font-size:10px; line-height:1.4; }
body.adventure-mode .ball-shop-foot .button { flex:0 0 auto; }
body.adventure-mode .ball-throw-settings-modal { width:min(620px,100%); }
body.adventure-mode .ball-throw-settings-body { min-height:0; display:grid; gap:16px; overflow:auto; padding:16px; }
body.adventure-mode .ball-current-select, body.adventure-mode .ball-fallback-add { display:grid; gap:6px; color:#d9cba9; font:700 10px 'Courier New',monospace; }
body.adventure-mode .ball-throw-settings-body .select-field { width:100%; min-width:0; color:#f0e4ca; border-color:rgba(211,184,133,.35); background:#172021; }
body.adventure-mode .ball-fallback-section { display:grid; gap:10px; }
body.adventure-mode .ball-fallback-heading { display:flex; align-items:end; justify-content:space-between; gap:14px; }
body.adventure-mode .ball-fallback-heading > div { display:grid; gap:5px; }
body.adventure-mode .ball-fallback-heading strong { color:#f3dfb6; font:700 13px 'Courier New',monospace; }
body.adventure-mode .ball-fallback-heading small { max-width:320px; color:#aab9b0; font-size:10px; line-height:1.45; }
body.adventure-mode .ball-fallback-add { min-width:190px; }
body.adventure-mode .ball-shiny-section .ball-fallback-add { position:relative; z-index:5; }
body.adventure-mode .shiny-ball-picker { position:relative; min-width:0; }
body.adventure-mode .shiny-ball-picker-trigger { width:100%; min-height:38px; display:flex; align-items:center; gap:9px; padding:5px 9px; border:1px solid rgba(154,202,211,.3); border-radius:8px; color:#eaf2fa; background:linear-gradient(145deg,rgba(31,45,61,.96),rgba(19,30,42,.98)); text-align:left; cursor:pointer; touch-action:manipulation; }
body.adventure-mode .shiny-ball-picker-trigger:hover, body.adventure-mode .shiny-ball-picker-trigger:focus-visible { border-color:rgba(244,208,137,.68); outline:none; }
body.adventure-mode .shiny-ball-current { min-width:0; flex:1; display:grid; grid-template-columns:27px minmax(0,1fr) auto; align-items:center; gap:8px; }
body.adventure-mode .shiny-ball-current .pokeball-icon { width:25px; height:25px; }
body.adventure-mode .shiny-ball-current-default { width:25px; height:25px; display:grid; place-items:center; border:1px solid rgba(211,184,133,.32); border-radius:50%; color:#f4d690; background:rgba(8,14,16,.42); font:700 17px/1 sans-serif; }
body.adventure-mode .shiny-ball-picker-trigger .shiny-ball-option-name { min-width:0; overflow:hidden; color:#f0e4ca; font:700 11px/1.2 'Courier New',monospace; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .shiny-ball-current > b { color:#f4d690; font:800 10px/1 'Courier New',monospace; }
body.adventure-mode .shiny-ball-picker-trigger > svg { width:15px; height:15px; flex:0 0 15px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
body.adventure-mode .shiny-ball-picker-menu { position:absolute; z-index:80; top:calc(100% + 5px); left:0; width:100%; max-height:min(240px,40vh); display:grid; gap:4px; overflow:auto; padding:6px; border:1px solid rgba(154,202,211,.3); border-radius:9px; background:rgba(12,21,33,.99); box-shadow:0 12px 30px rgba(0,0,0,.48); }
body.adventure-mode .shiny-ball-picker-menu[hidden] { display:none !important; }
body.adventure-mode .shiny-ball-option { min-height:36px; display:grid; grid-template-columns:28px minmax(0,1fr) auto; align-items:center; gap:8px; padding:4px 7px; border:1px solid rgba(192,212,235,.1); border-radius:7px; color:#eaf2fa; background:rgba(31,45,61,.72); text-align:left; cursor:pointer; }
body.adventure-mode .shiny-ball-option:hover, body.adventure-mode .shiny-ball-option.is-selected { border-color:rgba(244,208,137,.6); background:rgba(86,78,59,.56); }
body.adventure-mode .shiny-ball-option-icon .pokeball-icon { width:25px; height:25px; }
body.adventure-mode .shiny-ball-option .shiny-ball-option-name { min-width:0; overflow:hidden; font:700 10px/1.2 'Courier New',monospace; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .shiny-ball-option > b { color:#f4d690; font:800 10px/1 'Courier New',monospace; }
body.adventure-mode .shiny-ball-default-icon { display:grid; place-items:center; color:#f4d690; font:700 18px/1 sans-serif; }
body.adventure-mode .shiny-ball-empty { padding:9px; color:#c5d3e4; font:600 10px/1.4 'Courier New',monospace; text-align:center; }
body.adventure-mode .ball-fallback-list { display:grid; gap:6px; margin:0; padding:0; list-style:none; }
body.adventure-mode .ball-fallback-item { min-height:42px; display:flex; align-items:center; gap:9px; padding:6px 8px; border:1px solid rgba(211,184,133,.2); border-radius:7px; background:rgba(8,14,16,.4); }
body.adventure-mode .ball-fallback-add-row { min-height:42px; display:grid; grid-template-columns:26px minmax(0,1fr); align-items:center; gap:9px; padding:5px 8px; border:1px dashed rgba(154,202,211,.32); border-radius:7px; background:rgba(8,14,16,.24); }
body.adventure-mode .ball-fallback-add-plus { width:24px; height:24px; display:grid; place-items:center; border:1px solid rgba(211,184,133,.34); border-radius:50%; color:#f3d997; background:rgba(34,45,48,.78); font:700 18px/1 'Segoe UI',sans-serif; }
body.adventure-mode .ball-fallback-add-row .select-field { min-height:30px; border-color:transparent; color:#c9d3cc; background:transparent; font:700 10px 'Courier New',monospace; }
body.adventure-mode .ball-fallback-add-row .select-field:focus { border-color:rgba(230,197,125,.55); outline:none; background:#172021; }
body.adventure-mode .ball-fallback-add-row .select-field:disabled { opacity:.6; cursor:not-allowed; }
body.adventure-mode .ball-fallback-item.is-empty-stock { border-color:rgba(244,125,103,.58); background:linear-gradient(100deg,rgba(105,43,41,.42),rgba(45,24,29,.48)); box-shadow:inset 3px 0 rgba(255,132,108,.78); }
body.adventure-mode .ball-fallback-order { width:20px; color:#d8b86f; font:700 11px 'Courier New',monospace; text-align:center; }
body.adventure-mode .ball-fallback-icon { width:26px; height:26px; flex:0 0 26px; }
body.adventure-mode .ball-fallback-icon .pokeball-icon { width:100%; height:100%; }
body.adventure-mode .ball-fallback-name { min-width:0; display:grid; gap:2px; }
body.adventure-mode .ball-fallback-name strong { color:#f0e5d1; font:700 10px 'Courier New',monospace; }
body.adventure-mode .ball-fallback-name small { color:#9eaaa3; font-size:9px; }
body.adventure-mode .ball-fallback-item.is-empty-stock .ball-fallback-order,
body.adventure-mode .ball-fallback-item.is-empty-stock .ball-fallback-name strong,
body.adventure-mode .ball-fallback-item.is-empty-stock .ball-fallback-name small { color:#ffb5a2; }
body.adventure-mode .ball-fallback-actions { display:flex; gap:4px; margin-left:auto; }
body.adventure-mode .ball-fallback-actions .button { width:28px; min-width:28px; min-height:26px; padding:0; border:1px solid rgba(211,184,133,.25); border-radius:5px; color:#e7d5b4; background:#302a31; }
body.adventure-mode .ball-fallback-actions .button:disabled { opacity:.35; cursor:not-allowed; }
body.adventure-mode .ball-fallback-actions .ball-fallback-remove { color:#ffc1b1; }
body.adventure-mode .ball-fallback-empty { padding:14px; border:1px dashed rgba(211,184,133,.24); border-radius:7px; color:#aab9b0; font-size:10px; text-align:center; }
body.adventure-mode .adventure-modal-dock { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding:0; border:0; background:transparent; box-shadow:none; }
body.adventure-mode .adventure-modal-dock .hud-unit,
body.adventure-mode .adventure-modal-dock .hud-combat-controls,
body.adventure-mode .adventure-modal-dock .hud-log { min-height:100%; padding:10px; border:1px solid rgba(207,188,149,.17); background:rgba(8,15,16,.4); }
body.adventure-mode .adventure-modal-dock .hud-unit { min-height:92px; }
body.adventure-mode .adventure-modal-dock .hud-log { grid-column:1/-1; }
body.adventure-mode .adventure-modal-dock .hud-log .log-list { max-height:120px; }
body.adventure-mode .adventure-modal-dock .hud-log .log-entry { font-size:9px; }
body.adventure-mode .adventure-modal-dock .hud-log .log-entry time { font-size:8px; }
body.adventure-mode .adventure-modal-stats { display:flex; margin-top:9px; }
body.adventure-mode .adventure-modal-moves { border:0; background:transparent; box-shadow:none; }
body.adventure-mode .adventure-modal-moves .panel-heading { padding:0 0 10px; }
body.adventure-mode .adventure-modal-moves .move-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:0; }
body.adventure-mode .adventure-modal-moves .move-card { min-height:58px; grid-template-columns:34px minmax(0,1fr) auto; gap:8px; padding:8px; }
body.adventure-mode .adventure-modal-moves .move-symbol { width:32px; height:32px; font-size:15px; }
body.adventure-mode .adventure-modal-moves .move-card strong { font-size:10px; }
body.adventure-mode .adventure-modal-moves .move-card small { margin-top:4px; font-size:8px; }
@media (max-width:680px) {
  body.adventure-mode .expedition-heading { gap:5px; }
  body.adventure-mode .expedition-heading-actions { gap:2px; }
  body.adventure-mode .expedition-heading-actions button { width:29px; min-width:29px; height:29px; font-size:12px; }
  body.adventure-mode .adventure-quickbar { grid-template-columns:1fr 1fr; gap:5px; padding:5px; }
  body.adventure-mode .quickbar-unit { gap:5px; padding:4px; }
  body.adventure-mode .quickbar-art { width:36px; height:36px; flex-basis:36px; }
  body.adventure-mode .quickbar-art img { width:33px; height:33px; }
  body.adventure-mode .quickbar-copy { font-size:7px; }
  body.adventure-mode .quickbar-copy small { font-size:6px; }
  body.adventure-mode .quickbar-copy strong { font-size:10px; }
  body.adventure-mode .quickbar-actions { grid-column:1/-1; justify-content:flex-end; }
  body.adventure-mode .quickbar-actions .button { min-height:30px; }
  body.adventure-mode .adventure-panel-backdrop { padding:8px; }
  body.adventure-mode .adventure-panel-modal { max-height:92vh; }
  body.adventure-mode .adventure-panel-head { padding:9px 11px; }
  body.adventure-mode .adventure-panel-body { padding:8px; }
  body.adventure-mode .adventure-modal-dock { grid-template-columns:1fr; }
  body.adventure-mode .adventure-modal-dock .hud-log { grid-column:auto; }
  body.adventure-mode .adventure-modal-moves .move-list { grid-template-columns:1fr; }
}

/* Better hunt planning and a visible, useful reason to earn research points. */
.hunt-analysis-panel { display:grid; grid-template-columns:72px minmax(190px,1fr) minmax(330px,1.25fr); align-items:center; gap:14px; margin:0 0 15px; padding:12px; border:1px solid rgba(164,207,162,.2); border-radius:12px; background:linear-gradient(115deg,rgba(20,43,38,.98),rgba(25,35,44,.98)); box-shadow:0 12px 28px rgba(0,0,0,.16); }
.hunt-analysis-art { width:72px; height:72px; display:grid; place-items:center; border:1px solid rgba(198,224,170,.22); border-radius:9px; background:radial-gradient(circle,rgba(151,201,123,.17),rgba(8,20,24,.2) 70%); }
.hunt-analysis-art img { width:66px; height:66px; object-fit:contain; image-rendering:pixelated; filter:drop-shadow(0 3px 5px rgba(0,0,0,.5)); }
.hunt-analysis-copy { min-width:0; }
.hunt-analysis-copy h3 { overflow:hidden; margin:4px 0 3px; color:#eef2e3; font-size:15px; text-overflow:ellipsis; white-space:nowrap; }
.hunt-analysis-copy p { margin:0 0 8px; color:#9fb5aa; font-size:9px; }
.hunt-analysis-copy .button { min-height:27px; padding:0 8px; font-size:8px; }
.hunt-analysis-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.hunt-analysis-metrics > div { min-width:0; padding:8px; border-left:1px solid rgba(179,206,178,.13); }
.hunt-analysis-metrics small { display:block; overflow:hidden; color:#88aaa0; font:7px 'DM Mono',monospace; letter-spacing:.04em; text-overflow:ellipsis; white-space:nowrap; }
.hunt-analysis-metrics strong { display:block; overflow:hidden; margin-top:5px; color:#f0e3ba; font:700 13px 'DM Mono',monospace; text-overflow:ellipsis; white-space:nowrap; }
.hunt-analysis-metrics strong i { color:#9ab0a5; font:normal 7px 'DM Mono',monospace; }
.bestiary-progress { display:grid; gap:4px; margin-top:6px; }
.bestiary-progress small { overflow:hidden; color:#b0c69e; font:6px 'DM Mono',monospace; letter-spacing:.03em; text-overflow:ellipsis; white-space:nowrap; }
.bestiary-progress > i { height:3px; overflow:hidden; background:rgba(0,0,0,.32); }
.bestiary-progress > i > b { display:block; height:100%; background:linear-gradient(90deg,#78bf86,#d7df8a); box-shadow:0 0 8px rgba(196,227,131,.42); transition:width .3s ease; }
.research-upgrades-panel { margin-top:22px; padding:17px; border:1px solid rgba(186,215,167,.18); border-radius:13px; background:linear-gradient(125deg,rgba(20,43,39,.95),rgba(25,34,45,.96)); }
.research-upgrades-heading { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:13px; }
.research-upgrades-heading h3 { margin:4px 0; color:#eaf1e2; font-size:15px; }
.research-upgrades-heading p { margin:0; color:#91a99b; font-size:9px; }
.research-points { flex:0 0 auto; padding:8px 10px; border:1px solid rgba(219,191,122,.26); color:#f0d996; background:rgba(101,75,37,.18); font:700 10px 'DM Mono',monospace; }
.research-upgrade-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.research-upgrade-card { min-width:0; display:grid; grid-template-columns:37px minmax(0,1fr); gap:9px; padding:11px; border:1px solid rgba(188,207,178,.13); background:rgba(6,17,17,.28); }
.research-upgrade-icon { width:35px; height:35px; display:grid; place-items:center; border:1px solid rgba(215,193,134,.22); color:#ead48d; background:rgba(96,72,39,.2); font-size:17px; }
.research-upgrade-copy { min-width:0; }
.research-upgrade-copy h3 { margin:1px 0 4px; color:#eaf0df; font-size:11px; }
.research-upgrade-copy p { margin:0; color:#9aada0; font-size:8px; line-height:1.4; }
.research-upgrade-foot { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-top:8px; color:#c1bf9b; font:7px 'DM Mono',monospace; }
.research-upgrade-foot .button { min-height:25px; padding:0 7px; font-size:7px; white-space:nowrap; }
.hunt-picker-close { flex:0 0 auto; width:34px; height:34px; border:1px solid rgba(194,229,158,.28); border-radius:9px; color:#dce8dd; background:rgba(2,12,6,.3); font-size:23px; line-height:1; cursor:pointer; }
.hunt-picker-close:hover { border-color:rgba(215,237,164,.65); color:#f1e3aa; background:rgba(109,140,78,.22); }
.hunt-picker-modal { height:min(900px, calc(100vh - 40px)); }
.hunt-picker-gallery { grid-template-columns:repeat(5, minmax(0, 1fr)); }
@media (max-width:1120px) {
  .hunt-picker-gallery { grid-template-columns:repeat(4, minmax(0, 1fr)); }
}
@media (max-width:820px) {
  .hunt-picker-gallery { grid-template-columns:repeat(3, minmax(0, 1fr)); }
}
@media (max-width:620px) {
  .hunt-picker-backdrop { padding:8px; }
  .hunt-picker-modal { height:calc(100vh - 16px); max-height:calc(100vh - 16px); border-radius:14px; }
  .hunt-picker-head { padding:12px; gap:8px; }
  .hunt-picker-head h2 { font-size:17px; }
  .hunt-picker-head p { font-size:9px; }
  .hunt-picker-toolbar { padding:9px 10px; }
  .hunt-picker-gallery { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:6px; padding:0 10px 10px; }
  .hunt-picker-gallery .hunt-tile { min-height:128px; }
}
@media (max-width:380px) {
  .hunt-picker-toolbar .toolbar { align-items:stretch; flex-direction:column; gap:6px; }
  .hunt-picker-toolbar .select-field { width:100%; }
}

/* Modal hub for every adventure tool. */
.menu-modal-brand { min-width:0; display:flex; align-items:center; gap:13px; }
.menu-modal-brand > div:last-child { min-width:0; }
.menu-modal-icon { width:48px; height:48px; flex:0 0 48px; display:grid; place-items:center; border:1px solid rgba(196,225,218,.2); border-radius:14px; background:linear-gradient(145deg,rgba(51,86,89,.4),rgba(25,44,47,.55)); box-shadow:inset 0 1px rgba(255,255,255,.08),0 7px 18px rgba(0,0,0,.2); }
.menu-modal-icon-hunts { border-color:rgba(103,224,197,.32); background:linear-gradient(145deg,rgba(43,128,123,.34),rgba(25,58,62,.58)); }
.menu-modal-icon-pokedex { border-color:rgba(255,133,120,.3); background:linear-gradient(145deg,rgba(168,73,76,.36),rgba(64,42,57,.55)); }
.menu-modal-icon-equipe { border-color:rgba(184,158,255,.3); background:linear-gradient(145deg,rgba(111,81,151,.38),rgba(47,44,74,.58)); }
.menu-modal-icon-melhorias { border-color:rgba(255,207,111,.32); background:linear-gradient(145deg,rgba(139,111,50,.36),rgba(54,56,47,.58)); }
.menu-modal-icon-configuracoes { border-color:rgba(152,148,235,.3); background:linear-gradient(145deg,rgba(91,79,151,.38),rgba(39,46,73,.58)); }
.menu-icon { width:30px; height:30px; display:block; filter:drop-shadow(0 2px 3px rgba(0,0,0,.3)); }
.field-tabs .menu-icon { width:22px; height:22px; }
.screen-modal-backdrop { padding:clamp(8px,2vw,24px); }
.screen-modal { display:flex; flex-direction:column; width:min(980px,100%); max-width:none; height:min(900px,calc(100vh - 40px)); max-height:calc(100vh - 40px); }
.screen-modal[data-modal-view="pokedex"] { width:min(1320px,100%); }
.screen-modal[data-modal-view="equipe"],.screen-modal[data-modal-view="melhorias"] { width:min(1080px,100%); }
.screen-modal[data-modal-view="configuracoes"] { width:min(900px,100%); }
.screen-modal-head { flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 20px 14px; border-bottom:1px solid rgba(194,229,158,.12); }
.screen-modal-head h2 { margin:4px 0 3px; color:#e7f0e8; font-size:20px; letter-spacing:-.035em; }
.screen-modal-head p { margin:0; color:#a4b7a5; font-size:10px; }
.screen-modal-content { flex:1 1 auto; min-height:0; overflow:auto; padding:16px 19px 20px; scrollbar-color:rgba(194,229,158,.35) rgba(2,12,6,.22); scrollbar-width:thin; }
.screen-modal-content > .page-intro { align-items:center; margin-bottom:12px; }
.screen-modal-content > .page-intro > div:first-child { display:none; }
.screen-modal-content-configuracoes > .page-intro { display:none; }
.screen-modal-content .page-actions { justify-content:flex-end; }
.screen-modal-content .hunt-toolbar { margin-bottom:10px; }
.screen-modal-content .pokedex-grid { grid-template-columns:repeat(8,minmax(0,1fr)); }
.screen-modal-content .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.screen-modal-content .storage-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.screen-modal-content .settings-grid { gap:10px; }
.screen-modal-content .setting-card { padding:13px; }
@media (max-width:1120px) {
  .screen-modal-content .pokedex-grid { grid-template-columns:repeat(7,minmax(0,1fr)); }
  .screen-modal-content .storage-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:820px) {
  .screen-modal-content .pokedex-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .screen-modal-content .team-grid { grid-template-columns:1fr; }
  .screen-modal-content .settings-grid { grid-template-columns:1fr; }
}
@media (max-width:620px) {
  .screen-modal-backdrop { padding:8px; }
  .screen-modal { height:calc(100vh - 16px); max-height:calc(100vh - 16px); border-radius:14px; }
  .screen-modal-head { padding:11px 12px; gap:8px; }
  .screen-modal-head h2 { font-size:16px; }
  .screen-modal-head p { font-size:8px; }
  .screen-modal-head .menu-modal-icon { width:39px; height:39px; flex-basis:39px; border-radius:11px; }
  .screen-modal-head .menu-icon { width:25px; height:25px; }
  .screen-modal-content { padding:10px; }
  .screen-modal-content .pokedex-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; }
  .screen-modal-content .storage-grid { grid-template-columns:1fr; }
  .screen-modal-content .hunt-toolbar .toolbar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .screen-modal-content .hunt-toolbar .search-field { grid-column:1/-1; width:auto; min-width:0; }
  .screen-modal-content .hunt-toolbar .select-field { width:100%; min-width:0; }
  .screen-modal-content .filter-count { display:none; }
  .screen-modal-content .page-actions { justify-content:flex-start; flex-wrap:wrap; }
  .screen-modal-content .dex-summary .stat-chip { min-width:0; padding:7px; }
}
@media (max-width:380px) {
  .screen-modal-content .pokedex-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .screen-modal-content .hunt-toolbar .toolbar { grid-template-columns:1fr; }
  .screen-modal-content .hunt-toolbar .search-field { grid-column:auto; }
}
.power-tier { display:inline-flex; max-width:100%; overflow:hidden; align-items:center; justify-content:center; padding:4px 7px; border:1px solid rgba(182,204,182,.24); border-radius:999px; color:#d6e2d6; background:rgba(10,23,17,.72); font:700 7px 'DM Mono',monospace; letter-spacing:.025em; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.power-tier-1 { border-color:rgba(241,203,105,.56); color:#ffe9a4; background:rgba(127,88,28,.28); box-shadow:0 0 10px rgba(240,194,87,.1); }
.power-tier-2 { border-color:rgba(196,159,230,.45); color:#e4ccff; background:rgba(90,59,119,.25); }
.power-tier-3 { border-color:rgba(120,191,220,.36); color:#c3e9f2; background:rgba(39,98,113,.2); }
.power-tier-4 { border-color:rgba(139,200,143,.32); color:#c9e2bd; background:rgba(58,103,58,.2); }
.power-tier-5 { border-color:rgba(166,178,171,.25); color:#bdc8c0; background:rgba(70,80,75,.2); }
.power-tier.compact { padding:2px 5px; font-size:6px; }
.pokemon-rarity { display:inline-flex; align-items:center; justify-content:center; width:max-content; max-width:100%; padding:4px 7px; border:1px solid rgba(183,198,190,.28); border-radius:999px; color:#d1dbd4; background:rgba(14,25,21,.72); font:700 7px 'DM Mono',monospace; line-height:1.25; white-space:nowrap; }
.pokemon-rarity.compact { padding:2px 5px; font-size:6px; }
.rarity-common { border-color:rgba(181,193,185,.3); color:#d2dcd5; background:rgba(75,89,80,.24); }
.rarity-uncommon { border-color:rgba(119,211,146,.38); color:#a9efbc; background:rgba(37,107,63,.24); }
.rarity-rare { border-color:rgba(106,184,244,.42); color:#b1ddff; background:rgba(39,91,145,.25); }
.rarity-epic { border-color:rgba(194,133,255,.48); color:#e0c1ff; background:rgba(105,55,143,.29); box-shadow:0 0 9px rgba(186,125,255,.1); }
.rarity-legendary { border-color:rgba(249,196,91,.58); color:#ffe19a; background:rgba(126,83,22,.33); box-shadow:0 0 11px rgba(243,187,72,.15); }
.hunt-tier-meta { display:inline-flex; align-items:center; gap:5px; }
.hunt-tier-meta > small { color:#98a99a; font:7px 'DM Mono',monospace; }
.dex-tile .power-tier { margin-top:4px; }
.dex-tile .pokemon-rarity { margin-top:4px; }
.team-slot .power-tier { margin-top:8px; }
.team-slot .pokemon-rarity { margin-top:8px; }
.quickbar-tier { color:#d0d8bd!important; font-size:7px!important; }
.hunt-picker-toolbar .search-field { flex:1; min-width:220px; }
.hunt-picker-toolbar .select-field { min-width:145px; }
@media (max-width:620px) {
  .hunt-picker-toolbar .toolbar { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:6px; }
  .hunt-picker-toolbar .search-field { grid-column:1/-1; width:auto; min-width:0; }
  .hunt-picker-toolbar .select-field { width:100%; min-width:0; }
}
@media (max-width:380px) {
  .hunt-picker-toolbar .toolbar { grid-template-columns:1fr; }
  .hunt-picker-toolbar .search-field { grid-column:auto; }
}
@media (max-width:620px) {
  .content-area .hunt-toolbar .toolbar { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:6px; }
  .content-area .hunt-toolbar .search-field { grid-column:1/-1; width:auto; min-width:0; }
  .content-area .hunt-toolbar .select-field { width:100%; min-width:0; }
}
@media (max-width:820px) {
  .hunt-analysis-panel { grid-template-columns:55px minmax(0,1fr); gap:8px; padding:9px; }
  .hunt-analysis-art { width:55px; height:55px; }
  .hunt-analysis-art img { width:51px; height:51px; }
  .hunt-analysis-metrics { grid-column:1/-1; }
  .hunt-analysis-metrics > div:first-child { border-left:0; }
}
@media (max-width:620px) {
  .hunt-analysis-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hunt-analysis-metrics > div:nth-child(odd) { border-left:0; }
  .research-upgrade-grid { grid-template-columns:1fr; }
  .research-upgrades-panel { padding:12px; }
  .research-upgrades-heading { align-items:flex-start; }
  .research-upgrade-foot { flex-wrap:wrap; }
}


/* Keep the corner toast hidden; hunt messages live in the compact map overlay. */
body.adventure-mode .toast-region { display:none !important; }
body.adventure-mode .game-world-panel .map-wrap { height:clamp(360px,min(80vh,calc(100vh - 228px)),920px); }
body.adventure-mode .adventure-chat-tabs { flex:0 0 auto; display:flex; align-items:center; gap:3px; }
body.adventure-mode .adventure-chat-tabs button {
  min-width:38px; height:18px; padding:0 5px; border:1px solid rgba(189,162,121,.22); border-radius:3px;
  color:#a8a496; background:rgba(58,49,52,.45); font:7px 'Courier New',monospace;
}
body.adventure-mode .adventure-chat-tabs button.is-active { border-color:#bd9361; color:#f1d49a; background:rgba(115,75,57,.38); }
body.adventure-mode .adventure-chat-tabs button:disabled { opacity:.4; cursor:default; }
body.adventure-mode .adventure-chat-messages {
  min-height:0; flex:1 1 auto; display:flex; flex-direction:column; gap:2px; overflow:auto;
  padding:4px 7px; scrollbar-width:thin; scrollbar-color:#7e614c rgba(12,16,16,.45);
}
body.adventure-mode .adventure-chat-entry {
  min-width:0; display:flex; align-items:baseline; gap:7px; padding:1px 4px;
  border-left:2px solid rgba(161,155,127,.38); background:rgba(8,14,14,.2);
  color:#d8d4c4; font:8px/1.25 'Courier New',monospace;
}
body.adventure-mode .adventure-chat-entry time { flex:0 0 37px; color:#9e8c74; font-size:7px; }
body.adventure-mode .adventure-chat-entry > span { min-width:0; overflow-wrap:anywhere; }
body.adventure-mode .adventure-chat-entry.chat-entry-shiny { border-left-color:#e8c84f; color:#fff0a4; }
body.adventure-mode .adventure-chat-entry.chat-entry-highlight { border-left-color:#83b985; color:#c4e7bb; }
body.adventure-mode .chat-notice-icon { margin-right:3px; color:#e8c77c; }
body.adventure-mode .adventure-chat-empty { padding:4px; color:#918d81; font:8px 'Courier New',monospace; }
@media (max-width:680px) {
  body.adventure-mode .game-world-panel .map-wrap { height:clamp(340px,calc(100vh - 307px),660px); min-height:340px; }
  body.adventure-mode .adventure-chat-tabs button { min-width:34px; padding:0 4px; font-size:6px; }
  body.adventure-mode .adventure-chat-entry { font-size:7px; }
}


/* Compact chat preview floats at the lower edge of the map; the full history opens on demand. */
body.adventure-mode .adventure-chat-compact {
  position:absolute; z-index:8; right:10px; bottom:38px; width:min(278px,calc(100% - 120px)); height:44px;
  display:flex; flex-direction:column; gap:3px; overflow:hidden; padding:4px 6px;
  border:1px solid rgba(197,159,113,.58); border-radius:5px;
  color:#e8ddc5; background:rgba(23,24,27,.88); box-shadow:0 3px 10px rgba(0,0,0,.4),inset 0 0 0 1px rgba(194,151,101,.1);
  pointer-events:auto; backdrop-filter:blur(3px);
}
body.adventure-mode .adventure-chat-compact-head { min-width:0; display:flex; align-items:center; justify-content:space-between; gap:7px; }
body.adventure-mode .adventure-chat-compact-head > div { min-width:0; display:flex; align-items:baseline; gap:7px; overflow:hidden; }
body.adventure-mode .adventure-chat-compact-head strong { flex:0 0 auto; color:#e9c47e; font:700 7px 'Courier New',monospace; letter-spacing:.07em; }
body.adventure-mode .adventure-chat-compact-head span { overflow:hidden; color:#b5ad9c; font:6px 'Courier New',monospace; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .adventure-chat-compact-head button { width:19px; height:19px; flex:0 0 19px; display:grid; place-items:center; padding:2px; border:1px solid rgba(206,178,130,.36); border-radius:3px; color:#f1d49a; background:rgba(86,62,53,.75); cursor:pointer; }
body.adventure-mode .adventure-chat-compact-head button:hover { color:#fff1ca; border-color:#e6c47c; background:#704d45; }
body.adventure-mode .adventure-chat-compact-head svg { width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
body.adventure-mode .adventure-chat-preview { min-width:0; display:flex; align-items:center; gap:6px; overflow:hidden; color:#ded9c9; font:7px/1.2 'Courier New',monospace; white-space:nowrap; }
body.adventure-mode .adventure-chat-preview time { flex:0 0 auto; color:#a39178; font-size:6px; }
body.adventure-mode .adventure-chat-preview > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .adventure-chat-preview .chat-entry-shiny { color:#fff0a4; }
body.adventure-mode .adventure-chat-preview .chat-entry-highlight { color:#c4e7bb; }
body.adventure-mode .adventure-chat-backdrop { z-index:80; padding:16px; background:rgba(8,7,11,.78); }
body.adventure-mode .adventure-chat-modal { width:min(600px,100%); max-height:min(82vh,760px); display:flex; flex-direction:column; overflow:hidden; border:2px solid #8c6245; border-radius:6px; color:#f2e1c8; background:#302631; box-shadow:inset 0 0 0 1px #c29468,0 18px 60px rgba(0,0,0,.62); }
body.adventure-mode .adventure-chat-modal-head { flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 15px; border-bottom:1px solid rgba(222,188,135,.22); background:linear-gradient(110deg,#392d3a,#263332); }
body.adventure-mode .adventure-chat-modal-head .eyebrow { color:#d7b771; font:700 8px 'Courier New',monospace; letter-spacing:.1em; }
body.adventure-mode .adventure-chat-modal-head h2 { margin:3px 0; color:#f5e7cd; font:700 16px 'Courier New',monospace; }
body.adventure-mode .adventure-chat-modal-head p { margin:0; color:#b5ad9c; font:8px 'Courier New',monospace; }
body.adventure-mode .adventure-chat-close { width:30px; height:30px; border:1px solid rgba(232,203,153,.35); border-radius:4px; color:#f2dfbd; background:rgba(8,11,12,.28); font-size:22px; line-height:1; cursor:pointer; }
body.adventure-mode .adventure-chat-modal .adventure-chat-tabs { flex:0 0 auto; justify-content:flex-start; padding:8px 12px 5px; }
body.adventure-mode .adventure-chat-modal .adventure-chat-tabs button { min-width:58px; height:24px; font-size:8px; }
body.adventure-mode .adventure-chat-modal .adventure-chat-messages { min-height:160px; max-height:55vh; padding:7px 12px; }
body.adventure-mode .adventure-chat-modal .adventure-chat-entry { padding:4px 6px; font-size:9px; }
body.adventure-mode .adventure-chat-modal .adventure-chat-entry time { flex-basis:44px; font-size:8px; }
body.adventure-mode .adventure-chat-modal-foot { flex:0 0 auto; padding:8px 12px; border-top:1px solid rgba(197,159,113,.18); color:#958b7e; font:8px 'Courier New',monospace; }
body.adventure-mode .chat-connection-status { display:flex; align-items:center; gap:6px; }
body.adventure-mode .chat-connection-status::before { content:""; width:7px; height:7px; flex:0 0 7px; border-radius:50%; background:#8b716d; box-shadow:0 0 0 2px rgba(139,113,109,.14); }
body.adventure-mode .chat-connection-status.is-online::before { background:#82ce86; box-shadow:0 0 0 2px rgba(130,206,134,.18),0 0 8px rgba(130,206,134,.5); }
body.adventure-mode .chat-connection-status.is-connecting::before { background:#e6bd66; animation:chat-status-pulse 1.1s ease-in-out infinite alternate; }
@keyframes chat-status-pulse { to { opacity:.4; } }
body.adventure-mode .chat-recipient-wrap { flex:0 0 auto; align-items:center; gap:8px; padding:5px 12px; color:#c8b99c; font:8px 'Courier New',monospace; }
body.adventure-mode .chat-recipient-wrap:not([hidden]) { display:flex; }
body.adventure-mode .chat-recipient-wrap select { min-width:0; width:100%; max-width:260px; height:27px; padding:3px 7px; border:1px solid rgba(206,178,130,.35); border-radius:4px; color:#eadcc4; background:#25272a; font:9px 'Courier New',monospace; }
body.adventure-mode .chat-composer { flex:0 0 auto; display:flex; gap:6px; padding:8px 12px; border-top:1px solid rgba(197,159,113,.18); background:rgba(8,11,12,.2); }
body.adventure-mode .chat-composer[hidden] { display:none; }
body.adventure-mode .chat-composer input { min-width:0; flex:1 1 auto; height:32px; padding:5px 9px; border:1px solid rgba(206,178,130,.3); border-radius:4px; outline:none; color:#f0e2ca; background:#202427; font:9px 'Courier New',monospace; }
body.adventure-mode .chat-composer input:focus { border-color:#c5a170; box-shadow:0 0 0 2px rgba(197,161,112,.13); }
body.adventure-mode .chat-composer button { min-width:65px; padding:0 11px; font:700 9px 'Courier New',monospace; }
body.adventure-mode .chat-composer button:disabled { opacity:.45; cursor:default; }
body.adventure-mode .adventure-chat-modal .online-chat-entry { border-left-color:rgba(123,176,199,.58); }
body.adventure-mode .adventure-chat-modal .online-chat-entry b { color:#9ed0d6; font-weight:700; }
body.adventure-mode .adventure-chat-modal .online-chat-entry.is-mine { border-left-color:#9abb78; background:rgba(92,120,68,.11); }
body.adventure-mode .adventure-chat-modal .online-chat-entry.is-mine b { color:#c1d79c; }
body.adventure-mode .adventure-chat-modal #chatModalNotice { min-height:30px; }
@media (max-width:680px) {
  body.adventure-mode .adventure-chat-compact { right:6px; bottom:34px; width:min(220px,calc(100% - 94px)); height:42px; padding:3px 5px; }
  body.adventure-mode .adventure-chat-compact-head span { display:none; }
  body.adventure-mode .adventure-chat-backdrop { padding:8px; }
  body.adventure-mode .adventure-chat-modal { max-height:90vh; }
  body.adventure-mode .adventure-chat-modal .adventure-chat-messages { max-height:62vh; }
  body.adventure-mode .chat-recipient-wrap { align-items:flex-start; flex-direction:column; }
  body.adventure-mode .chat-recipient-wrap select { max-width:none; }
}

/* Unified, compact combat strip: both Pokemon and all manual attacks share one panel. */
body.adventure-mode .adventure-combat-console {
  min-width:0; display:grid; gap:4px; padding:6px 8px;
  border:1px solid rgba(197,159,113,.38); border-radius:7px;
  background:linear-gradient(105deg,rgba(31,35,34,.98),rgba(42,32,43,.98));
  box-shadow:0 5px 16px rgba(0,0,0,.24),inset 0 1px rgba(235,210,165,.06);
}
body.adventure-mode .adventure-combat-console > .adventure-dock,
body.adventure-mode .adventure-combat-console > .adventure-statbar { display:none !important; }
body.adventure-mode .adventure-combat-console > .adventure-quickbar {
  min-width:0; grid-template-columns:max-content max-content auto; justify-content:start; align-items:center;
  gap:6px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none;
}
body.adventure-mode .adventure-combat-console .quickbar-unit {
  width:max-content; max-width:320px; min-width:0; min-height:55px; gap:7px; padding:4px 7px;
  border:1px solid rgba(208,193,157,.16); border-radius:5px; background:rgba(8,17,17,.32);
}
body.adventure-mode .adventure-combat-console .quickbar-art { width:42px; height:42px; flex-basis:42px; }
body.adventure-mode .adventure-combat-console .quickbar-art img { width:39px; height:39px; }
body.adventure-mode .adventure-combat-console .quickbar-copy { gap:2px; font-size:8px; }
body.adventure-mode .adventure-combat-console .quickbar-copy small { font-size:7px; }
body.adventure-mode .adventure-combat-console .quickbar-copy strong { font-size:11px; }
body.adventure-mode .adventure-combat-console .quickbar-actions { gap:5px; padding-left:2px; }
body.adventure-mode .adventure-combat-console .quickbar-actions .button { min-height:31px; padding:0 9px; font-size:8px; }
body.adventure-mode .adventure-combat-console > .moves-panel {
  min-width:0; min-height:0; margin:0; padding:0; border:0; border-top:1px solid rgba(197,159,113,.2);
  border-radius:0; background:transparent; box-shadow:none;
}
body.adventure-mode .adventure-combat-console > .moves-panel .panel-heading {
  min-height:25px; display:flex; align-items:center; padding:3px 2px 2px; border:0;
}
body.adventure-mode .adventure-combat-console > .moves-panel .panel-heading strong { font-size:9px; }
body.adventure-mode .adventure-combat-console > .moves-panel .chip { padding:2px 5px; font-size:7px; }
body.adventure-mode .adventure-combat-console > .moves-panel .move-list { gap:5px; padding:3px 0 0; }
body.adventure-mode .adventure-combat-console > .moves-panel .move-card { min-height:43px; grid-template-columns:27px minmax(0,1fr) auto; gap:6px; padding:5px 7px; border-radius:5px; }
body.adventure-mode .adventure-combat-console > .moves-panel .move-symbol { width:25px; height:25px; font-size:13px; }
body.adventure-mode .adventure-combat-console > .moves-panel .move-card strong { font-size:9px; }
body.adventure-mode .adventure-combat-console > .moves-panel .move-card small { margin-top:2px; font-size:7px; }
body.adventure-mode .adventure-combat-console > .moves-panel .move-cast-hint { font-size:7px; }
@media (max-width:900px) {
  body.adventure-mode .adventure-combat-console > .adventure-quickbar { grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; }
  body.adventure-mode .adventure-combat-console .quickbar-unit { width:auto; max-width:none; }
}
@media (max-width:620px) {
  body.adventure-mode .adventure-combat-console { gap:4px; padding:5px; }
  body.adventure-mode .adventure-combat-console > .adventure-quickbar { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:4px; }
  body.adventure-mode .adventure-combat-console .quickbar-unit { min-height:48px; gap:4px; padding:3px; }
  body.adventure-mode .adventure-combat-console .quickbar-art { width:32px; height:32px; flex-basis:32px; }
  body.adventure-mode .adventure-combat-console .quickbar-art img { width:30px; height:30px; }
  body.adventure-mode .adventure-combat-console .quickbar-copy small { font-size:6px; }
  body.adventure-mode .adventure-combat-console .quickbar-copy strong { font-size:9px; }
  body.adventure-mode .adventure-combat-console .quickbar-copy > span { font-size:7px; }
  body.adventure-mode .adventure-combat-console .quickbar-actions { grid-column:1/-1; justify-content:flex-end; }
  body.adventure-mode .adventure-combat-console > .moves-panel .panel-heading { min-height:22px; }
  body.adventure-mode .adventure-combat-console > .moves-panel .panel-heading strong { font-size:8px; }
  body.adventure-mode .adventure-combat-console > .moves-panel .chip { max-width:58%; font-size:6px; }
  body.adventure-mode .adventure-combat-console > .moves-panel .move-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; }
  body.adventure-mode .adventure-combat-console > .moves-panel .move-card { min-height:40px; grid-template-columns:22px minmax(0,1fr); gap:3px; padding:4px; }
  body.adventure-mode .adventure-combat-console > .moves-panel .move-symbol { width:20px; height:20px; font-size:10px; }
  body.adventure-mode .adventure-combat-console > .moves-panel .move-card strong { font-size:8px; }
  body.adventure-mode .adventure-combat-console > .moves-panel .move-card small { font-size:6px; }
  body.adventure-mode .adventure-combat-console > .moves-panel .move-cast-hint { display:none; }
}

/* Fit the complete adventure HUD inside the live Android viewport. */
@media (max-width:680px) {
  html:has(body.adventure-mode),
  body.adventure-mode,
  body.adventure-mode .app-shell {
    width:100%; height:100vh; height:100dvh; min-height:0; overflow:hidden;
  }
  body.adventure-mode { overscroll-behavior:none; }
  body.adventure-mode .main-content {
    width:100%; height:100%; min-height:0; overflow:hidden; padding:0;
  }
  body.adventure-mode .content-area {
    flex:1 1 0%; min-height:0; height:auto; display:flex; flex-direction:column;
    gap:4px; overflow:hidden; padding:4px 5px max(4px,env(safe-area-inset-bottom));
  }
  body.adventure-mode .expedition-heading {
    flex:0 0 auto; min-height:27px; margin:0; gap:4px;
  }
  body.adventure-mode .expedition-heading h2 { max-width:140px; }
  body.adventure-mode .expedition-heading-actions { gap:3px; }
  body.adventure-mode .expedition-heading-actions button {
    width:28px; min-width:28px; height:27px;
  }
  body.adventure-mode .adventure-client {
    flex:1 1 0%; min-height:0; height:auto; display:grid;
    grid-template-rows:minmax(0,1fr) auto; gap:4px; overflow:hidden;
  }
  body.adventure-mode .game-world-panel { min-height:0; height:100%; overflow:hidden; }
  body.adventure-mode .game-world-panel .map-wrap {
    width:100%; height:100% !important; min-height:0 !important; max-height:none !important;
  }
  body.adventure-mode .adventure-combat-console {
    min-height:0; max-height:42%; gap:3px; padding:4px;
    overflow:hidden; grid-template-rows:auto minmax(0,1fr);
  }
  body.adventure-mode .adventure-combat-console > .adventure-quickbar {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:3px;
  }
  body.adventure-mode .adventure-combat-console .quickbar-unit { min-height:43px; }
  body.adventure-mode .adventure-combat-console .quickbar-actions {
    grid-column:1 / -1; justify-content:flex-end; gap:4px;
  }
  body.adventure-mode .adventure-combat-console .quickbar-actions .button {
    min-height:26px; padding:0 8px; touch-action:manipulation;
  }
  body.adventure-mode .adventure-combat-console .quickbar-actions { flex-wrap:wrap; }
  body.adventure-mode .adventure-combat-console .quickbar-actions .ball-throw-label { display:none; }
  body.adventure-mode .adventure-combat-console .quickbar-actions .ball-throw-button { gap:3px; padding:0 6px; }
  body.adventure-mode .ball-shop-backdrop { padding:8px; }
  body.adventure-mode .ball-shop-modal { max-height:94dvh; border-radius:9px; }
  body.adventure-mode .ball-shop-head { padding:12px; }
  body.adventure-mode .ball-shop-head h2 { font-size:17px; }
  body.adventure-mode .ball-shop-head p { max-width:230px; font-size:10px; }
  body.adventure-mode .ball-shop-wallet { padding:6px; font-size:9px; }
  body.adventure-mode .ball-shop-grid { gap:7px; padding:8px; }
  body.adventure-mode .ball-shop-card { padding:8px; }
  body.adventure-mode .ball-shop-card-title h3 { font-size:11px; }
  body.adventure-mode .ball-shop-card-title span { font-size:8px; }
  body.adventure-mode .ball-shop-card p { min-height:0; font-size:9px; }
  body.adventure-mode .ball-shop-card-actions { flex-direction:column; gap:5px; }
  body.adventure-mode .ball-shop-card-actions .button { min-height:28px; }
  body.adventure-mode .ball-shop-foot { padding:8px; font-size:8px; }
  body.adventure-mode .ball-throw-settings-body { gap:12px; padding:10px; }
  body.adventure-mode .ball-fallback-heading { align-items:stretch; flex-direction:column; gap:9px; }
  body.adventure-mode .ball-fallback-add { min-width:0; }
  body.adventure-mode .ball-fallback-heading small { max-width:none; }
  body.adventure-mode .ball-fallback-item { gap:6px; padding:5px; }
  body.adventure-mode .adventure-combat-console > .moves-panel {
    min-height:0; overflow:hidden; display:flex; flex-direction:column;
  }
  body.adventure-mode .adventure-combat-console > .moves-panel .panel-heading {
    flex:0 0 20px; min-height:20px; justify-content:space-between; gap:4px; padding:2px 1px;
  }
  body.adventure-mode .adventure-combat-console > .moves-panel .move-list {
    min-height:0; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3px; padding:2px 0 0;
  }
  body.adventure-mode .adventure-combat-console > .moves-panel .move-card {
    min-width:0; min-height:34px; grid-template-columns:20px minmax(0,1fr); gap:3px; padding:3px;
  }
  body.adventure-mode .adventure-combat-console > .moves-panel .move-symbol { width:18px; height:18px; }
  body.adventure-mode .adventure-combat-console > .moves-panel .move-card strong,
  body.adventure-mode .adventure-combat-console > .moves-panel .move-card small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  body.adventure-mode .adventure-combat-console > .moves-panel .move-cast-hint { display:none; }
}

/* Short phones and landscape Android screens need a shallower combat strip. */
@media (max-width:680px) and (max-height:740px) {
  body.adventure-mode .expedition-heading { min-height:24px; }
  body.adventure-mode .expedition-heading-actions button { height:24px; }
  body.adventure-mode .adventure-combat-console { max-height:40%; gap:2px; padding:3px; }
  body.adventure-mode .adventure-combat-console .quickbar-unit { min-height:37px; }
  body.adventure-mode .adventure-combat-console .quickbar-art { width:26px; height:26px; flex-basis:26px; }
  body.adventure-mode .adventure-combat-console .quickbar-art img { width:25px; height:25px; }
  body.adventure-mode .adventure-combat-console .quickbar-copy > span.quickbar-tier { display:none; }
  body.adventure-mode .adventure-combat-console .quickbar-actions .button { min-height:23px; }
  body.adventure-mode .adventure-combat-console > .moves-panel .panel-heading { flex-basis:18px; min-height:18px; }
  body.adventure-mode .adventure-combat-console > .moves-panel .move-card { min-height:30px; }
  body.adventure-mode .adventure-combat-console > .moves-panel .move-symbol { width:16px; height:16px; }
}

@media (max-width:680px) and (orientation:landscape) {
  body.adventure-mode .world-minimap { width:82px; }
  body.adventure-mode #miniMapCanvas { height:30px; }
  body.adventure-mode .adventure-combat-console > .adventure-quickbar {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;
  }
  body.adventure-mode .adventure-combat-console .quickbar-actions { grid-column:auto; }
}

@media (max-width:520px) {
  body.adventure-mode .ball-shop-grid { grid-template-columns:minmax(0,1fr); }
  body.adventure-mode .ball-shop-card-actions { flex-direction:row; }
  body.adventure-mode .ball-shop-card-actions { flex-wrap:wrap; }
  body.adventure-mode .ball-shop-card-actions > .button { flex:1 1 100%; }
  body.adventure-mode .ball-buy-controls { flex:1 1 100%; }
  body.adventure-mode .ball-shop-card p { min-height:0; }
  body.adventure-mode .ball-shop-foot { align-items:flex-start; }
}

/* Account access: responsive sign-in, registration and recovery. */
html:has(body.auth-mode),
body.auth-mode,
body.auth-mode .app-shell {
  width:100%; min-width:320px; min-height:100%; height:100vh; height:100dvh; overflow:hidden;
}
body.auth-mode { color:#e8e4d6; background:radial-gradient(ellipse at 72% 24%,rgba(101,91,151,.22),transparent 40%),radial-gradient(ellipse at 12% 90%,rgba(58,139,113,.19),transparent 39%),#10151b; }
body.auth-mode .sidebar,
body.auth-mode .topbar { display:none !important; }
body.auth-mode .main-content { display:flex; width:100%; height:100%; min-height:0; padding:0; overflow:hidden; }
body.auth-mode .content-area { flex:1 1 auto; min-height:0; display:grid; place-items:center; overflow:auto; padding:clamp(12px,3vw,32px); background:transparent; }
.auth-screen { width:min(980px,100%); min-height:min(660px,100%); display:grid; grid-template-columns:minmax(340px,.95fr) minmax(0,1.05fr); overflow:hidden; border:1px solid rgba(230,215,179,.16); border-radius:22px; background:linear-gradient(130deg,rgba(26,33,39,.98),rgba(24,28,38,.97)); box-shadow:0 28px 90px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.055); }
.auth-card { min-width:0; display:flex; flex-direction:column; justify-content:center; padding:clamp(24px,4vw,52px); }
.auth-brand { display:flex; align-items:center; gap:11px; margin-bottom:clamp(24px,5vh,48px); }
.auth-brand-ball { position:relative; width:39px; height:39px; display:grid; place-items:center; flex:0 0 39px; border:2px solid #f1e6ce; border-radius:50%; background:linear-gradient(#f7f1e5 0 44%,#312b3d 44% 56%,#cf765d 56%); box-shadow:0 0 23px rgba(235,180,100,.24); }
.auth-brand-ball:before { content:""; position:absolute; top:16px; left:0; right:0; height:3px; background:#332c36; }
.auth-brand-ball i { z-index:1; width:10px; height:10px; border:2px solid #f5ead4; border-radius:50%; background:#4f4851; }
.auth-brand > div { display:grid; gap:3px; }
.auth-brand strong { color:#f7ebcd; font:800 12px 'Segoe UI',sans-serif; letter-spacing:.16em; }
.auth-brand > div span { color:#9ca9a4; font:8px 'DM Mono',monospace; letter-spacing:.18em; }
.auth-eyebrow { color:#eac477; font:700 8px 'DM Mono',monospace; letter-spacing:.17em; }
.auth-card h1 { margin:8px 0 5px; color:#f5f1e5; font-size:clamp(22px,3vw,30px); letter-spacing:-.045em; }
.auth-description { max-width:390px; margin:0 0 19px; color:#aeb8b2; font-size:11px; line-height:1.55; }
.auth-feedback { margin:0 0 12px; padding:9px 10px; border:1px solid rgba(131,193,148,.27); border-radius:8px; color:#bce5c0; background:rgba(65,119,73,.15); font-size:10px; line-height:1.45; }
.auth-feedback[hidden] { display:none; }
.auth-feedback.error { border-color:rgba(222,123,112,.4); color:#f2b3a8; background:rgba(126,42,44,.18); }
.auth-feedback.warning { border-color:rgba(235,190,95,.34); color:#f3d89d; background:rgba(127,92,33,.18); }
.auth-feedback.info { border-color:rgba(136,178,195,.3); color:#c0d9e1; background:rgba(54,94,111,.18); }
.auth-form { display:grid; gap:10px; }
.auth-field { min-width:0; display:grid; gap:5px; color:#bec6bf; font-size:9px; font-weight:700; }
.auth-field input { width:100%; min-width:0; height:42px; padding:0 12px; border:1px solid rgba(206,213,196,.2); border-radius:8px; outline:none; color:#f5f2e8; background:rgba(8,13,17,.72); font-size:12px; }
.auth-field input::placeholder { color:#73817d; }
.auth-field input:focus { border-color:#caa36b; box-shadow:0 0 0 3px rgba(202,163,107,.13); }
.auth-submit,.auth-secondary { width:100%; min-height:43px; border:1px solid #d2aa6d; border-radius:8px; color:#241e24; background:linear-gradient(130deg,#f3d393,#d4a963); font-weight:800; font-size:11px; cursor:pointer; box-shadow:0 5px 15px rgba(0,0,0,.2); }
.auth-submit { margin-top:3px; }
.auth-submit:hover { filter:brightness(1.07); }
.auth-submit:disabled { cursor:wait; opacity:.66; }
.auth-secondary { border-color:rgba(201,176,132,.35); color:#ead9b7; background:rgba(111,81,91,.22); box-shadow:none; }
.auth-secondary:hover { border-color:rgba(231,199,133,.65); background:rgba(120,83,94,.32); }
.auth-legal { margin:1px 2px 0; color:#7f8b85; font-size:8px; line-height:1.45; }
.auth-link-row { display:flex; flex-wrap:wrap; justify-content:space-between; gap:7px 12px; margin:11px 0 15px; }
.auth-text-button { padding:3px 0; border:0; color:#d2bd91; background:transparent; font-size:9px; cursor:pointer; }
.auth-text-button:hover { color:#ffe0a8; text-decoration:underline; }
.auth-divider { display:flex; align-items:center; gap:8px; margin:2px 0 10px; color:#77847e; font:7px 'DM Mono',monospace; letter-spacing:.12em; }
.auth-divider:before,.auth-divider:after { content:""; height:1px; flex:1; background:rgba(205,210,187,.12); }
.auth-footer { margin-top:clamp(17px,4vh,35px); color:#7f8b85; font-size:8px; line-height:1.5; }
.auth-art { position:relative; display:flex; align-items:flex-end; min-height:100%; overflow:hidden; padding:clamp(22px,4vw,48px); isolation:isolate; background:radial-gradient(ellipse at 56% 32%,rgba(255,197,103,.25),transparent 29%),linear-gradient(153deg,#394458 0%,#423c55 42%,#273b42 72%,#1d302f 100%); }
.auth-art:before { content:""; position:absolute; z-index:-1; inset:0; background:radial-gradient(circle at 66% 24%,rgba(255,235,173,.4) 0 2px,transparent 3px),radial-gradient(circle at 28% 18%,rgba(240,221,184,.65) 0 1px,transparent 2px),radial-gradient(circle at 80% 52%,rgba(220,212,183,.38) 0 1px,transparent 2px),radial-gradient(circle at 19% 54%,rgba(233,218,192,.4) 0 1px,transparent 2px); }
.auth-art-mountains { position:absolute; z-index:-1; right:-12%; bottom:-2px; left:-10%; height:48%; background:linear-gradient(150deg,transparent 0 20%,#334449 20% 30%,transparent 30%),linear-gradient(32deg,#1a2a2c 0 28%,transparent 28%),linear-gradient(145deg,transparent 0 35%,#253538 35% 60%,transparent 60%),linear-gradient(23deg,#1b2c30 0 52%,#1e3032 52%); clip-path:polygon(0 42%,13% 22%,25% 44%,42% 0,58% 44%,71% 14%,87% 52%,100% 25%,100% 100%,0 100%); }
.auth-art-orbit { position:absolute; top:17%; left:50%; border:1px solid rgba(247,219,153,.32); border-radius:50%; transform:translateX(-50%) rotate(-17deg); }
.auth-art .orbit-one { width:240px; height:105px; }
.auth-art .orbit-two { width:300px; height:145px; transform:translateX(-50%) rotate(28deg); border-color:rgba(184,207,181,.25); }
.auth-art-spark { position:absolute; color:#fff0b8; text-shadow:0 0 13px #ffe08d; animation:auth-sparkle 2.4s ease-in-out infinite alternate; }
.auth-art .spark-one { top:21%; left:26%; font-size:19px; }
.auth-art .spark-two { top:34%; right:21%; font-size:13px; animation-delay:.8s; }
.auth-art-copy { display:grid; gap:9px; }
.auth-art-copy span { color:#f2cb80; font:700 8px 'DM Mono',monospace; letter-spacing:.18em; }
.auth-art-copy strong { color:#fbf1d9; font:700 clamp(25px,3.4vw,39px)/1.15 'Segoe UI',sans-serif; letter-spacing:-.045em; text-shadow:0 3px 18px rgba(0,0,0,.25); }
.auth-art-copy small { color:#c4ccc0; font-size:10px; }
.auth-loading { min-height:70px; display:flex; align-items:center; gap:10px; color:#d6c79e; font-size:10px; }
.auth-loading i { width:18px; height:18px; border:2px solid rgba(227,193,123,.28); border-top-color:#e7c477; border-radius:50%; animation:auth-spin .8s linear infinite; }
.auth-server-help { margin:3px 0 12px; padding:12px; border:1px solid rgba(235,190,95,.24); border-radius:8px; color:#b7c1b7; background:rgba(8,13,17,.42); font-size:10px; line-height:1.55; }
.auth-server-help strong { color:#f1d092; }
.auth-message-only .auth-screen { width:min(560px,100%); min-height:0; grid-template-columns:minmax(0,1fr); }
.auth-message-only .auth-art { display:none; }
.account-save-status { margin:3px 0 8px; color:#97d1a2; font-size:9px; line-height:1.4; }
.account-setting-card { border-color:rgba(205,169,106,.35); background:linear-gradient(145deg,rgba(70,55,47,.16),rgba(19,30,34,.72)); }
.account-password-form { padding:0 16px 16px; }
.account-password-modal .auth-feedback { margin:0; }
@keyframes auth-spin { to { transform:rotate(360deg); } }
@keyframes auth-sparkle { from { opacity:.4; transform:scale(.78); } to { opacity:1; transform:scale(1.15); } }
@media (max-width:700px) {
  body.auth-mode .content-area { place-items:center; padding:10px; }
  .auth-screen { width:min(480px,100%); min-height:min(690px,100%); grid-template-columns:minmax(0,1fr); border-radius:15px; }
  .auth-card { padding:clamp(20px,6vw,30px); }
  .auth-brand { margin-bottom:clamp(19px,4vh,31px); }
  .auth-art { display:none; }
  .auth-footer { margin-top:20px; }
  .auth-message-only .auth-screen { min-height:0; }
}
@media (max-height:650px) and (max-width:700px) {
  body.auth-mode .content-area { align-items:start; }
  .auth-screen { min-height:0; }
  .auth-brand { margin-bottom:15px; }
  .auth-card { padding:16px 20px; }
  .auth-footer { margin-top:13px; }
  .auth-field { gap:3px; }
  .auth-field input { height:37px; }
  .auth-form { gap:7px; }
}

/* Keep the account screen inside the phone viewport even though the game shell has a sidebar grid. */
html:has(body.auth-mode) {
  width: 100%;
  min-width: 0;
  overflow: hidden;
}
body.auth-mode {
  width: 100%;
  min-width: 0;
}
body.auth-mode .app-shell {
  display: block;
  width: 100%;
  min-width: 0;
}
body.auth-mode .main-content {
  width: 100%;
  min-width: 0;
  flex: 1 1 100%;
}
body.auth-mode .content-area,
body.auth-mode #screenContent {
  width: 100%;
  min-width: 0;
}
.auth-screen {
  width: min(980px, 100%);
  max-width: 100%;
  min-width: 0;
}
.auth-card {
  width: 100%;
  min-width: 0;
}
.auth-brand,
.auth-brand > div {
  min-width: 0;
}
.auth-brand strong {
  white-space: nowrap;
}
.auth-eyebrow {
  line-height: 1.5;
  overflow-wrap: anywhere;
}
@media (max-width: 700px) {
  body.auth-mode .content-area {
    width: 100%;
    padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  }
  .auth-screen {
    width: 100%;
    min-height: 0;
  }
  .auth-card {
    padding: clamp(20px, 6vw, 30px);
  }
}
@media (max-width: 380px) {
  body.adventure-mode .expedition-heading-actions { gap:2px; }
  body.adventure-mode .expedition-heading-actions button { width:26px; min-width:26px; }
  body.adventure-mode .expedition-heading h2 { max-width:108px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
}

/* Compact team selector over the map. */
body.adventure-mode .adventure-combat-console > .adventure-quickbar {
  display:flex;
  min-height:32px;
  justify-content:flex-end;
  align-items:center;
}
body.adventure-mode .map-pokemon-overlay {
  position:absolute;
  z-index:4;
  top:52px;
  bottom:54px;
  left:9px;
  transform:none;
  width:clamp(158px,17vw,208px);
  max-height:none;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:clamp(2px,.65vh,5px);
  min-height:0;
  overflow:hidden;
  overscroll-behavior:none;
  padding:5px;
  border:1px solid rgba(220,202,151,.25);
  border-radius:8px;
  background:rgba(11,18,18,.32);
  backdrop-filter:blur(2px);
  pointer-events:auto;
}
body.adventure-mode .map-party-member {
  width:100%;
  min-width:0;
  min-height:0;
  flex:0 1 55px;
  height:auto;
  box-sizing:border-box;
  display:grid;
  grid-template-columns:39px minmax(0,1fr);
  align-items:center;
  gap:7px;
  padding:4px 6px;
  border:1px solid var(--party-rarity-border,rgba(192,202,176,.3));
  border-radius:5px;
  color:#edf0df;
  text-align:left;
  background:var(--party-rarity-background,linear-gradient(105deg,rgba(18,28,27,.9),rgba(28,26,34,.88)));
  box-shadow:0 3px 12px rgba(0,0,0,.32),inset 3px 0 var(--party-rarity-accent,rgba(192,202,176,.32)),inset 0 1px rgba(255,255,255,.045);
  cursor:pointer;
  overflow:hidden;
  animation:map-party-enter .24s ease both;
  transition:border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease;
}
body.adventure-mode .map-party-member:hover,
body.adventure-mode .map-party-member:focus-visible {
  border-color:var(--party-active-border,rgba(239,207,132,.82));
  background:var(--party-active-background,var(--party-rarity-background,linear-gradient(105deg,rgba(33,45,36,.96),rgba(43,34,39,.95))));
  outline:none;
  transform:translateX(2px);
}
body.adventure-mode .map-party-member.is-active {
  border-color:var(--party-active-border,#e8c779);
  background:var(--party-active-background,linear-gradient(105deg,rgba(65,54,34,.96),rgba(37,38,32,.94)));
  box-shadow:0 0 0 1px var(--party-active-glow,rgba(232,199,121,.18)),0 4px 14px rgba(0,0,0,.42),inset 3px 0 var(--party-rarity-accent,#e8c779),inset 0 0 16px var(--party-active-glow,rgba(232,199,121,.09));
}
body.adventure-mode .map-party-member[data-rarity="common"] { --party-rarity-border:rgba(181,193,185,.52); --party-rarity-background:linear-gradient(105deg,rgba(57,68,62,.96),rgba(25,34,33,.94)); --party-rarity-accent:#b8c4bd; --party-active-border:#d2ddd6; --party-active-background:linear-gradient(105deg,rgba(73,84,76,.98),rgba(34,41,38,.96)); --party-active-glow:rgba(200,215,203,.2); }
body.adventure-mode .map-party-member[data-rarity="uncommon"] { --party-rarity-border:rgba(119,211,146,.56); --party-rarity-background:linear-gradient(105deg,rgba(29,76,47,.96),rgba(20,39,32,.94)); --party-rarity-accent:#77d392; --party-active-border:#91e6a9; --party-active-background:linear-gradient(105deg,rgba(40,99,59,.98),rgba(24,48,38,.96)); --party-active-glow:rgba(119,211,146,.24); }
body.adventure-mode .map-party-member[data-rarity="rare"] { --party-rarity-border:rgba(106,184,244,.58); --party-rarity-background:linear-gradient(105deg,rgba(31,70,108,.96),rgba(20,37,57,.94)); --party-rarity-accent:#6ab8f4; --party-active-border:#92ceff; --party-active-background:linear-gradient(105deg,rgba(38,87,132,.98),rgba(23,46,72,.96)); --party-active-glow:rgba(106,184,244,.25); }
body.adventure-mode .map-party-member[data-rarity="epic"] { --party-rarity-border:rgba(194,133,255,.62); --party-rarity-background:linear-gradient(105deg,rgba(76,46,105,.96),rgba(36,28,51,.94)); --party-rarity-accent:#c285ff; --party-active-border:#d8aaff; --party-active-background:linear-gradient(105deg,rgba(92,55,127,.98),rgba(45,33,64,.96)); --party-active-glow:rgba(194,133,255,.28); }
body.adventure-mode .map-party-member[data-rarity="legendary"] { --party-rarity-border:rgba(249,196,91,.7); --party-rarity-background:linear-gradient(105deg,rgba(103,73,26,.97),rgba(48,39,27,.95)); --party-rarity-accent:#f9c45b; --party-active-border:#ffdc84; --party-active-background:linear-gradient(105deg,rgba(132,92,28,.98),rgba(59,46,27,.96)); --party-active-glow:rgba(249,196,91,.3); }
body.adventure-mode .map-party-member.is-fainted { opacity:.63; }
body.adventure-mode .map-party-art {
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid rgba(226,219,181,.26);
  border-radius:6px;
  background:radial-gradient(circle,rgba(196,220,155,.19),rgba(7,13,13,.12) 72%);
}
body.adventure-mode .map-party-member.is-active .map-party-art { border-color:var(--party-active-border,rgba(244,213,138,.58)); }
body.adventure-mode .map-party-art img {
  width:35px;
  height:35px;
  object-fit:contain;
  image-rendering:pixelated;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.55));
  transform-origin:center bottom;
  animation:map-party-idle 1.7s ease-in-out infinite;
}
body.adventure-mode .map-party-copy { min-width:0; display:grid; gap:2px; }
body.adventure-mode .map-party-meta {
  min-width:0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:4px;
  color:#c3cbb8;
  font:700 8px 'Courier New',monospace;
  letter-spacing:.025em;
}
body.adventure-mode .map-party-meta b { overflow:hidden; color:#d6d9c8; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .map-party-member.is-active .map-party-meta b { color:#f1d58f; }
body.adventure-mode .map-party-meta > span { flex:none; }
body.adventure-mode .map-party-meta i { color:#f5e8c0; font-style:normal; }
body.adventure-mode .map-party-copy > strong {
  overflow:hidden;
  color:#fff7e6;
  font:700 10px 'Courier New',monospace;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.adventure-mode .map-party-shiny { color:#ffe184; font-size:10px; font-style:normal; }
body.adventure-mode .map-party-stats { min-width:0; display:grid; gap:2px; }
body.adventure-mode .map-party-stat { min-width:0; display:grid; gap:1px; }
body.adventure-mode .map-party-stat-label { min-width:0; display:flex; align-items:center; justify-content:space-between; gap:4px; color:#98aaa0; font:700 6px 'DM Mono',monospace; line-height:1; }
body.adventure-mode .map-party-stat-label b { color:#9fc5b7; font:800 6px 'DM Mono',monospace; }
body.adventure-mode .map-party-stat-label i { overflow:hidden; color:#d8e4d7; font-style:normal; text-align:right; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .map-party-stat-track { display:block; height:3px; overflow:hidden; border:1px solid rgba(6,13,16,.75); border-radius:4px; background:#131a20; box-shadow:inset 0 1px 1px rgba(0,0,0,.55); }
body.adventure-mode .map-party-stat-track b { display:block; width:0; height:100%; border-radius:inherit; transition:width .25s ease; }
body.adventure-mode .map-party-hp .map-party-stat-track b { background:linear-gradient(90deg,#d57957,#e9b66d 52%,#8bd69b); box-shadow:0 0 5px rgba(126,207,144,.28); }
body.adventure-mode .map-party-hp.is-low .map-party-stat-label b,
body.adventure-mode .map-party-hp.is-low .map-party-stat-label i { color:#ff9e8a; }
body.adventure-mode .map-party-hp.is-low .map-party-stat-track b { background:linear-gradient(90deg,#c94858,#f08567); box-shadow:0 0 5px rgba(227,91,93,.36); }
body.adventure-mode .map-party-xp .map-party-stat-label b { color:#8bdcd0; }
body.adventure-mode .map-party-xp .map-party-stat-track b { background:linear-gradient(90deg,#45aeb7,#62d1bd 58%,#c8dd8b); box-shadow:0 0 6px rgba(85,208,191,.32); }
@keyframes map-party-idle {
  0%,100% { transform:translateY(1px) scale(1); }
  50% { transform:translateY(-2px) scale(1.025); }
}
@keyframes map-party-enter {
  from { opacity:0; transform:translateX(-6px); }
  to { opacity:1; transform:translateX(0); }
}
@media (max-width:680px) {
  body.adventure-mode .map-pokemon-overlay {
    top:48px;
    bottom:48px;
    left:4px;
    transform:none;
    width:min(154px,42vw);
    max-height:none;
    gap:2px;
    padding:3px;
  }
  body.adventure-mode .map-party-member {
    min-height:0;
    flex-basis:50px;
    grid-template-columns:clamp(23px,7vw,31px) minmax(0,1fr);
    gap:clamp(2px,.8vw,5px);
    padding:2px 3px;
    border-radius:5px;
  }
  body.adventure-mode .map-party-art { width:clamp(22px,4.7vh,29px); height:clamp(22px,4.7vh,29px); }
  body.adventure-mode .map-party-art img { width:calc(100% - 1px); height:calc(100% - 1px); }
  body.adventure-mode .map-party-meta { font-size:6px; }
  body.adventure-mode .map-party-copy > strong { font-size:8.5px; }
  body.adventure-mode .map-party-stat-label,
  body.adventure-mode .map-party-stat-label b { font-size:5.5px; }
  body.adventure-mode .map-party-stat-track { height:3px; }
}
@media (max-height:480px) {
  body.adventure-mode .map-pokemon-overlay { gap:2px; padding:3px; }
  body.adventure-mode .map-party-member { grid-template-columns:25px minmax(0,1fr); gap:3px; padding:1px 2px; }
  body.adventure-mode .map-party-art,
  body.adventure-mode .map-party-art img { width:22px; height:22px; }
  body.adventure-mode .map-party-copy { gap:0; }
  body.adventure-mode .map-party-meta { font-size:6px; line-height:1; }
  body.adventure-mode .map-party-copy > strong { font-size:8px; line-height:1; }
  body.adventure-mode .map-party-stats { gap:1px; }
  body.adventure-mode .map-party-stat { gap:0; }
  body.adventure-mode .map-party-stat-label,
  body.adventure-mode .map-party-stat-label b { font-size:5px; line-height:1; }
  body.adventure-mode .map-party-stat-track { height:2px; }
}
@media (prefers-reduced-motion:reduce) {
  body.adventure-mode .map-party-member,
  body.adventure-mode .map-party-art img { animation:none; transition:none; }
}

body.adventure-mode .touch-joystick {
  position:absolute;
  z-index:5;
  bottom:54px;
  left:12px;
  width:108px;
  height:108px;
  display:grid;
  place-items:center;
  touch-action:none;
  user-select:none;
  -webkit-user-select:none;
  -webkit-tap-highlight-color:transparent;
}
body.adventure-mode .touch-joystick[hidden] { display:none !important; }
body.adventure-mode .touch-joystick-base {
  position:relative;
  width:98px;
  height:98px;
  border:1px solid rgba(222,234,202,.56);
  border-radius:50%;
  background:radial-gradient(circle,rgba(37,58,55,.78) 0 24%,rgba(18,33,36,.72) 25% 61%,rgba(12,22,25,.58) 62% 100%);
  box-shadow:0 4px 16px rgba(0,0,0,.42),inset 0 0 0 7px rgba(222,234,202,.045),inset 0 0 20px rgba(160,218,203,.15);
  backdrop-filter:blur(2px);
  touch-action:none;
}
body.adventure-mode .touch-joystick-base::before,
body.adventure-mode .touch-joystick-base::after {
  position:absolute;
  content:"";
  background:rgba(224,232,207,.16);
  pointer-events:none;
}
body.adventure-mode .touch-joystick-base::before { width:1px; height:68%; left:50%; top:16%; }
body.adventure-mode .touch-joystick-base::after { height:1px; width:68%; left:16%; top:50%; }
body.adventure-mode .touch-joystick-stick {
  position:absolute;
  z-index:1;
  top:50%;
  left:50%;
  width:42px;
  height:42px;
  border:2px solid rgba(255,237,184,.9);
  border-radius:50%;
  background:radial-gradient(circle at 32% 28%,#c4f3df,#55b9ab 48%,#276e75 100%);
  box-shadow:0 3px 9px rgba(0,0,0,.5),inset 0 1px 2px rgba(255,255,255,.6),0 0 12px rgba(101,213,197,.35);
  transform:translate(calc(-50% + var(--stick-x,0px)),calc(-50% + var(--stick-y,0px)));
  pointer-events:none;
  transition:box-shadow .12s ease;
}
body.adventure-mode .touch-joystick:active .touch-joystick-stick { box-shadow:0 2px 6px rgba(0,0,0,.55),inset 0 1px 2px rgba(255,255,255,.55),0 0 16px rgba(101,213,197,.55); }
@media (max-width:680px) {
  body.adventure-mode .touch-joystick { bottom:47px; left:7px; width:96px; height:96px; }
  body.adventure-mode .touch-joystick-base { width:88px; height:88px; }
  body.adventure-mode .touch-joystick-stick { width:38px; height:38px; }
}

.hunt-picker-gallery {
  display:flex;
  flex-direction:column;
  align-content:stretch;
  gap:13px;
}
.hunt-picker-tier-group {
  min-width:0;
  display:grid;
  gap:9px;
  padding-bottom:13px;
  border-bottom:1px solid rgba(194,229,158,.22);
}
.hunt-picker-tier-head {
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:9px;
  padding:2px 1px;
}
.hunt-picker-tier-head > div { min-width:0; display:flex; align-items:center; gap:8px; }
.hunt-picker-tier-head strong { color:#e4eddb; font-size:12px; }
.hunt-picker-tier-head > small { color:#95ac99; font:9px 'DM Mono',monospace; }
.hunt-picker-level-group {
  min-width:0;
  display:grid;
  gap:8px;
  padding-bottom:13px;
  border-bottom:1px solid rgba(194,229,158,.16);
}
.hunt-picker-level-head {
  min-width:0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:9px;
  padding:2px 1px;
}
.hunt-picker-level-head > div { min-width:0; display:flex; align-items:center; gap:8px; }
.hunt-picker-level-head strong { overflow:hidden; color:#e4eddb; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.hunt-picker-level-head small { color:#95ac99; font-size:9px; }
.hunt-picker-level-head > b { flex:none; color:#95ac99; font:9px 'DM Mono',monospace; }
.hunt-level-pill { flex:none; padding:4px 7px; border:1px solid rgba(194,229,158,.27); border-radius:6px; color:#d6edaa; background:rgba(109,140,78,.15); font:800 9px 'DM Mono',monospace; }
.hunt-picker-level-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; }
.hunt-picker-level-grid .hunt-tile { min-width:0; }
.hunt-picker-level-grid .hunt-tile.is-locked { border-color:rgba(138,153,136,.19); background:linear-gradient(145deg,rgba(32,41,36,.88),rgba(19,30,26,.96)); }
.hunt-picker-level-grid .hunt-tile.is-locked .hunt-tile-body img { filter:grayscale(.42); opacity:.74; }
.hunt-picker-level-grid .hunt-tile.is-locked .hunt-tile-body strong { color:#aab9ac; }
.hunt-picker-level-grid .hunt-tile.is-locked:hover { transform:none; border-color:rgba(226,194,122,.44); }
.hunt-picker-level-grid .hunt-lock-mark { color:#e8c982; font-size:9px; }
.hunt-picker-level-grid .hunt-tile-body small { color:#bed89b; font:8px 'DM Mono',monospace; }
@media (max-width:1100px) {
  .hunt-picker-level-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (max-width:820px) {
  .hunt-picker-level-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:560px) {
  .hunt-picker-gallery { gap:9px; padding:0 10px 10px; }
  .hunt-picker-tier-group { gap:6px; padding-bottom:9px; }
  .hunt-picker-tier-head strong { font-size:10px; }
  .hunt-picker-tier-head > small { font-size:8px; }
  .hunt-picker-level-group { gap:6px; padding-bottom:9px; }
  .hunt-picker-level-head { gap:5px; }
  .hunt-picker-level-head > div { gap:5px; flex-wrap:wrap; }
  .hunt-picker-level-head strong { font-size:10px; }
  .hunt-picker-level-head small,.hunt-picker-level-head > b { font-size:8px; }
  .hunt-picker-level-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
}
/* Balanced trainer strip: route title | centered trainer progress | game actions. */
body.adventure-mode .expedition-heading {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,330px) minmax(0,1fr);
  align-items:center; gap:10px; min-height:62px; margin:0 0 5px;
}
body.adventure-mode .expedition-location { grid-column:1; grid-row:1; min-width:0; max-width:none; }
body.adventure-mode .trainer-summary {
  position:relative; grid-column:2; grid-row:1; justify-self:center;
  width:min(100%,330px); min-width:260px; height:49px;
  display:flex; align-items:center; gap:8px; margin:0; padding:5px 11px;
  overflow:hidden; border:1px solid rgba(226,190,112,.42); border-radius:9px;
  color:#f4e6c9; background:linear-gradient(112deg,rgba(42,32,40,.98),rgba(51,37,45,.98) 58%,rgba(38,34,40,.98));
  box-shadow:inset 0 1px rgba(255,255,255,.09),0 4px 12px rgba(0,0,0,.27);
}
body.adventure-mode .trainer-summary:before { position:absolute; top:7px; bottom:7px; left:0; width:3px; border-radius:0 3px 3px 0; content:""; background:linear-gradient(#fff0a8,#e6b947 55%,#a86c35); box-shadow:0 0 9px rgba(242,197,77,.5); }
body.adventure-mode .trainer-summary-medal {
  flex:0 0 29px; width:29px; height:29px; display:grid; place-items:center;
  border:1px solid rgba(237,207,139,.52); border-radius:50%;
  padding:0; color:inherit; background:radial-gradient(circle at 35% 30%,rgba(115,171,163,.34),rgba(32,47,52,.94) 72%); box-shadow:0 0 9px rgba(87,206,193,.14),inset 0 1px rgba(255,255,255,.12); cursor:pointer; transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
body.adventure-mode .trainer-summary-medal:hover { transform:translateY(-1px) scale(1.05); border-color:#f1d18a; box-shadow:0 0 13px rgba(87,206,193,.24),0 0 12px rgba(242,197,77,.18),inset 0 1px rgba(255,255,255,.16); }
body.adventure-mode .trainer-summary-medal svg { display:block; width:23px!important; height:23px!important; max-width:23px; max-height:23px; }
body.adventure-mode .trainer-summary-main { min-width:0; flex:1; display:grid; gap:5px; }
body.adventure-mode .trainer-summary-top { min-width:0; display:flex; align-items:center; justify-content:flex-start; gap:9px; }
body.adventure-mode .trainer-summary-top > strong { min-width:0; overflow:hidden; color:#fff3dc; font:700 12px 'Segoe UI',sans-serif; text-overflow:ellipsis; white-space:nowrap; text-shadow:0 1px 3px rgba(0,0,0,.45); }
body.adventure-mode .trainer-summary-level { flex:none; display:flex; align-items:baseline; gap:4px; padding:2px 6px; border:1px solid rgba(240,204,114,.2); border-radius:999px; color:#f0cc72; background:rgba(191,144,64,.1); font:700 9px 'DM Mono',monospace; white-space:nowrap; }
body.adventure-mode .trainer-summary-level small { color:#ddc68f; font:700 8px 'Segoe UI',sans-serif; }
body.adventure-mode .trainer-summary-level b { color:#ffe295; font:800 10px 'DM Mono',monospace; }
body.adventure-mode .trainer-summary-xp-row { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:7px; }
body.adventure-mode .trainer-summary-track { position:relative; height:7px; overflow:hidden; border:1px solid rgba(18,18,21,.9); border-radius:5px; background:#151419; box-shadow:inset 0 1px 2px rgba(0,0,0,.7); }
body.adventure-mode .trainer-summary-track b { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#d59a32,#f5cb54 72%,#ffe28a); box-shadow:0 0 8px rgba(248,198,65,.55); transition:width .35s ease; }
body.adventure-mode .trainer-summary-xp-row > strong { min-width:29px; color:#ffdb69; font:800 9px 'DM Mono',monospace; text-align:right; }
body.adventure-mode .trainer-summary-xp-accessible { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; }
body.adventure-mode .expedition-heading-actions { grid-column:3; grid-row:1; justify-self:end; }
@media (max-width:900px) and (min-width:681px) {
  body.adventure-mode .expedition-heading { grid-template-columns:minmax(0,1fr) minmax(220px,280px) minmax(0,1fr); gap:6px; }
  body.adventure-mode .trainer-summary { width:min(100%,280px); min-width:220px; }
  body.adventure-mode .expedition-heading-actions button { width:32px; min-width:32px; }
}
@media (max-width:680px) {
  body.adventure-mode .expedition-heading {
    grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; grid-template-areas:"place actions" "trainer trainer";
    gap:4px 6px; min-height:68px; padding:1px 0;
  }
  body.adventure-mode .expedition-location { grid-area:place; min-width:0; }
  body.adventure-mode .expedition-heading-actions { grid-area:actions; justify-self:end; }
  body.adventure-mode .trainer-summary {
    grid-area:trainer; justify-self:center; width:min(100%,370px); min-width:0; height:37px; gap:6px; margin:0;
    padding:4px 8px; border-radius:6px;
  }
  body.adventure-mode .trainer-summary-medal { flex-basis:23px; width:23px; height:23px; }
  body.adventure-mode .trainer-summary-medal svg { width:19px!important; height:19px!important; }
  body.adventure-mode .trainer-summary-main { gap:3px; }
  body.adventure-mode .trainer-summary-top { gap:6px; }
  body.adventure-mode .trainer-summary-top > strong { font-size:9px; }
  body.adventure-mode .trainer-summary-level { font-size:8px; }
  body.adventure-mode .trainer-summary-level b { font-size:9px; }
  body.adventure-mode .trainer-summary-xp-row { gap:6px; }
  body.adventure-mode .trainer-summary-track { height:7px; }
  body.adventure-mode .trainer-summary-xp-row > strong { min-width:26px; font-size:8px; }
}
@media (max-width:680px) and (max-height:740px) {
  body.adventure-mode .expedition-heading { min-height:64px; }
  body.adventure-mode .trainer-summary { height:35px; }
}

/* Mission and collection hub. */
body.adventure-mode .expedition-heading-actions .mission-menu-button { position:relative; border-color:rgba(170,147,232,.35); color:#e7d7ff; background:linear-gradient(145deg,rgba(67,50,83,.96),rgba(39,34,50,.96)); }
body.adventure-mode .expedition-heading-actions .mission-menu-button:hover { border-color:#d3b7ff; color:#fff3d4; background:linear-gradient(145deg,#604777,#40354f); }
body.adventure-mode .mission-menu-button .menu-icon-missoes { width:22px; height:22px; }
body.adventure-mode .mission-menu-button i { position:absolute; top:-5px; right:-5px; width:13px; height:13px; display:grid; place-items:center; border:1px solid #fff0bf; border-radius:50%; color:#261c20; background:#ffd66d; box-shadow:0 0 8px rgba(255,205,90,.6); font:800 8px 'DM Mono',monospace; font-style:normal; }
body.adventure-mode .mission-menu-button i[hidden] { display:none; }
.screen-modal[data-modal-view="missions"] { width:min(1120px,100%); }
body.adventure-mode .mission-hub-modal { border:2px solid #8e684f; border-radius:9px; background:linear-gradient(150deg,#29232d,#201d26 62%,#182426); box-shadow:inset 0 0 0 1px rgba(226,190,112,.28),0 12px 0 #18101b,0 24px 50px rgba(0,0,0,.7); }
.mission-hub-tabs { flex:0 0 auto; display:flex; gap:6px; padding:9px 17px 0; border-bottom:1px solid rgba(226,190,112,.15); }
.mission-hub-tabs button { position:relative; min-width:125px; display:flex; justify-content:center; align-items:center; gap:7px; padding:8px 12px 9px; border:1px solid transparent; border-bottom:0; border-radius:7px 7px 0 0; color:#b6a99b; background:transparent; font:700 9px 'DM Mono',monospace; cursor:pointer; }
.mission-hub-tabs button span { padding:2px 6px; border:1px solid rgba(196,184,160,.15); border-radius:99px; color:#d5c8ad; background:rgba(10,13,17,.35); font-size:7px; }
.mission-hub-tabs button.is-active { border-color:rgba(224,190,123,.26); color:#fff0cf; background:linear-gradient(rgba(101,71,67,.45),rgba(59,45,54,.25)); box-shadow:inset 0 1px rgba(255,255,255,.08); }
.mission-hub-tabs button.is-active:after { position:absolute; right:10px; bottom:-1px; left:10px; height:2px; content:""; background:linear-gradient(90deg,#a56fc9,#e7c370); }
.screen-modal-content.mission-hub-content-host { padding:14px 17px 18px; }
.mission-hub-content { display:grid; gap:11px; }
.mission-hub-intro { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:5px 14px; padding:2px 1px 3px; }
.mission-tag { display:inline-flex; align-items:center; width:max-content; max-width:100%; color:#9bdcca; font:700 7px 'DM Mono',monospace; letter-spacing:.1em; }
.mission-hub-intro h3,.mission-section-heading h3,.collection-overview h3 { margin:4px 0 3px; color:#f4e3c6; font-size:15px; }
.mission-hub-intro p,.mission-section-heading p,.collection-overview p { margin:0; color:#a99f94; font-size:8px; line-height:1.5; }
.mission-feature-card,.collection-milestone-card,.mission-trade-card { min-width:0; padding:12px 13px; border:1px solid rgba(196,176,140,.18); border-radius:7px; background:linear-gradient(120deg,rgba(48,40,49,.75),rgba(23,28,31,.68)); box-shadow:inset 0 1px rgba(255,255,255,.035); }
body.adventure-mode .mission-feature-card,body.adventure-mode .collection-milestone-card,body.adventure-mode .mission-trade-card { border-radius:5px; }
.mission-feature-card.is-ready,.collection-milestone-card.is-ready { border-color:rgba(233,194,111,.55); box-shadow:inset 0 0 0 1px rgba(233,194,111,.1),0 0 14px rgba(219,173,77,.07); }
.mission-feature-card.is-claimed,.collection-milestone-card.is-claimed { border-color:rgba(117,207,171,.28); }
.mission-feature-top { display:flex; justify-content:space-between; align-items:center; gap:9px; }
.mission-state { flex:0 0 auto; color:#a9a094; font:700 6px 'DM Mono',monospace; letter-spacing:.04em; text-align:right; }
.mission-state.is-ready { color:#ffdf8b; }
.mission-state.is-claimed { color:#8ed4b1; }
.mission-feature-card h3,.collection-milestone-card h3,.mission-trade-card h3 { margin:5px 0 3px; color:#f1e1c4; font-size:12px; }
.mission-feature-card > p,.collection-milestone-card > p,.mission-trade-card > p { margin:0 0 8px; color:#a99e91; font-size:8px; line-height:1.45; }
.mission-progress-copy { display:flex; justify-content:space-between; gap:8px; margin:9px 0 4px; color:#a8a095; font:7px 'DM Mono',monospace; }
.mission-progress-copy b { color:#e7d2a9; }
.mission-progress-track,.collection-overview-track { height:6px; overflow:hidden; border:1px solid rgba(12,13,15,.8); border-radius:99px; background:#141317; }
.mission-progress-track i,.collection-overview-track i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#a36dc6,#dfb857 72%,#fff0a4); box-shadow:0 0 8px rgba(239,196,91,.4); transition:width .3s ease; }
.mission-reward-row { display:grid; grid-template-columns:minmax(70px,.55fr) minmax(0,1.45fr) auto; align-items:center; gap:8px; margin-top:10px; padding-top:8px; border-top:1px solid rgba(206,190,158,.1); color:#a8a095; font-size:7px; }
.mission-reward-row > b { color:#e8d3ab; font:700 7px 'DM Mono',monospace; }
.mission-reward-row .button { min-height:26px; padding:0 9px; font-size:7px; white-space:nowrap; }
body.adventure-mode .mission-reward-row .button { border-radius:4px; }
.legendary-mission-card { background:linear-gradient(115deg,rgba(89,66,54,.27),rgba(42,33,48,.55) 54%,rgba(19,29,35,.65)); }
.legendary-tag { color:#f0cc76; }
.legendary-mission-list { display:flex; flex-wrap:wrap; gap:5px; margin:9px 0 2px; }
.legendary-mission-member { padding:4px 7px; border:1px solid rgba(187,171,148,.12); border-radius:99px; color:#988f86; background:rgba(11,15,18,.32); font:7px 'DM Mono',monospace; }
.legendary-mission-member.is-owned { border-color:rgba(233,194,111,.3); color:#f1d893; background:rgba(112,82,37,.15); }
.mission-section-heading { display:flex; justify-content:space-between; align-items:end; gap:10px; margin-top:3px; }
.mission-section-heading h3 { font-size:12px; }
.mission-section-note { flex:0 0 auto; color:#c9a96c; font:700 7px 'DM Mono',monospace; text-align:right; }
.mission-trades-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.mission-trade-card { display:flex; flex-direction:column; }
.mission-trade-members { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; margin-top:2px; }
.mission-trade-member { min-width:0; display:grid; gap:2px; padding:5px 6px; border:1px solid rgba(182,171,150,.1); border-radius:4px; background:rgba(10,15,16,.3); }
.mission-trade-member b { overflow:hidden; color:#d5c9b5; font:700 7px 'Segoe UI',sans-serif; text-overflow:ellipsis; white-space:nowrap; }
.mission-trade-member small { overflow:hidden; color:#8f8c83; font:6px 'DM Mono',monospace; text-overflow:ellipsis; white-space:nowrap; }
.mission-trade-member.is-ready { border-color:rgba(111,207,166,.22); }
.mission-trade-member.is-ready small { color:#8bd1aa; }
.mission-trade-card .mission-reward-row { grid-template-columns:1fr auto; margin-top:auto; padding-top:9px; }
.mission-trade-card .mission-reward-row > span { grid-column:1; }
.mission-trade-card .mission-reward-row > b { grid-column:1; }
.mission-trade-card .mission-reward-row .button { grid-column:2; grid-row:1/3; }
.collection-overview { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:9px 16px; align-items:center; padding:14px 15px; border:1px solid rgba(115,210,180,.2); border-radius:8px; background:linear-gradient(110deg,rgba(32,76,68,.28),rgba(37,39,47,.66) 58%,rgba(66,50,48,.42)); }
.collection-overview-count { display:grid; justify-items:end; color:#b6a990; font:8px 'DM Mono',monospace; }
.collection-overview-count strong { color:#fff0c9; font:700 24px 'DM Mono',monospace; }
.collection-overview-track { grid-column:1/-1; height:8px; }
.collection-overview-track i { background:linear-gradient(90deg,#57bca6,#93d99a 66%,#eac568); }
.collection-overview-foot { grid-column:1/-1; display:flex; justify-content:space-between; align-items:center; gap:8px; color:#8dbfaf; font:700 7px 'DM Mono',monospace; }
.collection-overview-foot .button { min-height:26px; padding:0 9px; font-size:7px; }
.collection-milestones-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.collection-milestone-card { display:flex; flex-direction:column; }
.collection-milestone-card .mission-reward-row { grid-template-columns:1fr auto; margin-top:auto; }
.collection-milestone-card .mission-reward-row > span { grid-column:1; }
.collection-milestone-card .mission-reward-row > b { grid-column:1; }
.collection-milestone-card .mission-reward-row .button { grid-column:2; grid-row:1/3; }
.collection-relic-summary { display:flex; align-items:center; gap:9px; padding:9px 11px; border:1px solid rgba(190,166,226,.2); border-radius:7px; background:rgba(48,39,64,.22); }
.collection-relic-icon { flex:0 0 27px; width:27px; height:27px; display:grid; place-items:center; border:1px solid rgba(197,166,235,.3); border-radius:7px; color:#e3c8ff; background:rgba(119,83,148,.2); font-size:15px; }
.collection-relic-summary div { min-width:0; flex:1; display:grid; gap:3px; }
.collection-relic-summary strong { color:#e7d8c0; font-size:8px; }
.collection-relic-summary small { color:#9e968d; font-size:7px; line-height:1.4; }
.collection-relic-summary > b { color:#e8d6ff; font:700 12px 'DM Mono',monospace; }
.collection-confirm-modal { width:min(460px,100%); padding:19px 20px 0; border:1px solid rgba(226,190,112,.35); border-radius:13px; text-align:center; background:linear-gradient(145deg,#332935,#211f2a 68%,#1c292b); }
body.adventure-mode .collection-confirm-modal { border:2px solid #9a704d; border-radius:7px; background:#302632; }
.collection-confirm-mark { width:38px; height:38px; display:grid; place-items:center; margin:0 auto 9px; border:1px solid rgba(232,195,115,.38); border-radius:50%; color:#f4d687; background:rgba(102,76,42,.28); font-size:19px; }
.collection-confirm-modal h2 { margin:5px 0; color:#f5e5c8; font-size:17px; }
.collection-confirm-modal > p { margin:0 auto 10px; max-width:370px; color:#b3a99b; font-size:8px; line-height:1.5; }
.collection-confirm-modal > p strong { color:#f0ce87; }
.collection-confirm-modal ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 12px; max-width:300px; margin:0 auto 10px; padding:8px 12px 8px 27px; border:1px solid rgba(194,179,151,.12); color:#e4d4b6; background:rgba(10,14,17,.26); text-align:left; font:8px 'DM Mono',monospace; }
.collection-confirm-reward { margin:0 -2px 12px; padding:8px; border:1px solid rgba(226,190,112,.16); color:#d8c5a6; background:rgba(112,78,42,.12); font:8px/1.6 'DM Mono',monospace; }
.collection-confirm-reward strong { color:#efcf83; }
.collection-confirm-modal .confirm-actions { padding:0 0 15px; }
@media (max-width:760px) {
  .mission-trades-grid { grid-template-columns:1fr; }
  .mission-trade-card .mission-trade-members { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (max-width:620px) {
  .mission-hub-tabs { gap:3px; padding:7px 9px 0; }
  .mission-hub-tabs button { min-width:0; flex:1; padding:7px 5px 8px; font-size:8px; }
  .screen-modal-content.mission-hub-content-host { padding:9px; }
  .mission-hub-content { gap:8px; }
  .mission-hub-intro h3,.collection-overview h3 { font-size:12px; }
  .mission-feature-card,.collection-milestone-card,.mission-trade-card { padding:9px; }
  .mission-feature-card h3,.collection-milestone-card h3,.mission-trade-card h3 { font-size:10px; }
  .mission-reward-row { grid-template-columns:minmax(0,1fr) auto; gap:5px; }
  .mission-reward-row > span { grid-column:1; }
  .mission-reward-row > b { grid-column:1; }
  .mission-reward-row .button { grid-column:2; grid-row:1/3; }
  .mission-trade-card .mission-trade-members { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mission-section-heading { align-items:start; }
  .mission-section-note { max-width:100px; font-size:6px; }
  .collection-milestones-grid { grid-template-columns:1fr; }
  .collection-overview { padding:10px; }
  .collection-confirm-modal { padding:14px 12px 0; }
}
@media (max-width:380px) {
  body.adventure-mode .expedition-heading-actions { gap:1px; }
  body.adventure-mode .expedition-heading-actions button { width:25px; min-width:25px; height:26px; }
  body.adventure-mode .expedition-heading-actions .menu-icon { width:18px; height:18px; }
}

/* Trainer profile opened from the Poké Ball beside the nickname. */
.trainer-profile-modal { width:min(500px,100%); border:1px solid rgba(226,190,112,.4); border-radius:17px; color:#f4e6c9; background:linear-gradient(145deg,#2b2630,#211c26 58%,#182329); box-shadow:0 24px 80px rgba(0,0,0,.6),inset 0 1px rgba(255,255,255,.08); }
body.adventure-mode .trainer-profile-modal { border:2px solid #9a704d; border-radius:12px; background:linear-gradient(145deg,#352638,#241e2a 62%,#1c2528); box-shadow:inset 0 0 0 1px rgba(226,190,112,.32),0 12px 0 #18101b,0 24px 50px rgba(0,0,0,.7); }
.trainer-profile-head { display:flex; align-items:center; gap:13px; padding:18px 20px 15px; border-bottom:1px solid rgba(226,190,112,.17); }
.trainer-profile-crest { flex:0 0 54px; width:54px; height:54px; display:grid; place-items:center; border:1px solid rgba(237,207,139,.5); border-radius:50%; background:radial-gradient(circle at 35% 30%,rgba(115,171,163,.27),rgba(32,47,52,.94) 72%); box-shadow:0 0 16px rgba(87,206,193,.13),inset 0 1px rgba(255,255,255,.13); }
.trainer-profile-crest svg { width:43px; height:43px; }
.trainer-profile-heading-copy { min-width:0; flex:1; }
.trainer-profile-heading-copy .eyebrow { color:#e6be6d; font:700 8px 'DM Mono',monospace; letter-spacing:.13em; }
.trainer-profile-heading-copy h2 { margin:4px 0 3px; overflow:hidden; color:#fff0d6; font:700 20px 'Segoe UI',sans-serif; text-overflow:ellipsis; white-space:nowrap; }
.trainer-profile-heading-copy p { margin:0; overflow:hidden; color:#b9aa98; font:8px 'DM Mono',monospace; text-overflow:ellipsis; white-space:nowrap; }
.trainer-profile-close { flex:0 0 30px; width:30px; height:30px; border:1px solid rgba(226,190,112,.22); border-radius:6px; color:#f2ddbd; background:rgba(23,20,25,.6); font-size:21px; line-height:1; cursor:pointer; }
.trainer-profile-close:hover { border-color:#d8b16f; color:#fff1d4; background:rgba(135,87,74,.28); }
.trainer-profile-progress { margin:14px 18px 12px; padding:12px 13px 10px; border:1px solid rgba(226,190,112,.19); border-radius:9px; background:linear-gradient(105deg,rgba(17,20,23,.55),rgba(81,59,45,.2)); }
.trainer-profile-level-row { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:8px; }
.trainer-profile-level-row > div { display:grid; gap:3px; }
.trainer-profile-level-row small { color:#c5aa7f; font:700 7px 'DM Mono',monospace; letter-spacing:.09em; }
.trainer-profile-level-row strong { color:#fff0d6; font:700 15px 'DM Mono',monospace; }
.trainer-profile-level-row strong span { color:#9f907d; font-size:9px; }
.trainer-profile-level-row > b { color:#ffdc76; font:800 11px 'DM Mono',monospace; }
.trainer-profile-track { height:9px; overflow:hidden; border:1px solid rgba(10,11,13,.9); border-radius:99px; background:#131316; box-shadow:inset 0 1px 3px rgba(0,0,0,.75); }
.trainer-profile-track span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#d6932e,#f2c44e 70%,#ffed9a); box-shadow:0 0 10px rgba(248,198,65,.55); transition:width .35s ease; }
.trainer-profile-progress > p { margin:6px 0 0; color:#aa9d8d; font:8px 'DM Mono',monospace; }
.trainer-profile-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding:0 18px 12px; }
.trainer-profile-stats article { min-width:0; display:grid; gap:4px; padding:9px 10px; border:1px solid rgba(193,186,161,.14); border-radius:7px; background:rgba(13,18,20,.34); }
.trainer-profile-stats small { overflow:hidden; color:#b6a485; font:700 7px 'DM Mono',monospace; letter-spacing:.045em; text-overflow:ellipsis; white-space:nowrap; }
.trainer-profile-stats strong { color:#f5dfb4; font:700 14px 'DM Mono',monospace; }
.trainer-profile-stats strong span { color:#9d907f; font-size:9px; }
.trainer-profile-active { min-height:58px; display:flex; align-items:center; gap:10px; margin:0 18px 14px; padding:7px 10px; border:1px solid rgba(109,190,168,.2); border-radius:8px; background:linear-gradient(100deg,rgba(35,68,62,.24),rgba(18,26,29,.43)); }
.trainer-profile-active-art { flex:0 0 42px; width:42px; height:42px; display:grid; place-items:center; }
.trainer-profile-active-art img { width:42px; height:42px; object-fit:contain; image-rendering:pixelated; }
.trainer-profile-active-copy { min-width:0; display:grid; gap:3px; }
.trainer-profile-active-copy small { color:#88b9aa; font:700 7px 'DM Mono',monospace; letter-spacing:.08em; }
.trainer-profile-active-copy strong { overflow:hidden; color:#f4e4c9; font:700 10px 'Segoe UI',sans-serif; text-overflow:ellipsis; white-space:nowrap; }
.trainer-profile-active-copy strong span { color:#f0cb67; font:700 7px 'DM Mono',monospace; }
.trainer-profile-active-copy em { color:#ad9d89; font:normal 8px 'DM Mono',monospace; }
.trainer-profile-actions { display:flex; justify-content:flex-end; gap:7px; padding:0 18px 17px; }
.trainer-profile-actions .button { min-height:32px; }
body.adventure-mode .trainer-profile-actions .button { border-radius:5px; font-size:8px; }
@media (max-width:520px) {
  .trainer-profile-head { gap:9px; padding:14px 13px 12px; }
  .trainer-profile-crest { flex-basis:46px; width:46px; height:46px; }
  .trainer-profile-crest svg { width:37px; height:37px; }
  .trainer-profile-heading-copy h2 { font-size:17px; }
  .trainer-profile-progress { margin:11px 12px 10px; }
  .trainer-profile-stats { gap:5px; padding:0 12px 10px; }
  .trainer-profile-stats article { padding:8px; }
  .trainer-profile-active { margin:0 12px 11px; }
  .trainer-profile-actions { padding:0 12px 13px; }
}

/* Pokemon move loadout */
.move-manager-backdrop { z-index:120; }
.move-manager-modal { width:min(1040px,calc(100vw - 28px)); max-height:min(900px,calc(100dvh - 28px)); display:grid; grid-template-rows:auto minmax(0,1fr) auto; overflow:hidden; padding:0; border:1px solid rgba(221,183,119,.52); border-radius:16px; background:linear-gradient(145deg,#202b2a,#171e22 60%,#261f2a); box-shadow:0 24px 80px rgba(0,0,0,.62); }
.move-manager-head { display:flex; align-items:center; gap:15px; padding:17px 20px 14px; border-bottom:1px solid rgba(221,183,119,.2); }
.move-manager-art { flex:0 0 66px; width:66px; height:66px; display:grid; place-items:center; border:1px solid rgba(221,183,119,.35); border-radius:12px; background:rgba(7,16,19,.48); }
.move-manager-art img { width:58px; height:58px; object-fit:contain; image-rendering:pixelated; }
.move-manager-heading { flex:1; min-width:0; }
.move-manager-heading .eyebrow { color:#e8c778; font-size:10px; letter-spacing:.1em; }
.move-manager-heading h2 { margin:4px 0; color:#f5ebd8; font:700 22px Inter,system-ui,-apple-system,"Segoe UI",sans-serif; }
.move-manager-heading p { margin:0; color:#c3cec6; font:13px/1.45 Inter,system-ui,-apple-system,"Segoe UI",sans-serif; }
.move-manager-count { flex:0 0 72px; display:grid; justify-items:center; gap:1px; padding:8px; border:1px solid rgba(221,183,119,.25); border-radius:11px; background:rgba(225,187,115,.08); color:#f4dc9a; }
.move-manager-count strong { font:700 25px Inter,system-ui,-apple-system,"Segoe UI",sans-serif; }
.move-manager-count small { color:#ad9a75; font-size:13px; }
.move-manager-count span { color:#c6cec5; font:600 10px Inter,system-ui,-apple-system,"Segoe UI",sans-serif; text-transform:uppercase; letter-spacing:.06em; }
.move-manager-list { min-height:0; overflow:auto; display:grid; align-content:start; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:16px 20px; scrollbar-color:#79644b transparent; }
.move-manager-card { --move-manager-accent:#d1d3ae; min-width:0; display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:12px; padding:13px; border:1px solid color-mix(in srgb,var(--move-manager-accent) 36%,transparent); border-radius:12px; background:linear-gradient(110deg,color-mix(in srgb,var(--move-manager-accent) 9%,rgba(4,15,10,.55)),rgba(4,15,10,.36)); }
.move-manager-card.type-normal { --move-manager-accent:#d1d3ae; }.move-manager-card.type-fighting { --move-manager-accent:#f28d64; }.move-manager-card.type-flying { --move-manager-accent:#a9c7f4; }.move-manager-card.type-poison { --move-manager-accent:#cf8be4; }.move-manager-card.type-ground { --move-manager-accent:#d2ae75; }.move-manager-card.type-rock { --move-manager-accent:#c8b97c; }.move-manager-card.type-bug { --move-manager-accent:#bce56b; }.move-manager-card.type-ghost { --move-manager-accent:#b8a6ff; }.move-manager-card.type-steel { --move-manager-accent:#b9d1dc; }.move-manager-card.type-fire { --move-manager-accent:#ff824e; }.move-manager-card.type-water { --move-manager-accent:#62bdf3; }.move-manager-card.type-grass { --move-manager-accent:#75db86; }.move-manager-card.type-electric { --move-manager-accent:#ffe05a; }.move-manager-card.type-psychic { --move-manager-accent:#ee8bd0; }.move-manager-card.type-ice { --move-manager-accent:#8be4ec; }.move-manager-card.type-dragon { --move-manager-accent:#9f8aff; }.move-manager-card.type-dark { --move-manager-accent:#a9a9c8; }.move-manager-card.type-fairy { --move-manager-accent:#f28fb8; }
.move-manager-icon { width:40px; height:40px; display:grid; place-items:center; border:1px solid color-mix(in srgb,var(--move-manager-accent) 44%,transparent); border-radius:10px; background:color-mix(in srgb,var(--move-manager-accent) 12%,rgba(4,10,12,.6)); color:var(--move-manager-accent); font-size:20px; }
.move-manager-copy { min-width:0; }
.move-manager-title { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.move-manager-title strong { min-width:0; overflow:hidden; color:#f3ead9; font:700 15px Inter,system-ui,-apple-system,"Segoe UI",sans-serif; text-overflow:ellipsis; white-space:nowrap; }
.move-manager-title span { flex:0 0 auto; color:var(--move-manager-accent); font:700 11px Inter,system-ui,-apple-system,"Segoe UI",sans-serif; text-transform:uppercase; }
.move-manager-stats,.move-manager-meta { display:flex; flex-wrap:wrap; gap:7px 14px; margin-top:8px; color:#c3cec6; font:12px Inter,system-ui,-apple-system,"Segoe UI",sans-serif; }
.move-manager-stats span { display:inline-flex; align-items:baseline; gap:5px; }
.move-manager-stats small { color:#aab9af; font:600 10px Inter,system-ui,-apple-system,"Segoe UI",sans-serif; }
.move-manager-stats b { color:#f3d994; font:700 12px Inter,system-ui,-apple-system,"Segoe UI",sans-serif; }
.move-manager-meta { align-items:center; gap:6px 12px; color:#c0ccc3; font-size:11px; }
.move-manager-meta .move-manager-lock { color:#f0cf82; font-weight:600; }
.move-manager-card.is-equipped { border-color:color-mix(in srgb,var(--move-manager-accent) 74%,#e6ca85); box-shadow:inset 3px 0 color-mix(in srgb,var(--move-manager-accent) 90%,#e6ca85),0 0 15px color-mix(in srgb,var(--move-manager-accent) 10%,transparent); }
.move-manager-card.is-locked { opacity:.7; filter:saturate(.65); }
.move-manager-toggle { min-width:96px; min-height:38px; padding:7px 10px; font:700 10px Inter,system-ui,-apple-system,"Segoe UI",sans-serif; white-space:nowrap; }
.move-manager-toggle:disabled { cursor:not-allowed; opacity:.58; }
.move-manager-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 20px; border-top:1px solid rgba(221,183,119,.18); color:#c0ccc3; font:12px Inter,system-ui,-apple-system,"Segoe UI",sans-serif; }
.move-manager-open { flex:0 0 auto; min-height:25px; margin-left:auto; padding:3px 7px; font-size:8px; }
.move-card.is-cooling-down { opacity:.58; filter:saturate(.65); }
@media (max-width:700px) {
  .move-manager-modal { width:calc(100vw - 14px); max-height:calc(100dvh - 14px); border-radius:12px; }
  .move-manager-head { gap:9px; padding:12px; }
  .move-manager-art { flex-basis:48px; width:48px; height:48px; }
  .move-manager-art img { width:42px; height:42px; }
  .move-manager-heading .eyebrow { font-size:8px; }
  .move-manager-heading h2 { font-size:16px; }
  .move-manager-heading p { font-size:11px; }
  .move-manager-count { flex-basis:48px; padding:5px; }
  .move-manager-count strong { font-size:19px; }
  .move-manager-list { grid-template-columns:1fr; gap:7px; padding:10px; }
  .move-manager-card { grid-template-columns:32px minmax(0,1fr) auto; gap:8px; padding:9px; border-radius:9px; }
  .move-manager-icon { width:30px; height:30px; font-size:16px; }
  .move-manager-title strong { font-size:13px; }
  .move-manager-title span { font-size:9px; }
  .move-manager-stats,.move-manager-meta { gap:5px 9px; margin-top:6px; font-size:10px; }
  .move-manager-stats small { font-size:9px; }
  .move-manager-stats b { font-size:11px; }
  .move-manager-meta { font-size:10px; }
  .move-manager-toggle { min-width:70px; min-height:34px; padding:5px 6px; font-size:8px; }
  .move-manager-foot { padding:9px 12px; font-size:10px; }
}
.team-slot .slot-actions { flex-wrap:wrap; }
.team-move-summary { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:7px 0 2px; color:#9db0a2; font-size:10px; }
.team-move-summary b { color:#f1d38e; font:700 10px 'DM Mono','Courier New',monospace; }
.hunt-xp-reward {
  display:flex;
  align-items:center;
  gap:4px;
  margin:-2px 0 5px;
  color:#83e1d1;
  font:800 8px 'DM Mono',monospace;
  letter-spacing:.025em;
  white-space:nowrap;
}
.hunt-xp-reward::before { content:'✦'; color:#f0cc75; font-size:9px; }

/* Soneca da hunt e resumo do progresso offline */
body.adventure-mode .expedition-heading-actions .expedition-nap-button { border-color:rgba(117,219,202,.48); color:#a8eee0; background:rgba(20,57,57,.88); }
body.adventure-mode .expedition-heading-actions .expedition-nap-button.is-active { border-color:#f0cf84; color:#ffe5a9; background:rgba(76,58,39,.96); box-shadow:0 0 0 2px rgba(240,207,132,.1); }
body.adventure-mode .nap-modal { width:min(620px,100%); }
body.adventure-mode .nap-modal-body { display:grid; gap:14px; }
body.adventure-mode .nap-status-card { display:grid; gap:7px; padding:17px; border:1px solid rgba(117,219,202,.25); border-radius:8px; background:linear-gradient(135deg,rgba(35,77,72,.55),rgba(19,31,42,.9)); }
body.adventure-mode .nap-status-card.is-active { border-color:rgba(240,207,132,.48); background:linear-gradient(135deg,rgba(78,62,41,.58),rgba(30,34,44,.94)); }
body.adventure-mode .nap-status-card .eyebrow { color:#8de2d4; font:700 9px 'Courier New',monospace; letter-spacing:.12em; }
body.adventure-mode .nap-status-card strong { color:#f7ead1; font:700 21px 'Courier New',monospace; }
body.adventure-mode .nap-status-card.is-active strong { color:#ffe3a0; font-size:28px; }
body.adventure-mode .nap-status-card p, body.adventure-mode .nap-policy-note { margin:0; color:#c1c6cc; font-size:12px; line-height:1.6; }
body.adventure-mode .nap-detail-grid, body.adventure-mode .nap-report-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
body.adventure-mode .nap-detail-grid article, body.adventure-mode .nap-report-grid article { display:grid; gap:5px; min-width:0; padding:12px; border:1px solid rgba(212,190,151,.2); border-radius:7px; background:rgba(15,24,35,.78); }
body.adventure-mode .nap-detail-grid article span, body.adventure-mode .nap-report-grid article span { color:#9eacb9; font:700 8px 'Courier New',monospace; letter-spacing:.08em; }
body.adventure-mode .nap-detail-grid article strong { overflow:hidden; color:#f1e2c6; font-size:14px; text-overflow:ellipsis; }
body.adventure-mode .nap-detail-grid article small { color:#b0b4bc; font-size:10px; }
body.adventure-mode .nap-report-route { margin:0; color:#cfc2aa; font:700 11px 'Courier New',monospace; }
body.adventure-mode .nap-report-grid article strong { color:#f2e6d1; font:700 19px 'Courier New',monospace; }
body.adventure-mode .nap-report-grid article.is-shiny strong { color:#ffe18e; }
body.adventure-mode .nap-wake-button { justify-self:stretch; min-height:42px; }
@media(max-width:560px) {
  body.adventure-mode .nap-modal-body { gap:10px; }
  body.adventure-mode .nap-detail-grid, body.adventure-mode .nap-report-grid { gap:6px; }
  body.adventure-mode .nap-detail-grid article, body.adventure-mode .nap-report-grid article { padding:9px; }
  body.adventure-mode .nap-status-card { padding:13px; }
}

/* Keep large collection modals responsive when they contain many entries. */
body.adventure-mode .dex-tile,
body.adventure-mode .capture-research-card,
body.adventure-mode .storage-card {
  content-visibility:auto;
  contain-intrinsic-size:1px 190px;
}
body.adventure-mode .storage-pagination {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:10px 0;
  color:var(--muted);
  font:700 10px 'DM Mono',monospace;
}
body.adventure-mode .storage-pagination span { min-width:125px; text-align:center; }
@media(max-width:480px) {
  body.adventure-mode .storage-pagination { gap:6px; font-size:9px; }
  body.adventure-mode .storage-pagination span { min-width:100px; }
}

/* Competitive asynchronous PvP arena. */
body.adventure-mode .screen-modal[data-modal-view="pvp"] { width:min(1180px,100%); }
body.adventure-mode .screen-modal[data-modal-view="pvp"] .screen-modal-head { border-bottom-color:rgba(116,210,227,.18); }
body.adventure-mode .screen-modal[data-modal-view="pvp"] .menu-modal-icon { border-color:rgba(116,210,227,.34); background:linear-gradient(145deg,rgba(47,125,146,.38),rgba(25,45,65,.65)); }
body.adventure-mode .screen-modal-content-pvp { background:radial-gradient(ellipse at 8% 0%,rgba(51,139,157,.08),transparent 44%); }
body.adventure-mode .pvp-intro { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 13px; }
body.adventure-mode .pvp-intro > div:first-child { display:block; min-width:0; }
body.adventure-mode .pvp-intro h3 { margin:5px 0 4px; color:#e8f1f4; font-size:18px; letter-spacing:-.035em; }
body.adventure-mode .pvp-intro p { max-width:720px; margin:0; color:#9cb1bd; font-size:10px; line-height:1.55; }
body.adventure-mode .pvp-daily-limit { min-width:130px; display:grid; gap:5px; padding:10px 13px; border:1px solid rgba(116,210,227,.2); border-radius:12px; background:rgba(7,20,31,.62); text-align:right; }
body.adventure-mode .pvp-daily-limit span,.pvp-rating-strip article span { color:#829aa8; font:8px 'DM Mono',monospace; letter-spacing:.1em; }
body.adventure-mode .pvp-daily-limit strong { color:#a5e8e4; font:700 17px 'DM Mono',monospace; }
body.adventure-mode .pvp-rating-strip { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px; margin-bottom:12px; }
body.adventure-mode .pvp-rating-strip article { min-width:0; display:grid; gap:5px; padding:10px 12px; border:1px solid var(--line); border-radius:11px; background:linear-gradient(145deg,rgba(20,37,54,.95),rgba(12,25,39,.9)); }
body.adventure-mode .pvp-rating-strip article strong { overflow:hidden; color:#e8f2f4; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .pvp-rating-strip article:nth-child(2) strong { color:#f2cc75; }
body.adventure-mode .pvp-tabs { display:flex; gap:6px; margin:0 0 12px; padding:4px; border:1px solid var(--line); border-radius:12px; background:rgba(5,15,25,.55); }
body.adventure-mode .pvp-tabs button { display:flex; align-items:center; gap:7px; padding:8px 12px; border:1px solid transparent; border-radius:8px; color:#99adba; background:transparent; font-size:10px; font-weight:700; cursor:pointer; }
body.adventure-mode .pvp-tabs button:hover { color:var(--ink); background:rgba(116,210,227,.07); }
body.adventure-mode .pvp-tabs button.is-active { border-color:rgba(116,210,227,.22); color:#baf0ec; background:rgba(66,154,166,.16); }
body.adventure-mode .pvp-tabs button span { min-width:17px; padding:2px 5px; border-radius:99px; color:#a7c5d0; background:rgba(116,210,227,.1); font:8px 'DM Mono',monospace; text-align:center; }
body.adventure-mode .pvp-arena-overview { display:grid; grid-template-columns:minmax(240px,.72fr) minmax(0,1.45fr); align-items:start; gap:11px; }
body.adventure-mode .pvp-team-panel,body.adventure-mode .pvp-opponents-panel,body.adventure-mode .pvp-ranking-panel,body.adventure-mode .pvp-history-panel,body.adventure-mode .pvp-replay-panel { min-width:0; padding:13px; border:1px solid var(--line); border-radius:14px; background:linear-gradient(145deg,rgba(18,34,50,.9),rgba(10,23,36,.92)); }
body.adventure-mode .pvp-team-panel > header,body.adventure-mode .pvp-opponents-panel > header,body.adventure-mode .pvp-ranking-panel > header,body.adventure-mode .pvp-history-panel > header,body.adventure-mode .pvp-replay-panel > header { display:flex; align-items:center; justify-content:space-between; gap:9px; margin-bottom:10px; }
body.adventure-mode .pvp-team-panel h3,body.adventure-mode .pvp-opponents-panel h3,body.adventure-mode .pvp-ranking-panel h3,body.adventure-mode .pvp-history-panel h3,body.adventure-mode .pvp-replay-panel h3 { margin:4px 0 0; color:#e5eef2; font-size:13px; }
body.adventure-mode .pvp-ranking-panel header p,body.adventure-mode .pvp-history-panel header p,body.adventure-mode .pvp-replay-panel header p { margin:4px 0 0; color:#90a7b4; font-size:9px; line-height:1.4; }
body.adventure-mode .pvp-own-team { display:grid; gap:5px; }
body.adventure-mode .pvp-pokemon-mini { min-width:0; display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:8px; padding:5px 7px; border:1px solid rgba(151,193,212,.12); border-radius:10px; background:rgba(5,16,26,.55); }
body.adventure-mode .pvp-pokemon-mini.is-shiny { border-color:rgba(242,204,117,.3); background:linear-gradient(100deg,rgba(112,83,34,.13),rgba(5,16,26,.55)); }
body.adventure-mode .pvp-pokemon-art { width:40px; height:40px; display:grid; place-items:center; border-radius:8px; background:rgba(115,157,180,.08); }
body.adventure-mode .pvp-pokemon-art img { width:38px; height:38px; object-fit:contain; image-rendering:pixelated; }
body.adventure-mode .pvp-pokemon-copy { min-width:0; display:grid; gap:3px; }
body.adventure-mode .pvp-pokemon-copy strong { overflow:hidden; color:#e0edf0; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .pvp-pokemon-mini.is-shiny .pvp-pokemon-copy strong { color:#f3d68c; }
body.adventure-mode .pvp-pokemon-copy small { color:#8da4b1; font:8px 'DM Mono',monospace; }
body.adventure-mode .pvp-pokemon-power { color:#8ddad9; font:8px 'DM Mono',monospace; white-space:nowrap; }
body.adventure-mode .pvp-opponents-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
body.adventure-mode .pvp-opponent-card { min-width:0; display:grid; gap:9px; padding:10px; border:1px solid rgba(151,193,212,.14); border-radius:11px; background:rgba(5,16,26,.48); }
body.adventure-mode .pvp-opponent-head { min-width:0; display:grid; grid-template-columns:32px minmax(0,1fr) auto; align-items:center; gap:8px; }
body.adventure-mode .pvp-opponent-crest { width:32px; height:32px; display:grid; place-items:center; border:1px solid rgba(116,210,227,.22); border-radius:10px; color:#b7efeb; background:rgba(69,151,167,.17); font-weight:800; }
body.adventure-mode .pvp-opponent-copy { min-width:0; display:grid; gap:3px; }
body.adventure-mode .pvp-opponent-copy strong { overflow:hidden; color:#e5eef2; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .pvp-opponent-copy small,body.adventure-mode .pvp-opponent-copy > span { overflow:hidden; color:#8299a7; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .pvp-opponent-power { color:#90deda; font:8px 'DM Mono',monospace; }
body.adventure-mode .pvp-opponent-team { display:flex; flex-wrap:wrap; gap:3px; min-height:35px; padding:5px; border-radius:8px; background:rgba(2,10,18,.35); }
body.adventure-mode .pvp-opponent-mon { width:34px; height:34px; display:grid; place-items:center; border:1px solid rgba(151,193,212,.1); border-radius:7px; background:rgba(104,143,166,.06); }
body.adventure-mode .pvp-opponent-mon.is-shiny { border-color:rgba(242,204,117,.36); }
body.adventure-mode .pvp-opponent-mon img { width:32px; height:32px; object-fit:contain; image-rendering:pixelated; }
body.adventure-mode .pvp-challenge-button { width:100%; min-height:34px; justify-content:center; gap:6px; font-size:9px; }
body.adventure-mode .pvp-challenge-button span { opacity:.68; font:8px 'DM Mono',monospace; }
body.adventure-mode .pvp-notice { margin:8px 0; padding:9px 10px; border:1px solid rgba(242,204,117,.16); border-radius:9px; color:#c1b58e; background:rgba(122,91,34,.08); font-size:9px; line-height:1.45; }
body.adventure-mode .pvp-friendly-team-notice { display:flex; align-items:center; justify-content:space-between; gap:10px; }
body.adventure-mode .pvp-friendly-team-notice > span { flex:1; }
body.adventure-mode .pvp-ranking-list,body.adventure-mode .pvp-history-list { display:grid; gap:6px; }
body.adventure-mode .pvp-ranking-row { min-width:0; display:grid; grid-template-columns:35px minmax(100px,1fr) 90px 75px 75px; align-items:center; gap:8px; padding:9px 10px; border:1px solid rgba(151,193,212,.11); border-radius:9px; background:rgba(5,16,26,.42); }
body.adventure-mode .pvp-ranking-row.is-you { border-color:rgba(116,210,227,.36); background:rgba(54,126,142,.12); }
body.adventure-mode .pvp-ranking-row > b { color:#82d7d7; font:700 10px 'DM Mono',monospace; }
body.adventure-mode .pvp-ranking-row > strong { overflow:hidden; color:#e0ecf0; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .pvp-ranking-row > strong small { color:#7fe0d7; font:8px 'DM Mono',monospace; }
body.adventure-mode .pvp-ranking-row > span,body.adventure-mode .pvp-ranking-row > small { color:#8da4b1; font-size:8px; }
body.adventure-mode .pvp-ranking-row > em { color:#f0d084; font:700 10px 'DM Mono',monospace; font-style:normal; }
body.adventure-mode .pvp-history-row { min-width:0; display:grid; grid-template-columns:75px minmax(90px,1fr) minmax(150px,auto) auto; align-items:center; gap:9px; padding:9px 10px; border:1px solid rgba(151,193,212,.11); border-radius:9px; background:rgba(5,16,26,.42); }
body.adventure-mode .pvp-history-row > span { color:#e7ad9e; font:700 8px 'DM Mono',monospace; }
body.adventure-mode .pvp-history-row.is-win > span { color:#8be0c5; }
body.adventure-mode .pvp-history-row > strong { overflow:hidden; color:#e0ecf0; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .pvp-history-row > small { color:#8da4b1; font-size:8px; }
body.adventure-mode .pvp-replay-panel > header { align-items:flex-start; }
body.adventure-mode .pvp-replay-panel h3 small { margin-left:5px; color:#8be0c5; font:700 9px 'DM Mono',monospace; }
body.adventure-mode .pvp-replay-teams { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
body.adventure-mode .pvp-replay-teams > div { min-width:0; display:grid; align-content:start; gap:5px; }
body.adventure-mode .pvp-replay-teams > div > strong { margin-bottom:3px; color:#bce7e7; font-size:10px; }
body.adventure-mode .pvp-replay-log { max-height:340px; display:grid; gap:5px; overflow:auto; margin:12px 0 0; padding:0 4px 0 0; list-style:none; }
body.adventure-mode .pvp-replay-event { min-width:0; display:grid; grid-template-columns:30px minmax(75px,.45fr) minmax(0,1fr) auto; align-items:center; gap:7px; padding:7px 8px; border:1px solid rgba(116,210,227,.12); border-radius:8px; background:rgba(4,14,23,.42); }
body.adventure-mode .pvp-replay-event.is-defender { border-left:2px solid rgba(186,143,236,.5); }
body.adventure-mode .pvp-replay-event.is-attacker { border-left:2px solid rgba(116,210,227,.5); }
body.adventure-mode .pvp-replay-event > span,body.adventure-mode .pvp-replay-event > i { color:#8099a7; font:8px 'DM Mono',monospace; font-style:normal; }
body.adventure-mode .pvp-replay-event > strong { overflow:hidden; color:#d9e8eb; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .pvp-replay-event > small { color:#9aafb9; font-size:8px; line-height:1.4; }
body.adventure-mode .pvp-replay-truncated { display:block; margin-top:7px; color:#8199a7; font-size:8px; text-align:center; }
body.adventure-mode .pvp-empty-state { min-height:260px; display:grid; align-content:center; justify-items:center; gap:8px; padding:24px; text-align:center; }
body.adventure-mode .pvp-empty-icon { width:46px; height:46px; display:grid; place-items:center; border:1px solid rgba(116,210,227,.25); border-radius:15px; color:#91e3de; background:rgba(58,137,151,.14); font-size:22px; }
body.adventure-mode .pvp-empty-state h3 { max-width:540px; margin:3px 0 0; color:#e4eef2; font-size:13px; }
body.adventure-mode .pvp-empty-state p { margin:0 0 5px; color:#90a7b4; font-size:9px; }
body.adventure-mode .pvp-team-config-panel { display:grid; gap:12px; }
body.adventure-mode .pvp-team-config-panel > header { margin-bottom:0; }
body.adventure-mode .pvp-team-config-panel > header p { max-width:330px; margin:5px 0 0; color:#91a8b5; font-size:9px; line-height:1.45; }
body.adventure-mode .pvp-lineup-editor { display:grid; gap:7px; padding:9px; border:1px solid rgba(116,210,227,.13); border-radius:11px; background:rgba(3,14,24,.35); }
body.adventure-mode .pvp-lineup-editor > header { display:flex; align-items:center; justify-content:space-between; gap:8px; }
body.adventure-mode .pvp-lineup-editor h4 { margin:4px 0 0; color:#e2edf0; font-size:10px; }
body.adventure-mode .pvp-lineup-selects { display:grid; gap:5px; }
body.adventure-mode .pvp-lineup-slot { min-width:0; display:grid; grid-template-columns:24px minmax(0,1fr); align-items:center; gap:6px; }
body.adventure-mode .pvp-lineup-slot > span { color:#89a1af; font:8px 'DM Mono',monospace; text-align:center; }
body.adventure-mode .pvp-lineup-slot input { width:100%; min-width:0; height:30px; padding:0 8px; border:1px solid rgba(151,193,212,.15); border-radius:7px; outline:none; color:#dce9ed; background:rgba(5,14,24,.82); font-size:9px; }
body.adventure-mode .pvp-lineup-slot input:focus { border-color:rgba(116,210,227,.55); box-shadow:0 0 0 2px rgba(116,210,227,.08); }
body.adventure-mode .pvp-lineup-slot input::placeholder { color:#6f8795; }
body.adventure-mode .pvp-save-teams { min-height:36px; justify-content:center; }
body.adventure-mode .pvp-replay-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px; }
body.adventure-mode .pvp-battle-stage { display:grid; grid-template-columns:minmax(0,1fr) minmax(92px,.4fr) minmax(0,1fr); align-items:center; gap:8px; margin:8px 0 12px; padding:10px; border:1px solid rgba(116,210,227,.17); border-radius:13px; background:radial-gradient(ellipse at 50% 45%,rgba(78,143,155,.19),rgba(5,17,28,.65) 68%); }
body.adventure-mode .pvp-battle-side { min-width:0; display:grid; gap:6px; }
body.adventure-mode .pvp-battle-side > strong { overflow:hidden; color:#c6e9e8; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .pvp-battle-roster { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
body.adventure-mode .pvp-battle-unit { position:relative; min-width:0; display:grid; justify-items:center; gap:2px; overflow:hidden; padding:4px 3px; border:1px solid rgba(151,193,212,.13); border-radius:8px; background:rgba(7,17,28,.68); transition:transform .18s,border-color .18s,opacity .18s,filter .18s; }
body.adventure-mode .pvp-battle-unit.is-shiny { border-color:rgba(242,204,117,.34); }
body.adventure-mode .pvp-battle-unit.is-active { z-index:1; border-color:rgba(116,210,227,.8); box-shadow:0 0 12px rgba(81,196,204,.23); transform:translateY(-2px) scale(1.035); }
body.adventure-mode .pvp-battle-unit.is-fainted { opacity:.42; filter:grayscale(.8); }
body.adventure-mode .pvp-battle-unit.is-hit { animation:pvp-battle-hit .24s ease-in-out 2; }
body.adventure-mode .pvp-battle-unit.is-attacking .pvp-battle-art { animation:pvp-battle-attack .28s ease-out; }
body.adventure-mode .pvp-battle-art { position:relative; width:44px; height:42px; display:grid; place-items:center; }
body.adventure-mode .pvp-battle-art img { width:42px; height:42px; object-fit:contain; image-rendering:pixelated; }
body.adventure-mode .pvp-battle-damage { position:absolute; left:50%; top:1px; z-index:3; opacity:0; color:#ffe19a; font:800 8px 'DM Mono',monospace; text-shadow:0 1px 4px #000; transform:translate(-50%,5px); pointer-events:none; white-space:nowrap; }
body.adventure-mode .pvp-battle-damage.is-visible { animation:pvp-battle-damage .7s ease-out forwards; }
body.adventure-mode .pvp-battle-unit > strong { max-width:100%; overflow:hidden; color:#d9e7eb; font-size:7px; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .pvp-battle-unit > small,body.adventure-mode .pvp-battle-hp-text { color:#8199a7; font:7px 'DM Mono',monospace; }
body.adventure-mode .pvp-battle-hp { width:88%; height:3px; overflow:hidden; border-radius:99px; background:#26313c; }
body.adventure-mode .pvp-battle-hp > b { height:100%; display:block; border-radius:inherit; background:linear-gradient(90deg,#e78677,#8be0ba); transition:width .22s; }
body.adventure-mode .pvp-battle-unit.is-hit .pvp-battle-hp > b { background:#ff9b83; }
body.adventure-mode .pvp-battle-center { min-width:0; display:grid; justify-items:center; gap:6px; text-align:center; }
body.adventure-mode .pvp-battle-center > span { color:#f1cc79; font-size:21px; text-shadow:0 0 14px rgba(241,204,121,.45); }
body.adventure-mode .pvp-battle-status { color:#bce9e7; font-size:9px; line-height:1.35; }
body.adventure-mode .pvp-battle-action { min-height:25px; color:#93a9b5; font-size:8px; line-height:1.35; }
body.adventure-mode .pvp-battle-progress { width:100%; height:4px; overflow:hidden; border-radius:99px; background:rgba(0,0,0,.4); }
body.adventure-mode .pvp-battle-progress > b { height:100%; display:block; border-radius:inherit; background:linear-gradient(90deg,#73d5cf,#f1cc79); transition:width .18s linear; }
body.adventure-mode .pvp-replay-event.is-current { border-color:rgba(116,210,227,.48); background:rgba(42,107,120,.2); }
body.adventure-mode .pvp-replay-event[hidden] { display:none; }
@keyframes pvp-battle-hit { 25% { transform:translateX(-3px); filter:brightness(1.9); } 75% { transform:translateX(3px); } }
@keyframes pvp-battle-attack { 50% { transform:translateY(-6px) scale(1.08); filter:brightness(1.3); } }
@keyframes pvp-battle-damage { 15% { opacity:1; transform:translate(-50%,0); } 85% { opacity:1; } 100% { opacity:0; transform:translate(-50%,-14px); } }

@media(max-width:900px) {
  body.adventure-mode .pvp-arena-overview { grid-template-columns:1fr; }
  body.adventure-mode .pvp-own-team { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:820px) {
  body.adventure-mode .main-nav { grid-template-columns:repeat(7,minmax(39px,1fr)); overflow-x:auto; scrollbar-width:none; }
  body.adventure-mode .main-nav::-webkit-scrollbar { display:none; }
  body.adventure-mode .nav-button > span:nth-child(2) { max-width:100%; overflow:hidden; font-size:7px; text-overflow:ellipsis; white-space:nowrap; }
  body.adventure-mode .nav-count { display:none; }
  body.adventure-mode .pvp-rating-strip { grid-template-columns:repeat(3,minmax(0,1fr)); }
  body.adventure-mode .pvp-opponents-grid { grid-template-columns:1fr; }
  body.adventure-mode .pvp-own-team { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.adventure-mode .pvp-history-row { grid-template-columns:68px minmax(65px,1fr) auto; gap:6px; }
  body.adventure-mode .pvp-history-row > small { grid-column:2; grid-row:2; }
  body.adventure-mode .pvp-history-row .button { grid-column:3; grid-row:1 / span 2; }
}
@media(max-width:560px) {
  body.adventure-mode .pvp-intro { align-items:stretch; flex-direction:column; gap:8px; }
  body.adventure-mode .pvp-daily-limit { min-width:0; display:flex; align-items:center; justify-content:space-between; text-align:left; }
  body.adventure-mode .pvp-rating-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.adventure-mode .pvp-rating-strip article:last-child { grid-column:1 / -1; }
  body.adventure-mode .pvp-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.adventure-mode .pvp-tabs button { justify-content:center; padding:8px 4px; font-size:8px; }
  body.adventure-mode .pvp-own-team { grid-template-columns:1fr; }
  body.adventure-mode .pvp-ranking-row { grid-template-columns:25px minmax(0,1fr) 57px 58px; gap:5px; padding:7px; }
  body.adventure-mode .pvp-ranking-row > small { display:none; }
  body.adventure-mode .pvp-ranking-row > span { text-align:right; }
  body.adventure-mode .pvp-history-row { grid-template-columns:60px minmax(60px,1fr) auto; }
  body.adventure-mode .pvp-replay-teams { grid-template-columns:1fr; }
  body.adventure-mode .pvp-replay-event { grid-template-columns:26px minmax(55px,.4fr) minmax(0,1fr); }
  body.adventure-mode .pvp-replay-event > i { display:none; }
  body.adventure-mode .pvp-replay-actions { justify-content:flex-start; }
  body.adventure-mode .pvp-battle-stage { grid-template-columns:minmax(0,1fr) minmax(62px,.3fr) minmax(0,1fr); gap:4px; padding:7px; }
  body.adventure-mode .pvp-battle-roster { gap:3px; }
  body.adventure-mode .pvp-battle-art,body.adventure-mode .pvp-battle-art img { width:35px; height:35px; }
}

body.adventure-mode .pvp-friendly-content { display:grid; gap:11px; }
body.adventure-mode .pvp-friendly-panel,body.adventure-mode .pvp-online-panel { min-width:0; padding:13px; border:1px solid var(--line); border-radius:14px; background:linear-gradient(145deg,rgba(18,34,50,.9),rgba(10,23,36,.92)); }
body.adventure-mode .pvp-friendly-panel > header,body.adventure-mode .pvp-online-panel > header { display:flex; align-items:center; justify-content:space-between; gap:9px; margin-bottom:10px; }
body.adventure-mode .pvp-friendly-panel h3,body.adventure-mode .pvp-online-panel h3 { margin:4px 0 0; color:#e5eef2; font-size:13px; }
body.adventure-mode .pvp-friendly-panel p,body.adventure-mode .pvp-online-panel p { margin:4px 0 0; color:#90a7b4; font-size:9px; line-height:1.45; }
body.adventure-mode .pvp-friendly-form { display:flex; gap:8px; max-width:620px; }
body.adventure-mode .pvp-friendly-form input { flex:1; min-width:0; height:38px; padding:0 11px; border:1px solid rgba(151,193,212,.19); border-radius:9px; outline:none; color:#e3eef1; background:rgba(5,16,26,.72); font:inherit; }
body.adventure-mode .pvp-friendly-form input:focus { border-color:rgba(116,210,227,.62); box-shadow:0 0 0 2px rgba(116,210,227,.1); }
body.adventure-mode .pvp-friendly-inbox { display:grid; gap:7px; }
body.adventure-mode .pvp-friendly-inbox > header { display:flex; align-items:center; justify-content:space-between; gap:8px; }
body.adventure-mode .pvp-friendly-inbox h3 { margin:4px 0; color:#e5eef2; font-size:13px; }
body.adventure-mode .pvp-friendly-request,body.adventure-mode .pvp-friendly-online { min-width:0; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 10px; border:1px solid rgba(151,193,212,.14); border-radius:9px; background:rgba(5,16,26,.48); }
body.adventure-mode .pvp-friendly-request > div:first-child { min-width:0; display:grid; gap:3px; }
body.adventure-mode .pvp-friendly-request strong,body.adventure-mode .pvp-friendly-online strong { overflow:hidden; color:#e0edf0; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
body.adventure-mode .pvp-friendly-request small { color:#8da4b1; font-size:8px; }
body.adventure-mode .pvp-challenge-actions { display:flex; flex-wrap:wrap; gap:5px; }
body.adventure-mode .pvp-friendly-online-list,body.adventure-mode .pvp-friendly-outgoing-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
body.adventure-mode .pvp-friendly-online { justify-content:flex-start; }
body.adventure-mode .pvp-friendly-online .button { margin-left:auto; }
body.adventure-mode .pvp-friendly-error { border-color:rgba(231,135,119,.32); color:#f0b3a7; }
@media(max-width:560px) {
  body.adventure-mode .pvp-friendly-form { flex-direction:column; }
  body.adventure-mode .pvp-friendly-team-notice { align-items:flex-start; flex-direction:column; }
  body.adventure-mode .pvp-friendly-online-list,body.adventure-mode .pvp-friendly-outgoing-list { grid-template-columns:1fr; }
  body.adventure-mode .pvp-friendly-panel > header,body.adventure-mode .pvp-online-panel > header { align-items:flex-start; }
}

/* Compact hunt cards: the front shows the Pokemon, the reverse holds route progress. */
.hunt-tile {
  display:block; height:154px; min-height:0; padding:0; overflow:visible;
  border:0; border-radius:13px; background:transparent; box-shadow:none;
  cursor:default; perspective:900px; transition:transform .14s ease;
}
.hunt-tile:hover { transform:translateY(-2px); border-color:transparent; background:transparent; }
.hunt-tile.selected { border-color:transparent; box-shadow:none; }
.hunt-tile-inner { position:relative; width:100%; height:100%; transform-style:preserve-3d; transition:transform .46s cubic-bezier(.2,.75,.2,1); }
.hunt-tile.is-flipped .hunt-tile-inner { transform:rotateY(180deg); }
.hunt-tile-face {
  position:absolute; inset:0; display:flex; flex-direction:column; min-width:0; width:100%; height:100%;
  overflow:hidden; padding:9px; border:1px solid rgba(186,222,203,.18); border-radius:13px;
  color:#dce8dd; background:linear-gradient(145deg,rgba(23,47,61,.96),rgba(15,29,43,.98));
  box-shadow:0 7px 18px rgba(0,0,0,.18); backface-visibility:hidden; -webkit-backface-visibility:hidden;
}
.hunt-tile-front { align-items:stretch; justify-content:space-between; cursor:pointer; text-align:left; font:inherit; appearance:none; -webkit-appearance:none; visibility:visible; transition:none; }
.hunt-tile.is-flipped .hunt-tile-front { visibility:hidden; }
.hunt-tile-front:focus-visible,.hunt-tile-back-flip:focus-visible,.hunt-tile-enter:focus-visible { outline:2px solid #a8e4d0; outline-offset:2px; }
.hunt-tile-body { flex:1; min-height:0; display:flex; align-items:center; justify-content:center; gap:9px; margin:0; }
.hunt-tile-body img { width:54px; height:54px; flex:0 0 54px; object-fit:contain; image-rendering:pixelated; }
.hunt-tile-body strong { display:block; overflow:hidden; color:#e2edf2; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.hunt-tile-meta-row { display:flex; align-items:center; justify-content:space-between; gap:5px; min-width:0; padding-top:6px; border-top:1px solid rgba(182,214,222,.11); }
.hunt-tile-meta-row .type-badges { min-width:0; display:flex; flex-wrap:wrap; gap:3px; margin:0; }
.hunt-tile-meta-row .type-badges > * { font-size:7px; }
.hunt-tile-meta-row .hunt-xp-reward { flex:0 0 auto; margin:0; font-size:7px; }
.hunt-tile-back { transform:rotateY(180deg); gap:4px; cursor:default; visibility:hidden; transition:none; }
.hunt-tile.is-flipped .hunt-tile-back { visibility:visible; }
.hunt-tile-back-head { min-height:16px; display:flex; align-items:center; gap:5px; }
.hunt-tile-back-head > span:first-child { flex:0 0 auto; color:#91c9b6; font:700 7px 'DM Mono',monospace; letter-spacing:.08em; }
.hunt-tile-status { min-width:0; overflow:hidden; margin-left:auto; color:#9ebda9; font:700 6px 'DM Mono',monospace; text-align:right; text-overflow:ellipsis; white-space:nowrap; }
.hunt-tile-status.is-locked { color:#ebc783; }
.hunt-tile-back-flip { flex:0 0 auto; height:20px; padding:0 5px; border:1px solid rgba(186,222,203,.2); border-radius:6px; color:#bfd5ce; background:rgba(2,12,20,.32); font:700 6px 'DM Mono',monospace; cursor:pointer; }
.hunt-tile-route-name { display:block; overflow:hidden; color:#dbe9e4; font-size:9px; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.hunt-tile-back .hunt-tile-foot { display:flex; justify-content:flex-end; gap:5px; margin:0; padding:2px 0; border:0; color:#9cb0b3; font:7px 'DM Mono',monospace; }
.hunt-tile-back .hunt-tile-foot strong { color:#d4e5de; }
.hunt-tile-back .bestiary-progress,.hunt-tile-back .capture-study-progress { display:grid; min-width:0; gap:3px; margin:0; }
.hunt-tile-back .bestiary-progress small,.hunt-tile-back .capture-study-progress small { overflow:hidden; color:#afc9b4; font:600 6px 'DM Mono',monospace; line-height:1.15; text-overflow:ellipsis; white-space:nowrap; }
.hunt-tile-back .capture-study-progress small { color:#8ed9ce; }
.hunt-tile-back .bestiary-progress > i,.hunt-tile-back .capture-study-progress > i { height:3px; overflow:hidden; border-radius:4px; background:rgba(0,0,0,.35); }
.hunt-tile-back .bestiary-progress > i > b,.hunt-tile-back .capture-study-progress > i > b { display:block; height:100%; border-radius:4px; background:linear-gradient(90deg,#74ba87,#d8df8a); transition:width .3s ease; }
.hunt-tile-back .capture-study-progress > i > b { background:linear-gradient(90deg,#39cbb7,#9add83); }
.hunt-tile-enter { width:100%; min-height:25px; margin-top:auto; padding:3px 7px; border-radius:7px; font-size:8px; }
.hunt-tile-enter:disabled { border-color:rgba(226,194,122,.23); color:#cbb784; background:rgba(101,75,37,.16); cursor:not-allowed; opacity:.7; }
.hunt-tile.selected .hunt-tile-face { border-color:rgba(207,236,143,.57); box-shadow:inset 0 0 0 1px rgba(207,236,143,.14),0 0 16px rgba(135,190,106,.1); }
.hunt-tile.is-locked .hunt-tile-front { border-color:rgba(197,186,146,.2); background:linear-gradient(145deg,rgba(34,43,47,.96),rgba(20,30,39,.98)); }
.hunt-tile.is-locked .hunt-tile-front img { filter:grayscale(.38); opacity:.78; }
@media (hover:hover) and (pointer:fine) {
  .hunt-tile:hover .hunt-tile-inner { transform:rotateY(180deg); }
  .hunt-tile:hover .hunt-tile-face { border-color:rgba(135,211,192,.42); }
  .hunt-tile:hover .hunt-tile-front { visibility:hidden; }
  .hunt-tile:hover .hunt-tile-back { visibility:visible; }
}
@media(max-width:560px) {
  .hunt-picker-level-grid .hunt-tile { height:150px; min-height:0; }
  .hunt-tile-face { padding:8px; }
  .hunt-tile-body img { width:50px; height:50px; flex-basis:50px; }
  .hunt-tile-body strong { font-size:10px; }
  .hunt-tile-meta-row .hunt-xp-reward { font-size:6px; }
  .hunt-tile-back .bestiary-progress small,.hunt-tile-back .capture-study-progress small { font-size:5.7px; }
}
