/* Reset e base */
* { box-sizing:border-box; margin:0; padding:0; }
body { font-family:sans-serif; background:#f9f9f9; color:#333; min-height:100vh; display:flex; flex-direction:column; }
a { color:#007BFF; text-decoration:none; }

/* Login */
.login-wrapper { flex:1; display:flex; justify-content:center; align-items:center; padding:1rem; }
.login-form { background:#fff; padding:1.5rem; border-radius:8px; box-shadow:0 2px 8px rgba(0,0,0,0.1); width:100%; max-width:360px; text-align:center; }
.login-form h2 { margin-bottom:1rem; }
.login-form input { width:100%; padding:0.75rem; margin-bottom:1rem; border:1px solid #ccc; border-radius:4px; }
.login-form button { width:100%; padding:0.75rem; border:none; border-radius:4px; background:#007BFF; color:#fff; font-size:1rem; cursor:pointer; }
.login-form .error { color:#c00; margin-bottom:1rem; }

/* Protected */
.protected-wrapper { flex:1; display:flex; flex-direction:column; align-items:center; padding:1rem; }
.dedication { background:#fff; padding:2rem 1rem; border-radius:8px; width:100%; max-width:600px; margin-bottom:1rem; font-size:0.9rem; text-align:center; }

/* Carousel */
.carousel { position:relative; overflow:hidden; width:100%; max-width:400px; height:450px; margin:0 auto 2rem; background:#fff; }
.carousel-track { display:flex; height:100%; transition:transform 0.3s ease-in-out; }
.slide { flex:0 0 100%; display:flex; justify-content:center; align-items:center; overflow:hidden; }
.slide img {
  width: 100%;       /* ocupa toda a largura da .slide */
  height: 100%;      /* ocupa toda a altura da .slide */
  object-fit: cover; /* preenche cortando o excesso sem distorcer */
}


/* Botões prev/play/next no topo: esquerda, centro, direita */
#prev, #play, #next {
  position:absolute; top:10px;
  background:rgba(255,255,255,0.9);
  border:none;
  width:1.5rem; height:1.5rem;
  font-size:0.9rem;
  display:flex; justify-content:center; align-items:center;
  border-radius:50%;
  cursor:pointer;
  z-index:2;
}
#prev { left:10px; }
#play { left:50%; transform:translateX(-50%); }
#next { right:10px; }

/* Footer */
.footer { width:100%; text-align:center; padding:1rem; }
.logout { background:#f5f5f5; border:1px solid #ccc; padding:0.5rem 1rem; border-radius:4px; color:#333; }

/* Mobile */
@media(max-width:480px){
  .login-form, .dedication, .carousel{max-width:100%;}
  #prev, #play, #next{width:1.2rem; height:1.2rem; font-size:0.8rem;}
}