/* Isolated UI rules; no edits to the shared balance stylesheet. */
#bottom-hud { height: 38px; padding: 2px 4px; }
#bh-ammo.dual { padding: 1px 4px; line-height: 1; }
#bottom-hud #bh-reload:empty { display: none; }
.ui-weapon-match { margin: 6px 0 16px; }
.ui-weapon-match .ui-weapon-all { margin: 0 0 8px; }
.ui-weapon-groups { display: flex; flex-wrap: wrap; gap: 10px; align-items: start; }
.ui-weapon-group { display: flex; flex-direction: column; gap: 6px; }
.ui-weapon-match .ui-weapon-class { margin: 0; }
.ui-weapon-class button { width: 100%; }
.ui-weapon-match .wg-pick { margin: 0; flex-wrap: nowrap; gap: 6px; min-height: 40px; }
#rank-panel.catalog .ui-weapon-match .wg-pick button { padding: 6px 9px; gap: 6px; }
#rank-panel.catalog .ui-weapon-match .wg-pick button span { font-size: 18px; }
#rank-panel.catalog .ui-weapon-match .wg-pick button b { font-size: 12px; white-space: nowrap; }

/* A35 reference: recorded CSS viewport800x384, not the panel's2340x1080.
   CSS reflows on viewport changes; no game-frame measurement/polling is added. */
@media (pointer:coarse) {
  #btn-fire { font-size:28px; user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; }
  #quest-panel { left:env(safe-area-inset-left,0px); top:env(safe-area-inset-top,0px); }
  #difficulty-label { right:env(safe-area-inset-right,0px); top:env(safe-area-inset-top,0px); }
  #minimap { right:env(safe-area-inset-right,0px); top:calc(env(safe-area-inset-top,0px) + 16px); }
  #select-screen .t-top { left:env(safe-area-inset-left,0px); right:env(safe-area-inset-right,0px); }
  #rank-panel,#inv-panel,#stat-panel,#menu,#t-modal { box-sizing:border-box; overscroll-behavior:contain; }
  #t-modal { padding:6px max(6px,env(safe-area-inset-right,0px)) max(6px,env(safe-area-inset-bottom,0px)) max(6px,env(safe-area-inset-left,0px)); }
  #t-modal>.t-box { box-sizing:border-box; max-width:100%; max-height:100%; overflow:auto; }
  #rank-panel.catalog { padding:8px max(8px,env(safe-area-inset-right,0px)) 10px max(8px,env(safe-area-inset-left,0px)); gap:10px; }
  #rank-panel.catalog::before,#rank-panel.catalog::after { display:none; }
  #rank-panel.catalog .gd-tabs { position:sticky; top:0; z-index:2; max-width:100%; display:flex; flex-wrap:wrap; justify-content:center; gap:2px; padding:3px; }
  #rank-panel.catalog .gd-tab { min-height:34px; padding:6px 12px; font-size:12px; }
  #rank-panel.catalog h1 { font-size:22px; margin:0; }
  #rank-panel.catalog .cat-filters button { min-height:30px; padding:4px 12px; }
  #rank-panel.catalog .ui-weapon-match { margin:0 0 6px; }
  #rank-panel.catalog .ui-weapon-groups { gap:6px; }
  #rank-panel.catalog .ui-weapon-group { gap:4px; }
  #rank-panel.catalog .ui-weapon-match .wg-pick { gap:4px; min-height:32px; }
  #rank-panel.catalog .ui-weapon-match .wg-pick button { min-height:32px; padding:4px 7px; }
  #rank-panel.catalog .ui-weapon-match .wg-pick button b { font-size:11px; }
  #rank-panel.catalog .ui-weapon-match .wg-pick button span { font-size:16px; }
  #rank-panel>* { max-width:100%; min-width:0; flex-shrink:0; }
  #menu { padding:6px max(8px,env(safe-area-inset-right,0px)) max(6px,env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px)); }
  #menu>.mrow { max-width:100%; box-sizing:border-box; }
}
@media (pointer:coarse) and (orientation:landscape) {
  #t-modal:has(.lobby-settings) { padding:6px max(6px,env(safe-area-inset-right,0px)) max(6px,env(safe-area-inset-bottom,0px)) max(6px,env(safe-area-inset-left,0px)); }
  .lobby-settings { width:min(760px,100%); max-height:100%; padding:10px; display:flex; flex-direction:column; gap:8px; overflow:hidden; }
  .lobby-settings header,.lobby-settings footer { flex:none; margin:0; gap:8px; }
  .lobby-settings header small { display:none; }
  .lobby-settings h2 { font-size:18px; margin:0; }
  .lobby-settings button { min-height:32px; padding:5px 9px; font-size:12px; }
  .lobby-settings header>button { align-self:center; }
  .lobby-settings .ls-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; min-height:0; overflow:auto; overscroll-behavior:contain; }
  .lobby-settings .ls-grid section { padding:7px; font-size:12px; }
  .lobby-settings .ls-grid section:last-child { grid-column:span 2; }
  .lobby-settings .ls-audio { margin-bottom:3px; }
  .lobby-settings .ls-options { gap:4px; margin-top:5px; }
  .lobby-settings .ls-options button { min-width:0; padding:4px 2px; overflow-wrap:anywhere; }
  .lobby-settings .ls-grid label { font-size:10px; gap:2px; }
  .lobby-settings footer small { min-width:0; }
  /* Keep the live lobby clusters, and constrain text instead of spilling out. */
  #select-screen:not(.creating) #t-left { left:max(6px,env(safe-area-inset-left,0px)); width:clamp(150px,23.75vw,230px); }
  #select-screen:not(.creating) #t-right { right:max(6px,env(safe-area-inset-right,0px)); width:clamp(150px,20vw,220px); }
  #select-screen #t-center { max-width:calc(100% - 2 * max(6px,env(safe-area-inset-left,0px))); }
  #select-screen .t-edit { flex-wrap:wrap; }
  #select-screen #t-account { max-width:25vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  #select-screen .t-card { box-sizing:border-box; min-width:0; }
  #select-screen .t-card b { overflow-wrap:anywhere; }
  #select-screen .t-room-open,#select-screen .t-launch,#select-screen .t-training { box-sizing:border-box; }
  /* Finite windows: long lists can scroll, while footer controls stay visible. */
  #inv-panel { padding:4px max(4px,env(safe-area-inset-right,0px)) max(4px,env(safe-area-inset-bottom,0px)) max(4px,env(safe-area-inset-left,0px)); gap:4px; overflow:hidden; }
  #inv-panel::before,#inv-panel::after,#stat-panel::before,#stat-panel::after { display:none; }
  #inv-panel .iv-win { width:min(100%,980px); max-width:100%; min-height:0; flex:1 1 auto; display:grid; grid-template-columns:minmax(130px,.72fr) minmax(128px,.7fr) minmax(260px,2fr); gap:6px; padding:5px; overflow:hidden; }
  #inv-panel .iv-col { width:auto; min-width:0; min-height:0; overflow:auto; overscroll-behavior:contain; }
  #inv-panel .iv-info { width:auto; }
  #inv-panel .iv-col:last-child { grid-column:auto; padding-top:0; border-top:0; }
  #inv-panel .iv-head .iv-id { min-width:0; }
  #inv-panel .iv-info .sp-row { min-width:0; }
  #inv-panel .iv-info .sp-v { min-width:0; }
  #inv-panel .iv-head .sp-portrait { width:44px; height:60px; }
  #inv-panel .iv-head .sp-k { width:34px; font-size:9px; }
  #inv-panel .g10 { grid-template-columns:repeat(10,minmax(0,clamp(22px,calc((100dvh - 216px) / 6),32px))); gap:3px; }
  #inv-panel .g4 { grid-template-columns:repeat(4,minmax(0,1fr)); gap:3px; }
  #inv-panel .g10>.c,#inv-panel .g4>.c { width:100%; height:auto; aspect-ratio:1; font-size:16px; }
  #inv-panel .tabs { flex-wrap:wrap; }
  #inv-panel .tabs .tab { min-width:0; font-size:11px; padding:4px 6px; }
  #inv-panel .bt { max-width:100%; gap:3px; }
  #inv-panel .bt button { min-height:27px; margin:0; }
  #inv-panel .iv-wallet { flex-wrap:wrap; gap:4px; margin-top:3px; }
  #inv-panel .iv-cap { font-size:10px; }
  #inv-panel>[data-x] { flex:none; min-height:30px; min-width:110px; margin:0; text-align:center; }
  #stat-panel { padding:4px max(4px,env(safe-area-inset-right,0px)) max(4px,env(safe-area-inset-bottom,0px)) max(4px,env(safe-area-inset-left,0px)); overflow:hidden; }
  #stat-panel .sp-win { width:min(100%,920px); max-width:100%; height:100%; max-height:100%; min-height:0; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:7px; padding:6px; font-size:11px; line-height:1.2; }
  #stat-panel .sp-left,#stat-panel .sp-right { min-width:0; min-height:0; gap:4px; overflow:auto; overscroll-behavior:contain; }
  #stat-panel .sp-left>* ,#stat-panel .sp-right>* { flex-shrink:0; }
  #stat-panel .sp-pcol { width:72px; }
  #stat-panel .sp-rank { font-size:10px; white-space:nowrap; gap:2px; padding:2px; }
  #stat-panel .sp-rank svg { width:16px; flex:none; }
  #stat-panel .sp-portrait { min-height:90px; }
  #stat-panel .sp-info { min-width:0; }
  #stat-panel .sp-info .sp-k { width:64px; font-size:10px; white-space:nowrap; }
  #stat-panel .sp-k { width:56px; padding:2px; }
  #stat-panel .sp-v { min-width:0; padding:2px 4px; }
  #stat-panel .sp-power { flex:none; }
  #stat-panel .sp-power .sp-k { width:48px; }
  #stat-panel .sp-split .sp-v { font-size:10px; white-space:normal; }
  #stat-panel .sp-record>div>span { padding:2px 4px; overflow-wrap:anywhere; }
  #stat-panel .sp-stat { grid-template-columns:56px minmax(0,1fr) 34px; }
  #stat-panel .sp-stat .sp-k { width:auto; }
  #stat-panel .sp-more { margin-bottom:1px; }
  #stat-panel .sp-more small { font-size:10px; }
  #stat-panel .sp-more button { min-height:20px; padding:1px 6px; font-size:10px; }
  #stat-panel .sp-up { height:24px; }
  #stat-panel .sp-right { display:grid; grid-template-rows:auto repeat(5,auto) auto minmax(0,1fr) auto; overflow:hidden; gap:3px; }
  #stat-panel .sp-stat { gap:2px; }
  #stat-panel .sp-pts { padding:3px 7px; }
  #stat-panel .sp-pts br { display:none; }
  #stat-panel .sp-pts b { font-size:15px; }
  #stat-panel .sp-note { min-height:0; overflow:auto; font-size:10px; padding:4px; line-height:1.4; }
  #stat-close { min-height:32px; margin:0; }
  #t-modal>.t-box.shop { width:min(900px,100%); padding:10px; display:flex; flex-direction:column; overflow:hidden; }
  #t-modal>.t-box.shop>* { flex-shrink:0; }
  #t-modal>.t-box.shop.forge { display:block; height:auto; overflow:auto; }
  #t-modal .shop.forge>.t-row:last-child { position:sticky; bottom:0; z-index:2; background:#191a12; padding:4px 0; }
  #t-modal .shop .shop-grid,#t-modal .shop .fg-main { flex:1 1 auto; min-height:0; overflow:auto; }
  #t-modal .shop>.t-row:last-child { flex:none; margin:5px 0 0; }
  #t-modal .shop h2 { margin:0 0 6px; font-size:19px; }
  #t-modal .shop-dust { margin:4px 0 8px; font-size:12px; }
  #t-modal .shop-grid { gap:6px; }
  #select-screen .shop-item { padding:7px 4px; }
  #t-modal .shop-result { min-height:0; margin:5px 0; }
  #t-modal .fg-tabs { gap:5px; margin:0 0 6px; }
  #t-modal .fg-tabs button { padding:6px; font-size:12px; min-width:0; }
  #t-modal .fg-tabs button small { font-size:9px; }
  #t-modal .fg-main { grid-template-columns:minmax(0,1fr) 110px minmax(0,1.35fr); gap:8px; align-items:start; }
  #t-modal .fg-target { min-width:0; padding:6px; }
  #t-modal .fg-target .fg-big,#t-modal .fg-target img.fg-big { height:65px; }
  #t-modal .fg-anvil { width:96px; height:96px; margin:8px auto; }
  #t-modal .fg-bag { padding:5px; min-width:0; }
  #t-modal .fg-grid { grid-template-columns:repeat(4,minmax(0,1fr)); max-height:135px; }
  #t-modal .fg-slot { max-height:40px; }
  #t-modal .forge-list { max-height:60px; }
  #t-modal .fg-odds { height:20px; font-size:11px; margin:4px 0; }
  #t-modal .fg-note { font-size:10px; }
  #t-modal .fg-cslot { width:44px; height:44px; }
  #t-modal .fg-cslots { gap:5px; margin:4px 0; }
  #t-modal .fg-empty { padding:8px; font-size:11px; }
}
@media (pointer:coarse) and (orientation:landscape) and (max-width:700px) {
  #inv-panel .iv-win { grid-template-columns:minmax(118px,.8fr) minmax(112px,.75fr) minmax(230px,1.7fr); gap:4px; }
  #inv-panel .iv-col .wslot { font-size:10px; max-width:100%; }
  .lobby-settings { padding:7px; gap:6px; }
  .lobby-settings .ls-options button { font-size:11px; }
  #select-screen .t-edit { gap:3px; }
  #select-screen .t-edit button { font-size:11px; padding:5px 6px; }
}

/* A bounded, centered fire thumb marker; saved control geometry is unchanged. */
#touch #btn-fire,#touch #btn-fire:active{background:#0e1b2920;border:1px solid #ffffff70;box-shadow:none;padding:0;overflow:hidden;border-radius:50%;text-shadow:none}
.touch-fire-marker{position:absolute;left:50%;top:50%;width:56px;height:56px;pointer-events:none;transform:translate(calc(-50% + var(--fire-mark-x,0px)),calc(-50% + var(--fire-mark-y,0px)));transform-origin:center;user-select:none;-webkit-user-select:none}
.touch-fire-marker svg{display:block;width:100%;height:100%;overflow:hidden}
#touch #btn-fire.touch-fire-dragging{border-color:#ffffffc0;background:#0e1b2930}
@media(pointer:coarse) and (orientation:landscape){.lobby-settings .ls-grid:has(.gfx-rescue-section) section:last-child{grid-column:auto}.gfx-rescue-section>small{display:block;font-size:10px;line-height:1.35;margin-top:4px}.gfx-rescue-section .ls-options{margin-top:4px}}
