/* ================================================
   VIDA NEXA — style.css
   CSS global para todas as páginas
   ================================================ */

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Nunito:wght@400;600;700&display=swap');

/* ── Reset ── */
* { margin: 0; padding: 0; box-sizing: border-box; }

/* ── Variáveis ── */
:root {
  --pink:    #ff0050;
  --pink-dk: #c8003e;
  --bg:      #0a0a0a;
  --card:    #141414;
  --card2:   #1c1c1c;
  --text:    #f0f0f0;
  --muted:   #888;
  --border:  #2a2a2a;
  --gold:    #f5c518;
  --silver:  #a8a9ad;
  --bronze:  #cd7f32;
  --warn:        #f7b731;
  --warn-bg:     rgba(247,183,49,0.08);
  --warn-border: rgba(247,183,49,0.3);
}

/* ── Base ── */
body {
  font-family: 'Nunito', sans-serif;
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 50% at 80% 20%, rgba(255,0,80,.12) 0%, transparent 70%),
    radial-gradient(ellipse 50% 40% at 20% 80%, rgba(255,0,80,.07) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

/* ── Animações ── */
@keyframes slideUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes pulso {
  0%, 100% { opacity: 1; }
  50%       { opacity: .6; }
}

/* ── Página centralizada (login / menu) ── */
.pg-centro {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
}

/* ── Página com scroll (campanhas, integrantes, etc) ── */
.pg-scroll {
  padding: 32px 16px 60px;
}

.pagina {
  position: relative;
  z-index: 1;
  max-width: 700px;
  margin: 0 auto;
}

/* ── Card central (login / menu) ── */
.card {
  position: relative;
  z-index: 1;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 40px 32px 36px;
  width: 100%;
  max-width: 420px;
  box-shadow: 0 24px 60px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.04);
  animation: slideUp .5s cubic-bezier(.22,1,.36,1) both;
}

/* ── Logo ── */
.logo-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 16px;
}

.logo-wrap img {
  border-radius: 50%;
  border: 3px solid var(--pink);
  object-fit: cover;
  box-shadow: 0 0 24px rgba(255,0,80,.35);
}

.logo-lg { width: 110px; height: 110px; }
.logo-md { width: 90px;  height: 90px;  }
.logo-sm { width: 60px;  height: 60px; border-width: 2px; }

/* ── Títulos ── */
.titulo {
  font-family: 'Bebas Neue', sans-serif;
  letter-spacing: 2px;
  text-align: center;
  line-height: 1;
  margin-bottom: 4px;
}

.titulo-lg { font-size: 2rem; }
.titulo-md { font-size: 1.8rem; }

.subtitulo {
  text-align: center;
  font-size: .82rem;
  color: var(--muted);
  margin-bottom: 28px;
}

.subtitulo a {
  color: var(--pink);
  text-decoration: none;
  font-weight: 700;
}

.subtitulo a:hover { text-decoration: underline; }

/* ── Divisor ── */
.divider {
  height: 1px;
  background: var(--border);
  margin-bottom: 20px;
}

/* ── Input ── */
label {
  display: block;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 8px;
}

input[type="text"] {
  width: 100%;
  padding: 14px 16px;
  background: var(--card2);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: #fff;
  font-family: 'Nunito', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 3px;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
  margin-bottom: 16px;
}

input[type="text"]::placeholder {
  letter-spacing: 1px;
  font-weight: 400;
  color: #555;
}

input[type="text"]:focus {
  border-color: var(--pink);
  box-shadow: 0 0 0 3px rgba(255,0,80,.15);
}

/* ── Botão principal ── */
.btn {
  width: 100%;
  padding: 14px;
  background: var(--pink);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1.2rem;
  letter-spacing: 2px;
  cursor: pointer;
  transition: background .2s, transform .1s, box-shadow .2s;
  box-shadow: 0 4px 20px rgba(255,0,80,.3);
  text-decoration: none;
  display: block;
  text-align: center;
}

.btn:hover {
  background: var(--pink-dk);
  box-shadow: 0 6px 28px rgba(255,0,80,.45);
}

.btn:active { transform: scale(.98); }

/* ── Mensagem de erro ── */
.erro {
  display: none;
  margin-top: 12px;
  padding: 10px 14px;
  background: rgba(255,0,80,.1);
  border: 1px solid rgba(255,0,80,.3);
  border-radius: 8px;
  font-size: .85rem;
  color: #ff6b8a;
  text-align: center;
}

/* ── Menu de navegação ── */
.menu {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.menu a {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  background: var(--card2);
  border: 1px solid var(--border);
  border-radius: 12px;
  text-decoration: none;
  color: var(--text);
  font-weight: 700;
  font-size: .95rem;
  transition: border-color .2s, background .2s, transform .15s;
  animation: slideUp .5s cubic-bezier(.22,1,.36,1) both;
}

.menu a:nth-child(1) { animation-delay: .05s; }
.menu a:nth-child(2) { animation-delay: .10s; }
.menu a:nth-child(3) { animation-delay: .15s; }
.menu a:nth-child(4) { animation-delay: .20s; }
.menu a:nth-child(5) { animation-delay: .25s; }

.menu a:hover {
  border-color: var(--pink);
  background: #221010;
  transform: translateX(4px);
}

.menu-icone {
  font-size: 1.3rem;
  width: 36px;
  height: 36px;
  background: rgba(255,0,80,.12);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.menu-seta {
  margin-left: auto;
  color: var(--muted);
  font-size: 1rem;
  transition: color .2s;
}

.menu a:hover .menu-seta { color: var(--pink); }

/* ── Cabeçalho de página interna ── */
.cabecalho {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 32px;
  animation: slideUp .4s cubic-bezier(.22,1,.36,1) both;
}

.cabecalho-texto h1 {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1.8rem;
  letter-spacing: 2px;
  line-height: 1;
}

.cabecalho-texto p {
  font-size: .8rem;
  color: var(--muted);
}

/* ── Título de seção ── */
.secao-titulo {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1.2rem;
  letter-spacing: 2px;
  color: var(--pink);
  margin-bottom: 14px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  gap: 8px;
}

.badge-ativo {
  font-family: 'Nunito', sans-serif;
  font-size: .65rem;
  font-weight: 700;
  background: var(--pink);
  color: #fff;
  padding: 2px 8px;
  border-radius: 20px;
  letter-spacing: 1px;
  text-transform: uppercase;
  animation: pulso 2s infinite;
}

/* ── Grid genérico ── */
.grid {
  display: grid;
  gap: 16px;
  margin-bottom: 36px;
}

.grid-2 { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.grid-3 { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.grid-4 { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }

/* ── Card de campanha ── */
.campanha-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  transition: border-color .2s, transform .2s;
  animation: slideUp .5s cubic-bezier(.22,1,.36,1) both;
}

.campanha-card:hover {
  border-color: var(--pink);
  transform: translateY(-3px);
}

.campanha-card .capa {
  width: 100%;
  height: 320px;
  object-fit: contain;
  object-position: center;
  display: block;
  background: #0d0d0d;
  cursor: pointer;
}

.campanha-card .info {
  padding: 14px 16px;
}

.campanha-card .info h3 {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1.1rem;
  letter-spacing: 1px;
  margin-bottom: 4px;
}

.campanha-card .info .mes {
  font-size: .78rem;
  color: var(--muted);
}

/* ── Ganhadores ── */
.ganhadores {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--border);
}

.ganhadores p {
  font-size: .78rem;
  font-weight: 700;
  color: var(--muted);
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.ganhador {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .85rem;
  margin-bottom: 4px;
}

.ganhador .pos {
  font-size: .72rem;
  font-weight: 700;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.pos-1 { background: var(--gold);   color: #000; }
.pos-2 { background: var(--silver); color: #000; }
.pos-3 { background: var(--bronze); color: #fff; }

.ganhador .nome   { font-weight: 600; }
.ganhador .pontos { margin-left: auto; color: var(--muted); font-size: .78rem; }

/* ── Card de integrante ── */
.integrante-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--text);
  transition: border-color .2s, transform .2s;
  animation: slideUp .4s cubic-bezier(.22,1,.36,1) both;
}

.integrante-card:hover {
  border-color: var(--pink);
  transform: translateY(-3px);
}

.integrante-card img {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--border);
  transition: border-color .2s;
}

.integrante-card:hover img { border-color: var(--pink); }

.integrante-card span {
  font-size: .82rem;
  font-weight: 700;
  text-align: center;
}

/* ── Tabela de níveis ── */
.tabela-wrap {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  animation: slideUp .5s cubic-bezier(.22,1,.36,1) both;
}

.tabela-wrap table {
  width: 100%;
  min-width: 280px;
  border-collapse: collapse;
}

.tabela-wrap thead th {
  background: var(--pink);
  color: #fff;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1rem;
  letter-spacing: 2px;
  padding: 14px 16px;
  text-align: center;
  white-space: nowrap;
}

.tabela-wrap tbody tr {
  border-bottom: 1px solid var(--border);
  transition: background .15s;
}

.tabela-wrap tbody tr:last-child { border-bottom: none; }
.tabela-wrap tbody tr:hover { background: var(--card2); }

.tabela-wrap tbody td {
  padding: 11px 16px;
  text-align: center;
  font-size: .9rem;
  font-weight: 600;
  white-space: nowrap;
}

.tabela-wrap tbody td:first-child {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1rem;
  letter-spacing: 1px;
  color: var(--pink);
  text-align: left;
}

@media (max-width: 480px) {
  .tabela-wrap thead th,
  .tabela-wrap tbody td {
    padding: 10px 12px;
    font-size: .82rem;
  }
}

/* ── Lista de documentos ── */
.doc-lista {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.doc-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  text-decoration: none;
  color: var(--text);
  font-weight: 700;
  font-size: .95rem;
  transition: border-color .2s, background .2s, transform .15s;
  animation: slideUp .4s cubic-bezier(.22,1,.36,1) both;
}

.doc-item:hover {
  border-color: var(--pink);
  background: #221010;
  transform: translateX(4px);
}

.doc-icone {
  font-size: 1.2rem;
  width: 36px;
  height: 36px;
  background: rgba(255,0,80,.12);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.doc-seta {
  margin-left: auto;
  color: var(--muted);
  transition: color .2s;
}

.doc-item:hover .doc-seta { color: var(--pink); }

/* ── Grid de vídeos ── */
.video-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  animation: slideUp .4s cubic-bezier(.22,1,.36,1) both;
  transition: border-color .2s;
}

.video-card:hover { border-color: var(--pink); }

.video-card video {
  width: 100%;
  display: block;
  max-height: 340px;
  background: #000;
}

.video-card .video-titulo {
  padding: 12px 14px;
  font-weight: 700;
  font-size: .88rem;
}

/* ── Botão voltar fixo ── */
.voltar {
  position: fixed;
  bottom: 28px;
  right: 20px;
  top: auto;
  left: auto;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--pink);
  color: white;
  border-radius: 50%;
  text-decoration: none;
  font-size: 20px;
  box-shadow: 0 4px 14px rgba(255,0,80,.4);
  z-index: 100;
  transition: background .2s, transform .15s;
}

.voltar:hover {
  background: var(--pink-dk);
  transform: scale(1.1);
}

/* ── Link discreto (sair/voltar em texto) ── */
.link-discreto {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 20px;
  padding: 10px;
  border-radius: 10px;
  text-decoration: none;
  font-size: .82rem;
  font-weight: 700;
  color: var(--muted);
  transition: color .2s;
}

.link-discreto:hover { color: var(--pink); }

/* ── Rodapé ── */
.rodape {
  margin-top: 24px;
  text-align: center;
  font-size: .78rem;
  color: #444;
}

/* ── Responsivo ── */
@media (max-width: 480px) {
  .card { padding: 32px 20px 28px; }
  .titulo-lg { font-size: 1.7rem; }
  .grid-2, .grid-3 { grid-template-columns: 1fr 1fr; }
  .grid-4 { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 360px) {
  .grid-2 { grid-template-columns: 1fr; }
  .grid-3, .grid-4 { grid-template-columns: 1fr 1fr; }
}

/* ================================================
   PAINEL — LiveTrack
   ================================================ */

/* TABS */
.tab-bar{display:flex;gap:4px;padding:0 2.5rem;border-bottom:1px solid var(--border);background:rgba(10,10,10,0.95);backdrop-filter:blur(12px);position:sticky;top:0;z-index:100;}
.tab-btn{padding:14px 20px;font-family:var(--font);font-size:13px;font-weight:600;color:var(--muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .15s;letter-spacing:.01em;}
.tab-btn.active{color:var(--pink);border-bottom-color:var(--pink);}
.tab-btn:hover:not(.active){color:var(--text);}
.tab-content{display:none;}
.tab-content.active{display:block;}

/* HEADER PAINEL */
.painel-header{padding:1.25rem 2.5rem 1rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;position:relative;z-index:1;}
.painel-logo{display:flex;align-items:center;gap:12px;}
.painel-logo-icon{width:40px;height:40px;border-radius:50%;border:2px solid var(--pink);overflow:hidden;flex-shrink:0;box-shadow:0 0 12px rgba(255,0,80,.3);}
.painel-logo-icon img{width:100%;height:100%;object-fit:cover;}
.painel-logo-text{font-family:'Bebas Neue',sans-serif;font-size:22px;letter-spacing:2px;}
.painel-logo-text span{color:var(--pink);}
.painel-header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.month-badge{font-family:monospace;font-size:11px;color:var(--muted);background:var(--card2);border:1px solid var(--border);border-radius:6px;padding:5px 12px;letter-spacing:.05em;text-transform:uppercase;}
.painel-voltar{
  position: fixed;
  top: 20px;
  left: 20px;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--pink);
  color: white;
  border-radius: 50%;
  text-decoration: none;
  font-size: 18px;
  box-shadow: 0 4px 14px rgba(255,0,80,.4);
  z-index: 200;
  transition: background .2s, transform .15s;
}
.painel-voltar:hover{background:var(--pink-dk);transform:scale(1.1);}

/* BUTTONS PAINEL */
.pbtn{height:36px;padding:0 16px;border-radius:10px;border:none;font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:6px;}
.pbtn-primary{background:var(--pink);color:#fff;}
.pbtn-primary:hover{background:var(--pink-dk);}
.pbtn-ghost{background:var(--card);border:1px solid var(--border);color:var(--muted);}
.pbtn-ghost:hover{color:var(--text);background:var(--card2);}
.pbtn-sm{height:30px;padding:0 12px;font-size:12px;}

/* STATS BAR */
.stats-bar{display:flex;gap:10px;padding:1.25rem 2.5rem;border-bottom:1px solid var(--border);flex-wrap:wrap;position:relative;z-index:1;}
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:12px 18px;min-width:100px;flex:1;max-width:170px;}
.stat-label{font-size:10px;font-family:monospace;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;}
.stat-val{font-size:22px;font-weight:800;letter-spacing:-.03em;}
.c-red,.c-teal{color:var(--pink);}
.c-text{color:var(--text);}

/* CONTROLS */
.controls{padding:1rem 2.5rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--border);position:relative;z-index:1;}
.pinput-wrap{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:0 12px;height:36px;}
.pinput-wrap input{background:none;border:none;outline:none;color:var(--text);font-family:var(--font);font-size:13px;width:170px;}
.pinput-wrap input::placeholder{color:var(--muted);}
.ml-auto{margin-left:auto;}
.search-wrap{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:0 12px;height:36px;}
.search-wrap input{background:none;border:none;outline:none;color:var(--text);font-family:var(--font);font-size:13px;width:130px;}
.search-wrap input::placeholder{color:var(--muted);}

/* AUSÊNCIA */
.absence-config{display:flex;align-items:center;gap:8px;background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:10px;padding:0 12px;height:36px;}
.absence-config label{font-size:12px;font-family:monospace;color:var(--warn);white-space:nowrap;}
.absence-config input{width:40px;background:transparent;border:none;outline:none;color:var(--warn);font-family:monospace;font-size:13px;font-weight:700;text-align:center;}

/* ALERTA */
.alert-banner{margin:0 2.5rem;border-radius:10px;overflow:hidden;position:relative;z-index:1;}
.alert-banner-inner{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:10px;padding:.75rem 1rem;display:flex;align-items:flex-start;gap:10px;}
.alert-icon{font-size:16px;flex-shrink:0;margin-top:1px;}
.alert-title{font-size:12px;font-weight:700;color:var(--warn);font-family:monospace;letter-spacing:.04em;margin-bottom:4px;}
.alert-people{display:flex;flex-wrap:wrap;gap:6px;}
.alert-chip{background:rgba(247,183,49,0.15);border:1px solid var(--warn-border);border-radius:6px;padding:3px 10px;font-size:11px;font-family:monospace;color:var(--warn);}

/* PROGRESS */
.progress-row{padding:.75rem 2.5rem 1rem;display:flex;align-items:center;gap:10px;position:relative;z-index:1;}
.prog-label{font-family:monospace;font-size:11px;color:var(--muted);white-space:nowrap;}
.prog-bar{flex:1;height:3px;background:var(--card2);border-radius:99px;overflow:hidden;}
.prog-fill{height:100%;background:var(--pink);border-radius:99px;transition:width .4s;}

/* TABLE */
.table-wrap{overflow-x:auto;padding:1rem 2.5rem 2rem;position:relative;z-index:1;}
table{border-collapse:collapse;width:100%;min-width:900px;}
thead th{font-family:monospace;font-size:10px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:7px 3px;text-align:center;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;}
thead th.th-name{text-align:left;padding-left:0;min-width:155px;position:sticky;left:0;background:var(--bg);z-index:5;}
thead th.th-total{color:var(--pink);min-width:48px;}
thead th.weekend-head{color:var(--pink)!important;}
thead th.today-head{color:var(--pink);background:rgba(255,0,80,.05);}
thead th.future-head{color:var(--muted)!important;opacity:.45;}
tbody tr{border-bottom:1px solid var(--border);transition:background .1s;}
tbody tr:hover{background:rgba(255,255,255,.02);}
tbody tr:last-child{border-bottom:none;}
td{padding:5px 3px;text-align:center;vertical-align:middle;}
td.td-name{text-align:left;padding:8px 0;position:sticky;left:0;background:var(--bg);z-index:2;}
tbody tr:hover td.td-name{background:#111;}
tbody tr.row-alert td.td-name .person-name{color:var(--warn);}
.person-row{display:flex;align-items:center;gap:8px;}
.avatar{width:28px;height:28px;border-radius:50%;background:var(--card2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--muted);flex-shrink:0;text-transform:uppercase;}
.avatar.alert-avatar{border-color:var(--warn);background:rgba(247,183,49,0.12);color:var(--warn);}
.person-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;}
.del-btn{background:none;border:none;cursor:pointer;color:var(--muted);font-size:12px;padding:2px 3px;border-radius:4px;transition:all .1s;display:none;line-height:1;}
tbody tr:hover .del-btn{display:inline-flex;}
.del-btn:hover{color:var(--pink);background:rgba(255,0,80,.1);}
.cell-btn{width:24px;height:24px;border-radius:5px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;margin:0 auto;transition:all .12s;font-size:12px;font-weight:700;}
.cell-btn.done{background:#22c55e;color:#fff;}
.cell-btn.empty{background:var(--card2);color:transparent;border:1px solid rgba(255,255,255,0.05);}
.cell-btn.empty:hover{background:rgba(255,0,80,.15);border-color:var(--pink);}
.cell-btn.done:hover{background:#16a34a;transform:scale(.9);}
.cell-btn.locked{background:transparent;border:none;cursor:not-allowed;color:var(--muted);font-size:10px;opacity:.4;}
td.weekend-col .cell-btn.empty{background:rgba(255,0,80,.06);border-color:rgba(255,0,80,.12);}
td.today-col{background:rgba(255,0,80,.04);}
td.future-col{opacity:.35;}
td.total-cell{font-family:monospace;font-size:13px;font-weight:500;color:var(--pink);}
td.total-zero{color:var(--muted);}
.absence-streak{display:inline-block;width:18px;height:18px;border-radius:4px;background:var(--warn-bg);border:1px solid var(--warn-border);font-size:9px;color:var(--warn);font-family:monospace;font-weight:700;line-height:18px;text-align:center;margin-left:3px;}

/* WEEKLY */
.weekly-section{padding:1.5rem 2.5rem 2rem;position:relative;z-index:1;}
.section-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:1rem;letter-spacing:.02em;display:flex;align-items:center;gap:8px;}
.section-title::after{content:'';flex:1;height:1px;background:var(--border);}
.sub-tab-bar{display:flex;gap:4px;margin-bottom:1.25rem;border-bottom:1px solid var(--border);}
.sub-tab-btn{padding:8px 16px;font-family:var(--font);font-size:12px;font-weight:600;color:var(--muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .15s;}
.sub-tab-btn.active{color:var(--pink);border-bottom-color:var(--pink);}
.sub-tab-btn:hover:not(.active){color:var(--text);}
.sub-tab-content{display:none;}
.sub-tab-content.active{display:block;}
.week-selector{display:flex;gap:6px;margin-bottom:1.25rem;flex-wrap:wrap;}
.week-sel-btn{padding:6px 14px;border-radius:8px;border:1px solid var(--border);background:var(--card2);color:var(--muted);font-family:monospace;font-size:11px;cursor:pointer;transition:all .15s;}
.week-sel-btn.active{background:rgba(255,0,80,.12);border-color:var(--pink);color:var(--pink);}
.week-sel-btn:hover:not(.active){color:var(--text);}
.weekly-table-wrap{overflow-x:auto;}
.weekly-table{width:100%;border-collapse:collapse;min-width:400px;}
.weekly-table thead th{font-family:monospace;font-size:10px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;padding:7px 10px;text-align:center;border-bottom:1px solid var(--border);}
.weekly-table thead th.wt-name{text-align:left;min-width:160px;}
.weekly-table tbody tr{border-bottom:1px solid var(--border);transition:background .1s;}
.weekly-table tbody tr:hover{background:rgba(255,255,255,.02);}
.weekly-table tbody tr:last-child{border-bottom:none;}
.weekly-table td{padding:8px 10px;text-align:center;vertical-align:middle;}
.weekly-table td.wt-name-cell{text-align:left;}
.wt-person-row{display:flex;align-items:center;gap:8px;}
.wt-avatar{width:26px;height:26px;border-radius:50%;background:var(--card2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--muted);flex-shrink:0;text-transform:uppercase;}
.wt-name{font-size:13px;font-weight:600;}
.wt-input{width:90px;background:var(--card2);border:1px solid var(--border);border-radius:7px;padding:6px 8px;color:var(--text);font-family:monospace;font-size:13px;font-weight:500;outline:none;transition:border .15s;text-align:center;}
.wt-input:focus{border-color:var(--pink);}
.wt-input::placeholder{color:var(--muted);}
.wt-lives{font-family:monospace;font-size:13px;color:var(--pink);font-weight:600;}
.wt-total-row td{border-top:2px solid var(--border);font-weight:700;font-family:monospace;color:var(--muted);font-size:12px;padding-top:10px;}
.wt-total-row td.sum-val{color:var(--pink);}

/* CARDS SEMANA */
.weeks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;}
.week-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:1rem 1.25rem;}
.week-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;}
.week-label{font-family:monospace;font-size:11px;color:var(--pink);letter-spacing:.06em;text-transform:uppercase;}
.week-date{font-family:monospace;font-size:10px;color:var(--muted);}
.week-totals{margin-top:10px;display:flex;gap:10px;}
.week-total-item{flex:1;background:var(--card2);border-radius:8px;padding:8px 10px;}
.week-total-label{font-size:9px;font-family:monospace;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;margin-bottom:3px;}
.week-total-val{font-size:16px;font-weight:700;font-family:monospace;}

/* CARDS INDIVIDUAIS */
.cards-section{padding:1.5rem 2.5rem 2rem;position:relative;z-index:1;}
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.member-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:1.25rem;transition:border .15s;}
.member-card:hover{border-color:var(--pink);}
.card-header{display:flex;align-items:center;gap:12px;margin-bottom:1rem;}
.card-avatar{width:42px;height:42px;border-radius:50%;background:var(--card2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--muted);flex-shrink:0;text-transform:uppercase;}
.card-name{font-size:15px;font-weight:700;color:var(--text);}
.card-sub{font-size:11px;font-family:monospace;color:var(--muted);}
.card-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:1rem;}
.card-stat{background:var(--card2);border-radius:8px;padding:8px 10px;text-align:center;}
.card-stat-label{font-size:9px;font-family:monospace;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;}
.card-stat-val{font-size:17px;font-weight:800;letter-spacing:-.02em;}
.card-chart-label{font-size:10px;font-family:monospace;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px;}
.mini-chart{display:flex;align-items:flex-end;gap:2px;height:32px;}
.mini-bar{flex:1;border-radius:2px 2px 0 0;transition:height .3s;}
.mini-bar.on{background:var(--pink);}
.mini-bar.off{background:var(--card2);}
.mini-bar.future{background:var(--card);}
.week-summary{margin-top:10px;border-top:1px solid var(--border);padding-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.ws-item{display:flex;align-items:center;justify-content:space-between;font-size:11px;}
.ws-week{font-family:monospace;color:var(--muted);}
.ws-vals{display:flex;gap:8px;}
.ws-val{font-family:monospace;font-size:11px;}
.ws-val.t{color:var(--pink);}
.ws-val.d{color:#f7b731;}

/* SAVE NOTICE */
.save-notice{position:fixed;bottom:20px;right:20px;background:var(--card);border:1px solid var(--pink);border-radius:10px;padding:10px 18px;font-size:13px;color:var(--pink);font-family:monospace;display:none;z-index:999;}

/* SCROLLBAR */
::-webkit-scrollbar{width:5px;height:5px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--card2);border-radius:99px;}

/* RESPONSIVO PAINEL */
@media(max-width:600px){
  .painel-header,.stats-bar,.controls,.table-wrap,.weekly-section,.cards-section,.progress-row,.alert-banner{padding-left:1rem;padding-right:1rem;}
  .tab-bar{padding:0 1rem;}
}
