*{
  margin:0;
  padding:0;
  box-sizing:border-box;
  font-family:Segoe UI, Arial, sans-serif;
}

/* =========================
VARIÁVEIS (TEMA)
========================= */
:root{
  --bg: #0A0A0A;
  --bg-secondary: #161616;
  --bg-soft: #060606;
  --input-bg: #141414;

  --text: #F2F2F1;
  --text-soft: #9D9E9E;

  --border: #242424;

  --primary: #63FF3D;
  --primary-hover: #39D353;

  --green: #39D353;
  --yellow: #f59e0b;
  --blue: #3b82f6;
  --red: #ef4444;
}

/* =========================
BODY
========================= */
body{
  background: var(--bg);
  color: var(--text);
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

/* =========================
LAYOUT
========================= */
.container{
  display:flex;
  flex:1;
}

/* =========================
SIDEBAR
========================= */
.sidebar{
  width:240px;
  background: var(--bg-soft);
  padding:25px;
  border-right:2px solid var(--primary);
}

.sidebar h2{
  color: var(--primary);
  margin-bottom:30px;
}

.sidebar a{
  display:block;
  color:#ccc;
  text-decoration:none;
  padding:12px;
  margin-bottom:8px;
  border-radius:6px;
  transition:0.2s;
}

.sidebar a:hover{
  background:#2a2a2a;
  color: var(--primary);
}

/* =========================
CONTENT
========================= */
.content{
  flex:1;
  padding:40px;
}

h1{
  margin-bottom:20px;
  font-weight:500;
}

/* =========================
CARDS
========================= */
.card{
  background: var(--bg-secondary);
  padding:25px;
  border-radius:10px;
  margin-bottom:25px;
  box-shadow:0 0 10px rgba(0,0,0,0.4);
}

/* =========================
INPUTS
========================= */
input, textarea, select{
  width:100%;
  padding:12px;
  margin-top:10px;
  margin-bottom:15px;

  background: var(--input-bg);
  border:1px solid var(--border);
  color:#fff;

  border-radius:6px;
}

/* =========================
TABELAS
========================= */
table{
  width:100%;
  border-collapse:collapse;
  margin-top:15px;
}

table th{
  background:#333;
  padding:10px;
  color: var(--primary);
}

table td{
  padding:10px;
  border-bottom:1px solid var(--border);
}

/* =========================
BOTÕES
========================= */
button{
  background: var(--primary);
  border:none;
  padding:12px 18px;
  border-radius:6px;
  color:#0A0A0A;
  font-weight:600;
  cursor:pointer;
  transition:0.2s;
}

button:hover{
  background: var(--primary-hover);
  transform:translateY(-1px);
}

/* =========================
BOTÕES DE PONTO
========================= */
.ponto-container{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap:20px;
  margin-top:30px;
}

.ponto-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;

  padding:18px;
  border-radius:10px;

  font-weight:600;
  cursor:pointer;

  transition:0.2s;
  box-shadow:0 5px 15px rgba(0,0,0,0.4);
}

.ponto-btn.entrada{ background: var(--green); }
.ponto-btn.pausa{ background: var(--yellow); }
.ponto-btn.retorno{ background: var(--blue); }
.ponto-btn.saida{ background: var(--red); }

.ponto-btn:hover{
  transform:translateY(-3px);
  filter:brightness(1.1);
}

.ponto-btn:active{
  transform:scale(0.96);
}

/* =========================
LOGIN PAGE
========================= */
.login-page{
  display:flex;
  flex-direction:column;
  align-items:center;

  padding-top:80px;
  min-height:100vh;

  background: radial-gradient(circle, #1f1f1f, #0d0d0d);
}

/* =========================
LOGO (AJUSTADA 🔥)
========================= */
.login-header{
  margin-bottom:15px;
}

.logo{
  width:180px; /* AUMENTADO */
  max-width:100%;
  height:auto;

  animation: float 3s ease-in-out infinite;

  filter: drop-shadow(0 0 15px rgba(99,255,61,0.35));
}

/* MOBILE */
@media (max-width:600px){
  .logo{
    width:130px;
  }
}

/* TABLET */
@media (min-width:601px) and (max-width:1024px){
  .logo{
    width:160px;
  }
}

/* DESKTOP GRANDE */
@media (min-width:1400px){
  .logo{
    width:220px;
  }
}

/* CONTROLE DARK/LIGHT */
.logo-light{
  display:none;
}

@media (prefers-color-scheme: light){
  .logo-dark{ display:none; }
  .logo-light{ display:block; }
}

/* ANIMAÇÃO */
@keyframes float{
  0%{transform:translateY(0);}
  50%{transform:translateY(-6px);}
  100%{transform:translateY(0);}
}

/* =========================
LOGIN BOX
========================= */
.login-box{
  background: var(--bg-secondary);
  padding:50px 40px;
  border-radius:16px;
  width:100%;
  max-width:400px;

  text-align:center;
  box-shadow:0 0 40px rgba(0,0,0,0.7);
}

.login-box h2{
  color: var(--primary);
}

.subtitle{
  color: var(--text-soft);
  font-size:14px;
  margin-bottom:25px;
}

/* INPUT LOGIN */
.login-box input{
  padding:14px;
  border-radius:8px;
}

.login-box input:focus{
  border-color: var(--primary);
  outline:none;
}

/* SENHA */
.password-box{
  position:relative;
}

.password-box i{
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
  cursor:pointer;
  color:#bbb;
}

.password-box i:hover{
  color: var(--primary);
}

/* BOTÃO LOGIN */
.login-box button{
  width:100%;
  padding:14px;
  font-size:16px;
  border-radius:8px;

  background: linear-gradient(135deg, #63FF3D, #39D353);
  color:#0A0A0A;
}

.login-box button:hover{
  transform:scale(1.03);
  box-shadow:0 0 18px rgba(99,255,61,0.5);
}

/* =========================
DASHBOARD CARDS
========================= */
.cards{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:20px;
  margin-top:30px;
}

.dashboard-card{
  background: var(--bg-secondary);
  padding:25px;
  border-radius:10px;

  width:220px;

  text-align:center;
  cursor:pointer;

  box-shadow:0 5px 15px rgba(0,0,0,0.5);
  transition:0.2s;
}

.dashboard-card:hover{
  transform:translateY(-5px);
}

.dashboard-card i{
  font-size:30px;
  color: var(--primary);
  margin-bottom:10px;
}

.dashboard-card p{
  color:#bbb;
}

/* =========================
BOTÃO DOWNLOAD
========================= */
.btn-download{
  background: var(--primary);
  color:#0A0A0A;

  padding:8px 14px;
  border-radius:6px;

  text-decoration:none;
  font-size:14px;

  display:inline-flex;
  gap:6px;
}

.btn-download:hover{
  background: var(--primary-hover);
}

/* =========================
FOOTER
========================= */
footer{
  background: var(--bg-soft);
  padding:15px;
  text-align:center;
  border-top:2px solid var(--primary);
}

footer p{
  color:#888;
  font-size:14px;
}

/* =========================
RESPONSIVO
========================= */

/* MOBILE */
@media (max-width:600px){

  .container{
    flex-direction:column;
  }

  .sidebar{
    width:100%;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    padding:10px;
  }

  .sidebar h2{
    width:100%;
    text-align:center;
  }

  .sidebar a{
    flex:1 1 45%;
    text-align:center;
    font-size:13px;
  }

  .content{
    padding:20px;
  }

  .login-box{
    width:90%;
    padding:30px 20px;
  }

  table{
    display:block;
    overflow-x:auto;
  }

  .cards{
    flex-direction:column;
    align-items:center;
  }

  .dashboard-card{
    width:100%;
    max-width:300px;
  }

  .ponto-container{
    grid-template-columns:1fr;
  }

}

/* TABLET */
@media (max-width:1024px){

  .sidebar{
    width:200px;
  }

  .ponto-container{
    grid-template-columns:repeat(2, 1fr);
  }

}

/* DESKTOP GRANDE */
@media (min-width:1400px){

  .content{
    padding:60px;
  }

  .dashboard-card{
    width:240px;
  }

  .login-box{
    max-width:450px;
  }

}