/* Import Google Fonts */
/* @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&family=Luckiest+Guy&display=swap'); */

:root {
    /* Definindo cores como variáveis para fácil customização */
    --player1-color: #28a745; /* Verde */
    --player1-color-dark: #19692c;
    --player2-color: #dc3545; /* Vermelho */
    --player2-color-dark: #a71d2a;
    --bar-background: #e9ecef;
    --bar-border: #6c757d;
    --text-light: #ffffff;
    --text-dark: #343a40;
    --accent-color: #007bff; /* Azul para conexão */
    --accent-color-dark: #0056b3;
    --warning-color: #ffc107; /* Amarelo para pronto/aviso */
    --warning-color-dark: #c79100;
}

html {
    box-sizing: border-box;
}
*, *:before, *:after {
    box-sizing: inherit;
}

body {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between; /* Empurra elementos para topo/baixo */
    min-height: 100vh;
    width: 100vw; /* Garante largura total */
    font-family: 'Poppins', sans-serif;
    background: linear-gradient(145deg, #74ebd5 0%, #acb6e5 100%); /* Novo Gradiente Suave */
    color: var(--text-dark);
    text-align: center;
    padding: 20px;
    margin: 0; /* Remove margem padrão do body */
    overflow-x: hidden; /* Previne scroll horizontal */
}

h1 {
    font-family: 'Luckiest Guy', cursive;
    font-size: clamp(2.5em, 8vw, 4.5em); /* Tamanho responsivo */
    color: var(--text-light);
    text-shadow: 3px 3px 0px rgba(0, 0, 0, 0.2),
                 6px 6px 0px rgba(0,0,0,0.1);
    margin-bottom: 20px;
    width: 100%; /* Ocupa a largura para centralizar corretamente */
}

/* Grupos de Elementos */
#connection-group, #game-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 700px; /* Limita largura máxima do conteúdo central */
    padding: 20px;
    background-color: rgba(255, 255, 255, 0.6); /* Fundo levemente transparente */
    border-radius: 15px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    margin-bottom: auto; /* Empurra para baixo se houver espaço */
}

#game-group {
     margin-top: auto; /* Empurra para cima se houver espaço */
     justify-content: center; /* Centraliza itens quando visível */
     background-color: transparent; /* Game group não precisa de fundo próprio */
     box-shadow: none;
     padding: 0; /* Remove padding do grupo do jogo */
}

.hidden {
    display: none !important; /* Garante que fique oculto */
}

/* Estilo para a barra de "cabo de guerra" */
#tug-bar-container {
    width: 100%; /* Ocupa a largura do container pai (#game-group) */
    max-width: 800px; /* Ou um valor fixo maior */
    height: 50px; /* Mais alta */
    background-color: var(--bar-background);
    border: 4px solid var(--bar-border);
    margin: 30px auto;
    position: relative;
    overflow: hidden;
    border-radius: 25px; /* Totalmente arredondada */
    box-shadow: inset 0 4px 8px rgba(0,0,0,0.15);
    display: flex; /* Usa flexbox para alinhar os preenchimentos */
    transition: transform 0.2s ease-out; /* Efeito de shake opcional */
}

/* Barra pode tremer um pouco com cliques (adicionar classe via JS) */
#tug-bar-container.shake {
    animation: shake 0.1s ease-in-out 2;
}
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-3px); }
  75% { transform: translateX(3px); }
}


/* Preenchimentos dos jogadores */
#player1-fill, #player2-fill {
    height: 100%;
    transition: width 0.15s cubic-bezier(0.25, 0.1, 0.25, 1); /* Transição suave da largura */
    box-shadow: inset 0 0 10px rgba(0,0,0,0.2); /* Sombra interna sutil */
}

#player1-fill {
    background: linear-gradient(to right, var(--player1-color-dark), var(--player1-color));
    border-right: 2px solid rgba(0,0,0,0.2); /* Linha de separação sutil */
     border-radius: 25px 0 0 25px; /* Arredonda só a borda esquerda */
}

#player2-fill {
    background: linear-gradient(to left, var(--player2-color-dark), var(--player2-color));
    border-left: 2px solid rgba(0,0,0,0.2); /* Linha de separação sutil */
    border-radius: 0 25px 25px 0; /* Arredonda só a borda direita */
}

/* Linha central (opcional, para referência visual) */
#center-line {
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 4px;
    background-color: rgba(255, 255, 255, 0.5);
    transform: translateX(-50%);
    z-index: 1; /* Fica acima dos preenchimentos */
    box-shadow: 0 0 5px rgba(0,0,0,0.3);
}


/* Botões */
button {
    padding: 15px 30px; /* Ligeiramente menor que antes para caber melhor */
    font-size: 1.2em;
    font-weight: 700;
    cursor: pointer;
    margin: 10px 5px;
    border: none;
    border-radius: 10px;
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
    transition: all 0.15s ease;
    box-shadow: 0 4px 0px #00000030;
    position: relative;
    outline: none;
}

button:hover:not(:disabled) {
    filter: brightness(1.1);
    transform: translateY(-2px);
    box-shadow: 0 6px 0px #00000030;
}

button:active:not(:disabled) {
    transform: translateY(1px);
    box-shadow: 0 2px 0px #00000030;
    filter: brightness(0.95);
}

button:disabled {
    background-color: #b0bec5 !important; /* Usa important para sobrescrever cores específicas */
    color: #607d8b !important;
    cursor: not-allowed;
    box-shadow: 0 4px 0px #78909c80 !important;
    text-shadow: none;
}

/* Cores específicas dos Botões */
#connect-button {
    background-color: var(--accent-color);
    box-shadow: 0 4px 0px var(--accent-color-dark);
}

#ready-button {
    margin-top: 20px;
    background-color: var(--warning-color);
    box-shadow: 0 4px 0px var(--warning-color-dark);
}

#click-button {
    background-color: var(--player1-color); /* Botão de clique usa cor do Player 1 */
    box-shadow: 0 4px 0px var(--player1-color-dark);
    padding: 25px 50px; /* Botão principal bem grande */
    font-size: 1.5em;
    width: 80%; /* Ocupa bastante largura */
    max-width: 350px;
    /* Prevent zoom on double-tap on mobile */
    touch-action: manipulation;
    -webkit-user-select: none; /* Safari */
    -moz-user-select: none; /* Firefox */
    user-select: none;
}

/* Input de texto */
input[type="text"] {
    padding: 10px 12px;
    margin: 5px 8px 5px 0; /* Ajusta margem */
    border: 2px solid #ced4da;
    border-radius: 8px;
    font-size: 1em;
    font-family: 'Poppins', sans-serif;
    outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    min-width: 180px; /* Largura mínima */
}
input[type="text"]:focus {
    border-color: var(--accent-color);
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25);
}
/* Agrupamento do input e botão de conectar */
#connection-group > div {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap; /* Permite quebrar linha em telas pequenas */
    margin: 10px 0;
}


/* Textos de Status, Timer, etc. */
#timer {
    font-size: 1.3em;
    font-weight: 700;
    color: var(--text-light);
    background-color: rgba(0,0,0,0.3);
    padding: 5px 15px;
    border-radius: 8px;
    margin-bottom: 15px; /* Espaço antes da barra */
    position: absolute; /* Posiciona no topo */
    top: 90px; /* Ajuste conforme necessário */
    left: 50%;
    transform: translateX(-50%);
    z-index: 10; /* Garante visibilidade */
}

#status-overlay {
    position: absolute; /* Flutua sobre outros elementos */
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 20; /* Fica acima de tudo */
    background-color: rgba(0, 0, 0, 0.6); /* Fundo escuro semi-transparente */
    color: var(--text-light);
    padding: 20px 30px;
    border-radius: 15px;
    min-width: 250px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    /* Inicialmente escondido, controlado por JS ou visibilidade do conteúdo */
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}
#status-overlay.visible {
    opacity: 1;
    visibility: visible;
}

#status-message, #result {
    font-size: 1.4em;
    font-weight: 700;
    margin-bottom: 10px;
}
#result {
     color: var(--warning-color); /* Amarelo para destaque */
}

#countdown {
    font-family: 'Luckiest Guy', cursive;
    font-size: 5em; /* Bem grande */
    color: var(--warning-color);
    text-shadow: 2px 2px 0px rgba(0,0,0,0.5);
    line-height: 1;
}

#my-id {
    color: var(--accent-color-dark);
    background-color: #e9ecef;
    padding: 3px 10px;
    border-radius: 5px;
    display: inline-block;
    font-weight: 700;
    margin-left: 5px;
    user-select: text; /* Permite selecionar o ID */
}
#connection-status {
    font-size: 1.1em;
    margin-top: 15px;
    color: #5a6268;
    font-weight: bold;
}

/* Container para os botões de controle do jogo */
.controls {
    display: flex;
    flex-direction: column; /* Empilha os botões */
    align-items: center;
    margin-top: 25px;
    width: 100%;
}

/* Responsividade básica */
@media (max-width: 600px) {
    h1 {
        margin-bottom: 15px;
    }
    #connection-group {
        padding: 15px;
    }
     #connection-group > div {
         flex-direction: column; /* Empilha input e botão conectar */
     }
     input[type="text"] {
         margin-right: 0;
         margin-bottom: 10px;
         width: 80%;
     }
     #connect-button {
         width: 80%;
     }

    #tug-bar-container {
        height: 40px;
        max-width: 95%;
    }
    #click-button {
        padding: 20px 40px;
        font-size: 1.3em;
    }
    #timer {
        font-size: 1.1em;
        top: 75px; /* Ajusta posição do timer */
    }
     #status-overlay {
         min-width: 80%;
         padding: 15px 20px;
     }
     #status-message, #result { font-size: 1.2em; }
     #countdown { font-size: 4em; }
}

#invite-button {
    background-color: #6f42c1; /* Vibrant Purple */
    box-shadow: 0 4px 0px #5a349b; /* Darker purple shadow */
    padding: 12px 25px; /* Slightly smaller padding than game buttons? Optional */
    font-size: 1.1em;  /* Slightly smaller font? Optional */
}

/* Optional: Adjust hover/active specifically if needed,
   otherwise it inherits from the general button:hover/active rules */
#invite-button:hover:not(:disabled) {
    background-color: #8358d1;
    /* transform/box-shadow inherited from general button rule */
}

/* Ensure disabled style is consistent */
#invite-button:disabled {
    background-color: #b0bec5 !important; /* Uses general disabled style */
    color: #607d8b !important;
    box-shadow: 0 4px 0px #78909c80 !important;
}


#status-overlay.status-win,
#status-overlay.status-loss,
#status-overlay.status-draw {
  background-color: transparent; /* Remove default dark background */
  color: var(--text-light);      /* Default to light text */
  padding: 25px 40px; /* Slightly more padding? */
  border: 3px solid rgba(255, 255, 255, 0.7); /* Add a border */
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); /* More pronounced shadow */
}

/* Style for Winning */
#status-overlay.status-win {
  background-color: #90ee90cc; /* Light Green semi-transparent */
  /* border-color: #28a745; */ /* Optional darker green border */
  color: #1a3a1a; /* Darker green text for better contrast */
}
#status-overlay.status-win #result { /* Target the result text specifically */
    color: #145a32; /* Even darker green for the main message */
    font-weight: bold;
}


/* Style for Losing */
#status-overlay.status-loss {
  background-color: #f08080cc; /* Light Coral semi-transparent */
  /* border-color: #dc3545; */ /* Optional darker red border */
   color: #4d1a1a; /* Darker red text for better contrast */
}
#status-overlay.status-loss #result { /* Target the result text specifically */
    color: #8b0000; /* Dark Red for the main message */
    font-weight: bold;
}


/* Style for Draw (Optional, can rely on default if preferred) */
#status-overlay.status-draw {
  background-color: #adb5bdcc; /* Light Grey semi-transparent */
  /* border-color: #6c757d; */ /* Optional darker grey border */
   color: #343a40; /* Dark grey text */
}
#status-overlay.status-draw #result {
    color: #212529;
    font-weight: bold;
}


/* Ensure text inside overlay adapts (adjust font sizes if needed) */
#status-overlay.status-win #result,
#status-overlay.status-loss #result,
#status-overlay.status-draw #result {
    font-size: 1.6em; /* Make result text prominent */
    margin-bottom: 5px;
}
#status-overlay.status-win span, /* Target appended score spans */
#status-overlay.status-loss span,
#status-overlay.status-draw span {
    font-size: 0.9em; /* Make score slightly smaller */
    opacity: 0.9;
}