/*
 * funcetic.css – Estilos centralizados FUNCETIC
 * Bootstrap 5.3 é carregado via CDN em todas as páginas.
 * Fonte padrão: Poppins (Google Fonts).
 */

body { background-color: #e9ecef !important; }

/* ================================================================
   VARIÁVEIS
   ================================================================ */
:root {
  --fc-bg:       #1c2b4f;
  --fc-bg2:      #061246;
  --fc-card:     #2d4270;
  --fc-border:   #1f2937;
  --fc-primary:  #6366f1;
  --fc-primary2: #8b5cf6;
  --fc-text:     #e5e7eb;
  --fc-muted:    #9ca3af;
  --fc-blue1:    #1e3c72;
  --fc-blue2:    #2a5298;
}

/* ================================================================
   LOGIN
   ================================================================ */
.login-page {
  font-family: 'Poppins', sans-serif;
  background:
    radial-gradient(circle at 10% 20%, #2f415d 0%, transparent 40%),
    radial-gradient(circle at 90% 80%, #3f3ba5 0%, transparent 40%),
    linear-gradient(160deg, var(--fc-bg), var(--fc-bg2));
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--fc-text);
}

.login-container {
  max-width: 420px;
  width: 100%;
  padding: 20px;
}

.login-card {
  background: var(--fc-card);
  border: 1px solid var(--fc-border);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.02) inset;
}

.login-card .card-header {
  background: none;
  border: none;
  padding: 20px 30px 5px;
  text-align: center;
}

.login-card h1 {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 6px;
  color: white;
}

.login-card .subtitle {
  color: var(--fc-muted);
  font-size: 14px;
}

.toggle-switch {
  margin-top: 25px;
  border: 1px solid var(--fc-border);
  border-radius: 10px;
  padding: 4px;
  display: inline-flex;
  background: #061246;
}

.toggle-option {
  padding: 8px 18px;
  font-size: 14px;
  border-radius: 8px;
  cursor: pointer;
  color: var(--fc-muted);
}

.toggle-option.active {
  background: linear-gradient(135deg, var(--fc-primary), var(--fc-primary2));
  color: white;
}

.login-card .card-body      { padding: 30px; }
.login-card .form-label     { font-size: 13px; color: var(--fc-muted); }

.login-card .form-control {
  background: #061246;
  border: 1px solid var(--fc-border);
  border-radius: 10px;
  color: var(--fc-text);
  padding: 12px 14px;
  font-size: 14px;
}

.login-card .form-control::placeholder { color: #6b7280; }

.login-card .form-control:focus {
  border-color: var(--fc-primary);
  box-shadow: 0 0 0 2px rgba(99,102,241,.25);
  background: #061246;
  color: white;
}

.btn-login {
  border: none;
  border-radius: 10px;
  padding: 13px;
  font-weight: 600;
  font-size: 15px;
  color: white;
  background: linear-gradient(135deg, var(--fc-primary), var(--fc-primary2));
  transition: all .2s;
}

.btn-login:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(99,102,241,.4);
}

.login-card .card-footer {
  background: transparent;
  border-top: none;
}

.login-card .card-footer small { color: var(--fc-muted); }

/* ================================================================
   NAVBAR ADMIN
   ================================================================ */
.navbar-admin {
  background: linear-gradient(135deg, var(--fc-blue1), var(--fc-blue2));
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
}

.navbar-admin .navbar-brand,
.navbar-admin .nav-link {
  color: #fff !important;
}

.navbar-admin .nav-link:hover,
.navbar-admin .nav-link:focus {
  color: rgba(255,255,255,.75) !important;
}

.navbar-admin .nav-link.text-warning:hover {
  color: #ffc107 !important;
}

/* ================================================================
   PÁGINA PÚBLICA – VALIDAÇÃO DE INSCRIÇÃO (boleto_sigec)
   ================================================================ */
.validation-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 1rem 0;
  border-bottom: 2px solid #dee2e6;
  margin-bottom: 2rem;
}

.validation-header img { max-height: 65px; width: auto; }

.validation-header h1 {
  flex: 1;
  text-align: center;
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0;
}

.section { margin-bottom: 2rem; }

.section h2 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--fc-blue1);
  text-transform: uppercase;
  letter-spacing: .5px;
  border-bottom: 2px solid #dee2e6;
  padding-bottom: .5rem;
  margin-bottom: 1rem;
}

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
}

.field label {
  display: block;
  font-size: .75rem;
  font-weight: 600;
  color: #6c757d;
  text-transform: uppercase;
  letter-spacing: .4px;
  margin-bottom: .25rem;
}

.field input {
  width: 100%;
  padding: .5rem .75rem;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  background: #f8f9fa;
  color: #212529;
  font-size: .95rem;
}

.actions { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 2rem; }

.btn-confirm {
  background: linear-gradient(135deg, #007bff, #0056b3);
  color: white;
  border: none;
  padding: .75rem 2rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  transition: opacity .2s;
}

.btn-confirm:hover { opacity: .9; }

.btn-back {
  background: #6c757d;
  color: white;
  border: none;
  padding: .75rem 2rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  transition: opacity .2s;
}

.btn-back:hover { opacity: .9; }

/* ================================================================
   CARD DE BOLETO / EMISSÃO
   ================================================================ */
.form-card {
  background: white;
  border-radius: 20px;
  box-shadow: 0 15px 35px rgba(0,0,0,.15);
  overflow: hidden;
  margin: 2rem 0;
}

.form-header {
  background: #b3b6b8;
  color: #212529;
  padding: 2rem 2rem;
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

.form-header-logo {
  max-height: 120px;
  width: auto;
  flex-shrink: 0;
}

.form-title   { font-size: 2rem; font-weight: 700; margin: 0; color: #212529; }
.form-subtitle { font-size: 1rem; color: #6c757d; margin-top: .5rem; }
.form-body    { padding: 2.5rem 2rem; }

.form-section {
  background: #f8f9fa;
  padding: 1.5rem;
  border-radius: 12px;
  margin-bottom: 1.5rem;
  border-left: 4px solid #007bff;
}

.alert-custom { border-radius: 12px; padding: 1.5rem; }

/* ================================================================
   TABELAS ADMIN
   ================================================================ */
.table-modern thead {
  background: linear-gradient(135deg, var(--fc-blue2), var(--fc-blue1));
  color: white;
}

.table-modern th {
  border: none;
  font-weight: 600;
  padding: 1rem;
}

.table-modern tbody tr { transition: background .2s; }
.table-modern tbody tr:hover { background-color: #f0f4ff; }

/* ================================================================
   CARDS DE EVENTO
   ================================================================ */
.evento-card {
  background: white;
  border-radius: 16px;
  box-shadow: 0 8px 25px rgba(0,0,0,.1);
  overflow: hidden;
}

.evento-header {
  background: linear-gradient(135deg, #007bff, #0056b3);
  color: white;
  padding: 2rem;
}

.evento-title { font-size: 2rem; font-weight: 700; margin: 0; }

.info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.info-item { background: #f1f3f5; padding: 1rem 1.5rem; border-radius: 10px; }

.info-label {
  display: block;
  font-weight: 600;
  color: #495057;
  margin-bottom: .5rem;
  font-size: .85rem;
  text-transform: uppercase;
  letter-spacing: .5px;
}

.info-value { font-size: 1.05rem; color: #212529; }

.status-aberto  { color: #28a745; font-weight: 700; }
.status-fechado { color: #dc3545; font-weight: 700; }

/* ================================================================
   FOOTER
   ================================================================ */
.fc-footer {
  background: var(--fc-bg);
  color: var(--fc-muted);
  padding: 1rem;
  text-align: center;
  font-size: .85rem;
}

.fc-footer a { color: var(--fc-muted); text-decoration: none; }
.fc-footer a:hover { color: white; }

/* ================================================================
   RESPONSIVO
   ================================================================ */
@media (max-width: 768px) {
  .login-container { padding: 15px; }
  .login-card .card-body { padding: 25px; }

  .validation-header { flex-direction: column; text-align: center; }
  .validation-header h1 { font-size: 1.2rem; }

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

  .actions { flex-direction: column; }
  .btn-confirm, .btn-back { width: 100%; text-align: center; }

  .form-body { padding: 1.5rem 1rem; }
  .form-title { font-size: 1.5rem; }

  .table-modern th,
  .table-modern td { font-size: .9rem; padding: .6rem; }
}

@media (max-width: 480px) {
  .form-header { padding: 1.5rem 1rem; }
  .info-grid { grid-template-columns: 1fr; }
}
