/* ============================================================
   Sistema Esportes — Design System v8
   Minimalista · Profissional · Esportivo
   Fonte: Inter + JetBrains Mono
   Paleta: Slate escuro · Esmeralda · superfícies claras
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;700&display=swap');

/* ── TOKENS ──────────────────────────────────────────────── */
:root {
  --verde:       #10b981;
  --verde-esc:   #059669;
  --verde-clr:   #ecfdf5;
  --verde-borda: #a7f3d0;
  --bg:          #f8fafc;
  --bg-2:        #f1f5f9;
  --surface:     #ffffff;
  --sidebar-bg:  #0f172a;
  --sidebar-2:   #1e293b;
  --sidebar-txt: #94a3b8;
  --sidebar-act: #10b981;
  --txt-1:       #0f172a;
  --txt-2:       #475569;
  --txt-3:       #94a3b8;
  --txt-inv:     #ffffff;
  --borda:       #e2e8f0;
  --borda-2:     #cbd5e1;
  --azul:        #3b82f6;
  --amarelo:     #f59e0b;
  --vermelho:    #ef4444;
  --laranja:     #f97316;
  --shadow-xs:   0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);
  --shadow-sm:   0 2px 8px rgba(15,23,42,.07),0 1px 3px rgba(15,23,42,.04);
  --shadow:      0 4px 16px rgba(15,23,42,.08),0 2px 6px rgba(15,23,42,.05);
  --shadow-md:   0 8px 30px rgba(15,23,42,.10),0 3px 10px rgba(15,23,42,.06);
  --shadow-verde:0 4px 20px rgba(16,185,129,.25);
  --r-xs:4px; --r-sm:8px; --r:10px; --r-md:14px; --r-lg:18px; --r-xl:24px; --r-pill:999px;
  --navbar-h:58px; --sidebar-w:230px;
  --font:'Inter',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',monospace;
  /* Compat aliases */
  --teal:        #10b981;
  --teal-esc:    #059669;
  --teal-clr:    #ecfdf5;
  --teal-dark:   #065f46;
  --preto:       #0f172a;
  --cinza-esc:   #1e293b;
  --cinza-med:   #475569;
  --cinza-clr:   #f1f5f9;
  --branco:      #ffffff;
  --texto:       #0f172a;
  --texto-sub:   #94a3b8;
  --radius:      10px;
  --radius-lg:   14px;
  --radius-xl:   18px;
  --radius-pill: 999px;
  --shadow-teal: 0 4px 20px rgba(16,185,129,.25);
}

/* ── RESET ───────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font);font-size:14.5px;color:var(--txt-1);
  background:var(--bg);line-height:1.6;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* ══════════════════════════════════════════════════════════
   NAVBAR PÚBLICA
   ══════════════════════════════════════════════════════════ */
.navbar{
  background:var(--surface);height:var(--navbar-h);padding:0 20px;
  display:flex;align-items:center;position:sticky;top:0;z-index:400;
  border-bottom:1px solid var(--borda);box-shadow:var(--shadow-xs);
}
.navbar-brand{
  font-family:var(--font);font-weight:800;font-size:1.15rem;
  color:var(--txt-1);text-decoration:none;
  display:flex;align-items:center;gap:8px;
  letter-spacing:-.4px;flex-shrink:0;
}
.navbar-brand span{color:var(--verde)}

.nav-toggle{
  margin-left:auto;display:flex;flex-direction:column;justify-content:center;gap:5px;
  width:38px;height:38px;align-items:center;background:none;
  border:1px solid var(--borda);cursor:pointer;border-radius:var(--r-sm);
  transition:background .15s,border-color .15s;padding:0;flex-shrink:0;
}
.nav-toggle:hover{background:var(--bg-2);border-color:var(--borda-2)}
.nav-toggle span{
  display:block;width:16px;height:1.5px;background:var(--txt-2);border-radius:2px;
  transition:transform .25s ease,opacity .2s ease;transform-origin:center;
}
.nav-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.nav-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

.navbar-nav{display:flex;list-style:none;align-items:center;gap:2px}

@media(max-width:767px){
  .navbar-nav{
    position:fixed;top:var(--navbar-h);left:0;right:0;
    background:var(--surface);flex-direction:column;align-items:stretch;
    padding:8px 12px 16px;border-top:1px solid var(--borda);
    box-shadow:var(--shadow-md);z-index:390;
    /* usa clip+visibility além do transform para garantir zero vazamento */
    transform:translateY(-100%);
    visibility:hidden;
    opacity:0;
    transition:transform .28s cubic-bezier(.4,0,.2,1),
               opacity .28s ease,
               visibility 0s linear .28s;
    pointer-events:none;
  }
  .navbar-nav.open{
    transform:translateY(0);
    visibility:visible;
    opacity:1;
    transition:transform .28s cubic-bezier(.4,0,.2,1),
               opacity .28s ease,
               visibility 0s linear 0s;
    pointer-events:all;
  }
  .navbar-nav li{width:100%}
  .navbar-nav a{
    display:flex;align-items:center;gap:10px;padding:11px 14px;
    border-radius:var(--r-sm);font-size:.92rem;font-weight:500;color:var(--txt-2);
    transition:background .15s,color .15s;border-bottom:1px solid var(--borda);
  }
  .navbar-nav a:hover,.navbar-nav a.active{background:var(--verde-clr);color:var(--verde-esc)}
  .navbar-nav li:last-child a{border-bottom:none}
  .navbar-nav a.btn-admin{
    background:var(--verde);color:white;margin-top:8px;text-align:center;
    justify-content:center;border-radius:var(--r-pill);border:none;font-weight:600;
  }
  .nav-overlay{
    display:none;position:fixed;inset:var(--navbar-h) 0 0 0;
    background:rgba(15,23,42,.4);z-index:380;backdrop-filter:blur(2px);
  }
  .nav-overlay.open{display:block}
}

@media(min-width:768px){
  .navbar{padding:0 32px}
  .nav-toggle{display:none}
  .nav-overlay{display:none!important}
  .navbar-nav{margin-left:auto;gap:1px}
  .navbar-nav a{
    display:flex;align-items:center;gap:6px;color:var(--txt-2);padding:6px 12px;
    border-radius:var(--r-sm);font-size:.86rem;font-weight:500;
    transition:background .15s,color .15s;white-space:nowrap;
  }
  .navbar-nav a:hover{color:var(--txt-1);background:var(--bg-2)}
  .navbar-nav a.active{color:var(--verde-esc);background:var(--verde-clr);font-weight:600}
  .navbar-nav a.btn-admin{
    background:var(--verde);color:white;padding:7px 18px;margin-left:8px;
    border-radius:var(--r-pill);font-weight:600;box-shadow:var(--shadow-verde);
    transition:all .18s;
  }
  .navbar-nav a.btn-admin:hover{background:var(--verde-esc);transform:translateY(-1px)}
}

/* ══════════════════════════════════════════════════════════
   ADMIN — TOP BAR
   ══════════════════════════════════════════════════════════ */
.admin-topbar{
  background:var(--surface);height:var(--navbar-h);padding:0 20px;
  display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:400;
  border-bottom:1px solid var(--borda);box-shadow:var(--shadow-xs);
}
.sidebar-toggle{
  display:flex;flex-direction:column;justify-content:center;gap:4px;
  width:36px;height:36px;align-items:center;background:none;
  border:1px solid var(--borda);cursor:pointer;border-radius:var(--r-sm);
  transition:background .15s;padding:0;flex-shrink:0;
}
.sidebar-toggle:hover{background:var(--bg-2)}
.sidebar-toggle span{
  display:block;width:14px;height:1.5px;background:var(--txt-2);border-radius:2px;
  transition:transform .25s,opacity .2s;transform-origin:center;
}
.sidebar-toggle.open span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.sidebar-toggle.open span:nth-child(2){opacity:0}
.sidebar-toggle.open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}
.admin-topbar-brand{
  font-family:var(--font);font-weight:800;font-size:1.1rem;color:var(--txt-1);
  text-decoration:none;display:flex;align-items:center;gap:8px;
  flex-shrink:0;letter-spacing:-.3px;
}
.admin-topbar-brand span{color:var(--verde)}
.admin-topbar-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.admin-user-chip{
  display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--txt-2);
  background:var(--bg-2);padding:5px 12px;border-radius:var(--r-pill);
  border:1px solid var(--borda);font-weight:500;
}
.admin-user-chip strong{color:var(--txt-1);font-weight:600}
@media(max-width:400px){.admin-user-chip .user-name{display:none}}
@media(min-width:1024px){.sidebar-toggle{display:none}}

/* ══════════════════════════════════════════════════════════
   ADMIN — LAYOUT + SIDEBAR
   ══════════════════════════════════════════════════════════ */
.admin-layout{display:flex;min-height:calc(100vh - var(--navbar-h))}
.sidebar{
  width:var(--sidebar-w);background:var(--sidebar-bg);flex-shrink:0;
  padding:16px 0 32px;overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:#1e293b transparent;
}
.sidebar-section{
  padding:20px 18px 6px;font-size:.65rem;font-weight:700;
  text-transform:uppercase;letter-spacing:1.4px;color:#334155;
}
.sidebar a{
  display:flex;align-items:center;gap:10px;
  padding:9px 12px 9px 16px;color:var(--sidebar-txt);
  font-size:.86rem;font-weight:500;transition:all .15s;
  margin:1px 8px;border-radius:var(--r-sm);position:relative;
}
.sidebar a:hover{color:#e2e8f0;background:rgba(255,255,255,.06)}
.sidebar a.active{color:var(--sidebar-act);background:rgba(16,185,129,.1);font-weight:600}
.sidebar a.active::before{
  content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:3px;height:20px;background:var(--verde);
  border-radius:0 3px 3px 0;margin-left:-8px;
}
.sidebar a .ico{width:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center;opacity:.7}
.sidebar a:hover .ico,.sidebar a.active .ico{opacity:1}
.sidebar-overlay{
  display:none;position:fixed;inset:var(--navbar-h) 0 0 0;
  background:rgba(0,0,0,.6);z-index:350;backdrop-filter:blur(3px);
}
.sidebar-overlay.open{display:block}
.admin-content{flex:1;min-width:0;padding:28px 32px;background:var(--bg);overflow-x:hidden}

@media(max-width:1023px){
  .sidebar{
    position:fixed;left:0;top:var(--navbar-h);bottom:0;z-index:360;
    transform:translateX(-100%);transition:transform .28s cubic-bezier(.4,0,.2,1);
    height:calc(100vh - var(--navbar-h));overflow-y:auto;-webkit-overflow-scrolling:touch;
  }
  .sidebar.open{transform:translateX(0);box-shadow:8px 0 40px rgba(0,0,0,.35)}
  .admin-content{padding:20px 18px}
}
@media(max-width:480px){.admin-content{padding:16px 14px}}

/* ══════════════════════════════════════════════════════════
   HERO
   ══════════════════════════════════════════════════════════ */
.hero{
  background:var(--sidebar-bg);padding:52px 20px 72px;
  text-align:center;color:white;position:relative;overflow:hidden;
}
.hero::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 70% 0%,rgba(16,185,129,.18) 0%,transparent 60%),
    radial-gradient(ellipse at 20% 100%,rgba(16,185,129,.08) 0%,transparent 50%),
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:auto,auto,40px 40px,40px 40px;
  pointer-events:none;
}
.hero::after{
  content:'';position:absolute;bottom:-1px;left:0;right:0;height:32px;
  background:var(--bg);border-radius:32px 32px 0 0;
}
.hero h1{
  font-family:var(--font);font-size:clamp(1.9rem,5vw,3.2rem);font-weight:800;
  letter-spacing:-.6px;line-height:1.12;position:relative;z-index:1;
}
.hero h1 em{font-style:normal;color:var(--verde)}
.hero p{
  margin-top:12px;color:rgba(255,255,255,.6);font-size:clamp(.87rem,2.5vw,1rem);
  max-width:400px;margin-left:auto;margin-right:auto;font-weight:400;
  position:relative;z-index:1;
}

/* ══════════════════════════════════════════════════════════
   CONTAINER / SECTION
   ══════════════════════════════════════════════════════════ */
.container{max-width:1160px;margin:0 auto;padding:0 20px}
.section{padding:28px 20px;max-width:1160px;margin:0 auto}
@media(min-width:1024px){.section{padding:36px 24px}}

/* GRIDS */
.grid-2{display:grid;grid-template-columns:1fr;gap:14px}
.grid-3{display:grid;grid-template-columns:1fr;gap:14px}
.grid-4{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(min-width:640px){
  .grid-2{grid-template-columns:1fr 1fr;gap:16px}
  .grid-3{grid-template-columns:1fr 1fr;gap:16px}
}
@media(min-width:1024px){
  .grid-3{grid-template-columns:repeat(3,1fr);gap:18px}
  .grid-4{grid-template-columns:repeat(4,1fr);gap:14px}
}

/* ══════════════════════════════════════════════════════════
   CARD
   ══════════════════════════════════════════════════════════ */
.card{
  background:var(--surface);border-radius:var(--r-md);
  border:1px solid var(--borda);box-shadow:var(--shadow-xs);
  overflow:hidden;transition:box-shadow .2s,transform .2s;
}
.card:hover{box-shadow:var(--shadow-sm)}
.card-header{
  padding:12px 18px;border-bottom:1px solid var(--borda);
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  background:var(--bg-2);
}
.card-header-title{
  font-size:.78rem;font-weight:700;color:var(--txt-2);
  text-transform:uppercase;letter-spacing:.6px;
  display:flex;align-items:center;gap:7px;
}
.card-body{padding:18px}
@media(min-width:640px){.card-body{padding:22px}}

/* ══════════════════════════════════════════════════════════
   MATCH CARD
   ══════════════════════════════════════════════════════════ */
.match-card{
  background:var(--surface);border-radius:var(--r-md);
  border:1px solid var(--borda);box-shadow:var(--shadow-xs);
  overflow:hidden;transition:box-shadow .2s,transform .15s;
  position:relative;
}
.match-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.match-card .mc-top{
  display:flex;justify-content:space-between;align-items:center;
  padding:8px 14px;background:var(--bg-2);border-bottom:1px solid var(--borda);
  font-size:.71rem;color:var(--txt-3);font-weight:500;
}
.match-card-body{padding:18px 14px;display:flex;align-items:center;gap:8px}
.match-team{flex:1;text-align:center;min-width:0}
.match-team .team-name{
  font-weight:700;font-size:clamp(.82rem,2.2vw,.97rem);
  color:var(--txt-1);line-height:1.3;word-break:break-word;
}
.match-center{text-align:center;flex-shrink:0;min-width:90px}
.match-score{
  display:flex;align-items:center;justify-content:center;gap:6px;
  font-family:var(--font-mono);font-size:clamp(1.5rem,4vw,2rem);
  font-weight:700;color:var(--txt-1);
}
.match-score .sep{color:var(--txt-3);font-weight:300}
.match-meta{font-size:.71rem;color:var(--txt-3);text-align:center;margin-top:4px;line-height:1.4}

/* ══════════════════════════════════════════════════════════
   STAT BOX
   ══════════════════════════════════════════════════════════ */
.stat-box{
  background:var(--surface);border-radius:var(--r-md);
  border:1px solid var(--borda);box-shadow:var(--shadow-xs);
  padding:18px 16px;position:relative;overflow:hidden;
}
.stat-box::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--verde);
}
.stat-box .num{
  font-family:var(--font);font-size:clamp(1.9rem,5vw,2.6rem);
  font-weight:800;color:var(--txt-1);line-height:1;letter-spacing:-.03em;
}
.stat-box .label{
  font-size:.69rem;color:var(--txt-3);text-transform:uppercase;
  letter-spacing:.8px;margin-top:6px;font-weight:600;
}

/* ══════════════════════════════════════════════════════════
   SECTION TITLE
   ══════════════════════════════════════════════════════════ */
.section-title{
  font-size:.8rem;font-weight:700;color:var(--txt-2);
  text-transform:uppercase;letter-spacing:.7px;
  display:flex;align-items:center;justify-content:space-between;
  gap:8px;margin-bottom:14px;flex-wrap:wrap;
}
.section-title a{font-size:.76rem;font-weight:600;color:var(--verde)}
.section-title a:hover{color:var(--verde-esc)}
.section-title .icon{color:var(--verde)}

/* ══════════════════════════════════════════════════════════
   BUTTONS
   ══════════════════════════════════════════════════════════ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  gap:6px;padding:8px 16px;border-radius:var(--r-sm);
  font-size:.84rem;font-weight:600;cursor:pointer;
  border:1px solid transparent;text-decoration:none;
  transition:all .16s;line-height:1;font-family:var(--font);
  white-space:nowrap;-webkit-tap-highlight-color:transparent;
}
.btn-primary{
  background:var(--verde);color:white;border-color:var(--verde);
  box-shadow:0 1px 3px rgba(16,185,129,.3);
}
.btn-primary:hover{
  background:var(--verde-esc);border-color:var(--verde-esc);
  transform:translateY(-1px);box-shadow:0 4px 12px rgba(16,185,129,.35);
}
.btn-dark{background:var(--sidebar-bg);color:white;border-color:var(--sidebar-bg)}
.btn-dark:hover{background:#1e293b;border-color:#1e293b}
.btn-danger{background:var(--vermelho);color:white;border-color:var(--vermelho)}
.btn-danger:hover{background:#dc2626;border-color:#dc2626}
.btn-warning{background:var(--amarelo);color:var(--txt-1);border-color:var(--amarelo)}
.btn-outline{background:transparent;border-color:var(--borda);color:var(--txt-2)}
.btn-outline:hover{border-color:var(--verde);color:var(--verde);background:var(--verde-clr)}
.btn-ghost{background:transparent;border-color:transparent;color:var(--txt-2)}
.btn-ghost:hover{background:var(--bg-2);color:var(--txt-1)}
.btn-sm{padding:5px 11px;font-size:.78rem}
.btn-lg{padding:11px 24px;font-size:.95rem}
.btn-full{width:100%}

/* ══════════════════════════════════════════════════════════
   FORMS
   ══════════════════════════════════════════════════════════ */
.form-group{margin-bottom:15px}
.form-label{
  display:block;font-size:.73rem;font-weight:600;
  color:var(--txt-2);margin-bottom:5px;letter-spacing:.3px;
}
.form-control{
  width:100%;padding:9px 12px;border:1px solid var(--borda);
  border-radius:var(--r-sm);font-size:.9rem;font-family:var(--font);
  color:var(--txt-1);background:var(--surface);
  transition:border-color .16s,box-shadow .16s;outline:none;
  -webkit-appearance:none;appearance:none;min-height:40px;
}
.form-control:focus{border-color:var(--verde);box-shadow:0 0 0 3px rgba(16,185,129,.12)}
.form-control::placeholder{color:var(--txt-3)}
select.form-control{
  cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2394a3b8' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;padding-right:30px;
}
textarea.form-control{resize:vertical;min-height:80px;line-height:1.5}

/* ══════════════════════════════════════════════════════════
   ALERTS
   ══════════════════════════════════════════════════════════ */
.alert{
  display:flex;align-items:flex-start;gap:10px;padding:11px 14px;
  border-radius:var(--r-sm);font-size:.88rem;margin-bottom:16px;
  font-weight:500;border:1px solid transparent;
}
.alert-success{background:#f0fdf4;color:#166534;border-color:var(--verde-borda)}
.alert-error  {background:#fef2f2;color:#991b1b;border-color:#fecaca}
.alert-info   {background:#eff6ff;color:#1e40af;border-color:#bfdbfe}
.alert-warn   {background:#fffbeb;color:#92400e;border-color:#fde68a}

/* ══════════════════════════════════════════════════════════
   BADGES
   ══════════════════════════════════════════════════════════ */
.badge{
  display:inline-flex;align-items:center;gap:3px;padding:2px 8px;
  border-radius:var(--r-pill);font-size:.69rem;font-weight:700;
  letter-spacing:.3px;white-space:nowrap;border:1px solid transparent;
}
.badge-green {background:#dcfce7;color:#166534;border-color:#bbf7d0}
.badge-yellow{background:#fef9c3;color:#854d0e;border-color:#fef08a}
.badge-red   {background:#fee2e2;color:#991b1b;border-color:#fecaca}
.badge-gray  {background:var(--bg-2);color:var(--txt-2);border-color:var(--borda)}
.badge-blue  {background:#dbeafe;color:#1e40af;border-color:#bfdbfe}
.badge-teal  {background:var(--verde-clr);color:var(--verde-esc);border-color:var(--verde-borda)}
.badge-live  {background:var(--vermelho);color:white;animation:livePulse 1.5s infinite}
@keyframes livePulse{0%,100%{opacity:1}50%{opacity:.6}}

/* ══════════════════════════════════════════════════════════
   PAGE HEADER
   ══════════════════════════════════════════════════════════ */
.page-header{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;flex-wrap:wrap;margin-bottom:24px;
  padding-bottom:18px;border-bottom:1px solid var(--borda);
}
.page-title{
  font-size:clamp(1.2rem,3.5vw,1.55rem);font-weight:800;
  color:var(--txt-1);letter-spacing:-.4px;
  display:flex;align-items:center;gap:8px;
}
.page-title svg{color:var(--verde);opacity:.8}
.page-header>div{display:flex;gap:8px;flex-wrap:wrap}

/* ══════════════════════════════════════════════════════════
   DATA TABLE
   ══════════════════════════════════════════════════════════ */
/* Scroll horizontal apenas nos cards que contêm tabelas */
.card.has-table { overflow-x: auto; }
.data-table{width:100%;border-collapse:collapse;font-size:.85rem;min-width:480px}
.data-table thead th{
  background:var(--bg-2);color:var(--txt-3);padding:10px 14px;text-align:left;
  font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.9px;
  border-bottom:1px solid var(--borda);white-space:nowrap;
}
.data-table tbody tr{border-bottom:1px solid var(--borda);transition:background .1s}
.data-table tbody tr:hover{background:#f0fdf4}
.data-table tbody tr:last-child{border-bottom:none}
.data-table td{padding:11px 14px;vertical-align:middle;color:var(--txt-1)}

.actions{display:flex;gap:5px;flex-wrap:wrap;align-items:center}

/* ══════════════════════════════════════════════════════════
   STANDINGS TABLE
   ══════════════════════════════════════════════════════════ */
.standings-table{width:100%;border-collapse:collapse;font-size:.85rem}
.standings-table thead th{
  background:var(--bg-2);color:var(--txt-3);padding:10px 10px;text-align:center;
  font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.9px;
  border-bottom:1px solid var(--borda);white-space:nowrap;
}
.standings-table thead th:first-child,
.standings-table thead th:nth-child(2){text-align:left}
.standings-table tbody tr{border-bottom:1px solid var(--borda);transition:background .1s}
.standings-table tbody tr:hover{background:#f0fdf4}
.standings-table tbody tr:last-child{border-bottom:none}
.standings-table tbody tr:nth-child(1) td:first-child,
.standings-table tbody tr:nth-child(2) td:first-child,
.standings-table tbody tr:nth-child(3) td:first-child{border-left:3px solid var(--verde)}
.standings-table tbody tr:nth-child(4) td:first-child{border-left:3px solid var(--amarelo)}
.standings-table td{padding:10px 10px;text-align:center;color:var(--txt-1)}
.standings-table td:first-child{text-align:left}
.standings-table td:nth-child(2){text-align:left;font-weight:600}
.standings-table td.pts{font-family:var(--font);font-size:1rem;font-weight:800;color:var(--txt-1)}

.pos-badge{
  display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;
  border-radius:var(--r-xs);font-size:.71rem;font-weight:700;
  background:var(--bg-2);color:var(--txt-3);margin-right:6px;
}
.pos-1{background:#fef9c3;color:#854d0e}
.pos-2{background:#f1f5f9;color:#475569}
.pos-3{background:#fff7ed;color:#9a3412}
/* Compat */
.pos-1,.pos-2,.pos-3 { color: inherit; }
.pos-1{background:#fef9c3!important;color:#854d0e!important}
.pos-2{background:#f1f5f9!important;color:#334155!important}
.pos-3{background:#fff7ed!important;color:#9a3412!important}

/* ══════════════════════════════════════════════════════════
   ARTILHEIROS
   ══════════════════════════════════════════════════════════ */
.scorer-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--borda)}
.scorer-row:last-child{border-bottom:none}
.scorer-pos{
  width:26px;height:26px;border-radius:var(--r-xs);background:var(--bg-2);
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:.78rem;color:var(--txt-3);flex-shrink:0;
}
.scorer-pos.top{background:var(--verde);color:white}
.scorer-name{flex:1;font-weight:600;font-size:.9rem;color:var(--txt-1);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scorer-team{font-size:.74rem;color:var(--txt-3);margin-top:1px}
.scorer-gols{font-family:var(--font);font-size:1.2rem;font-weight:800;color:var(--verde-esc);flex-shrink:0}

/* ══════════════════════════════════════════════════════════
   MODAL
   ══════════════════════════════════════════════════════════ */
.modal-overlay{
  display:none;position:fixed;inset:0;background:rgba(15,23,42,.55);
  backdrop-filter:blur(4px);z-index:500;align-items:flex-end;
  justify-content:center;padding:0;
}
.modal-overlay.open{display:flex}
.modal{
  background:white;width:100%;max-width:100%;max-height:92vh;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  box-shadow:0 -8px 40px rgba(15,23,42,.2);
  animation:modalUp .25s ease;border-radius:var(--r-xl) var(--r-xl) 0 0;
}
.modal::before{
  content:'';display:block;width:32px;height:3px;background:var(--borda);
  border-radius:3px;margin:10px auto 0;
}
@keyframes modalUp{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
@media(min-width:640px){
  .modal-overlay{align-items:center;padding:20px}
  .modal{max-width:540px;border-radius:var(--r-xl);box-shadow:var(--shadow-md);animation:modalIn .2s cubic-bezier(.34,1.4,.64,1)}
  .modal::before{display:none}
}
@keyframes modalIn{from{transform:scale(.95) translateY(8px);opacity:0}to{transform:none;opacity:1}}
.modal-header{
  padding:16px 20px;border-bottom:1px solid var(--borda);
  display:flex;align-items:center;justify-content:space-between;
  font-size:.95rem;font-weight:700;color:var(--txt-1);
}
.modal-close{
  cursor:pointer;background:var(--bg-2);border:1px solid var(--borda);
  color:var(--txt-2);width:28px;height:28px;border-radius:var(--r-sm);
  display:flex;align-items:center;justify-content:center;
  transition:all .15s;flex-shrink:0;font-size:1rem;
}
.modal-close:hover{background:var(--bg);color:var(--txt-1);border-color:var(--borda-2)}
.modal-body{padding:20px}
.modal-footer{
  padding:14px 20px;border-top:1px solid var(--borda);
  display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;background:var(--bg-2);
}
@media(max-width:480px){.modal-footer{flex-direction:column-reverse}.modal-footer .btn{width:100%}}

/* ══════════════════════════════════════════════════════════
   LOGIN
   ══════════════════════════════════════════════════════════ */
.login-page{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:var(--sidebar-bg);padding:20px;position:relative;overflow:hidden;
}
.login-page::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 80% 10%,rgba(16,185,129,.15) 0%,transparent 55%),
    radial-gradient(ellipse at 10% 90%,rgba(16,185,129,.08) 0%,transparent 45%),
    linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);
  background-size:auto,auto,40px 40px,40px 40px;
}
.login-card{
  background:white;border-radius:var(--r-xl);padding:36px 28px;
  width:100%;max-width:400px;box-shadow:var(--shadow-md);
  position:relative;z-index:1;border:1px solid rgba(255,255,255,.1);
}
@media(min-width:480px){.login-card{padding:44px 40px}}
.login-logo{text-align:center;margin-bottom:28px}
.login-logo h2{font-size:1.8rem;font-weight:800;color:var(--txt-1);letter-spacing:-.5px}
.login-logo h2 span{color:var(--verde)}
.login-logo p{color:var(--txt-3);font-size:.88rem;margin-top:4px}

/* ══════════════════════════════════════════════════════════
   SÚMULA
   ══════════════════════════════════════════════════════════ */
.sumula-score-display{
  background:var(--sidebar-bg);color:white;padding:24px 16px;
  text-align:center;border-radius:var(--r-md);margin-bottom:20px;
}
.sumula-score-display .teams{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}
@media(max-width:480px){.sumula-score-display .teams{grid-template-columns:1fr;gap:6px}}
.sumula-score-display .team-name{font-size:clamp(1rem,3.5vw,1.3rem);font-weight:700}
.sumula-score-display .placar{
  font-family:var(--font-mono);font-size:clamp(2rem,8vw,3rem);font-weight:700;
  display:flex;gap:10px;align-items:center;justify-content:center;
}
.sumula-score-display .placar .vs{font-size:1.1rem;color:#4b5563;font-weight:400}

.escalacao-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:640px){.escalacao-grid{grid-template-columns:1fr 1fr}}

.player-check-item{
  display:flex;align-items:center;gap:10px;padding:9px 12px;
  border-radius:var(--r-sm);border:1px solid var(--borda);cursor:pointer;
  transition:all .15s;background:white;margin-bottom:5px;min-height:42px;
}
.player-check-item:hover{border-color:var(--verde);background:var(--verde-clr)}
.player-check-item input[type="checkbox"]{accent-color:var(--verde);width:15px;height:15px;flex-shrink:0}
.player-check-item .pnum{font-weight:700;font-size:.82rem;color:var(--txt-3);min-width:24px;font-family:var(--font-mono)}
.player-check-item .pname{font-weight:600;font-size:.88rem;color:var(--txt-1)}

.event-table{width:100%;border-collapse:collapse;font-size:.85rem;margin-bottom:10px}
.event-table thead th{
  background:var(--bg-2);padding:8px 10px;text-align:left;
  font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.7px;
  color:var(--txt-3);border-bottom:1px solid var(--borda);
}
.event-table tbody td{padding:7px 10px;border-bottom:1px solid var(--borda)}
.event-table select,.event-table input{
  padding:6px 10px;border:1px solid var(--borda);border-radius:var(--r-sm);
  font-family:var(--font);font-size:.85rem;outline:none;width:100%;
  transition:border .15s;color:var(--txt-1);-webkit-appearance:none;min-height:36px;
}
.event-table select:focus,.event-table input:focus{border-color:var(--verde);box-shadow:0 0 0 3px rgba(16,185,129,.1)}
.btn-remove-row{
  background:#fee2e2;color:var(--vermelho);border:1px solid #fecaca;
  border-radius:var(--r-sm);padding:5px 9px;cursor:pointer;
  font-size:.82rem;font-weight:600;transition:background .15s;min-height:34px;
}
.btn-remove-row:hover{background:var(--vermelho);color:white;border-color:var(--vermelho)}

/* ══════════════════════════════════════════════════════════
   OUTROS COMPONENTES
   ══════════════════════════════════════════════════════════ */
.filter-bar{
  background:var(--surface);border-radius:var(--r-md);border:1px solid var(--borda);
  padding:14px 16px;margin-bottom:16px;box-shadow:var(--shadow-xs);
}
.date-sep{display:flex;align-items:center;gap:12px;margin:20px 0 10px}
.date-sep .date-pill{
  background:var(--sidebar-bg);color:white;border-radius:var(--r-sm);
  padding:5px 12px;font-weight:600;font-size:.78rem;white-space:nowrap;
}
.date-sep .line{flex:1;height:1px;background:var(--borda)}

.progress{background:var(--bg-2);border-radius:var(--r-pill);height:6px;overflow:hidden}
.progress-bar{background:var(--verde);height:100%;border-radius:var(--r-pill);transition:width 1s ease}

.player-card{
  background:white;border-radius:var(--r-md);padding:12px 14px;
  border:1px solid var(--borda);box-shadow:var(--shadow-xs);
  display:flex;align-items:center;gap:12px;transition:all .15s;
}
.player-card:hover{border-color:var(--verde);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.player-number{
  width:32px;height:32px;background:var(--sidebar-bg);color:white;
  border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;
  font-weight:700;font-family:var(--font-mono);font-size:.85rem;flex-shrink:0;
}

/* Criteria DnD */
.criteria-editor{user-select:none}
.criteria-sortable{list-style:none;display:flex;flex-direction:column;gap:5px;min-height:40px;border:2px dashed transparent;border-radius:var(--r-sm);transition:border-color .2s}
.criteria-sortable.drag-over{border-color:var(--verde);background:rgba(16,185,129,.03)}
.criteria-item{display:flex;align-items:center;gap:8px;background:white;border:1px solid var(--borda);border-radius:var(--r-sm);padding:8px 12px;cursor:grab;transition:all .15s;font-size:.84rem;touch-action:none;min-height:42px}
.criteria-item:hover{border-color:var(--verde);box-shadow:0 2px 8px rgba(16,185,129,.12)}
.criteria-item.is-locked{cursor:default;background:#f0fdf4;border-color:var(--verde-borda)}
.criteria-item.dragging{opacity:.35}
.criteria-item.drag-above{border-top:2px solid var(--verde)}
.criteria-handle{font-size:.9rem;color:#cbd5e1;flex-shrink:0}
.criteria-num{background:var(--verde);color:white;border-radius:var(--r-xs);width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;flex-shrink:0}
.criteria-item.is-locked .criteria-num{background:var(--verde-esc)}
.criteria-name{flex:1;font-weight:500}
.criteria-remove{background:none;border:none;color:#cbd5e1;font-size:.9rem;cursor:pointer;padding:0 2px;line-height:1;transition:color .15s;flex-shrink:0}
.criteria-remove:hover{color:var(--vermelho)}
.criteria-label-row{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;font-weight:600;color:var(--txt-1);margin-bottom:8px;flex-wrap:wrap;gap:6px}
.criteria-inactive{display:flex;flex-wrap:wrap;gap:5px}
.criteria-add-btn{background:white;border:1px dashed var(--borda);border-radius:var(--r-pill);padding:4px 12px;font-size:.76rem;font-weight:500;color:var(--txt-3);cursor:pointer;transition:all .15s;font-family:var(--font)}
.criteria-add-btn:hover{border-color:var(--verde);color:var(--verde);background:var(--verde-clr)}

.greeting-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}

.pagination{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin-top:16px}
.pagination .btn{min-width:34px}
.pag-info{font-size:.78rem;color:var(--txt-3);margin-left:4px}

.fmt-card.selected{border-color:var(--verde)!important;background:var(--verde-clr)!important}

/* ══════════════════════════════════════════════════════════
   UTILITIES
   ══════════════════════════════════════════════════════════ */
.mt-1{margin-top:6px}.mt-2{margin-top:12px}.mt-3{margin-top:20px}.mt-4{margin-top:32px}
.mb-1{margin-bottom:6px}.mb-2{margin-bottom:12px}.mb-3{margin-bottom:20px}.mb-4{margin-bottom:32px}
.text-center{text-align:center}.text-right{text-align:right}
.text-muted{color:var(--txt-3)}.fw-bold{font-weight:700}
.d-flex{display:flex}.align-center{align-items:center}
.gap-2{gap:8px}.gap-3{gap:16px}
.w-full{width:100%}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hide-mobile{display:none !important}
@media(min-width:640px){.hide-mobile{display:revert !important}}

.empty-state{text-align:center;padding:48px 16px;color:var(--txt-3)}
.empty-state .ico{font-size:2.5rem;margin-bottom:12px;opacity:.3;display:block}
.empty-state p{font-size:.9rem}

::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--borda-2);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--txt-3)}

/* ══════════════════════════════════════════════════════════
   PRINT
   ══════════════════════════════════════════════════════════ */
@media print{
  .navbar,.admin-topbar,.sidebar,.sidebar-toggle,
  .nav-toggle,.pagination,.no-print,
  .actions,.btn,.filter-bar{display:none!important}
  body{background:white}
  .card{box-shadow:none;border:1px solid #e0e0e0;overflow:visible}
  .admin-layout{display:block}
  .admin-content{padding:0}
  .data-table{min-width:unset}
}

/* ══════════════════════════════════════════════════════════
   RESPONSIVIDADE — COMPLEMENTO v2
   Corrige grids/tabelas/modais em mobile
   ══════════════════════════════════════════════════════════ */

/* form-grid responsivo */
.form-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0 16px;
}
@media(min-width:560px) {
  .form-grid { grid-template-columns: 1fr 1fr; }
  .form-grid .col-full { grid-column: 1 / -1; }
}

/* Modal sizes */
.modal-sm  { max-width: 420px !important; }
.modal-lg  { max-width: 720px !important; }
.modal-xl  { max-width: 900px !important; }
@media(max-width:639px) {
  .modal-sm,.modal-lg,.modal-xl { max-width: 100% !important; }
}

/* Tabelas admin — scroll horizontal em mobile */
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-wrap .data-table { min-width: 520px; }

/* Stats grid do dashboard */
.stats-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media(min-width:640px)  { .stats-grid { grid-template-columns: repeat(3,1fr); } }
@media(min-width:1024px) { .stats-grid { grid-template-columns: repeat(4,1fr); gap:16px; } }

/* Page header: botões quebram para nova linha em mobile */
.page-header { flex-wrap: wrap; gap: 10px; }
.page-header-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
@media(max-width:479px) {
  .page-header-actions .btn { flex:1; min-width:120px; justify-content:center; }
}

/* Escolinhas: 2 colunas -> 1 em mobile */
.escolinhas-grid {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 20px;
  align-items: start;
}
@media(max-width:767px) {
  .escolinhas-grid { grid-template-columns: 1fr; }
}

/* Comunicados: grid 1/1 -> stack mobile */
.comunicado-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 16px;
}
@media(max-width:479px) { .comunicado-form-grid { grid-template-columns: 1fr; } }

/* Competições: stats 3 col -> 1 mobile */
.comp-stats-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 12px;
}
@media(max-width:639px) { .comp-stats-grid { grid-template-columns: 1fr 1fr; } }

/* Matches: filtros 4 col -> 2/1 */
.matches-filter-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 10px;
}
@media(max-width:767px) { .matches-filter-grid { grid-template-columns: 1fr 1fr; } }
@media(max-width:479px) { .matches-filter-grid { grid-template-columns: 1fr; } }

/* Players: filtros 2fr 1fr 1fr auto -> 1 col mobile */
.players-filter-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr auto;
  gap: 10px;
  align-items: end;
}
@media(max-width:767px) { .players-filter-grid { grid-template-columns: 1fr 1fr; } }
@media(max-width:479px) { .players-filter-grid { grid-template-columns: 1fr; } }

/* Dashboard: atividade recente 2 colunas -> 1 */
.dashboard-bottom-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
@media(max-width:767px) { .dashboard-bottom-grid { grid-template-columns: 1fr; } }

/* Player profile: foto + info */
.player-profile-grid {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 20px;
  align-items: start;
}
@media(max-width:479px) {
  .player-profile-grid { grid-template-columns: 1fr; text-align:center; }
  .player-profile-grid img { margin: 0 auto; }
}

/* Arbitros: escala form */
.arbitros-scale-form {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.arbitros-scale-form select { flex: 1; min-width: 160px; }
@media(max-width:479px) {
  .arbitros-scale-form { flex-direction: column; }
  .arbitros-scale-form select,
  .arbitros-scale-form button { width: 100%; }
}

/* Card ações: botões pequenos em linha -> wrap mobile */
.card-actions { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
@media(max-width:479px) {
  .data-table .btn-sm { padding: 4px 8px; font-size: .73rem; }
}

/* Matches: linha de jogo */
.match-row-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr 1fr auto;
  gap: 8px;
  align-items: center;
}
@media(max-width:900px) { .match-row-grid { grid-template-columns: 1fr; } }

/* Finance: cards de saldo */
.finance-cards {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 14px;
}
@media(max-width:639px) { .finance-cards { grid-template-columns: 1fr; } }

/* Equipment: info cards */
.equipment-info-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 12px;
}
@media(max-width:639px) { .equipment-info-grid { grid-template-columns: 1fr 1fr; } }
@media(max-width:399px) { .equipment-info-grid { grid-template-columns: 1fr; } }

/* Nav público: ocultar texto longo em mobile */
@media(max-width:380px) {
  .navbar-brand .brand-full { display:none; }
  .navbar-brand .brand-short { display:inline; }
}
.brand-short { display:none; }

/* Tabela de classificação: ocultar colunas secundárias em mobile */
/* Classes hide globais para tabelas */
@media(max-width:479px) {
  .hide-xs { display:none !important; }
  .standings-table .hide-xs { display:none; }
}
@media(max-width:639px) {
  .hide-sm { display:none !important; }
  .standings-table .hide-sm { display:none; }
  .standings-table td, .standings-table th { padding: 8px 6px; font-size: .78rem; }
}

/* Jogos: filtro competição */
.jogos-filter { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.jogos-filter select { flex:1; min-width:180px; }

/* Relatórios: grid */
.reports-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 16px;
}
@media(max-width:767px) { .reports-grid { grid-template-columns: 1fr 1fr; } }
@media(max-width:479px) { .reports-grid { grid-template-columns: 1fr; } }

/* Carteirinha: botões de ação */
.cart-toolbar {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  padding: 12px 16px;
  background: var(--surface);
  border-bottom: 1px solid var(--borda);
  position: sticky;
  top: 0;
  z-index: 50;
}
@media print { .cart-toolbar { display: none !important; } }

/* Sidebar: ocultar labels em telas muito pequenas */
@media(max-width:320px) {
  .sidebar a { font-size: .8rem; padding: 8px 10px 8px 12px; }
}

/* Admin topbar: titulo da página truncado */
.admin-topbar .page-name {
  font-size: .88rem;
  font-weight: 600;
  color: var(--txt-2);
  margin-left: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
}
@media(max-width:479px) { .admin-topbar .page-name { display:none; } }

/* ── Trofeus page ────────── */
.trofeus-body { max-width: 960px; margin: 0 auto; padding: 24px 16px; }
.titulos-list { display:flex; flex-wrap:wrap; gap:8px; }
.podio { display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; }

/* ── Perfil público atleta ────────── */
.perfil-stats-row {
  display: grid;
  grid-template-columns: repeat(5,1fr);
  background: var(--surface);
  border-bottom: 1px solid var(--borda);
}
@media(max-width:479px) {
  .perfil-stats-row { grid-template-columns: repeat(3,1fr); }
  .perfil-stats-row .stat-box:nth-child(4),
  .perfil-stats-row .stat-box:nth-child(5) { border-top: 1px solid var(--borda); }
}

/* Alertas admin — não quebrar layout */
.alert { word-break: break-word; }

/* Inputs em telas pequenas — mínimo de 44px touch target */
@media(max-width:639px) {
  .form-control, .btn { min-height: 44px; }
  .btn-sm { min-height: 36px; }
}

