@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap');

:root {
  --bg-dark: #1a1a2e;
  --bg-panel: #16213e;
  --border-color: #e94560;
  --text-primary: #ffffff;
  --text-gold: #ffd700;
  --hp-high: #00ff00;
  --hp-mid: #ffff00;
  --hp-low: #ff0000;
}

* {
  font-family: 'Press Start 2P', monospace;
  box-sizing: border-box;
}

body {
  background-color: var(--bg-dark);
  color: var(--text-primary);
  margin: 0;
  padding: 20px;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

#auth {
    text-align: center;
}

#game {
    display: grid;
    grid-template-columns: 2fr 1fr;
    grid-template-rows: 2fr 1fr;
    gap: 16px;
    width: 100%;
    max-width: 1200px;
    height: 90vh;
}

.game-panel {
  background: var(--bg-panel);
  border: 4px solid var(--border-color);
  border-radius: 8px;
  padding: 16px;
  image-rendering: pixelated;
  overflow: auto;
  position: relative;
  box-shadow: 4px 4px 0px rgba(0,0,0,0.5);
}

/* Specific Panel Locations */
#panel-map { 
    grid-column: 1; 
    grid-row: 1; 
    display: flex; 
    justify-content: center; 
    align-items: center;
    background-color: #000;
}
#panel-status { grid-column: 2; grid-row: 1; }
#panel-menu { grid-column: 1; grid-row: 2; }
#panel-chat { grid-column: 2; grid-row: 2; display: flex; flex-direction: column; }

.hp-bar {
  height: 16px;
  background: #333;
  border: 2px solid #fff;
  margin-top: 5px;
  margin-bottom: 5px;
  position: relative;
}

.hp-bar-fill {
  height: 100%;
  transition: width 0.3s;
  background-color: var(--hp-high);
}

.menu-item {
  padding: 8px 16px;
  border: 2px solid transparent;
  cursor: pointer;
  margin-bottom: 5px;
  display: block;
  width: 100%;
  text-align: left;
  background: none;
  color: white;
  font-size: 10px;
  text-transform: uppercase;
}

.menu-item:hover, .menu-item.selected {
  border-color: var(--border-color);
  background: rgba(233, 69, 96, 0.2);
}

.hidden { display: none !important; }

/* Map Styling */
#map-grid {
    display: grid;
    gap: 0;
}

.cell {
    width: 32px;
    height: 32px;
    image-rendering: pixelated;
    background-size: cover;
    background-position: center;
}

/* New Pokemon-style tiles */
.cell.grass { 
    background-image: url('../assets/tiles/grass_1.png');
}
.cell.grass-2 { 
    background-image: url('../assets/tiles/grass_2.png');
}
.cell.grass-3 { 
    background-image: url('../assets/tiles/grass_3.png');
}
.cell.grass-flowers { 
    background-image: url('../assets/tiles/grass_flowers.png');
}
.cell.path { 
    background-image: url('../assets/tiles/path_center.png');
}
.cell.water { 
    background-image: url('../assets/tiles/water_still.png');
}
.cell.tree { 
    background-image: url('../assets/tiles/tree_top.png');
}
.cell.bush { 
    background-image: url('../assets/tiles/bush_green.png');
}
.cell.rock { 
    background-image: url('../assets/tiles/rock_large.png');
}
.cell.wall { 
    background-image: url('../assets/tiles/wall.png');
}
.cell.portal {
    background-image: url('../assets/tiles/portal.png');
    animation: flash 1s infinite;
}
.cell.player {
    background-image: url('../assets/tiles/grass_1.png');
    position: relative;
}
.cell.player::after {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: url('../assets/characters/hero.png') center/contain no-repeat;
    image-rendering: pixelated;
}

/* Cave Tiles */
.cell.cave-floor {
    background-image: url('../assets/tiles/cave_floor.png');
}
.cell.cave-floor-2 {
    background-image: url('../assets/tiles/cave_floor_2.png');
}
.cell.cave-wall {
    background-image: url('../assets/tiles/cave_wall.png');
}
.cell.cave-wall-moss {
    background-image: url('../assets/tiles/cave_wall_moss.png');
}
.cell.stalactite {
    background-image: url('../assets/tiles/stalactite.png');
}
.cell.crystal-blue {
    background-image: url('../assets/tiles/crystal_blue.png');
}
.cell.crystal-purple {
    background-image: url('../assets/tiles/crystal_purple.png');
}
.cell.underground-water {
    background-image: url('../assets/tiles/underground_water.png');
}
.cell.lava {
    background-image: url('../assets/tiles/lava.png');
}
.cell.bones {
    background-image: url('../assets/tiles/bones.png');
}

/* Ensure player shows up on cave tiles too */
.cell.player.cave-floor,
.cell.player.cave-floor-2,
.cell.player.bones {
    /* If we add multiple classes, the last one wins for background-image usually */
    /* But the player class has position: relative and ::after content */
    /* We just need to ensure the background is the floor, not grass */
}

/* Specific override for player on cave floor */
.cell.player.cave-floor { background-image: url('../assets/tiles/cave_floor.png'); }
.cell.player.cave-floor-2 { background-image: url('../assets/tiles/cave_floor_2.png'); }
.cell.player.bones { background-image: url('../assets/tiles/bones.png'); }

@keyframes flash {
    0% { opacity: 1; }
    50% { opacity: 0.5; }
    100% { opacity: 1; }
}

/* Chat Styling */
#chat-log {
    flex-grow: 1;
    overflow-y: auto;
    border: 2px solid #333;
    padding: 5px;
    margin-bottom: 5px;
    font-size: 10px;
    background: #111;
    font-family: monospace;
}
input, button {
    font-family: 'Press Start 2P', monospace;
    font-size: 10px;
}
input {
    background: #000;
    border: 2px solid #555;
    color: white;
    padding: 8px;
}
button {
    background: var(--bg-panel);
    border: 2px solid var(--border-color);
    color: white;
    padding: 8px 12px;
    cursor: pointer;
}
button:hover {
    background: var(--border-color);
}
h2, h3, h4 {
    margin-top: 0;
    color: var(--text-gold);
}

/* =====================================================================
   RESPONSIVE — Mobile game layout (<= 768px)
   ===================================================================== */
@media (max-width: 768px) {
    body {
        padding: 8px;
        height: auto;
        min-height: 100vh;
        overflow: auto;
        align-items: flex-start;
    }

    #game {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        height: auto;
        gap: 8px;
    }

    /* Reorder: status → map → controls/menu → chat */
    #panel-status { grid-column: 1 !important; grid-row: 1 !important; }
    #panel-map    { grid-column: 1 !important; grid-row: 2 !important; min-height: 260px; }
    #panel-menu   { grid-column: 1 !important; grid-row: 3 !important; }
    #panel-chat   { grid-column: 1 !important; grid-row: 4 !important; }

    /* Stack dpad + menus vertically inside panel-menu */
    #menu-inner {
        flex-direction: column !important;
        height: auto !important;
    }

    #dpad-container {
        flex: 0 0 auto !important;
        border-right: none !important;
        border-bottom: 2px solid #333;
        padding-right: 0 !important;
        padding-bottom: 10px;
        width: 100%;
        justify-content: center;
    }

    /* Larger dpad buttons for thumb taps */
    #dpad-grid {
        grid-template-columns: repeat(3, 48px) !important;
        gap: 6px !important;
    }

    #dpad-grid button {
        width: 48px;
        height: 48px;
        font-size: 16px;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0;
    }

    #menu-content {
        overflow: visible !important;
    }

    /* Battle action buttons touch-friendly */
    #battle-controls button {
        min-height: 44px;
        font-size: 10px;
    }

    /* Chat log comfortable height on mobile */
    #chat-log {
        height: 120px;
    }

    /* Inputs: prevent iOS auto-zoom */
    input {
        font-size: 16px !important;
    }
}
