/* ============================================================
   Anima Lagos — tema visual (replica dos protótipos aprovados:
   site-publico-prototipo.html e dashboard-gestao-prototipo.html)
   ============================================================ */
:root{
  --dark:#0b2733;
  --dark2:#123b4d;
  --gold:#1E8CA3;
  --gold-soft:#cfeef4;
  --accent:#125f72;
  --ok:#2e8b57;
  --warn:#e6a72b;
  --danger:#c0392b;
  --muted:#7c8b93;
}
*{box-sizing:border-box;}
body{
  background:#fbf9f5;
  font-family:'Raleway',Arial,Helvetica,sans-serif;
  color:#1f2d33;
}
h1,h2,h3,.font-serif{font-family:'Playfair Display',serif;}

/* ===================== NAVBAR (site público) ===================== */
.navbar-anima{
  background:var(--dark);
  padding:14px 0;
  position:sticky;top:0;z-index:1000;
}
.navbar-anima .brand{
  font-family:'Playfair Display',serif;color:#fff;font-weight:800;font-size:22px;
  text-decoration:none;
}
.navbar-anima .brand small{
  display:block;font-size:10px;font-weight:400;color:var(--gold-soft);
  letter-spacing:1.5px;text-transform:uppercase;
}
.navbar-anima .nav-link{color:#cfd9dd !important;font-weight:600;font-size:14.5px;}
.navbar-anima .nav-link:hover{color:#fff !important;}
.btn-gold{background:var(--gold);border:none;color:#fff;font-weight:600;}
.btn-gold:hover{background:var(--accent);color:#fff;}
.btn-outline-cream{border:1px solid rgba(255,255,255,.5);color:#fff;font-weight:600;}
.btn-outline-cream:hover{background:rgba(255,255,255,.12);color:#fff;}
.btn-dark-soft{background:var(--dark2);color:#fff;border:none;font-weight:600;}
.btn-dark-soft:hover{background:var(--dark);color:#fff;}

/* ===================== HERO ===================== */
.hero{
  background:radial-gradient(circle at 20% 20%, rgba(30,140,163,.35), transparent 55%),
             linear-gradient(135deg, var(--dark) 0%, var(--dark2) 65%);
  color:#fff;
  padding:90px 0 70px;
  position:relative;
  overflow:hidden;
}
.hero::after{
  content:"";position:absolute;right:-60px;bottom:-60px;width:280px;height:280px;
  border-radius:50%;background:rgba(207,238,244,.12);
}
.hero h1{font-size:46px;font-weight:800;}
.hero p.lead{color:#dde6ea;font-size:18px;}
.hero-stats{display:flex;gap:28px;flex-wrap:wrap;margin-top:26px;}
.hero-stat .num{font-size:28px;font-weight:800;color:var(--gold-soft);}
.hero-stat .label{font-size:13px;color:#cfd9dd;}

/* ===================== LIVE BAR ===================== */
.live-bar{
  background:#fff;border-radius:18px;box-shadow:0 10px 30px rgba(0,0,0,.12);
  padding:18px 24px;margin-top:-46px;position:relative;z-index:5;
}
.pulse-dot{
  width:11px;height:11px;border-radius:50%;background:var(--danger);display:inline-block;
  margin-right:8px;animation:pulse 1.4s infinite;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(192,57,43,.55);}
  70%{box-shadow:0 0 0 10px rgba(192,57,43,0);}
  100%{box-shadow:0 0 0 0 rgba(192,57,43,0);}
}
.live-tag{
  background:var(--danger);color:#fff;font-weight:700;font-size:12px;
  padding:4px 10px;border-radius:50px;letter-spacing:.5px;
}

/* ===================== SECTIONS ===================== */
section{padding:60px 0;}
.section-eyebrow{
  text-transform:uppercase;letter-spacing:2px;font-size:12.5px;font-weight:700;
  color:var(--accent);margin-bottom:8px;
}
.section-title{font-size:32px;font-weight:800;color:var(--dark2);margin-bottom:8px;}
.section-sub{color:var(--muted);margin-bottom:34px;}

/* título mais pequeno usado dentro de paineis (admin) */
.panel .section-title, .panel-title{
  font-family:'Playfair Display',serif;font-size:20px;font-weight:700;margin-bottom:18px;color:var(--dark2);
}

/* ===================== DAY PILLS ===================== */
.day-pill{
  border:1px solid #e2e2e2;background:#fff;border-radius:50px;padding:9px 18px;
  font-weight:600;font-size:14px;color:var(--dark2);cursor:pointer;white-space:nowrap;
}
.day-pill.active{background:var(--dark2);color:#fff;border-color:var(--dark2);}

/* ===================== PERFORMANCE CARD ===================== */
.perf-card{
  background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 4px 18px rgba(0,0,0,.06);
  height:100%;transition:.2s;border:1px solid transparent;
}
.perf-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(0,0,0,.1);}
.perf-card.is-live{border-color:var(--danger);}
.perf-card .perf-photo{
  width:100%;height:170px;object-fit:cover;background:#eceff1;
}
.perf-card .perf-body{padding:16px 18px;}
.perf-time{
  font-family:'Playfair Display',serif;font-size:21px;font-weight:700;color:var(--dark2);
}
.status-pill{font-size:11px;font-weight:700;padding:4px 10px;border-radius:50px;letter-spacing:.3px;}
.status-live{background:#fbdada;color:var(--danger);}
.status-next{background:var(--gold-soft);color:var(--accent);}
.status-done{background:#eceff1;color:var(--muted);}
.status-soon{background:#d9f0e3;color:var(--ok);}

/* ===================== STREETS ===================== */
.street-card{
  background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 12px rgba(0,0,0,.06);height:100%;
}
.street-icon{
  width:46px;height:46px;border-radius:12px;background:var(--gold-soft);color:var(--accent);
  display:flex;align-items:center;justify-content:center;font-size:19px;margin-bottom:12px;
}
.street-card.inactive{opacity:.55;}

/* ===================== CTA ===================== */
.cta-box{
  background:linear-gradient(135deg,var(--dark2),var(--dark));color:#fff;border-radius:22px;
  padding:48px;text-align:center;
}

/* ===================== FOOTER (site público) ===================== */
footer.anl-footer{background:var(--dark);color:#cfd9dd;padding:34px 0;font-size:14px;}
footer.anl-footer a{color:var(--gold-soft);text-decoration:none;}
footer.anl-footer a:hover{text-decoration:underline;}

.filter-bar .form-control,.filter-bar .form-select{border-radius:10px;}

/* ===================== ADMIN/ARTISTA: APP SHELL ===================== */
.app-shell{position:relative;}
.sidebar{
  min-height:100vh;
  background:var(--dark);
  color:#fff;
  padding:25px 15px;
  position:sticky;
  top:0;
  width:260px;
  flex-shrink:0;
}
.sidebar .brand{
  font-family:'Playfair Display',serif;
  font-size:22px;
  font-weight:700;
  margin-bottom:6px;
  display:block;
  color:#fff;
  text-decoration:none;
}
.sidebar .brand small{
  display:block;
  font-size:11px;
  font-weight:400;
  color:var(--gold-soft);
  letter-spacing:1px;
  text-transform:uppercase;
}
.sidebar nav{margin-top:24px;}
.sidebar a.nav-link{
  color:#cfd9dd;
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 14px;
  border-radius:10px;
  margin-bottom:4px;
  transition:.15s;
  font-size:14.5px;
  cursor:pointer;
}
.sidebar a.nav-link .badge-count{
  margin-left:auto;
  background:var(--danger);
  color:#fff;
  border-radius:50px;
  font-size:11px;
  padding:1px 7px;
}
.sidebar a.nav-link:hover{background:rgba(255,255,255,.08);color:#fff;}
.sidebar a.nav-link.active{background:var(--dark2);color:#fff;}
.sidebar hr{border-color:rgba(255,255,255,.12);margin:16px 0;}

/* botão hamburguer (so visivel em telas pequenas) e overlay de fundo */
.sidebar-toggle{
  background:var(--dark);color:#fff;border:none;border-radius:10px;
  width:42px;height:42px;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;font-size:20px;
}
.sidebar-backdrop{
  display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1040;
}
.sidebar-backdrop.show{display:block;}

/* ===================== ADMIN: TOPBAR ===================== */
.topbar{
  background:#fff;
  border-radius:14px;
  padding:18px 22px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  margin-bottom:22px;
}

/* ===================== ADMIN: STAT CARDS ===================== */
.stat-card{
  background:#fff;
  border:none;
  border-radius:16px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  height:100%;
}
.stat-icon{
  width:50px;height:50px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  font-size:21px;background:var(--gold-soft);color:var(--accent);
  flex-shrink:0;
}
.stat-icon.danger{background:#fbdada;color:var(--danger);}
.stat-icon.ok{background:#d9f0e3;color:var(--ok);}
.stat-icon.warn{background:#fdecc8;color:#9a6c10;}

/* ===================== ADMIN: PANELS ===================== */
.panel{
  background:#fff;
  border-radius:16px;
  padding:22px;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  margin-bottom:22px;
}

/* ===================== FORM FIELDS (fundo azul claro p/ melhor leitura) ===================== */
.panel .form-control,
.panel .form-select,
.panel textarea.form-control{
  background:var(--gold-soft);
  border:1px solid #b7dee7;
}
.panel .form-control:focus,
.panel .form-select:focus{
  background:#fff;
  border-color:var(--gold);
  box-shadow:0 0 0 .2rem rgba(30,140,163,.15);
}
.panel .form-control::placeholder{
  color:#5a8a96;
}

/* ===================== TABLES ===================== */
.table thead th{
  background:#f8fafc;border-bottom:1px solid #e5e7eb;
  font-size:12.5px;text-transform:uppercase;letter-spacing:.4px;
  color:var(--muted);font-weight:700;white-space:nowrap;
}
.table td{vertical-align:middle;font-size:14px;}
.artist-photo{width:42px;height:42px;border-radius:50%;object-fit:cover;}

/* ===================== BADGES ===================== */
.badge-soft{
  background:var(--gold-soft);color:#0d5063;padding:5px 10px;
  border-radius:999px;font-size:11.5px;font-weight:700;
}
.badge-pill{padding:5px 11px;border-radius:999px;font-size:11.5px;font-weight:700;display:inline-block;}
.badge-confirmado{background:#d9f0e3;color:var(--ok);}
.badge-pendente{background:#fdecc8;color:#9a6c10;}
.badge-aceite{background:#d9f0e3;color:var(--ok);}
.badge-rejeitado{background:#fbdada;color:var(--danger);}
.badge-bloqueado{background:#e7e9ec;color:#4a4f54;text-decoration:line-through;}
.badge-bloqueio{background:#fbdada;color:var(--danger);}
.badge-inativo{background:#e7e9ec;color:#4a4f54;}

/* ===================== ESTADOS DE CANDIDATURA/ANIMADOR (cores associadas) ===================== */
.badge-estado-analise{background:#e2e3e5;color:#1c1c1c;}
.badge-estado-deferido{background:#d9f0e3;color:var(--ok);}
.badge-estado-indeferido{background:#fbdada;color:var(--danger);}
.badge-estado-suspenso{background:#fdecc8;color:#9a6c10;}
.badge-estado-congelado{background:#dbeafe;color:#0d6efd;}

/* ===================== SLOTS (marcação de horário) ===================== */
.anl-slot-livre{background:#d9f0e3;border:1px solid var(--ok);color:var(--ok);font-weight:600;}
.anl-slot-livre:hover{background:var(--ok);color:#fff;}
.anl-slot-ocupado{background:#e7e9ec;border:1px solid #cfd4d8;color:#9aa1a7;}

/* ===================== Banner protótipo (mantido para QA visual opcional) ===================== */
.proto-banner{
  background:#fff3cd;color:#7a5519;text-align:center;font-size:12.5px;
  font-weight:600;padding:6px 10px;letter-spacing:.3px;
}

/* ===================== RESPONSIVO (telemóvel/tablet) ===================== */
@media(min-width:992px){
  .sidebar-toggle{display:none;}
}
@media(max-width:991px){
  .sidebar{
    min-height:100vh;
    position:fixed;
    top:0;left:0;
    transform:translateX(-100%);
    transition:transform .25s ease;
    z-index:1050;
    overflow-y:auto;
  }
  .sidebar.show{transform:translateX(0);}
  .topbar{padding:14px 16px;}
  .topbar h4{font-size:18px;}
  .container-fluid.p-4{padding:14px !important;}
  .hero{padding:50px 0 40px;}
  .hero h1{font-size:30px;}
  .hero-stats{gap:18px;}
  .live-bar{margin-top:-30px;padding:14px 16px;}
  .cta-box{padding:28px 18px;}
}
@media(max-width:575px){
  .stat-card .card-body{padding:14px;}
  .panel{padding:16px;}
}