/* Teste v318: chat fiel ao layout, bloqueio visual de hunts e HUD adaptável. */
html,body{max-width:100%;overflow-x:hidden}
.auth-card,.auth-card *{box-sizing:border-box}
.auth-card{width:min(470px,calc(100vw - 20px))!important;max-height:calc(100dvh - 42px);overflow:auto;padding:clamp(16px,5vw,26px)!important}
.auth-form input,.character-form input{width:100%;min-width:0}
body:has(#auth-screen:not(.hidden)) .beta-card,
body:has(#auth-screen:not(.hidden)) .beta-diamond-hud,
body:has(#auth-screen:not(.hidden)) .sg-next,
body:has(#auth-screen:not(.hidden)) .sg-dock,
body:has(#auth-screen:not(.hidden)) .game-chat{display:none!important}

/* O badge tem sombra interna de 6 px; o wrapper inteiro deve acompanhar a
   linha do nome, não a linha-base do texto. */
.game-chat .chat-author>b{display:inline-flex!important;align-items:center!important;min-width:0;white-space:nowrap}
.game-chat .chat-role-badge{top:0!important;align-self:center!important;vertical-align:middle!important}

/* O último CSS do chat forçava as abas em display:flex. No modo minimizado,
   a regra abaixo tem precedência e mantém apenas o cabeçalho de 129x40. */
.game-chat.minimized>:not(header){display:none!important}
.game-chat{width:435px!important;transform:scale(var(--chat-effective-scale,1))!important;transform-origin:left top!important;will-change:transform}
.game-chat.minimized{width:129px!important}
.game-chat .chat-scale-controls{display:flex;align-items:center;gap:3px;margin-left:auto;padding:2px 4px;border:1px solid #6d5a2a;border-radius:4px;background:#071019cc}
.game-chat .chat-scale-controls button{display:grid;place-items:center;width:18px;height:18px;padding:0;border:0;border-radius:3px;background:#203141;color:#dce8ef;font:800 13px/18px Arial;cursor:pointer}
.game-chat .chat-scale-controls button:hover{background:#2d4960;color:#fff}
.game-chat .chat-scale-controls output{min-width:30px;color:#91a8b5;font:700 8px/1 Barlow,Arial,sans-serif;text-align:center}
.game-chat>header #chat-status{margin-left:2px!important}
.game-chat.minimized .chat-scale-controls{display:none!important}

.map-pin.level-locked{filter:grayscale(.9) brightness(.65);cursor:not-allowed!important}
.map-pin.level-locked .pin-icon{border-color:#c4535c!important;box-shadow:0 0 0 2px #46151ccc,0 5px 12px #0009!important}
.map-pin.level-locked .pin-icon:after{content:"🔒";position:absolute;right:-7px;top:-8px;display:grid;place-items:center;width:19px;height:19px;border:1px solid #ff7680;border-radius:50%;background:#321119;color:#fff;font-size:10px}
.map-pin .pin-lvl{white-space:nowrap}
.map-pin.pokemon-pin .pin-lvl{font-size:7px!important}

.hunt-level-toast{position:fixed;z-index:29000;left:50%;top:74px;display:grid;grid-template-columns:1fr auto;width:min(340px,calc(100vw - 20px));padding:12px 14px;border:1px solid #d9a94c;border-radius:10px;background:linear-gradient(145deg,#281a12f7,#111b22f7);box-shadow:0 14px 40px #000b;color:#edf5f5;opacity:0;pointer-events:none;transform:translate(-50%,-12px);transition:opacity .16s,transform .16s}
.hunt-level-toast.show{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.hunt-level-toast button{grid-column:2;grid-row:1/4;align-self:start;width:24px;height:24px;border:1px solid #6e5a42;border-radius:6px;background:#141b20;color:#fff;cursor:pointer}
.hunt-level-toast small{grid-column:1;color:#ffc75b;font-size:8px;font-weight:900;letter-spacing:1.3px}
.hunt-level-toast strong{grid-column:1;margin:3px 0;color:#fff1c2;font:800 16px/1.1 "Team Cinzel",Georgia,serif}
.hunt-level-toast span{grid-column:1;color:#b8c9ce;font-size:11px}

/* Todos os painéis abertos respeitam a área útil, inclusive em notebooks. */
.panel.client-open,.system-window,.worldmap-panel,.market-window,.outfit-window{max-width:calc(100vw - 12px)!important;max-height:calc(100dvh - 12px)!important}
.panel.client-open{overflow:auto}
.unified-client-actions{max-width:calc(100vw - 10px)!important}
#stage .pokemon-moves{max-width:calc(100vw - 12px)!important;overflow-x:auto;scrollbar-width:none}
#stage .pokemon-moves::-webkit-scrollbar{display:none}
.beta-card,.sg-ranking,.party-panel{max-width:calc(100vw - 12px)!important;max-height:calc(100dvh - 12px)!important}

@media(max-width:1100px), (max-height:760px){
  .unified-client-actions{top:3px!important;min-height:52px!important;padding:7px 10px 8px!important}
  .unified-client-actions .client-top-actions button,.unified-client-actions .client-toolbar button{width:34px!important;height:34px!important;flex-basis:34px!important}
  .unified-client-actions .mainmenu-icon{max-width:32px!important;max-height:32px!important}
  #stage .pokemon-team-bar:not(.collapsed){transform:scale(.82);transform-origin:left top}
  .beta-diamond-hud{right:6px!important;top:6px!important;transform:scale(.86);transform-origin:right top}
  .beta-card{right:6px!important;width:240px!important}
  .activity{max-width:calc(100vw - 12px)!important;max-height:42vh!important}
}

@media(max-width:780px){
  .unified-client-actions{left:4px!important;right:4px!important;width:auto!important;display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none;touch-action:pan-x}
  .unified-client-actions::-webkit-scrollbar{display:none}
  .unified-client-actions .client-top-actions,.unified-client-actions .client-toolbar{display:flex!important;flex:0 0 auto!important;flex-wrap:nowrap!important}
  #stage .pokemon-team-bar:not(.collapsed){left:4px!important;top:58px!important;transform:scale(.68)!important;transform-origin:left top!important}
  #stage .pokemon-team-bar.collapsed{left:4px!important;top:58px!important;width:190px!important}
  .hunt-analyzer-panel.client-open,.hunt-analyzer-panel.client-open.collapsed{left:6px!important;right:auto!important;top:58px!important;width:calc(100vw - 12px)!important}
  .auto-helper-panel.client-open,.auto-helper-panel.client-open.collapsed{left:6px!important;right:auto!important;top:101px!important;width:calc(100vw - 12px)!important}
  .auto-helper-head,.auto-helper-panel.collapsed .auto-helper-head{grid-template-columns:108px minmax(0,1fr) 29px!important}
  .auto-helper-compact img,.auto-helper-panel.collapsed .auto-helper-compact img{width:19px!important;height:19px!important;flex-basis:19px!important}
  .auto-helper-compact b,.auto-helper-panel.collapsed .auto-helper-compact b{font-size:10px!important}
  .beta-diamond-hud{top:58px!important;transform:scale(.72)!important}
  .beta-card{right:6px!important;top:113px!important;width:min(238px,calc(100vw - 12px))!important}
  .sg-next,.sg-dock{right:6px!important;max-width:220px!important;transform:scale(.82);transform-origin:right top}
  .sg-ranking{right:6px!important;width:min(250px,calc(100vw - 12px))!important}
  .game-zoom{right:5px!important;bottom:73px!important;transform:scale(.86);transform-origin:right bottom}
  .skill-opacity-control{right:5px!important;bottom:39px!important;transform:scale(.86);transform-origin:right bottom}
  .touch-controls{transform:scale(.85);transform-origin:left bottom}
  .inventory-panel.client-open,.trainer-panel.client-open,.player-market-panel.client-open,.npc-trade-panel.client-open{inset:6px!important;width:calc(100vw - 12px)!important;height:calc(100dvh - 12px)!important;max-height:none!important}
  .inventory-team-slots{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .player-market-tools{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .player-market-content{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:480px){
  .player-market-content{grid-template-columns:1fr!important}
  .player-market-tools{grid-template-columns:1fr 1fr!important}
  .worldmap-panel{inset:4px!important;width:calc(100vw - 8px)!important;height:calc(100dvh - 8px)!important;max-height:none!important}
  .party-panel{right:5px!important;left:5px!important;width:auto!important}
  .rare-capture-card,.sg-card,.courtesy-card{max-width:calc(100vw - 12px)!important}
}

@media(hover:none) and (pointer:coarse){.panel button,.panel input,.panel select,.system-window button,.system-window input,.system-window select{min-height:34px}.unified-client-actions button{min-height:34px}.map-pin{touch-action:manipulation}}
