:root{
    --topNavH: 48px;
    --nameFont: 14px;
    --numFont: 14px;
  }

/* TOPO (placar/cronômetro) */
.scoreHeader{
  position: sticky;
  top: var(--topNavH);
  z-index: 1100;
  background:#111a2e;
  border-bottom:1px solid #223055;
  padding:10px 76px;
}
@media(max-width:520px){
  .scoreHeader{padding:10px 56px;}
}

  
  *{box-sizing:border-box;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial}
  body{margin:0;background:#0b1220;color:#e8eefc}
  body.hasTopNav{padding-top:var(--topNavH)}
  a{color:#9cc2ff;text-decoration:none}
  .container{max-width:1200px;margin:0 auto;padding:12px}
  .container.full{max-width:1700px}
  .topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#111a2e;border-bottom:1px solid #223055}


/* NAV fixa no topo (Jogos / Times / Jogadores) */
.topNav{
  position:fixed;
  top:0;left:0;right:0;
  height:var(--topNavH);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 12px;
  background:#0b1220;
  border-bottom:1px solid #223055;
  z-index:1200;
}
.topNavLeft,.topNavRight{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.topNavRight{justify-content:flex-end}
@media(max-width:420px){
  :root{--topNavH: 58px;}
  .topNav{align-items:flex-start}
}

/* No jogo, o placar "gruda" abaixo da nav */
.hasTopNav /* TOPO (placar/cronômetro) */
  @media(max-width:520px){
    }
  .brandCorner{
    position:absolute;
    top:10px;
    width:58px;
    height:58px;
    object-fit:contain;
    filter: drop-shadow(0 6px 10px rgba(0,0,0,.28));
    pointer-events:none;
  }
  .brandCorner.brandLeft{left:10px;width:66px;height:66px;}
  .brandCorner.brandRight{right:10px;}
  @media(max-width:520px){
    .brandCorner{width:44px;height:44px;top:10px;}
  }

.scoreHeaderInner{
    max-width:1700px;
    margin:0 auto;
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    align-items:center;
  }
  @media(min-width:980px){
    .scoreHeaderInner{grid-template-columns:1fr 1.2fr 1fr;}
  }

  .addedBox{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-top:10px;
    padding:10px 14px;
    border-radius:12px;
    background:#000;
    color:#fff;
    font-weight:950;
    font-size:clamp(16px, 4vw, 22px);
    border:1px solid rgba(255,255,255,.12);
    min-width:92px;
  }

  /* Barra admin/controles abaixo do topo */
  .adminBar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
  .adminLeft{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .adminRight{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .card{background:#0f1930;border:1px solid #223055;border-radius:14px;padding:12px;margin-bottom:12px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
  h2{margin:0 0 10px}
  button{padding:10px 12px;border:0;border-radius:10px;background:#2b5bff;color:white;cursor:pointer}
  button:hover{filter:brightness(1.05)}
  .btnAlt{background:#0b1220;border:1px solid #223055}
  .danger{background:#b91c1c}
  .link{padding:8px 10px;border-radius:10px;background:#0b1220;border:1px solid #223055;display:inline-block}
  .muted{color:#a8b7e6}
  .small{font-size:12px}
  
  input,select{
    width:100%;
    padding:10px;
    border-radius:10px;
    border:1px solid #2a3a68;
    background:#0b1220;
    color:#e8eefc;
  }
  .formRow{display:grid;grid-template-columns:1fr;gap:10px}
  @media(min-width:980px){.formRow{grid-template-columns:1.2fr 1fr 1fr auto}}
  .formInline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .inlineForms{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
  .list{display:grid;gap:10px}
  .listRow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px;border:1px solid #223055;border-radius:12px;background:#0b1220}
  .rowBtns{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  
  /* TIMES */
  .teamRow{padding:12px;border:1px solid #223055;border-radius:12px;background:#0b1220}
  .teamLeft{display:flex;gap:12px;align-items:flex-start}
  .teamLogoBox{width:92px}
  .logoBig{width:92px;height:92px;object-fit:contain;border-radius:14px;background:#0f1930;border:1px solid #223055;padding:8px}
  .logoBig.ph{display:flex;align-items:center;justify-content:center;color:#a8b7e6;font-size:11px}
  .teamTitle{font-weight:900;font-size:18px}
  
  /* PLACAR CENTRAL */
  .scoreCenter{display:grid;grid-template-columns:1fr;gap:12px;align-items:center;}
  @media(min-width:980px){.scoreCenter{grid-template-columns:1fr 1.2fr 1fr;}}
  .scoreTeam{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
  }
  .logoXL{
    width:78px;
    height:78px;
    object-fit:contain;
    border-radius:16px;
    background:#0b1220;
    border:1px solid #223055;
    padding:8px;
  }
  .teamStack{text-align:center}
  .teamNameXL{font-weight:950;font-size:clamp(16px, 3.3vw, 22px);line-height:1.05}
  .scoreXL{font-weight:950;font-size:clamp(34px, 7vw, 46px);line-height:1}
  
  .scoreMiddle{ text-align:center; display:flex; flex-direction:column; align-items:center; }
  .clockRow{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
  .clock{font-size:clamp(24px, 6vw, 34px);font-weight:900}
  .period{font-size:14px;font-weight:900;background:#0b1220;border:1px solid #223055;border-radius:999px;padding:6px 10px}
  .realTime{font-size:clamp(12px, 3.6vw, 14px);font-weight:900;background:#0b1220;border:1px solid #223055;border-radius:999px;padding:6px 10px;color:#cfe0ff}
  .btnRow{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:8px}
  
  /* 2 campos */
  .twoFieldsHeader{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:10px}
  @media(min-width:980px){.twoFieldsHeader{grid-template-columns:1fr 1fr}}
  .fieldTitle{font-weight:900;color:#b9c7ef;background:#0b1220;border:1px solid #223055;border-radius:12px;padding:10px;text-align:center}
  
  .twoFields{display:grid;grid-template-columns:1fr;gap:12px}
  @media(min-width:980px){.twoFields{grid-template-columns:1fr 1fr}}
  .fieldBox{display:flex;flex-direction:column;gap:10px}
  
  /* CAMPO VERTICAL */
  .field{
    position:relative;
    width:100%;
    height:min(62vh,720px);
    border-radius:18px;
    background: linear-gradient(180deg, #0f7a3f 0%, #0c5f32 100%);
    border: 2px solid rgba(255,255,255,.12);
    overflow:hidden;
  }
  .field.vertical .centerLine{position:absolute;left:0;right:0;top:50%;border-top:2px solid rgba(255,255,255,.22)}
  .field.vertical .circle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:160px;height:160px;border:2px solid rgba(255,255,255,.22);border-radius:999px}
  .field.vertical .pen{position:absolute;left:20%;right:20%;height:20%;border:2px solid rgba(255,255,255,.22)}
  .field.vertical .pen.top{top:0;border-top:none;border-radius:0 0 14px 14px}
  .field.vertical .pen.bottom{bottom:0;border-bottom:none;border-radius:14px 14px 0 0}
  .field.vertical .goal{position:absolute;left:42%;right:42%;height:7%;border:2px solid rgba(255,255,255,.22)}
  .field.vertical .goal.top{top:0;border-top:none;border-radius:0 0 10px 10px}
  .field.vertical .goal.bottom{bottom:0;border-bottom:none;border-radius:10px 10px 0 0}
  .teamOnField{position:absolute; inset:0;}
  
  .playerToken{
    position:absolute;
    transform: translate(-50%,-50%);
    /* largura mais flexível pra caber nome completo (sem cortar) */
    min-width:118px;
    width:max-content;
    max-width:240px;
    text-align:center;
    user-select:none;
  }
  .playerToken.draggable{cursor:grab;pointer-events:auto}
  .playerToken.dragging{cursor:grabbing;filter: drop-shadow(0 12px 18px rgba(0,0,0,.35));}
  
  .shirt{
    width:58px;height:58px;
    margin:0 auto;
    border-radius:14px 14px 16px 16px;
    border:2px solid rgba(255,255,255,.25);
    box-shadow:0 10px 20px rgba(0,0,0,.25);
    display:flex;align-items:center;justify-content:center;
  }
  .shirtNum{
    width:34px;height:34px;border-radius:999px;
    background:rgba(0,0,0,.35);
    display:flex;align-items:center;justify-content:center;
    font-weight:950;
    font-size: var(--numFont);
    border:1px solid rgba(255,255,255,.25);
  }
  
  .playerName{
    margin-top:6px;
    font-size: var(--nameFont);
    font-weight:950;
    color:#081427;
    background: rgba(255,255,255,.86);
    border-radius:10px;
    padding:5px 10px;
    /* mostrar nome completo (pode quebrar em 2 linhas) */
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    line-height:1.12;
  }
  
  .badges{
    margin-top:5px;
    display:flex;
    justify-content:center;
    gap:6px;
    flex-wrap:wrap;
  }
  .badge{
    font-size:12px;
    font-weight:950;
    padding:2px 7px;
    border-radius:999px;
    background:rgba(0,0,0,.35);
    border:1px solid rgba(255,255,255,.18);
  }
  
  .miniCard{padding:12px}
  
  .lineupList{display:grid;gap:8px}
  .slotRow{display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:center}
  .slotLabel{font-size:12px;color:#b9c7ef}
  .slotControls{display:grid;grid-template-columns:1fr 86px;gap:8px;align-items:center}
  .editBtn{background:#0b1220;border:1px solid #223055;color:#e8eefc;padding:10px;border-radius:10px}
  
  .belowRow{display:grid;grid-template-columns:1fr;gap:12px;margin-top:12px}
  @media(min-width:980px){.belowRow{grid-template-columns:1fr 1fr}}
  
  .twoLineups{display:grid;grid-template-columns:1fr;gap:12px}
  @media(min-width:980px){.twoLineups{grid-template-columns:1fr 1fr}}
  
  .actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
  .events{max-height:420px;overflow:auto;border:1px solid #223055;border-radius:12px;background:#0b1220;padding:10px}
  .eventRow{display:flex;justify-content:space-between;gap:12px;padding:10px;border-bottom:1px solid #223055}
  .eventRow:last-child{border-bottom:0}

  .eventActions{display:flex;gap:8px;align-items:center;flex-shrink:0}
  .btnSm{padding:8px 10px;border-radius:10px;font-weight:900}
  
  .pending{margin-top:10px;border:1px dashed #3950a5;border-radius:12px;padding:10px;background:#0b1220}
  .pendingItem{padding:6px 0}
  
  /* MODAL PALETA */
  .modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:14px;z-index:9999}
  .hidden{display:none}
  .modalBox{width:min(920px,96vw);background:#0f1930;border:1px solid #223055;border-radius:16px;padding:14px;box-shadow:0 20px 60px rgba(0,0,0,.45)}
  .modalHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
  .palRow{display:grid;grid-template-columns:1fr;gap:12px}
  @media(min-width:980px){.palRow{grid-template-columns:1fr 1fr}}
  .palCol{background:#0b1220;border:1px solid #223055;border-radius:14px;padding:12px}
  .palLabel{margin-top:8px;margin-bottom:6px;font-weight:900;color:#cfe0ff}
  .swatches{display:flex;flex-wrap:wrap;gap:8px}
  .swatch{
    width:34px;height:34px;border-radius:10px;border:2px solid rgba(255,255,255,.15);
    cursor:pointer;
  }
  .swatch:hover{transform:scale(1.03)}
  .palCustom{margin-top:12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .palCustom input{max-width:220px}
  

/* Ajustes finais: cronometro vermelho e hora grande */
/* ===== Relogio (hora certa) e Cronometro (jogo) com cores diferentes ===== */
.clock{
  color:#ff3b3b !important;        /* cronometro vermelho */
  font-size:clamp(26px, 6.8vw, 42px) !important;
  font-weight:950;
}
.realTime{
  color:#cfe0ff !important;        /* hora certa em outra cor (azul claro) */
  font-size:clamp(18px, 6vw, 42px) !important;
  font-weight:950;
}

/* Menu de acoes do jogador */
.menuGrid{display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:10px;margin-top:10px}
@media(min-width:720px){.menuGrid{grid-template-columns:repeat(4, minmax(0,1fr));}}
.benchWrap{margin-top:12px}
.benchList{display:grid;grid-template-columns:1fr;gap:8px;max-height:240px;overflow:auto;padding-right:6px}
@media(min-width:720px){.benchList{grid-template-columns:1fr 1fr;}}
.benchBtn{width:100%;text-align:left;background:#0b1220;border:1px solid #223055;color:#e7efff;padding:10px 12px;border-radius:12px;font-weight:800}
.benchBtn:hover{filter:brightness(1.12)}

/* Impressao para exportar PDF (Salvar como PDF no navegador) */
@media print{
  body{background:#fff;color:#000}
  header.topbar,.btnRow,.actions,#pendingBox,#paletteModal,.modal,.twoFields,.twoFieldsHeader,.lineupList,.twoLineups,.fieldTitle{display:none !important}
  .card{box-shadow:none;border:none}
  .scoreCenter{border:none}
  .events{max-height:none}
}


.clockWrap,.realWrap{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.clockIcon{
  font-size:14px;
  line-height:1;
  opacity:.9;
}

/* Espaço extra para nunca encostar no topo */
main.container.full > .card:first-child{ margin-top:14px; }


/* Botão Propaganda (barra de comandos) */
.btnProp{
  margin-left:auto;
  background:#b00000;
  border:1px solid #ff4d4d;
  color:#fff;
  border-radius:14px;
  padding:12px 16px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(176,0,0,.25);
}
.btnProp:hover{filter:brightness(1.10);}


.btnInfo{
  background:#1246a7;
  border:1px solid #3b82f6;
  color:#fff;
  border-radius:14px;
  padding:12px 16px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(18,70,167,.22);
  margin-left:10px;
}
.btnInfo:hover{filter:brightness(1.10);}






/* === FORÇA TOPO (NAV + PLACAR) A ROLAR NO MOBILE/TABLET === */
@media (max-width:1024px){
  .topNav{position:relative !important; top:auto !important; left:auto !important; right:auto !important;}
  body.hasTopNav{padding-top:0 !important;}
  header.scoreHeader{position:relative !important; top:auto !important;}
}
/* Logo do app (esquerda) maior */
.brandCorner.brandLeft{width:96px !important; height:96px !important;}


/* ===== Escalação Live - ajustes do /games (Criar novo jogo) ===== */
.create-game .create-title{
  margin: 0 0 12px 0;
  text-align: center;
}
.create-form{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.create-form .full{ width:100%; }
.create-form .field label{ display:block; margin:0 0 6px 0; opacity:.92; font-size:.92rem; }
.create-form input, .create-form select{
  width:100%;
}
.teams-row{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.create-form .actions{
  display:flex;
  justify-content:center;
  margin-top: 6px;
}
@media (max-width: 640px){
  .teams-row{ grid-template-columns: 1fr; }
}
/* =========================================================
   REFINAMENTO FINO (LOGIN + /games)
   - Ajustes de espaçamento, tamanhos e responsividade
   - Mantém o layout original, só melhora “acabamento”
   ========================================================= */

/* ---------- Login ---------- */
body.center {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 12px;
}

.login-box {
  width: 100%;
  max-width: 420px;
  text-align: center;
}

.login-logo {
  width: 160px;
  max-width: 70%;
  height: auto;
  display: block;
  margin: 0 auto 14px auto;
  filter: drop-shadow(0 8px 24px rgba(0,0,0,.35));
}

.login-title {
  margin: 0 0 14px 0;
  font-size: 26px;
  letter-spacing: 0.2px;
}

.card {
  /* um pouco mais “justo” no mobile */
  padding: 18px;
}

.card h1, .card h2 {
  margin-top: 0;
}

/* inputs e botões: toque melhor no celular */
input, select, textarea, button {
  min-height: 42px;
}

@media (max-width: 420px) {
  .card { padding: 16px; }
  .login-title { font-size: 24px; }
}

/* ---------- /games ---------- */
.games-layout {
  /* segura a largura e melhora respiro geral */
  max-width: 1220px;
  margin: 0 auto;
  padding: 22px 14px;
  gap: 18px;
}

.create-game {
  /* NÃO aumentar o card — só deixar confortável */
  max-width: 520px;
  width: 100%;
  padding: 18px;
}

.create-game h2 {
  margin: 0 0 10px 0;
  font-size: 22px;
}

.create-form .field label {
  display: block;
  font-size: 13px;
  color: var(--text-muted);
  margin: 0 0 6px 2px;
}

/* Nome do jogo sozinho em cima (já está no HTML). Aqui só ajusta o campo */
.create-form .field input[type="text"] {
  width: 100%;
}

/* Time A + Time B na mesma linha (desktop/tablet), quebra no mobile */
.teams-row {
  display: flex;
  gap: 12px;
  align-items: flex-end;
  flex-wrap: wrap;
}

.teams-row .field {
  flex: 1 1 220px;
  min-width: 220px;
}

.actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 12px;
}

@media (max-width: 720px) {
  .games-layout {
    padding: 18px 12px;
    gap: 14px;
  }
  .create-game {
    max-width: 100%;
  }
  .teams-row .field {
    min-width: 0;
    flex: 1 1 100%;
  }
  .actions {
    justify-content: stretch;
  }
  .actions button {
    width: 100%;
  }
}

/* lista de jogos: respiro mais consistente */
.game-card {
  padding: 14px 14px;
}

.game-card .actions {
  margin-top: 10px;
}

/* ===========================
   FIX MOBILE – TELA DO JOGO
   =========================== */
@media (max-width: 768px) {

  /* Cada jogador vira um bloco vertical */
  .player,
  .player-box,
  .jogador {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    min-width: 90px;
    max-width: 110px;
    padding: 6px 4px;
    box-sizing: border-box;
  }

  /* Nome do jogador */
  .player-name,
  .jogador-nome {
    font-size: 12px !important;
    text-align: center !important;
    white-space: normal !important;
    line-height: 1.2 !important;
    max-width: 100%;
  }

  /* Número da camisa */
  .player-number,
  .jogador-numero {
    font-size: 13px !important;
    font-weight: bold;
    margin-bottom: 2px;
  }

  /* Ícones (gol, cartão) */
  .player-icons,
  .player-stats,
  .event-icons {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center !important;
    gap: 4px !important;
    margin-top: 2px;
  }

  /* Campo não estourar largura */
  .field,
  .campo {
    overflow-x: hidden;
  }
}

/* ===== MOBILE FIX: evita jogadores encavalando (field + tokens) ===== */
@media (max-width: 520px){
  :root{
    --nameFont: 11px;
    --numFont: 12px;
  }

  /* dá mais altura pro campo no celular */
  .field{
    height: 78vh;
  }

  /* reduz o "token" do jogador */
  .playerToken{
    min-width: 90px;
    max-width: 170px;
  }

  .shirt{
    width: 46px;
    height: 46px;
    border-radius: 12px 12px 14px 14px;
  }

  .shirtNum{
    width: 28px;
    height: 28px;
  }

  .playerName{
    margin-top: 4px;
    padding: 3px 6px;
    border-radius: 8px;
    line-height: 1.12;
  }

  .badges{
    margin-top: 3px;
    gap: 3px;
  }
  .badge{
    font-size: 10px;
    padding: 2px 5px;
  }
/* =========================
   AJUSTE MOBILE – GAME
   NÃO ALTERA DESKTOP
   ========================= */
@media (max-width: 600px) {

  /* garante que jogadores não se sobreponham */
  .teamOnField {
    gap: 6px;
  }

  /* jogador vira coluna */
  .player {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 48px;
  }

  /* nome do jogador quebra linha */
  .player-name,
  .playerName {
    white-space: normal;
    text-align: center;
    font-size: 11px;
    line-height: 1.2;
  }

  /* número da camisa */
  .player-number {
    font-size: 12px;
    margin-bottom: 2px;
  }

  /* ícones (gol, cartão etc) */
  .player-icons,
  .event-icons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 3px;
    margin-top: 2px;
  }

}

